public void TestActualGenerationDoubleItemIfWithItemText() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "corruptedDoc.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "DemoData2.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart.ToString()); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); }
public void TestActualGenerationTextInTable() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "textintable.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "data.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); // documentPart.Descendants(WordMl.ParagraphName).Remove(); Console.WriteLine(documentPart.Descendants(WordMl.TableName).First()); Assert.IsTrue(documentPart.Descendants(WordMl.TableRowName).All(element => element.Elements().All(el => el.Name != WordMl.ParagraphName))); }
public void TestActualGenerationItemIfInRepeater() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "FaultItemIf.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "FaultItemIfData.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart); //Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); }
public void TestActualGenerationItemRepeaterElementsInParagraphs2() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "badplan.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "PlanDocx.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart.Descendants(WordMl.TableRowName).First(tr => tr.Descendants().Any(el => el.Value == "тестовое ЭА мероприятие"))); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); }
public void TestActualGeneration() { var input = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageTest.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); const string DynamicText = "My anaconda don't"; generator.GenerateDocx( input, output, new SomeEntityWrapper { Test = new SomeEntity { Text = DynamicText } }); var package = new DocxPackage(output); package.Load(); XDocument documentPartXml = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPartXml.Descendants(WordMl.SdtName).Any()); Assert.IsNotNull(documentPartXml.Descendants(WordMl.TextRunName).Single(e => e.Value == DynamicText)); } }
public void TestActualGenerationItemRepeaterNestedDemoIRInParagraph() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "ItemRepeaterNestedDemoIRParagraph.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "ItemRepeaterNested2IRDemoData.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart.Descendants(WordMl.TableRowName).First(tr => tr.Descendants().Any(el => el.Value == "Certificate 1"))); //Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); Assert.IsFalse(documentPart.Descendants(WordMl.TableCellName).Elements(WordMl.ParagraphName).Any(el => el.Name.Equals(WordMl.TextRunName))); }
public void TestActualGenerationItemHtmlContentInTable() { var input = AssemblyResourceHelper.GetResourceStream(this, "ItemHtmlContentInTable.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "data.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.Ignore }); var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); } }
public void TestActualGeneration() { var input = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageTest.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); const string DynamicText = "My anaconda don't"; generator.GenerateDocx( input, output, new SomeEntityWrapper { Test = new SomeEntity { Text = DynamicText } }); var package = new DocxPackage(output); package.Load(); XDocument documentPartXml = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPartXml.Descendants(WordMl.SdtName).Any()); Assert.IsNotNull(documentPartXml.Descendants(WordMl.TextRunName).Single(e => e.Value == DynamicText)); } }
public void TestActualGenerationStaticTextAfterTag() { var input = AssemblyResourceHelper.GetResourceStream(this, "corruptedDocxx.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "DemoData2.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Console.WriteLine(documentPart); Assert.IsTrue(documentPart.Root.Descendants(WordMl.TableCellName).All(element => element.Elements().All(el => el.Name != WordMl.TextRunName))); } }
public void TestActualGenerationIfWithTableWithParagraphs() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "ifTtable1.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "data.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); }
public async Task <IActionResult> GenerateDocument([FromQuery] string fileID, [FromQuery] string userName, [FromBody] SelectionResult selectionResult) { if (string.IsNullOrEmpty(fileID) || fileID == "null") { return(BadRequest()); } if (string.IsNullOrEmpty(userName) || userName == "null") { return(BadRequest()); } string workPath = Path.Combine(_webRootPath, "Users", userName, fileID, "report"); ReportTemplateResult result = ToReportTemplate(selectionResult, workPath); string shortName = "选型结果简表"; string filename = Path.Combine(workPath, shortName + ".docx"); var user = await _userManager.FindByNameAsync(User.Identity.Name); string companyName = $"./images/Report/{user.Company}.png"; using (DocxGenerator gen = new DocxGenerator(MapPath(@"选型简表结果.docx"))) { gen.AddCompanyLogo(MapPath(companyName)) .AddMachinePicture(MapPath(result.MachinePicture)) .AddSimulationPictures(result.SimulationPictures.ToArray()) .AddContent(result) .SaveAs(filename); } return(Created(Path.Combine("Users", userName, fileID, "report"), null)); }
private void InitializeStubbedExecution() { this.docxPackageMock = new Mock <DocxPackage>(); this.docxPackageMock.Setup(p => p.Load()).Verifiable(); this.docxPackageMock.Setup(p => p.Save()).Verifiable(); this.docxPackagePartMock = new Mock <DocxPackagePart>(); var document = new XDocument(); this.root = document.Root; this.docxPackagePartMock.SetupGet(p => p.PartXml).Returns(document); this.docxPackagePartMock.Setup(p => p.Save()).Verifiable(); var packageParts = new List <DocxPackagePart> { this.docxPackagePartMock.Object }; this.docxPackageMock.SetupGet(x => x.Parts).Returns(packageParts); var packageFactoryMock = new Mock <IDocxPackageFactory>(); packageFactoryMock.Setup(f => f.Create(It.IsAny <Stream>())).Returns(this.docxPackageMock.Object); this.processorMock = new Mock <AbstractProcessor>(); this.processorMock.Setup(p => p.Process()).Verifiable(); this.processorMock.SetupSet(processor => processor.DataReader = It.IsAny <DataReader>()).Verifiable(); var processorFactoryMock = new Mock <IProcessorFactory>(); processorFactoryMock.Setup(f => f.Create()).Returns(this.processorMock.Object); this.parserMock = new Mock <ITagParser>(); var parserFactoryMock = new Mock <IParserFactory>(); parserFactoryMock.Setup(f => f.Create()).Returns(this.parserMock.Object); this.stringDataReaderMock = new Mock <DataReader>(); this.entityDataReaderMock = new Mock <DataReader>(); this.documentDataReaderMock = new Mock <DataReader>(); var dataReaderFactoryMock = new Mock <IDataReaderFactory>(); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny <string>())).Returns(this.stringDataReaderMock.Object); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny <A>())).Returns(this.entityDataReaderMock.Object); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny <XDocument>())).Returns(this.documentDataReaderMock.Object); this.docxGenerator = new DocxGenerator { DataReaderFactory = dataReaderFactoryMock.Object, PackageFactory = packageFactoryMock.Object, ParserFactory = parserFactoryMock.Object, ProcessorFactory = processorFactoryMock.Object }; this.templateStream = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageTest.docx"); this.outputStream = new MemoryStream(); }
public TextTagInHeaderFooterAndDocumentTest() { var input = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageHeaderFooterTest.docx"); var output = new MemoryStream(); var generator = new DocxGenerator(); var stream = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageHeaderFooterTest_data.xml"); var data = XDocument.Load(stream); generator.GenerateDocx(input, output, data); _package = new DocxPackage(output).Load(); }
public TextTagInHeaderFooterAndDocumentTest() { var input = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageHeaderFooterTest.docx"); var output = new MemoryStream(); var generator = new DocxGenerator(); var stream = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageHeaderFooterTest_data.xml"); var data = XDocument.Load(stream); generator.GenerateDocx(input, output, data); _package = new DocxPackage(output).Load(); }
private static void Generate(Options options) { using (var templateStream = new FileStream(options.TemplateFileName, FileMode.Open)) using (var destinationStream = new FileStream(options.TargetFileName, FileMode.Create)) { var dataDocument = XDocument.Load(options.DataFileName); var generator = new DocxGenerator(); try { DocxGeneratorSettings settings = null; if (options.ThrowException) { settings = new DocxGeneratorSettings { MissingDataMode = MissingDataMode.ThrowException }; } else if (options.PrintError) { settings = new DocxGeneratorSettings { MissingDataMode = MissingDataMode.PrintError }; } else if (options.Ignore) { settings = new DocxGeneratorSettings { MissingDataMode = MissingDataMode.Ignore }; } if (settings == null) { settings = new DocxGeneratorSettings { CreateDynamicContentTags = options.LockDynamicContent }; } else { settings.CreateDynamicContentTags = options.LockDynamicContent; } generator.GenerateDocx(templateStream, destinationStream, dataDocument, settings); } catch (Exception exception) { ErrorLog(exception, options); } } }
public ActionResult Index(SelectionResult selectionResult) { ReportTemplateResult result = ToReportTemplate(selectionResult); string shortName = DateTime.Now.ToString("yyyyMMdd-hhmmss"); string filename = HttpContext.Server.MapPath(@"~/App/temp/") + shortName + ".docx"; result.Filename = shortName; using (DocxGenerator gen = new DocxGenerator(HttpContext.Server.MapPath(@"~/App/docTemplate/选型简表结果.docx"))) { gen.AddMachinePicture(MapPath(result.MachinePicture)) .AddSimulationPictures(MapPath(result.SimulationPictures.ToArray())) .AddContent(result) .SaveAs(filename); } return(View(result)); }
public void TestActualXDocumentGenerationHTMLLat1Content() { const string htmlContentText = @" <html> <head /> <body> <p> Text is «gfdgfdg </p> </body> </html> "; var input = AssemblyResourceHelper.GetResourceStream(this, "HTMLLat1Content.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); var data = new XDocument(); data.Add( new XElement("test", new XElement( "hypertext", htmlContentText ) ) ); generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); var package = new DocxPackage(output); package.Load(); using (var fileStream = File.Create("C:\\xdochtmlcontent.docx")) { output.Seek(0, SeekOrigin.Begin); output.CopyTo(fileStream); } var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); } }
private static void Generate(Options options) { using (var templateStream = new FileStream(options.TemplateFileName, FileMode.Open)) using (var destinationStream = new FileStream(options.TargetFileName, FileMode.Create)) { var dataDocument = XDocument.Load(options.DataFileName); var generator = new DocxGenerator(); try { DocxGeneratorSettings settings = null; if (options.ThrowException) { settings = new DocxGeneratorSettings { MissingDataMode = MissingDataMode.ThrowException }; } else if (options.PrintError) { settings = new DocxGeneratorSettings { MissingDataMode = MissingDataMode.PrintError }; } else if (options.Ignore) { settings = new DocxGeneratorSettings { MissingDataMode = MissingDataMode.Ignore }; } if (settings == null) { settings = new DocxGeneratorSettings { CreateDynamicContentTags = options.LockDynamicContent }; } else { settings.CreateDynamicContentTags = options.LockDynamicContent; } generator.GenerateDocx(templateStream, destinationStream, dataDocument, settings); } catch (Exception exception) { ErrorLog(exception, options); } } }
private void OnSaveNewFormTemplate(FormsType formType) { try { ContactFormPerson contactFormDetails = CreateContactDetails(); DocxGenerator docxGenerator = new DocxGenerator(contactFormDetails, new ConfigMgr()); docxGenerator.GenerateNewForm(formType); if (IsSavingClientData.IsChecked.Value) { AddNewClient(contactFormDetails, Defaults.CheckListDefaultCollection); } snack_bar_with_action.IsActive = true; snack_bar_with_action.MessageQueue.Enqueue("יצירת טופס בוצעה בהצלחה ונתונים נשמרו", "פתח", generate_forms_snack_barAction, new Tuple <DocxGenerator, FormsType>(docxGenerator, formType)); } catch (ArgumentNullException) { DisplaySnackbar("שגיאה. בדוק את שדות חובה. מטפל בתיק, סוג התיק"); } catch (FileNotFoundException) { DisplaySnackbar("התקיית קבצים לא קיימת, בדוק בהגדרות מערכת את ההגדרות שלך"); } catch (IOException) { DisplaySnackbar("שגיאה ביצירת הטופס, בדוק שהוא לא פתוח כבר ונסה שוב"); } catch (Exception ex) { DisplaySnackbar("שגיאה כללית במערכת, אנא נסה שוב"); Logger log = new Logger(new ConfigMgr()); log.Error("general error on load tab", ex); } }
public void TestActualGenerationRepeaterInIf() { var input = AssemblyResourceHelper.GetResourceStream(this, "RepeaterInIf.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "dataRepeaterInIf.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); var package = new DocxPackage(output); package.Load(); Assert.IsFalse(package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml.Descendants(WordMl.SdtName).Any()); } }
public IActionResult GenerateDocument([FromQuery] string fileID, [FromQuery] string userName, [FromBody] SelectionResult selectionResult) { if (string.IsNullOrEmpty(fileID) || fileID == "null") { return(BadRequest()); } if (string.IsNullOrEmpty(userName) || userName == "null") { return(BadRequest()); } string workPath = Path.Combine(_webRootPath, "Users", userName, fileID, "report"); ReportTemplateResult result = ToReportTemplate(selectionResult, workPath); string shortName = "选型结果简表"; string filename = Path.Combine(workPath, shortName + ".docx"); using (DocxGenerator gen = new DocxGenerator(MapPath(@"选型简表结果.docx"))) { gen.AddMachinePicture(MapPath(result.MachinePicture)) .AddSimulationPictures(result.SimulationPictures.ToArray()) .AddContent(result) .SaveAs(filename); } return(Created(Path.Combine("Users", userName, fileID, "report"), null)); }
public void TestActualGenerationStaticTextAfterTag() { var input = AssemblyResourceHelper.GetResourceStream(this, "corruptedDocxx.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "DemoData2.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Console.WriteLine(documentPart); Assert.IsTrue(documentPart.Root.Descendants(WordMl.TableCellName).All(element => element.Elements().All(el => el.Name != WordMl.TextRunName))); } }
public void TestActualGenerationDoubleItemIfWithItemText() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "corruptedDoc.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "DemoData2.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart.ToString()); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); }
public void TestActualGenerationItemRepeaterElementsInParagraphs2() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "badplan.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "PlanDocx.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart.Descendants(WordMl.TableRowName).First(tr => tr.Descendants().Any(el => el.Value == "тестовое ЭА мероприятие"))); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); }
public void TestActualGenerationItemIfInRepeater() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "FaultItemIf.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "FaultItemIfData.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart); //Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); }
public void TestActualGenerationItemHtmlContentInTable() { var input = AssemblyResourceHelper.GetResourceStream(this, "ItemHtmlContentInTable.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "data.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.Ignore }); var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); } }
public void TestActualXDocumentGenerationHTMLLat1Content() { const string htmlContentText = @" <html> <head /> <body> <p> Text is «gfdgfdg </p> </body> </html> "; var input = AssemblyResourceHelper.GetResourceStream(this, "HTMLLat1Content.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); var data = new XDocument(); data.Add( new XElement("test", new XElement( "hypertext", htmlContentText ) ) ); generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); var package = new DocxPackage(output); package.Load(); using (var fileStream = File.Create("C:\\xdochtmlcontent.docx")) { output.Seek(0, SeekOrigin.Begin); output.CopyTo(fileStream); } var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); } }
public void TestActualGenerationTextInTable() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "textintable.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "data.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); // documentPart.Descendants(WordMl.ParagraphName).Remove(); Console.WriteLine(documentPart.Descendants(WordMl.TableName).First()); Assert.IsTrue(documentPart.Descendants(WordMl.TableRowName).All(element => element.Elements().All(el => el.Name != WordMl.ParagraphName))); }
public void GenerateSingleReaction(ReactionInfo reaction) { DocxGenerator docgen = new DocxGenerator(); docgen.FilePath = reaction.SaveLocation; docgen.ReactionCode = reaction.Code; docgen.Chemist = reaction.Chemist; docgen.Chiefchemist = reaction.Chiefchemist; docgen.ProjectName = reaction.Project; docgen.Laboratory = reaction.Laboratory; docgen.StartDate = reaction.StartDate; docgen.ClosureDate = reaction.ClosureDate; docgen.PreviousStep = reaction.PreviousStep; docgen.Literature = reaction.Literature; docgen.ReactionImgPath = reaction.ReactionImgPath; docgen.StartingMaterial = new MoleculeRow { Name = reaction.StartingMaterial.Name, CAS = reaction.StartingMaterial.CAS, MWvalue = reaction.StartingMaterial.MW, Ratio = null, nvalue = reaction.StartingMaterial.nValue, mvalue = reaction.StartingMaterial.mValue, Vvalue = reaction.StartingMaterial.VValue, Denvalue = reaction.StartingMaterial.Den, Bpvalue = reaction.StartingMaterial.bpValue, Mpvalue = reaction.StartingMaterial.mpValue }; foreach (var item in reaction.Reagents) { docgen.AddReagent(new MoleculeRow { Name = item.Name, CAS = item.CAS, MWvalue = item.MW, Ratio = item.Ratio, nvalue = item.nValue, mvalue = item.mValue, Vvalue = item.VValue, Denvalue = item.Den, Bpvalue = item.bpValue, Mpvalue = item.mpValue }); } foreach (var item in reaction.Solvents) { docgen.AddSolvent(new MoleculeRow { Name = item.Name, CAS = item.CAS, MWvalue = item.MW, Vvalue = item.VValue, Denvalue = item.Den, Bpvalue = item.bpValue, Mpvalue = item.mpValue }); } foreach (var item in reaction.Products) { docgen.AddProduct(new MoleculeRow { MWvalue = item.MW, Ratio = item.Ratio, nvalue = item.nValue, mvalue = item.mValue }); } if (reaction.IsSketch) { docgen.GenerateReport(true); } else { docgen.ProcedureText = reaction.Procedure; docgen.Yield = reaction.Yield; docgen.ObservationText = reaction.Observation; foreach (var item in reaction.ObservationImgPaths) { docgen.ObservationImg.Add(item); } { } docgen.GenerateReport(false); } }
public void TestActualGenerationDoubleRepeater() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "DoubleRepeater.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "data.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); }
public void TestActualGenerationItemRepeaterNestedInOneParagraph() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "ItemRepeaterNestedInOneParagraph.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "ItemRepeaterNested2IRDemoData.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; var firstRow = documentPart.Descendants(WordMl.TableRowName) .First(tr => tr.Descendants().Any(el => el.Value == "Certificate 1")); Console.WriteLine(firstRow); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(firstRow.Elements().Last(el => el.Name.Equals(WordMl.TableCellName)).Elements().Any(el => el.Name.Equals(WordMl.TextRunName))); }
private void InitializeStubbedExecution() { this.docxPackageMock = new Mock<DocxPackage>(); this.docxPackageMock.Setup(p => p.Load()).Verifiable(); this.docxPackageMock.Setup(p => p.Save()).Verifiable(); this.docxPackagePartMock = new Mock<DocxPackagePart>(); var document = new XDocument(); this.root = document.Root; this.docxPackagePartMock.SetupGet(p => p.PartXml).Returns(document); this.docxPackagePartMock.Setup(p => p.Save()).Verifiable(); var packageParts = new List<DocxPackagePart> { this.docxPackagePartMock.Object }; this.docxPackageMock.SetupGet(x => x.Parts).Returns(packageParts); var packageFactoryMock = new Mock<IDocxPackageFactory>(); packageFactoryMock.Setup(f => f.Create(It.IsAny<Stream>())).Returns(this.docxPackageMock.Object); this.processorMock = new Mock<AbstractProcessor>(); this.processorMock.Setup(p => p.Process()).Verifiable(); this.processorMock.SetupSet(processor => processor.DataReader = It.IsAny<DataReader>()).Verifiable(); var processorFactoryMock = new Mock<IProcessorFactory>(); processorFactoryMock.Setup(f => f.Create()).Returns(this.processorMock.Object); this.parserMock = new Mock<ITagParser>(); var parserFactoryMock = new Mock<IParserFactory>(); parserFactoryMock.Setup(f => f.Create()).Returns(this.parserMock.Object); this.stringDataReaderMock = new Mock<DataReader>(); this.entityDataReaderMock = new Mock<DataReader>(); this.documentDataReaderMock = new Mock<DataReader>(); var dataReaderFactoryMock = new Mock<IDataReaderFactory>(); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny<string>())).Returns(this.stringDataReaderMock.Object); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny<A>())).Returns(this.entityDataReaderMock.Object); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny<XDocument>())).Returns(this.documentDataReaderMock.Object); this.docxGenerator = new DocxGenerator { DataReaderFactory = dataReaderFactoryMock.Object, PackageFactory = packageFactoryMock.Object, ParserFactory = parserFactoryMock.Object, ProcessorFactory = processorFactoryMock.Object }; this.templateStream = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageTest.docx"); this.outputStream = new MemoryStream(); }