Ejemplo n.º 1
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");
            }
        }
Ejemplo n.º 2
0
        public void InsertFirstEvenOddFooters()
        {
            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 footers        = new WordDocumentFooters(doc);
                    var pageEnumerator = new WordDocumentPageEnumerator();

                    footers.Create((int)HeadersFootersType.FirstEvenOdd);
                    var h = footers.Item(1);
                    h.XmlElement.Append(new Paragraph(new Run(new Text {
                        Text = "First"
                    })));

                    h = footers.Item(2);
                    h.XmlElement.Append(new Paragraph(new Run(new Text {
                        Text = "Even"
                    })));

                    var printFooter = (IPrintObject)footers.Item(3);
                    pageEnumerator.CopyTo(printFooter);
                    var block = footers.Item(3).XmlElement.GetFirstChild <SdtBlock>();
                    var para  = block.GetFirstChild <SdtContentBlock>().GetFirstChild <Paragraph>();

                    Assert.AreEqual(para.ChildElements[3].FirstChild.InnerText, "PAGE");
                }
            }
        }
Ejemplo n.º 3
0
        public void GetFooter()
        {
            using (var doc = WordprocessingDocument.Open(TemplatePath, false))
            {
                var footers = new WordDocumentFooters(doc);

                Assert.AreNotEqual(footers.Item(2), 0);
            }
        }
Ejemplo n.º 4
0
        public void GetTableFromFooter()
        {
            using (var doc = WordprocessingDocument.Open(TemplatePath, false))
            {
                var footers = new WordDocumentFooters(doc);
                var footer  = footers.Item(1);

                Assert.IsNotNull(footer.Tables);
            }
        }
Ejemplo n.º 5
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();
 }
Ejemplo n.º 6
0
        public void FillFooters()
        {
            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 footers = (IWordDocumentHeadersFooters)  wordDoc.Footers;\r\n");
            printScript.Append("var firstFooter = footers.Item(1);\r\n");
            printScript.Append("var table = firstFooter.Tables.Item(1);\r\n");
            printScript.Append($"table.Cell(1, 1).Text = \"{val}\";\r\n");
            printScript.Append("var pageEnumerator = wordDoc.PageEnumerator;\r\n");
            printScript.Append("for (int i = 2; i <= footers.Count; i++) {\r\n");
            printScript.Append("var f = (IPrintObject) footers.Item(i);\r\n");
            printScript.Append("var t = f.GetCopyOf(table as IPrintObject);\r\n");
            printScript.Append("var ft = footers.Item(i).Tables.Item(1);\r\n");
            printScript.Append("var cell = (IPrintObject) ft.Cell(1, 2);\r\n");
            printScript.Append("cell.GetCopyOf(pageEnumerator);\r\n");
            printScript.Append("};\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);

                footer = footers.Item(2);
                table  = footer.Tables.Item(1);
                Assert.AreEqual(table.Cell(1, 1).Text, val);
                Assert.IsTrue(table.Cell(1, 2).Text.Contains("стр."));
            }
        }
Ejemplo n.º 7
0
        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));
            }
        }
Ejemplo n.º 8
0
        public void FillFooterByFooter()
        {
            using (var doc = WordprocessingDocument.Open(TemplatePath, true, new OpenSettings {
                AutoSave = false
            }))
            {
                var footers      = new WordDocumentFooters(doc);
                var fistFooter   = footers.Item(1);
                var secondFooter = footers.Item(2);
                var table        = fistFooter.Tables.Item(1);

                Assert.AreEqual(secondFooter.Tables.Count, 0);

                var destFooter = secondFooter as IPrintObject;
                destFooter.GetCopyOf(table as IPrintObject);
                var destTable = secondFooter.Tables.Item(1);

                Assert.IsNotNull(destTable);
                Assert.AreEqual(destTable.Cell(1, 1).Text, "составил");
            }
        }
Ejemplo n.º 9
0
        public void InsertPageEnumerator()
        {
            using (var doc = WordprocessingDocument.Open(TemplatePath, true, new OpenSettings {
                AutoSave = false
            }))
            {
                var footers        = new WordDocumentFooters(doc);
                var pageEnumerator = new WordDocumentPageEnumerator();

                Assert.AreNotEqual(footers.Count, 0);

                for (var i = 1; i <= footers.Count; i++)
                {
                    var printFooter = (IPrintObject)footers.Item(i);

                    pageEnumerator.CopyTo(printFooter);
                    var block = footers.Item(i).XmlElement.GetFirstChild <SdtBlock>();
                    var para  = block.GetFirstChild <SdtContentBlock>().GetFirstChild <Paragraph>();

                    Assert.AreEqual(para.ChildElements[3].FirstChild.InnerText, "PAGE");
                }
            }
        }