public void InsertFistDefaultHeaders() { using (var memStream = new MemoryStream()) { var byteArray = File.ReadAllBytes(TemplateHFPath); memStream.Write(byteArray, 0, byteArray.Length); using (var doc = WordprocessingDocument.Open(memStream, true, new OpenSettings { AutoSave = false })) //using (var doc = WordprocessingDocument.Open(TemplateHFPath, true, new OpenSettings { AutoSave = true })) { var headers = new WordDocumentHeaders(doc); var pageEnumerator = new WordDocumentPageEnumerator(); headers.Create((int)HeadersFootersType.FirstDefault); var fh = headers.Item(1); fh.XmlElement.Append(new Paragraph(new Run(new Text { Text = "First" }))); var printHeader = (IPrintObject)headers.Item(2); pageEnumerator.CopyTo(printHeader); var block = headers.Item(2).XmlElement.GetFirstChild <SdtBlock>(); var para = block.GetFirstChild <SdtContentBlock>().GetFirstChild <Paragraph>(); Assert.AreEqual(para.ChildElements[3].FirstChild.InnerText, "PAGE"); } } }
public void InsertPageEnumerator() { using (var memStream = new MemoryStream()) { var byteArray = File.ReadAllBytes(TemplatePath); memStream.Write(byteArray, 0, byteArray.Length); using (var doc = WordprocessingDocument.Open(memStream, true, new OpenSettings { AutoSave = false })) // using (var doc = WordprocessingDocument.Open(TemplatePath, true, new OpenSettings { AutoSave = true })) { var headers = new WordDocumentHeaders(doc); var pageEnumerator = new WordDocumentPageEnumerator(); var cnt = headers.Count; Assert.AreEqual(cnt, 0); headers.Create((int)HeadersFootersType.Default); cnt = headers.Count; Assert.AreNotEqual(cnt, 0); for (var i = 1; i <= cnt; i++) { var printHeader = (IPrintObject)headers.Item(i); pageEnumerator.CopyTo(printHeader); var block = headers.Item(i).XmlElement.GetFirstChild <SdtBlock>(); var para = block.GetFirstChild <SdtContentBlock>().GetFirstChild <Paragraph>(); Assert.AreEqual(para.ChildElements[3].FirstChild.InnerText, "PAGE"); } } } }
public void InsertHeadersWhenExistsFooters() { using (var doc = WordprocessingDocument.Open(TemplatePFPath, true, new OpenSettings { AutoSave = false })) { var headers = new WordDocumentHeaders(doc); var pageEnumerator = new WordDocumentPageEnumerator(); var footers = new WordDocumentFooters(doc); var footerTable = footers.Item(1).Tables.Item(1); footerTable.Cell(1, 1).Text = "составил"; footerTable.Cell(1, 2).Text = "продукт"; Assert.AreEqual(footerTable.Cell(1, 1).Text, "составил"); headers.Create((int)HeadersFootersType.FirstDefault); var fh = headers.ItemByType((int)HeaderFooterValues.First); fh.XmlElement.Append(new Paragraph(new Run(new Text { Text = "First" }))); var printHeader = (IPrintObject)headers.ItemByType((int)HeaderFooterValues.Default); pageEnumerator.CopyTo(printHeader); var block = printHeader.XmlElement.GetFirstChild <SdtBlock>(); var para = block.GetFirstChild <SdtContentBlock>().GetFirstChild <Paragraph>(); Assert.AreEqual(para.ChildElements[3].FirstChild.InnerText, "PAGE"); } }
public override void ProcessDocument() { CheckForInitialization(); Doc = WordprocessingDocument.Open(MemStream, true); InnerDoc = (WordprocessingDocument)Doc; Bookmarks = new WordDocumentBookmarks(this); Tables = new WordDocumentTables(this); Footers = new WordDocumentFooters(this); Headers = new WordDocumentHeaders(this); PageEnumerator = new WordDocumentPageEnumerator(); }
public void FillHeadersAndFooters() { const string bookmarkName = "footer_table1"; const string val = "Пользователь"; IBSDataObject bo = new BsDataObjectMock("TestBo"); var printParams = new Params(); printParams.SetParams("BookmarkName", bookmarkName); var printScript = new StringBuilder(); printScript.Append("var wordDoc = (IWordDocument) args[1];\r\n"); printScript.Append("var p = new ParamsMock(args[3]);\r\n"); printScript.Append("var pageEnumerator = wordDoc.PageEnumerator;\r\n"); printScript.Append("var footers = (IWordDocumentHeadersFooters) wordDoc.Footers;\r\n"); printScript.Append("var f = footers.Item(1);\r\n"); printScript.Append("var table = f.Tables.Item(1);\r\n"); printScript.Append($"table.Cell(1, 1).Text = \"{val}\";\r\n"); printScript.Append("var headers = (IWordDocumentHeadersFooters) wordDoc.Headers;\r\n"); printScript.Append("headers.Create(2);\r\n"); printScript.Append("var h = (IPrintObject) headers.Item(1);\r\n"); printScript.Append("pageEnumerator.CopyTo(h);\r\n"); var printService = KonturPrintService; var printServiceParams = new Params(); printServiceParams.SetParams("Bo", bo); printServiceParams.SetParams("TemplatePath", templatePath); printServiceParams.SetParams("FileName", tmpPath); printServiceParams.SetParams("ErrorStr", ""); printServiceParams.SetParams("Params", printParams); printService.PrintScripts = new[] { printScript.ToString() }; Assert.IsTrue(printService.Print((int)PrintDocumentType.WordTemplate, printServiceParams)); using (var doc = WordprocessingDocument.Open(tmpPath, false)) { var footers = new WordDocumentFooters(doc); var footer = footers.Item(1); var table = footer.Tables.Item(1); Assert.AreEqual(table.Cell(1, 1).Text, val); var headers = new WordDocumentHeaders(doc); Assert.IsNotNull(headers.Item(1)); Assert.IsNotNull(headers.Item(2)); } }