Esempio n. 1
0
        public virtual void TextWithSymbolEncoding() {
            BaseFont f = BaseFont.CreateFont(BaseFont.SYMBOL, BaseFont.SYMBOL, false);
            FileStream fs = new FileStream("fonts/SymbolFontTest/textWithSymbolEncoding.pdf", FileMode.Create);
            Document doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, fs);
            Paragraph p;
            writer.CompressionLevel = 0;
            doc.Open();

            String origText = "ΑΒΓΗ€\u2022\u2663\u22c5";
            p = new Paragraph(new Chunk(origText, new Font(f, 16)));
            doc.Add(p);
            doc.Close();

            PdfReader reader = new PdfReader("fonts/SymbolFontTest/textWithSymbolEncoding.pdf");
            String text = PdfTextExtractor.GetTextFromPage(reader, 1, new SimpleTextExtractionStrategy());
            reader.Close();
            Assert.AreEqual(origText, text);

            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent("fonts/SymbolFontTest/textWithSymbolEncoding.pdf", TEST_RESOURCES_PATH + "cmp_textWithSymbolEncoding.pdf", "fonts/SymbolFontTest/", "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
        // TODO after DEVSIX-1220 finished:
        // 1.  Create with both inputString and prepareString.
        // 1.1 Check opening both of these documents with both strings.
        // 2.  Try encrypt document with invalid input string.
        // 3.  Try open encrypted document with password that contains unassigned code points and ensure error is due to wrong password instead of the invalid input string.
        private void EncryptAes256AndCheck(String filename, byte[] ownerPassword)
        {
            int permissions = EncryptionConstants.ALLOW_SCREENREADERS;
            WriterProperties writerProperties = new WriterProperties().SetStandardEncryption(PdfEncryptionTest.USER, ownerPassword
                                                                                             , permissions, EncryptionConstants.ENCRYPTION_AES_256).SetPdfVersion(PdfVersion.PDF_2_0);
            PdfWriter   writer   = new PdfWriter(destinationFolder + filename, writerProperties.AddXmpMetadata());
            PdfDocument document = new PdfDocument(writer);

            document.GetDocumentInfo().SetMoreInfo(PdfEncryptionTest.customInfoEntryKey, PdfEncryptionTest.customInfoEntryValue
                                                   );
            PdfPage page = document.AddNewPage();

            PdfEncryptionTest.WriteTextBytesOnPageContent(page, PdfEncryptionTest.pageTextContent);
            page.Flush();
            document.Close();
            PdfEncryptionTest.CheckDecryptedWithPasswordContent(destinationFolder + filename, ownerPassword, PdfEncryptionTest
                                                                .pageTextContent);
            CompareTool compareTool   = new CompareTool().EnableEncryptionCompare();
            String      compareResult = compareTool.CompareByContent(destinationFolder + filename, sourceFolder + "cmp_" +
                                                                     filename, destinationFolder, "diff_", ownerPassword, ownerPassword);

            if (compareResult != null)
            {
                NUnit.Framework.Assert.Fail(compareResult);
            }
        }
Esempio n. 3
0
        public void Test()
        {
            String file = "tagged_pdf_page_events.pdf";

            Document document = new Document();

            PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));

            pdfWriter.SetTagged();
            pdfWriter.PageEvent = new TaggedPdfPageEventsTest();

            document.Open();

            document.Add(new Paragraph("Hello"));
            document.NewPage();
            document.Add(new Paragraph("World"));

            document.Close();

            // compare
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, TEST_RESOURCES_PATH + file,
                                                                    OUTPUT_FOLDER, "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
        public void VerticalPositionTest0() {
            String file = "vertical_position.pdf";

            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, File.Create(OUTPUT_FOLDER + file));
            document.Open();

            writer.PageEvent = new CustomPageEvent();

            PdfPTable table = new PdfPTable(2);
            for (int i = 0; i < 100; i++) {
                table.AddCell("Hello " + i);
                table.AddCell("World " + i);
            }

            document.Add(table);

            document.NewPage();

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 1000; i++) {
                sb.Append("some more text ");
            }
            document.Add(new Paragraph(sb.ToString()));

            document.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, TEST_RESOURCES_PATH + file,
                OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
        public void WaitingImageTest()
        {
            String file = "waitingImage.pdf";

            Document document = new Document();

            PdfWriter.GetInstance(document, File.Create(OUTPUT_FOLDER + file));
            document.Open();

            String longTextString = "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas";
            String extraLongTextString = longTextString + longTextString;

            document.Add(new Paragraph(extraLongTextString));
            String imageFile = "Desert.jpg";

            document.Add(Image.GetInstance(TEST_RESOURCES_PATH + imageFile));

            document.Close();

            // compare
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, TEST_RESOURCES_PATH + file, OUTPUT_FOLDER, "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 6
0
        public virtual void ChoiceFieldsWithUnicodeTest()
        {
            String      outPdf = destinationFolder + "choiceFieldsWithUnicodeTest.pdf";
            String      cmpPdf = sourceFolder + "cmp_choiceFieldsWithUnicodeTest.pdf";
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outPdf));
            PdfFont     font   = PdfFontFactory.CreateFont(sourceFolder + "NotoSansCJKjp-Bold.otf", "Identity-H");

            font.SetSubset(false);
            PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);

            pdfDoc.AddNewPage();
            // 规
            form.AddField(PdfFormField.CreateComboBox(pdfDoc, new Rectangle(36, 666, 40, 80), "combo1", "\u89c4", new
                                                      String[] { "\u89c4", "\u89c9" }, font, null).SetBorderColor(ColorConstants.BLACK));
            // 觉
            form.AddField(PdfFormField.CreateComboBox(pdfDoc, new Rectangle(136, 666, 40, 80), "combo2", "\u89c4", new
                                                      String[] { "\u89c4", "\u89c9" }, font, null).SetValue("\u89c9").SetBorderColor(ColorConstants.BLACK));
            // 规
            form.AddField(PdfFormField.CreateList(pdfDoc, new Rectangle(236, 666, 50, 80), "list1", "\u89c4", new String
                                                  [] { "\u89c4", "\u89c9" }, font, null).SetBorderColor(ColorConstants.BLACK));
            // 觉
            form.AddField(PdfFormField.CreateList(pdfDoc, new Rectangle(336, 666, 50, 80), "list2", "\u89c4", new String
                                                  [] { "\u89c4", "\u89c9" }, font, null).SetValue("\u89c9").SetBorderColor(ColorConstants.BLACK));
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder);

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
        public virtual void NotFittingByHeightTest()
        {
            String      filename = "notFittingByHeightTest.pdf";
            PdfDocument pdfDoc   = new PdfDocument(new PdfWriter(destinationFolder + filename));
            PdfAcroForm form     = PdfAcroForm.GetAcroForm(pdfDoc, true);

            for (int i = 15; i <= 50; i += 15)
            {
                PdfFormField[] fields = new PdfFormField[] { PdfFormField.CreateMultilineText(pdfDoc, new Rectangle(100, 800
                                                                                                                    - i * 4, 150, i), "multi " + i, "MULTI"), PdfFormField.CreateText(pdfDoc, new Rectangle(300, 800 - i
                                                                                                                                                                                                            * 4, 150, i), "single " + i, "SINGLE") };
                foreach (PdfFormField field in fields)
                {
                    field.SetFontSize(40);
                    field.SetBorderColor(ColorConstants.BLACK);
                    form.AddField(field);
                }
            }
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(destinationFolder + filename, sourceFolder + "cmp_" + filename
                                                                    , destinationFolder, "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 8
0
        public virtual void CheckBoxFontSizeTest04()
        {
            String      outPdf = destinationFolder + "checkBoxFontSizeTest04.pdf";
            String      cmpPdf = sourceFolder + "cmp_checkBoxFontSizeTest04.pdf";
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outPdf));

            pdfDoc.AddNewPage();
            AddCheckBox(pdfDoc, 0, 730, 10, PdfFormField.CreateCheckBox(pdfDoc, new Rectangle(50, 730, 10, 10), "cb_1"
                                                                        , "YES", PdfFormField.TYPE_CIRCLE));
            AddCheckBox(pdfDoc, 0, 700, 10, PdfFormField.CreateCheckBox(pdfDoc, new Rectangle(50, 700, 10, 10), "cb_2"
                                                                        , "YES", PdfFormField.TYPE_CROSS));
            AddCheckBox(pdfDoc, 0, 670, 10, PdfFormField.CreateCheckBox(pdfDoc, new Rectangle(50, 670, 10, 10), "cb_3"
                                                                        , "YES", PdfFormField.TYPE_DIAMOND));
            AddCheckBox(pdfDoc, 0, 640, 10, PdfFormField.CreateCheckBox(pdfDoc, new Rectangle(50, 640, 10, 10), "cb_4"
                                                                        , "YES", PdfFormField.TYPE_SQUARE));
            AddCheckBox(pdfDoc, 0, 610, 10, PdfFormField.CreateCheckBox(pdfDoc, new Rectangle(50, 610, 10, 10), "cb_5"
                                                                        , "YES", PdfFormField.TYPE_STAR));
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
        public virtual void MergeDocumentTest03()
        {
            String      filename   = sourceFolder + "pdf_open_parameters.pdf";
            String      filename1  = sourceFolder + "iphone_user_guide.pdf";
            String      resultFile = destinationFolder + "mergedResult03.pdf";
            PdfReader   reader     = new PdfReader(filename);
            PdfReader   reader1    = new PdfReader(filename1);
            FileStream  fos1       = new FileStream(resultFile, FileMode.Create);
            PdfWriter   writer1    = new PdfWriter(fos1);
            PdfDocument pdfDoc     = new PdfDocument(reader);
            PdfDocument pdfDoc1    = new PdfDocument(reader1);
            PdfDocument pdfDoc3    = new PdfDocument(writer1);

            pdfDoc3.SetTagged();
            new PdfMerger(pdfDoc3).Merge(pdfDoc, 2, 2).Merge(pdfDoc1, 7, 8).Close();
            pdfDoc.Close();
            pdfDoc1.Close();
            CompareTool compareTool         = new CompareTool();
            String      errorMessage        = "";
            String      contentErrorMessage = compareTool.CompareByContent(resultFile, sourceFolder + "cmp_mergedResult03.pdf"
                                                                           , destinationFolder, "diff_");
            String tagStructErrorMessage = compareTool.CompareTagStructures(resultFile, sourceFolder + "cmp_mergedResult03.pdf"
                                                                            );

            errorMessage += tagStructErrorMessage == null ? "" : tagStructErrorMessage + "\n";
            errorMessage += contentErrorMessage == null ? "" : contentErrorMessage;
            if (!String.IsNullOrEmpty(errorMessage))
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 10
0
        public void PageEventTest01()
        {
            String fileName = "pageEventTest01.pdf";

            MemoryStream baos   = new MemoryStream();
            Document     doc    = new Document(PageSize.LETTER, 144, 144, 144, 144);
            PdfWriter    writer = PdfWriter.GetInstance(doc, baos);

            writer.PageEvent = new MyEventHandler();

            writer.SetTagged();
            doc.Open();

            Chunk c = new Chunk("This is page 1");

            doc.Add(c);

            doc.Close();

            File.WriteAllBytes(OUTPUT_FOLDER + fileName, baos.ToArray());
            baos.Close();

            // compare
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + fileName, TEST_RESOURCES_PATH + fileName, OUTPUT_FOLDER, "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
        public virtual void BorderWidthIndentMultilineTest()
        {
            String           filename = destinationFolder + "borderWidthIndentMultilineTest.pdf";
            PdfDocument      pdfDoc   = new PdfDocument(new PdfWriter(filename));
            PdfAcroForm      form     = PdfAcroForm.GetAcroForm(pdfDoc, true);
            PdfTextFormField field    = PdfFormField.CreateMultilineText(pdfDoc, new Rectangle(100, 500, 400, 300), "multi"
                                                                         , "Does this text overlap the border? Well it shouldn't!");

            field.SetFontSize(30);
            field.SetBorderColor(ColorConstants.RED);
            field.SetBorderWidth(50);
            form.AddField(field);
            PdfTextFormField field2 = PdfFormField.CreateMultilineText(pdfDoc, new Rectangle(100, 400, 400, 50), "multiAuto"
                                                                       , "Does this autosize text overlap the border? Well it shouldn't! Does it fit accurately though?");

            field2.SetFontSize(0);
            field2.SetBorderColor(ColorConstants.RED);
            field2.SetBorderWidth(20);
            form.AddField(field2);
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_borderWidthIndentMultilineTest.pdf"
                                                                    , destinationFolder, "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 12
0
        public virtual void TestTableEvent()
        {
            String file = "tableEventTest.pdf";

            FileInfo fileE = new FileInfo(CMP_FOLDER + file);

            Document  document = new Document();
            PdfWriter writer   = PdfWriter.GetInstance(document, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));

            document.Open();
            PdfPTable table = new PdfPTable(1);

            table.TableEvent = new DummyEvent();
            table.TotalWidth = 400f;
            for (int i = 0; i < 10; i++)
            {
                table.AddCell("Cell " + i);
            }
            table.WriteSelectedRows(4, 8, 100, 800, writer.DirectContent);
            document.Close();

            // compare
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, CMP_FOLDER + file, OUTPUT_FOLDER, "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 13
0
        public virtual void ButtonFieldTest01()
        {
            String             filename = destinationFolder + "buttonFieldTest01.pdf";
            PdfWriter          writer   = new PdfWriter(new FileStream(filename, FileMode.Create));
            PdfDocument        pdfDoc   = new PdfDocument(writer);
            PdfAcroForm        form     = PdfAcroForm.GetAcroForm(pdfDoc, true);
            Rectangle          rect     = new Rectangle(36, 700, 20, 20);
            Rectangle          rect1    = new Rectangle(36, 680, 20, 20);
            PdfButtonFormField group    = PdfFormField.CreateRadioGroup(pdfDoc, "TestGroup", "1");

            PdfFormField.CreateRadioButton(pdfDoc, rect, group, "1");
            PdfFormField.CreateRadioButton(pdfDoc, rect1, group, "2");
            form.AddField(group);
            PdfButtonFormField pushButton = PdfFormField.CreatePushButton(pdfDoc, new Rectangle(36, 650, 40, 20), "push"
                                                                          , "Capcha");
            PdfButtonFormField checkBox = PdfFormField.CreateCheckBox(pdfDoc, new Rectangle(36, 560, 20, 20), "TestCheck"
                                                                      , "1");

            form.AddField(pushButton);
            form.AddField(checkBox);
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_buttonFieldTest01.pdf", destinationFolder
                                                                    , "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 14
0
        public virtual void CopyFields1Test()
        {
            Document pdfDocument = new Document();

            Directory.CreateDirectory("PdfCopyTest/");
            PdfCopy copier = new PdfCopy(pdfDocument, new FileStream("PdfCopyTest/copyFields.pdf", FileMode.Create));

            copier.SetMergeFields();

            pdfDocument.Open();

            PdfReader readerMain         = new PdfReader(RESOURCES + "fieldsOn3-sPage.pdf");
            PdfReader secondSourceReader = new PdfReader(RESOURCES + "fieldsOn2-sPage.pdf");
            PdfReader thirdReader        = new PdfReader(RESOURCES + "appearances1.pdf");

            copier.AddDocument(readerMain);
            copier.CopyDocumentFields(secondSourceReader);
            copier.AddDocument(thirdReader);

            copier.Close();
            readerMain.Close();
            secondSourceReader.Close();
            thirdReader.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent("PdfCopyTest/copyFields.pdf", RESOURCES + "cmp_copyFields.pdf", "PdfCopyTest/", "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
        public void Test() {
            String file = "tagged_pdf_page_events.pdf";

            Document document = new Document();

            PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));

            pdfWriter.SetTagged();
            pdfWriter.PageEvent = new TaggedPdfPageEventsTest();

            document.Open();

            document.Add(new Paragraph("Hello"));
            document.NewPage();
            document.Add(new Paragraph("World"));

            document.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, TEST_RESOURCES_PATH + file,
                OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 16
0
 /// <exception cref="iText.Kernel.XMP.XMPException"/>
 /// <exception cref="System.IO.IOException"/>
 /// <exception cref="System.Exception"/>
 /// <exception cref="Org.BouncyCastle.Security.GeneralSecurityException"/>
 public virtual void EncryptWithCertificate(String filename, int encryptionType, int compression)
 {
     String outFileName = destinationFolder + filename;
     int permissions = EncryptionConstants.ALLOW_SCREENREADERS;
     X509Certificate cert = GetPublicCertificate(CERT);
     PdfWriter writer = new PdfWriter(outFileName, new WriterProperties().SetPublicKeyEncryption(new X509Certificate
         [] { cert }, new int[] { permissions }, encryptionType).AddXmpMetadata());
     writer.SetCompressionLevel(compression);
     PdfDocument document = new PdfDocument(writer);
     document.GetDocumentInfo().SetMoreInfo(customInfoEntryKey, customInfoEntryValue);
     PdfPage page = document.AddNewPage();
     WriteTextBytesOnPageContent(page, pageTextContent);
     page.Flush();
     document.Close();
     CheckDecryptedWithCertificateContent(filename, cert, pageTextContent);
     CompareTool compareTool = new CompareTool().EnableEncryptionCompare();
     compareTool.GetOutReaderProperties().SetPublicKeySecurityParams(cert, GetPrivateKey());
     compareTool.GetCmpReaderProperties().SetPublicKeySecurityParams(cert, GetPrivateKey());
     String compareResult = compareTool.CompareByContent(outFileName, sourceFolder + "cmp_" + filename, destinationFolder
         , "diff_");
     if (compareResult != null) {
         NUnit.Framework.Assert.Fail(compareResult);
     }
     CheckEncryptedWithCertificateDocumentStamping(filename, cert);
     CheckEncryptedWithCertificateDocumentAppending(filename, cert);
 }
Esempio n. 17
0
        public void RecursiveSmartMergeTest()
        {
            string pathPrefix   = @"PdfCopyTest/";
            string inputDocPath = @"recursiveSmartMerge.pdf";

            byte[] part1       = ExtractPages(Path.Combine(RESOURCES, inputDocPath), 1, 2);
            string outputPath1 = Path.Combine(pathPrefix, "part1_c.pdf");

            File.WriteAllBytes(outputPath1, part1);

            byte[] part2       = ExtractPages(Path.Combine(RESOURCES, inputDocPath), 3, 7);
            string outputPath2 = Path.Combine(pathPrefix, "part2_c.pdf");

            File.WriteAllBytes(outputPath2, part2);

            byte[] merged = Merge(new string[] { outputPath1, outputPath2 });

            string mergedPath = Path.Combine(pathPrefix, "output_c.pdf");

            File.WriteAllBytes(mergedPath, merged);

            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(mergedPath, RESOURCES + "cmp_" + inputDocPath, "PdfCopyTest/", "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 18
0
 /// <exception cref="System.IO.IOException"/>
 /// <exception cref="System.Exception"/>
 /// <exception cref="Org.BouncyCastle.Security.GeneralSecurityException"/>
 public virtual void CheckEncryptedWithCertificateDocumentAppending(String filename, X509Certificate certificate
     )
 {
     String srcFileName = destinationFolder + filename;
     String outFileName = destinationFolder + "appended_" + filename;
     PdfReader reader = new PdfReader(srcFileName, new ReaderProperties().SetPublicKeySecurityParams(certificate
         , GetPrivateKey()));
     PdfDocument document = new PdfDocument(reader, new PdfWriter(outFileName), new StampingProperties().UseAppendMode
         ());
     PdfPage newPage = document.AddNewPage();
     String helloWorldStringValue = "Hello world string";
     newPage.Put(PdfName.Default, new PdfString(helloWorldStringValue));
     WriteTextBytesOnPageContent(newPage, "Hello world page_2!");
     document.Close();
     PdfReader appendedDocReader = new PdfReader(outFileName, new ReaderProperties().SetPublicKeySecurityParams
         (certificate, GetPrivateKey()));
     PdfDocument appendedDoc = new PdfDocument(appendedDocReader);
     PdfPage secondPage = appendedDoc.GetPage(2);
     PdfString helloWorldPdfString = secondPage.GetPdfObject().GetAsString(PdfName.Default);
     String actualHelloWorldStringValue = helloWorldPdfString != null ? helloWorldPdfString.GetValue() : null;
     NUnit.Framework.Assert.AreEqual(actualHelloWorldStringValue, helloWorldStringValue);
     appendedDoc.Close();
     CompareTool compareTool = new CompareTool().EnableEncryptionCompare();
     compareTool.GetOutReaderProperties().SetPublicKeySecurityParams(certificate, GetPrivateKey());
     compareTool.GetCmpReaderProperties().SetPublicKeySecurityParams(certificate, GetPrivateKey());
     String compareResult = compareTool.CompareByContent(outFileName, sourceFolder + "cmp_appended_" + filename
         , destinationFolder, "diff_");
     if (compareResult != null) {
         NUnit.Framework.Assert.Fail(compareResult);
     }
 }
Esempio n. 19
0
        /// <exception cref="iText.Kernel.XMP.XMPException"/>
        /// <exception cref="System.IO.IOException"/>
        /// <exception cref="System.Exception"/>
        public virtual void EncryptWithPassword(String filename, int encryptionType, int compression)
        {
            String    outFileName = destinationFolder + filename;
            int       permissions = EncryptionConstants.ALLOW_SCREENREADERS;
            PdfWriter writer      = new PdfWriter(outFileName, new WriterProperties().SetStandardEncryption(USER, OWNER, permissions
                                                                                                            , encryptionType).AddXmpMetadata());

            writer.SetCompressionLevel(compression);
            PdfDocument document = new PdfDocument(writer);

            document.GetDocumentInfo().SetAuthor(author).SetCreator(creator);
            PdfPage page        = document.AddNewPage();
            String  textContent = "Hello world!";

            WriteTextBytesOnPageContent(page, textContent);
            page.Flush();
            document.Close();
            CheckDecryptedWithPasswordContent(filename, OWNER, textContent);
            CheckDecryptedWithPasswordContent(filename, USER, textContent);
            CompareTool compareTool   = new CompareTool().EnableEncryptionCompare();
            String      compareResult = compareTool.CompareByContent(outFileName, sourceFolder + "cmp_" + filename, destinationFolder
                                                                     , "diff_", USER, USER);

            if (compareResult != null)
            {
                NUnit.Framework.Assert.Fail(compareResult);
            }
            CheckEncryptedWithPasswordDocumentStamping(filename, OWNER);
            CheckEncryptedWithPasswordDocumentAppending(filename, OWNER);
        }
Esempio n. 20
0
        public void TestImageChunkOnGenericTag()
        {
            String     fileName = "testImageChunkOnGenericTag.pdf";
            FileStream fos      = new FileStream(TARGET + fileName, FileMode.Create);
            Document   doc      = new Document(PageSize.LETTER);
            PdfWriter  writer   = PdfWriter.GetInstance(doc, fos);

            writer.PageEvent = new EventHandler();
            doc.Open();

            Image img = Image.GetInstance(writer.DirectContent.CreateTemplate(100f, 25f));

            Console.WriteLine(img.Height.ToString("F1", CultureInfo.InvariantCulture));
            Chunk c = new Chunk(img, 0, 0);

            c.SetGenericTag("foobar");

            doc.Add(c);
            doc.Close();

            CompareTool compareTool = new CompareTool();
            String      error       = compareTool.CompareByContent(TARGET + fileName, RESOURCES + "cmp_" + fileName, TARGET, "diff_");

            if (error != null)
            {
                Assert.Fail(error);
            }
        }
Esempio n. 21
0
        public virtual void FillFormWithDefaultResourcesUpdateFont()
        {
            String      outPdf = destinationFolder + "fillFormWithDefaultResourcesUpdateFont.pdf";
            String      cmpPdf = sourceFolder + "cmp_fillFormWithDefaultResourcesUpdateFont.pdf";
            PdfWriter   writer = new PdfWriter(outPdf);
            PdfReader   reader = new PdfReader(sourceFolder + "formWithDefaultResources.pdf");
            PdfDocument pdfDoc = new PdfDocument(reader, writer);
            PdfAcroForm form   = PdfAcroForm.GetAcroForm(pdfDoc, true);
            IDictionary <String, PdfFormField> fields = form.GetFormFields();
            PdfFormField field = fields.Get("Text1");

            // TODO DEVSIX-2016: the font in /DR of AcroForm dict is not updated, even though /DA field is updated.
            field.SetFont(PdfFontFactory.CreateFont(StandardFonts.COURIER));
            field.SetValue("New value size must be 8, but with different font.");
            new Canvas(new PdfCanvas(pdfDoc.GetFirstPage()), pdfDoc, new Rectangle(30, 500, 500, 200)).Add(new Paragraph
                                                                                                               ("The text font after modification it via PDF viewer (e.g. Acrobat) shall be preserved."));
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 22
0
        public virtual void TestNeedAppearancesMixed()
        {
            String f1 = RESOURCES + "appearances1.pdf";
            String f2 = RESOURCES + "appearances2(needAppearancesFalse).pdf";
            String f3 = RESOURCES + "appearances3(needAppearancesFalseWithStreams).pdf";
            String f4 = RESOURCES + "appearances4.pdf";

            Directory.CreateDirectory("PdfCopyTest/");
            FileStream outputPdfStream =
                new FileStream("PdfCopyTest/appearances(mixed).pdf", FileMode.Create);
            Document document = new Document();
            PdfCopy  copy     = new PdfCopy(document, outputPdfStream);

            copy.SetMergeFields();
            document.Open();
            foreach (String f in new String[] { f1, f2, f3, f4 })
            {
                PdfReader r = new PdfReader(f);
                copy.AddDocument(r);
            }
            copy.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent("PdfCopyTest/appearances(mixed).pdf", RESOURCES + "cmp_appearances(mixed).pdf", "PdfCopyTest/", "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
        public virtual void MergeDocumentTest01()
        {
            String      filename   = sourceFolder + "courierTest.pdf";
            String      filename1  = sourceFolder + "helveticaTest.pdf";
            String      filename2  = sourceFolder + "timesRomanTest.pdf";
            String      resultFile = destinationFolder + "mergedResult01.pdf";
            PdfReader   reader     = new PdfReader(filename);
            PdfReader   reader1    = new PdfReader(filename1);
            PdfReader   reader2    = new PdfReader(filename2);
            FileStream  fos1       = new FileStream(resultFile, FileMode.Create);
            PdfWriter   writer1    = new PdfWriter(fos1);
            PdfDocument pdfDoc     = new PdfDocument(reader);
            PdfDocument pdfDoc1    = new PdfDocument(reader1);
            PdfDocument pdfDoc2    = new PdfDocument(reader2);
            PdfDocument pdfDoc3    = new PdfDocument(writer1);
            PdfMerger   merger     = new PdfMerger(pdfDoc3).SetCloseSourceDocuments(true);

            merger.Merge(pdfDoc, 1, 1);
            merger.Merge(pdfDoc1, 1, 1);
            merger.Merge(pdfDoc2, 1, 1);
            pdfDoc3.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(resultFile, sourceFolder + "cmp_mergedResult01.pdf", destinationFolder
                                                                    , "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 24
0
        public virtual void FormFlatteningTest_DefaultAppearanceGeneration_Rot90()
        {
            String srcFilePattern = "FormFlatteningDefaultAppearance_90_";
            String destPattern    = "FormFlatteningDefaultAppearance_90_";

            for (int i = 0; i < 360; i += 90)
            {
                String      src  = sourceFolder + srcFilePattern + i + ".pdf";
                String      dest = destinationFolder + destPattern + i + "_flattened.pdf";
                String      cmp  = sourceFolder + "cmp_" + srcFilePattern + i + ".pdf";
                PdfDocument doc  = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
                PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true);
                foreach (PdfFormField field in form.GetFormFields().Values)
                {
                    field.SetValue("Test");
                }
                form.FlattenFields();
                doc.Close();
                CompareTool compareTool  = new CompareTool();
                String      errorMessage = compareTool.CompareByContent(dest, cmp, destinationFolder, "diff_");
                if (errorMessage != null)
                {
                    NUnit.Framework.Assert.Fail(errorMessage);
                }
            }
        }
Esempio n. 25
0
        public virtual void EncryptAes256Pdf2PermissionsTest01()
        {
            String filename    = "encryptAes256Pdf2PermissionsTest01.pdf";
            int    permissions = EncryptionConstants.ALLOW_FILL_IN | EncryptionConstants.ALLOW_SCREENREADERS | EncryptionConstants
                                 .ALLOW_DEGRADED_PRINTING;
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(destinationFolder + filename, new WriterProperties().SetPdfVersion
                                                                   (PdfVersion.PDF_2_0).SetStandardEncryption(USER, OWNER, permissions, EncryptionConstants.ENCRYPTION_AES_256
                                                                                                              )));

            pdfDoc.GetDocumentInfo().SetMoreInfo(customInfoEntryKey, customInfoEntryValue);
            PdfAcroForm      form       = PdfAcroForm.GetAcroForm(pdfDoc, true);
            PdfTextFormField textField1 = PdfFormField.CreateText(pdfDoc, new Rectangle(100, 600, 200, 30), "Name", "Enter your name"
                                                                  );

            form.AddField(textField1);
            PdfTextFormField textField2 = PdfFormField.CreateText(pdfDoc, new Rectangle(100, 550, 200, 30), "Surname",
                                                                  "Enter your surname");

            form.AddField(textField2);
            PdfButtonFormField group = PdfFormField.CreateRadioGroup(pdfDoc, "Sex", "Male");

            PdfFormField.CreateRadioButton(pdfDoc, new Rectangle(100, 530, 10, 10), group, "Male");
            PdfFormField.CreateRadioButton(pdfDoc, new Rectangle(120, 530, 10, 10), group, "Female");
            form.AddField(group);
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(destinationFolder + filename, sourceFolder + "cmp_" + filename
                                                                    , destinationFolder, "diff_", USER, USER);

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
        public void TextLeadingTest() {
            String file = "phrases.pdf";

            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, File.Create(OUTPUT_FOLDER + file));
            document.Open();

            Phrase p1 = new Phrase("first, leading of 150");
            p1.Leading = 150;
            document.Add(p1);
            document.Add(Chunk.NEWLINE);

            Phrase p2 = new Phrase("second, leading of 500");
            p2.Leading = 500;
            document.Add(p2);
            document.Add(Chunk.NEWLINE);

            Phrase p3 = new Phrase();
            p3.Add(new Chunk("third, leading of 20"));
            p3.Leading = 20;
            document.Add(p3);

            document.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, TEST_RESOURCES_PATH + file, OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 27
0
        public virtual void ChoiceFieldTest01()
        {
            String      filename = destinationFolder + "choiceFieldTest01.pdf";
            PdfWriter   writer   = new PdfWriter(new FileStream(filename, FileMode.Create));
            PdfDocument pdfDoc   = new PdfDocument(writer);
            PdfAcroForm form     = PdfAcroForm.GetAcroForm(pdfDoc, true);
            Rectangle   rect     = new Rectangle(210, 490, 150, 20);

            String[]           options = new String[] { "First Item", "Second Item", "Third Item", "Fourth Item" };
            PdfChoiceFormField choice  = PdfFormField.CreateComboBox(pdfDoc, rect, "TestField", "First Item", options);

            form.AddField(choice);
            Rectangle          rect1   = new Rectangle(210, 250, 150, 90);
            PdfChoiceFormField choice1 = PdfFormField.CreateList(pdfDoc, rect1, "TestField1", "Second Item", options);

            choice1.SetMultiSelect(true);
            form.AddField(choice1);
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_choiceFieldTest01.pdf", destinationFolder
                                                                    , "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 28
0
        public void TestRotatedFilledField()
        {
            String file = "rotatedField.pdf";

            PdfReader  pdfReader  = new PdfReader(RESOURCES_FOLDER + file);
            PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));

            AcroFields fields = pdfStamper.AcroFields;

            fields.SetField("Text1", "TEST");
            fields.GenerateAppearances = true;

            pdfStamper.FormFlattening = true;
            pdfStamper.Close();
            pdfReader.Close();
            // compare
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, RESOURCES_FOLDER + "cmp_" + file,
                                                                    OUTPUT_FOLDER, "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 29
0
        public virtual void TextWithSymbolEncoding()
        {
            BaseFont   f      = BaseFont.CreateFont(BaseFont.SYMBOL, BaseFont.SYMBOL, false);
            FileStream fs     = new FileStream("fonts/SymbolFontTest/textWithSymbolEncoding.pdf", FileMode.Create);
            Document   doc    = new Document();
            PdfWriter  writer = PdfWriter.GetInstance(doc, fs);
            Paragraph  p;

            writer.CompressionLevel = 0;
            doc.Open();

            String origText = "ΑΒΓΗ€\u2022\u2663\u22c5";

            p = new Paragraph(new Chunk(origText, new Font(f, 16)));
            doc.Add(p);
            doc.Close();

            PdfReader reader = new PdfReader("fonts/SymbolFontTest/textWithSymbolEncoding.pdf");
            String    text   = PdfTextExtractor.GetTextFromPage(reader, 1, new SimpleTextExtractionStrategy());

            reader.Close();
            Assert.AreEqual(origText, text);

            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent("fonts/SymbolFontTest/textWithSymbolEncoding.pdf", TEST_RESOURCES_PATH + "cmp_textWithSymbolEncoding.pdf", "fonts/SymbolFontTest/", "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 30
0
        public virtual void Rowspan_Test() {
            String file = "rowspantest.pdf";

            string fileE = CMP_FOLDER + file;
            Console.Write(File.Exists(fileE));
            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));
            document.Open();
            PdfContentByte contentByte = writer.DirectContent;

            Rectangle rect = document.PageSize;

            PdfPTable table = new PdfPTable(4);

            table.TotalWidth = rect.Right - rect.Left + 1;
            table.LockedWidth = true;

            float[] widths = new float[] {
                0.1f, 0.54f, 0.12f, 0.25f
            };

            table.SetWidths(widths);

            PdfPCell cell_1_1 = new PdfPCell(new Phrase("1-1"));
            cell_1_1.Colspan = 4;
            table.AddCell(cell_1_1);

            PdfPCell cell_2_1 = new PdfPCell(new Phrase("2-1"));
            cell_2_1.Rowspan = 2;
            table.AddCell(cell_2_1);

            PdfPCell cell_2_2 = new PdfPCell(new Phrase("2-2"));
            cell_2_2.Colspan = 2;
            table.AddCell(cell_2_2);

            PdfPCell cell_2_4 = new PdfPCell(new Phrase("2-4"));
            cell_2_4.Rowspan = 3;
            table.AddCell(cell_2_4);

            PdfPCell cell_3_2 = new PdfPCell(new Phrase("3-2"));
            table.AddCell(cell_3_2);

            PdfPCell cell_3_3 = new PdfPCell(new Phrase("3-3"));
            table.AddCell(cell_3_3);

            PdfPCell cell_4_1 = new PdfPCell(new Phrase("4-1"));
            cell_4_1.Colspan = 3;
            table.AddCell(cell_4_1);

            table.WriteSelectedRows(0, -1, rect.Left, rect.Top, contentByte);

            document.Close();

            // compare
            CompareTool compareTool = new CompareTool(OUTPUT_FOLDER + file, CMP_FOLDER + file);
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
        public void Test() {
            String file = "tagged_pdf_end_page.pdf";

            Document document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));
            writer.PdfVersion = PdfWriter.VERSION_1_7;
            writer.SetTagged();
            writer.CreateXmpMetadata();
            document.SetMargins(10, 10, 60, 10);

            PdfPTable headerTable = new PdfPTable(1);

            PdfPageHeader header = new CustomPdfPageHeader(writer, 10, headerTable);

            writer.PageEvent = header;

            document.Open();

            PdfPTable table = CreateContent();
            document.Add(table);

            document.Close();

            // compare
            CompareTool compareTool = new CompareTool().SetFloatRelativeError(1e-4f);
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, TEST_RESOURCES_PATH + file,
                OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 32
0
        public virtual void FlattenGenerateAppearanceFalse01()
        {
            String     outFile = OUTPUT_FOLDER + "flattenGenerateAppearanceFalse01.pdf";
            FileStream @out    = new FileStream(outFile, FileMode.Create);
            PdfReader  reader  = new PdfReader(RESOURCES_FOLDER + "not_filled_form.pdf");
            PdfStamper stamper = new PdfStamper(reader, @out);

            AcroFields form = stamper.AcroFields;

            // Fill out the form with arbitrary data
            int x = 1;

            foreach (KeyValuePair <String, AcroFields.Item> e in form.Fields)
            {
                form.SetField(e.Key, "Test " + x++);
            }

            form.GenerateAppearances = false;
            stamper.FormFlattening   = true;
            stamper.Close();

            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(outFile, RESOURCES_FOLDER + "cmp_flattenGenerateAppearanceFalse01.pdf", OUTPUT_FOLDER, "diff");

            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
        public virtual void MultilineFormFieldTest()
        {
            String           filename = destinationFolder + "multilineFormFieldTest.pdf";
            PdfDocument      pdfDoc   = new PdfDocument(new PdfWriter(filename));
            PdfAcroForm      form     = PdfAcroForm.GetAcroForm(pdfDoc, true);
            PdfTextFormField name     = PdfFormField.CreateMultilineText(pdfDoc, new Rectangle(150, 600, 277, 44), "fieldName"
                                                                         , "", null, 0);

            name.SetScroll(false);
            name.SetBorderColor(ColorConstants.GRAY);
            String itextLicence = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
                                  + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";

            name.SetValue(itextLicence);
            form.AddField(name);
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_multilineFormFieldTest.pdf"
                                                                    , destinationFolder, "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 34
0
        protected override void ComparePdf(string outPath, string dest, string cmp)
        {
            CompareTool compareTool = new CompareTool();

            AddError(compareTool.CompareByContent(dest, cmp, outPath, "diff_"));
            AddError(compareTool.CompareDocumentInfo(dest, cmp));
        }
Esempio n. 35
0
        public virtual void CheckBoxFontSizeTest02()
        {
            String      outPdf = destinationFolder + "checkBoxFontSizeTest02.pdf";
            String      cmpPdf = sourceFolder + "cmp_checkBoxFontSizeTest02.pdf";
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outPdf));

            pdfDoc.AddNewPage();
            AddCheckBox(pdfDoc, 0, 730, 7, 7);
            // fallback to default fontsize — 12 is expected.
            AddCheckBox(pdfDoc, -1, 710, 7, 7);
            AddCheckBox(pdfDoc, 0, 640, 20, 20);
            AddCheckBox(pdfDoc, 0, 600, 40, 20);
            AddCheckBox(pdfDoc, 0, 550, 20, 40);
            AddCheckBox(pdfDoc, 0, 520, 5, 5);
            AddCheckBox(pdfDoc, 0, 510, 5, 3);
            AddCheckBox(pdfDoc, 0, 500, 3, 5);
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Esempio n. 36
0
        /// <summary>
        /// Compares two PDF files using iText's CompareTool.
        /// </summary>
        /// <param name="dest">the PDF that resulted from the test</param>
        /// <param name="cmp">the reference PDF</param>
        protected void ComparePdf(string dest, string cmp)
        {
            if (string.IsNullOrEmpty(cmp))
            {
                return;
            }
            CompareTool compareTool = new CompareTool();
            string      outPath     = "./target/" + new DirectoryInfo(dest).Parent;

            new DirectoryInfo(outPath).Create();
            if (compareRenders)
            {
                AddError(compareTool.Compare(dest, cmp, outPath, differenceImagePrefix));
                AddError(compareTool.CompareLinks(dest, cmp));
            }
            else
            {
                AddError(compareTool.CompareByContent(dest, cmp, outPath, differenceImagePrefix));
            }
            AddError(compareTool.CompareDocumentInfo(dest, cmp));


            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 37
0
 private void CompareDocuments(String @out, String cmp, bool visuallyOnly) {
     CompareTool compareTool = new CompareTool();
     String errorMessage;
     if (visuallyOnly) {
         errorMessage = compareTool.Compare(outFolder + @out, cmpFolder + cmp, outFolder, "diff");
     } else {
         errorMessage = compareTool.CompareByContent(outFolder + @out, cmpFolder + cmp, outFolder, "diff");
     }
     if (errorMessage != null)
         Assert.Fail(errorMessage);
 }
Esempio n. 38
0
 public void CompareToolErrorReportTest02() {
     CompareTool compareTool = new CompareTool();
     compareTool.SetCompareByContentErrorsLimit(10);
     compareTool.SetGenerateCompareByContentXmlReport(true);
     compareTool.SetXmlReportName("report02");
     String outPdf = TEST_RESOURCES_PATH + "tagged_pdf.pdf";
     String cmpPdf = TEST_RESOURCES_PATH + "cmp_tagged_pdf.pdf";
     String result = compareTool.CompareByContent(outPdf, cmpPdf, OUT_FOLDER, "difference");
     Assert.NotNull("CompareTool must return differences found between the files",result);
     Assert.IsTrue(CompareXmls(TEST_RESOURCES_PATH + "cmp_report02.xml", OUT_FOLDER + "report02.xml"), "CompareTool report differs from the reference one");
     Console.WriteLine(result);
 }
Esempio n. 39
0
        public void Test2() {
            CompareTool compareTool = new CompareTool();
            compareTool.SetCompareByContentErrorsLimit(10);
            compareTool.SetGenerateCompareByContentXmlReport(true);

            String outPdf = TEST_RESOURCES_PATH + "tagged_pdf.pdf";
            String cmpPdf = TEST_RESOURCES_PATH + "cmp_tagged_pdf.pdf";
            String result = compareTool.CompareByContent(outPdf, cmpPdf, OUT_FOLDER, "difference");

            Assert.NotNull(result);
            Console.WriteLine(result);
        }
Esempio n. 40
0
 protected override void ComparePdf(String outPdf, String cmpPdf) {
     if (!DetectCrashesAndHangUpsOnly()) {
         CompareTool compareTool = new CompareTool(outPdf, cmpPdf);
         String errorMessage = null;
         if (CompareByContent())
             errorMessage = compareTool.CompareByContent(outPath, differenceImagePrefix);
         else
             errorMessage = compareTool.Compare(outPath, differenceImagePrefix);
         if (errorMessage != null) {
             Assert.Fail(errorMessage);
         }
     }
 }
Esempio n. 41
0
        private void VisibleTopChoiceHelper(int topVisible, int expected, String file) {
            Document document = new Document();
            FileStream fos = new FileStream(OUTPUT_FOLDER + file, FileMode.Create);
            PdfWriter writer = PdfWriter.GetInstance(document, fos);
            document.Open();

            TextField textField = new TextField(writer, new Rectangle(380, 560, 500, 610), "testListBox");

            textField.Visibility = BaseField.VISIBLE;
            textField.Rotation = 0;

            textField.FontSize = 14f;
            textField.TextColor = BaseColor.MAGENTA;

            textField.BorderColor = BaseColor.BLACK;
            textField.BorderStyle = PdfBorderDictionary.STYLE_SOLID;

            textField.Font = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.WINANSI, BaseFont.EMBEDDED);
            textField.BorderWidth = BaseField.BORDER_WIDTH_THIN;

            writer.RunDirection = PdfWriter.RUN_DIRECTION_LTR;

            textField.Choices = new String[] {"one", "two", "three"};
            textField.ChoiceExports = new String[] {"1", "2", "3"};

            //choose the second item
            textField.ChoiceSelection = 1;
            //set the first item as the visible one
            textField.VisibleTopChoice = topVisible;

            Assert.AreEqual(expected, textField.VisibleTopChoice);

            PdfFormField field = textField.GetListField();

            writer.AddAnnotation(field);

            document.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, CMP_FOLDER + file, OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
 public void AddNavigationTest()  {
     String src = srcFolder + "primes.pdf";
     String dest = outFolder + "primes_links.pdf";
     PdfReader reader = new PdfReader(src);
     PdfStamper stamper = new PdfStamper(reader, new FileStream(dest, FileMode.Create));
     PdfDestination d = new PdfDestination(PdfDestination.FIT);
     Rectangle rect = new Rectangle(0, 806, 595, 842);
     PdfAnnotation a10 = PdfAnnotation.CreateLink(stamper.Writer, rect, PdfAnnotation.HIGHLIGHT_INVERT, 2, d);
     stamper.AddAnnotation(a10, 1);
     PdfAnnotation a1 = PdfAnnotation.CreateLink(stamper.Writer, rect, PdfAnnotation.HIGHLIGHT_PUSH, 1, d);
     stamper.AddAnnotation(a1, 2);
     stamper.Close();
     CompareTool compareTool = new CompareTool();
     String errorMessage = compareTool.CompareByContent(dest, srcFolder + "cmp_primes_links.pdf", outFolder, "diff_");
     if (errorMessage != null) {
         Assert.Fail(errorMessage);
     }
 }
Esempio n. 43
0
        public void ImageTaggingExpansionTest() {
            String filename = "TextExpansionTest.pdf";
            Document doc = new Document(PageSize.LETTER, 72, 72, 72, 72);
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(DEST_FOLDER + filename, FileMode.Create));
            writer.SetTagged();
            doc.Open();

            Chunk c1 = new Chunk("ABC");
            c1.SetTextExpansion("the alphabet");
            Paragraph p1 = new Paragraph();
            p1.Add(c1);
            doc.Add(p1);

            PdfTemplate t = writer.DirectContent.CreateTemplate(6, 6);
            t.SetLineWidth(1f);
            t.Circle(3f, 3f, 1.5f);
            t.SetGrayFill(0);
            t.FillStroke();
            Image i = Image.GetInstance(t);
            Chunk c2 = new Chunk(i, 100, -100);
            doc.Add(c2);

            Chunk c3 = new Chunk("foobar");
            c3.SetTextExpansion("bar bar bar");
            Paragraph p3 = new Paragraph();
            p3.Add(c3);
            doc.Add(p3);

            doc.Close();


            CompareTool compareTool = new CompareTool();
            String error = compareTool.CompareByContent(DEST_FOLDER + filename, SOURCE_FOLDER + "cmp_" + filename, DEST_FOLDER, "diff_");
            if (error != null) {
                Assert.Fail(error);
            }
        }
 /**
  * Utility method that checks the created file against the cmp file
  * @param tagged Tagged document
  * @param keepTogether PdfPTable.setKeepTogether(true/false)
  * @throws DocumentException
  * @throws InterruptedException
  * @throws IOException
  */
 private void CompareDocuments(bool tagged, bool keepTogether) {
     String file = "tagged_" + tagged + "-keeptogether_" + keepTogether + ".pdf";
     CompareTool compareTool = new CompareTool();
     String errorMessage = compareTool.CompareByContent(outFolder + file, cmpFolder + file, outFolder, "diff");
     if (errorMessage != null) {
         Assert.Fail(errorMessage);
     }
 }
Esempio n. 45
0
        public void SpecialCharactersInAcroFieldTest()  {

            String outFile = OUT_FOLDER+"specialCharactersInAcroFieldTest.pdf";
            FileStream file = new FileStream(outFile,FileMode.Create);

            PdfReader reader = new PdfReader(new FileStream(TEST_RESOURCES_PATH+"HelveticaFont.pdf",FileMode.Open));

            PdfStamper stamper = new PdfStamper(reader, file);
            AcroFields acroFields = stamper.AcroFields;
            acroFields.SetField("Mitarbeiter", "öäü߀@");
            stamper.Close();

            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(outFile, TEST_RESOURCES_PATH + "cmp_specialCharactersInAcroFieldTest.pdf", OUT_FOLDER, "diff_");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 46
0
        public void FlatteningRadioButtonFieldsTest()
        {

            String outFile = OUT_FOLDER + "flatteningRadioButtonFieldsTest.pdf";
            FileStream file = new FileStream(outFile, FileMode.Create);

            PdfReader reader = new PdfReader(new FileStream(TEST_RESOURCES_PATH + "radios_src.pdf", FileMode.Open));

            PdfStamper stamper = new PdfStamper(reader, file);
            AcroFields acroFields = stamper.AcroFields;
            acroFields.SetField("radiogroup", "1");
            stamper.Close();

            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(outFile, TEST_RESOURCES_PATH + "cmp_flatteningRadioButtonFieldsTest.pdf", OUT_FOLDER, "diff_");
            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 47
0
        public void WaitingImageTest() {
            String file = "waitingImage.pdf";

            Document document = new Document();
            PdfWriter.GetInstance(document, File.Create(OUTPUT_FOLDER + file));
            document.Open();

            String longTextString = "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas" +
                                    "asdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddasasdsaddsdadasddas";
            String extraLongTextString = longTextString + longTextString;
            document.Add(new Paragraph(extraLongTextString));
            String imageFile = "Desert.jpg";
            document.Add(Image.GetInstance(TEST_RESOURCES_PATH + imageFile));

            document.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, TEST_RESOURCES_PATH + file, OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 48
0
        public virtual void CopyFields1Test() {
            Document pdfDocument = new Document();
            Directory.CreateDirectory("PdfCopyTest/");
            PdfCopy copier = new PdfCopy(pdfDocument, new FileStream("PdfCopyTest/copyFields.pdf", FileMode.Create));
            copier.SetMergeFields();

            pdfDocument.Open();

            PdfReader readerMain = new PdfReader(RESOURCES + "fieldsOn3-sPage.pdf");
            PdfReader secondSourceReader = new PdfReader(RESOURCES + "fieldsOn2-sPage.pdf");
            PdfReader thirdReader = new PdfReader(RESOURCES + "appearances1.pdf");

            copier.AddDocument(readerMain);
            copier.CopyDocumentFields(secondSourceReader);
            copier.AddDocument(thirdReader);

            copier.Close();
            readerMain.Close();
            secondSourceReader.Close();
            thirdReader.Close();
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent("PdfCopyTest/copyFields.pdf", RESOURCES + "cmp_copyFields.pdf", "PdfCopyTest/", "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 49
0
        public virtual void CopyFields4Test() {
            string target = "PdfCopyTest/";
            Directory.CreateDirectory(target);
            const string outfile = "copyFields4.pdf";
            const string inputFile = "link.pdf";

            Document document = new Document();
            MemoryStream stream = new MemoryStream();
            PdfWriter.GetInstance(document, stream);
            Font font = new Font(BaseFont.CreateFont(RESOURCES + "fonts/georgia.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED), 9);
            document.Open();
            document.Add(new Phrase("text", font));
            document.Close();

            Document pdfDocument = new Document();
            PdfCopy copier = new PdfCopy(pdfDocument, new FileStream(target + outfile, FileMode.Create));
            copier.SetMergeFields();
            pdfDocument.Open();

            PdfReader reader1 = new PdfReader(RESOURCES + inputFile);
            PdfReader reader2 = new PdfReader(stream.ToArray());

            copier.AddDocument(reader1);
            copier.AddDocument(reader2);
            copier.Close();
            CompareTool cmpTool = new CompareTool();
            string errorMessage = cmpTool.CompareByContent(target + outfile, RESOURCES + "cmp_" + outfile, target, "diff");
            if (errorMessage != null)
                Assert.Fail(errorMessage);
        }
Esempio n. 50
0
        public virtual void CopyFields3Test() {
            Document pdfDocument = new Document();
            Directory.CreateDirectory("PdfCopyTest/");
            PdfCopy copier = new PdfCopy(pdfDocument, new FileStream("PdfCopyTest/copyFields3.pdf", FileMode.Create));
            copier.SetMergeFields();
            pdfDocument.Open();

            PdfReader reader = new PdfReader(RESOURCES + "hello2_with_comments.pdf");
            copier.AddDocument(reader);
            copier.Close();
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent("PdfCopyTest/copyFields3.pdf", RESOURCES + "cmp_copyFields3.pdf", "PdfCopyTest/", "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 51
0
        public virtual void LargeFilePerformanceTest() {
            const string target = "PdfCopyTest/";
            const string output = "copyLargeFile.pdf";
            const string cmp = "cmp_copyLargeFile.pdf";
            
            Directory.CreateDirectory(target);

            Stopwatch timer = new Stopwatch();
            timer.Start();

            PdfReader firstSourceReader = new PdfReader(RESOURCES + "frontpage.pdf");
            PdfReader secondSourceReader = new PdfReader(RESOURCES + "large_pdf.pdf");

            Document document = new Document();

            PdfCopy copy = new PdfCopy(document, File.Create(target + output));
            copy.SetMergeFields();

            document.Open();
            copy.AddDocument(firstSourceReader);
            copy.AddDocument(secondSourceReader);

            copy.Close();
            document.Close();

            timer.Stop();
            Console.WriteLine(timer.ElapsedMilliseconds);

            CompareTool cmpTool = new CompareTool();
            String errorMessage = cmpTool.CompareByContent(target + output, RESOURCES + cmp, target, "diff");

            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 52
0
        public void MergeNamedDestinationsTest()  {
            string outputFolder = "PdfCopyTest/";
            string outputFile = "namedDestinations.pdf";
            Directory.CreateDirectory(outputFolder);

            // Create simple document
            MemoryStream main = new MemoryStream();
            Document doc = new Document(new Rectangle(612f,792f),54f,54f,36f,36f);
            PdfWriter pdfwrite = PdfWriter.GetInstance(doc, main);
            doc.Open();
            doc.Add(new Paragraph("Testing Page"));
            doc.Close();

            // Create TOC document
            MemoryStream two = new MemoryStream();
            Document doc2 = new Document(new Rectangle(612f,792f),54f,54f,36f,36f);
            PdfWriter pdfwrite2 = PdfWriter.GetInstance(doc2, two);
            doc2.Open();
            Chunk chn = new Chunk("<<-- Link To Testing Page -->>");
            chn.SetRemoteGoto("DUMMY.PDF","page-num-1");
            doc2.Add(new Paragraph(chn));
            doc2.Close();

            // Merge documents
            MemoryStream three = new MemoryStream();
            PdfReader reader1 = new PdfReader(main.ToArray());
            PdfReader reader2 = new PdfReader(two.ToArray());
            Document doc3 = new Document();
            PdfCopy DocCopy = new PdfCopy(doc3,three);
            doc3.Open();
            DocCopy.AddPage(DocCopy.GetImportedPage(reader2,1));
            DocCopy.AddPage(DocCopy.GetImportedPage(reader1,1));
            DocCopy.AddNamedDestination("page-num-1",2,new PdfDestination(PdfDestination.FIT));
            doc3.Close();

            // Fix references and write to file
            PdfReader finalReader = new PdfReader(three.ToArray());
            finalReader.MakeRemoteNamedDestinationsLocal();
            PdfStamper stamper = new PdfStamper(finalReader,new  FileStream(outputFolder + outputFile, FileMode.Create));
            stamper.Close();

           
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(outputFolder + outputFile, RESOURCES + "cmp_" + outputFile, outputFolder, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 53
0
        public void RecursiveSmartMergeTest() {
            string pathPrefix = @"PdfCopyTest/";
            string inputDocPath = @"recursiveSmartMerge.pdf";

            byte[]  part1 = ExtractPages(Path.Combine(RESOURCES, inputDocPath), 1, 2);
            string outputPath1 = Path.Combine(pathPrefix, "part1_c.pdf");
            File.WriteAllBytes(outputPath1, part1);

            byte[] part2 = ExtractPages(Path.Combine(RESOURCES, inputDocPath), 3,7);
            string outputPath2 = Path.Combine(pathPrefix, "part2_c.pdf");
            File.WriteAllBytes(outputPath2, part2);

            byte[] merged = Merge(new string[] {outputPath1, outputPath2});

            string mergedPath = Path.Combine(pathPrefix, "output_c.pdf");
            File.WriteAllBytes(mergedPath, merged);

            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(mergedPath, RESOURCES + "cmp_" + inputDocPath, "PdfCopyTest/" , "diff");
            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
        private void CompareByContent(String cmp, String output, String targetDir, String operation) {
            CompareTool cmpTool = new CompareTool();
            cmpTool.SetCompareByContentErrorsLimit(10);

            String errorMessage = cmpTool.CompareByContent(output, cmp, targetDir, operation);

            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 55
0
        public virtual void TestNeedAppearancesMixed() {
            String f1 = RESOURCES + "appearances1.pdf";
            String f2 = RESOURCES + "appearances2(needAppearancesFalse).pdf";
            String f3 = RESOURCES + "appearances3(needAppearancesFalseWithStreams).pdf";
            String f4 = RESOURCES + "appearances4.pdf";

            Directory.CreateDirectory("PdfCopyTest/");
            FileStream outputPdfStream =
                new FileStream("PdfCopyTest/appearances(mixed).pdf", FileMode.Create);
            Document document = new Document();
            PdfCopy copy = new PdfCopy(document, outputPdfStream);
            copy.SetMergeFields();
            document.Open();
            foreach (String f in new String[] {f1, f2, f3, f4}) {
                PdfReader r = new PdfReader(f);
                copy.AddDocument(r);
            }
            copy.Close();
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent("PdfCopyTest/appearances(mixed).pdf", RESOURCES + "cmp_appearances(mixed).pdf", "PdfCopyTest/", "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 56
0
        public virtual void NestedTableTest() {
            Document doc = new Document(PageSize.A4);
            String file = "nestedtabletest.pdf";
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));
            doc.Open();

            ColumnText col = new ColumnText(writer.DirectContent);
            col.SetSimpleColumn(
                Utilities.MillimetersToPoints(25),
                Utilities.MillimetersToPoints(25),
                PageSize.A4.Right - Utilities.MillimetersToPoints(25),
                PageSize.A4.Top - Utilities.MillimetersToPoints(25));

            PdfPTable table = new PdfPTable(3);
            table.HeaderRows = 1;
            table.AddCell("H1");
            table.AddCell("H2");
            table.AddCell("H3");

            for (int i = 0; i < 15; i++) {
                PdfPCell cell = new PdfPCell(createNestedTable());
                cell.Rowspan = 3;
                cell.Colspan = 3;
                table.AddCell(cell);
            }
            col.AddElement(table);

            while (ColumnText.HasMoreText(col.Go())) {
                doc.NewPage();
                col.YLine = PageSize.A4.Top - Utilities.MillimetersToPoints(25);
            }

            doc.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, CMP_FOLDER + file, OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }
Esempio n. 57
0
 public void TestAnnotationFlatteningWithSkewAndRotation() {
     String file = "annotationWithTransformMatrix.pdf";
     PdfReader reader = new PdfReader(RESOURCES_FOLDER + file);
     PdfStamper stamper = new PdfStamper(reader, new FileStream(OUTPUT_FOLDER + file, FileMode.Create));
     stamper.Writer.CompressionLevel = 0;
     stamper.AnnotationFlattening = true;
     stamper.Close();
     // compare
     CompareTool compareTool = new CompareTool();
     String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, RESOURCES_FOLDER + "cmp_" + file, OUTPUT_FOLDER, "diff");
     if (errorMessage != null)
     {
         Assert.Fail(errorMessage);
     }
 }
Esempio n. 58
0
        public void TestRegeneratingFieldsFalse()
        {
            Directory.CreateDirectory(OUTPUT_FOLDER);
            
            String file = "regenerateFieldFalse.pdf";

            Document doc = new Document(PageSize.A4);
            MemoryStream fs = new MemoryStream();
            PdfWriter writer = PdfWriter.GetInstance(doc, fs);
            writer.CloseStream = false;

            doc.Open();
            PdfPTable myTable = new PdfPTable(1);
            myTable.TotalWidth = 300f;
            myTable.LockedWidth = true;
            myTable.HorizontalAlignment = 0;

            //Create the textfield that will sit on a cell in the table
            TextField tf = new TextField(writer, new Rectangle(0, 0, 70, 200), "cellTextBox");
            tf.Text = "text field";
            //Create the table cell
            PdfPCell tbCell = new PdfPCell(new Phrase(" "));
            FieldPositioningEvents events = new FieldPositioningEvents(writer, tf.GetTextField());
            tbCell.CellEvent = events;
            myTable.AddCell(tbCell);
            PdfContentByte cb = writer.DirectContent;
            //Write out the table to the middle of the document
            myTable.WriteSelectedRows(0, -1, 0, -1, 20, 700, cb);
            doc.Close();

            fs.Position = 0;
            MemoryStream fs2 = new MemoryStream();
            PdfReader reader2 = new PdfReader(fs);
            PdfStamper stamper2 = new PdfStamper(reader2, fs2);
            stamper2.AcroFields.GenerateAppearances = false;
            stamper2.Close();
            reader2.Close();

            PdfReader reader = new PdfReader(new MemoryStream(fs2.ToArray()));
            PdfStamper stamper = new PdfStamper(reader, new FileStream(OUTPUT_FOLDER + file.Clone(), FileMode.Create));
            stamper.FormFlattening = true;
            stamper.Close();
            reader.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + file, RESOURCES_FOLDER + file, OUTPUT_FOLDER, "diff");
            if (errorMessage != null)
            {
                Assert.Fail(errorMessage);
            }
        }
    public void NestedListAtTheEndOfAnotherNestedList() {
        String pdfFile = "nestedListAtTheEndOfAnotherNestedList.pdf";
        // step 1
        Document document = new Document();
        // step 2
        PdfWriter.GetInstance(document, File.Create(DEST_FOLDER + pdfFile));
        // step 3
        document.Open();
        // step 4
        PdfPTable table = new PdfPTable(1);
        PdfPCell cell = new PdfPCell();
        cell.BackgroundColor = BaseColor.ORANGE;

        RomanList romanlist = new RomanList(true, 20);
        romanlist.IndentationLeft = 10f;
        romanlist.Add("One");
        romanlist.Add("Two");
        romanlist.Add("Three");

        RomanList romanlist2 = new RomanList(true, 20);
        romanlist2.IndentationLeft = 10f;
        romanlist2.Add("One");
        romanlist2.Add("Two");
        romanlist2.Add("Three");

        romanlist.Add(romanlist2);
        //romanlist.add("Four");

        List list = new List(List.ORDERED, 20f);
        list.SetListSymbol("\u2022");
        list.IndentationLeft = 20f;
        list.Add("One");
        list.Add("Two");
        list.Add("Three");
        list.Add("Four");
        list.Add("Roman List");
        list.Add(romanlist);

        list.Add("Five");
        list.Add("Six");

        cell.AddElement(list);
        table.AddCell(cell);
        document.Add(table);
        // step 5
        document.Close();

        CompareTool compareTool = new CompareTool();
        String error = compareTool.CompareByContent(DEST_FOLDER + pdfFile, SOURCE_FOLDER + pdfFile, DEST_FOLDER, "diff_");
        if (error != null) {
            Assert.Fail(error);
        }
    }
Esempio n. 60
-7
        public void PageEventTest01() {
            String fileName = "pageEventTest01.pdf";

            MemoryStream baos = new MemoryStream();
            Document doc = new Document(PageSize.LETTER, 144, 144, 144, 144);
            PdfWriter writer = PdfWriter.GetInstance(doc, baos);
            writer.PageEvent = new MyEventHandler();

            writer.SetTagged();
            doc.Open();

            Chunk c = new Chunk("This is page 1");
            doc.Add(c);

            doc.Close();

            File.WriteAllBytes(OUTPUT_FOLDER + fileName, baos.ToArray());
            baos.Close();

            // compare
            CompareTool compareTool = new CompareTool();
            String errorMessage = compareTool.CompareByContent(OUTPUT_FOLDER + fileName, TEST_RESOURCES_PATH + fileName, OUTPUT_FOLDER, "diff");
            if (errorMessage != null) {
                Assert.Fail(errorMessage);
            }
        }