Example #1
0
        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");
                }
            }
        }
Example #2
0
        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");
                    }
                }
            }
        }
Example #3
0
        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");
            }
        }
Example #4
0
 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));
            }
        }