static void Main(string[] args) { var n = DateTime.Now; var tempDi = new DirectoryInfo(string.Format("ExampleOutput-{0:00}-{1:00}-{2:00}-{3:00}{4:00}{5:00}", n.Year - 2000, n.Month, n.Day, n.Hour, n.Minute, n.Second)); tempDi.Create(); FileInfo templateDoc = new FileInfo("../../TemplateDocument.docx"); FileInfo dataFile = new FileInfo(Path.Combine(tempDi.FullName, "Data.xml")); // The following method generates a large data file with random data. // In a real world scenario, this is where you would query your data source and produce XML that will drive your document generation process. XElement data = GenerateDataFromDataSource(dataFile); WmlDocument wmlDoc = new WmlDocument(templateDoc.FullName); int count = 1; foreach (var customer in data.Elements("Customer")) { FileInfo assembledDoc = new FileInfo(Path.Combine(tempDi.FullName, string.Format("Letter-{0:0000}.docx", count++))); Console.WriteLine(assembledDoc.Name); bool templateError; WmlDocument wmlAssembledDoc = DocumentAssembler.AssembleDocument(wmlDoc, customer, out templateError); if (templateError) { Console.WriteLine("Errors in template."); Console.WriteLine("See {0} to determine the errors in the template.", assembledDoc.Name); } wmlAssembledDoc.SaveAs(assembledDoc.FullName); } }
static void Main(string[] args) { var n = DateTime.Now; var tempDi = new DirectoryInfo(string.Format("ExampleOutput-{0:00}-{1:00}-{2:00}-{3:00}{4:00}{5:00}", n.Year - 2000, n.Month, n.Day, n.Hour, n.Minute, n.Second)); tempDi.Create(); FileInfo templateDoc = new FileInfo("../../TemplateDocument.docx"); FileInfo dataFile = new FileInfo("../../Data.xml"); WmlDocument wmlDoc = new WmlDocument(templateDoc.FullName); XElement data = XElement.Load(dataFile.FullName); bool templateError; WmlDocument wmlAssembledDoc = DocumentAssembler.AssembleDocument(wmlDoc, data, out templateError); if (templateError) { Console.WriteLine("Errors in template."); Console.WriteLine("See AssembledDoc.docx to determine the errors in the template."); } FileInfo assembledDoc = new FileInfo(Path.Combine(tempDi.FullName, "AssembledDoc.docx")); wmlAssembledDoc.SaveAs(assembledDoc.FullName); }
static void Main(string[] args) { var n = DateTime.Now; var tempDi = new DirectoryInfo(string.Format("ExampleOutput-{0:00}-{1:00}-{2:00}-{3:00}{4:00}{5:00}", n.Year - 2000, n.Month, n.Day, n.Hour, n.Minute, n.Second)); tempDi.Create(); WmlComparerSettings settings = new WmlComparerSettings(); WmlDocument result = WmlComparer.Compare( new WmlDocument("../../Source1.docx"), new WmlDocument("../../Source2.docx"), settings); result.SaveAs(Path.Combine(tempDi.FullName, "Compared.docx")); var revisions = WmlComparer.GetRevisions(result, settings); foreach (var rev in revisions) { Console.WriteLine("Author: " + rev.Author); Console.WriteLine("Revision type: " + rev.RevisionType); Console.WriteLine("Revision text: " + rev.Text); Console.WriteLine(); } }
static void Main(string[] args) { var n = DateTime.Now; var tempDi = new DirectoryInfo(string.Format("ExampleOutput-{0:00}-{1:00}-{2:00}-{3:00}{4:00}{5:00}", n.Year - 2000, n.Month, n.Day, n.Hour, n.Minute, n.Second)); tempDi.Create(); WmlDocument originalWml = new WmlDocument("../../Original.docx"); List <WmlRevisedDocumentInfo> revisedDocumentInfoList = new List <WmlRevisedDocumentInfo>() { new WmlRevisedDocumentInfo() { RevisedDocument = new WmlDocument("../../RevisedByBob.docx"), Revisor = "Bob", Color = Color.LightBlue, }, new WmlRevisedDocumentInfo() { RevisedDocument = new WmlDocument("../../RevisedByMary.docx"), Revisor = "Mary", Color = Color.LightYellow, }, }; WmlComparerSettings settings = new WmlComparerSettings(); WmlDocument consolidatedWml = WmlComparer.Consolidate( originalWml, revisedDocumentInfoList, settings); consolidatedWml.SaveAs(Path.Combine(tempDi.FullName, "Consolidated.docx")); }
private static void SaveDocumentIfDesired(WmlDocument source, string name, WmlComparerSettings settings) { if (SaveIntermediateFilesForDebugging && settings.DebugTempFileDi != null) { var fileInfo = new FileInfo(Path.Combine(settings.DebugTempFileDi.FullName, name)); source.SaveAs(fileInfo.FullName); } }
static void Main(string[] args) { if (args.Length != 3) { PrintUsage(); Environment.Exit(0); } FileInfo templateDoc = new FileInfo(args[0]); if (!templateDoc.Exists) { Console.WriteLine("Error, {0} does not exist.", args[0]); PrintUsage(); Environment.Exit(0); } FileInfo dataFile = new FileInfo(args[1]); if (!dataFile.Exists) { Console.WriteLine("Error, {0} does not exist.", args[1]); PrintUsage(); Environment.Exit(0); } FileInfo assembledDoc = new FileInfo(args[2]); if (assembledDoc.Exists) { Console.WriteLine("Error, {0} exists.", args[2]); PrintUsage(); Environment.Exit(0); } WmlDocument wmlDoc = new WmlDocument(templateDoc.FullName); XElement data = XElement.Load(dataFile.FullName); bool templateError; WmlDocument wmlAssembledDoc = DocumentAssembler.AssembleDocument(wmlDoc, data, out templateError); if (templateError) { Console.WriteLine("Errors in template."); Console.WriteLine("See {0} to determine the errors in the template.", assembledDoc.Name); } wmlAssembledDoc.SaveAs(assembledDoc.FullName); }
private static void ConvertToDocx(string file, string destinationDir) { var sourceHtmlFi = new FileInfo(file); var sourceImageDi = new DirectoryInfo(destinationDir); var destDocxFi = new FileInfo(Path.Combine(destinationDir, sourceHtmlFi.Name.Replace(".html", "-ConvertedByHtmlToWml.docx"))); XElement html = HtmlToWmlReadAsXElement.ReadAsXElement(sourceHtmlFi); string usedAuthorCss = HtmlToWmlConverter.CleanUpCss((string)html.Descendants().FirstOrDefault(d => d.Name.LocalName.ToLower() == "style")); HtmlToWmlConverterSettings settings = HtmlToWmlConverter.GetDefaultSettings(); // image references in HTML files contain the path to the subdir that contains the images, so base URI is the name of the directory // that contains the HTML files settings.BaseUriForImages = sourceHtmlFi.DirectoryName; WmlDocument doc = HtmlToWmlConverter.ConvertHtmlToWml(defaultCss, usedAuthorCss, userCss, html, settings); doc.SaveAs(destDocxFi.FullName); }