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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
/// <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); }
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); } }
/// <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); } }
/// <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); }
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); } }
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); } }
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); } }
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); } } }
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); } }
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); } }
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); } }
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); } }
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); } }
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)); }
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); } }
/// <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); } }
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); }
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); }
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); }
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); } } }
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); } }
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); } }
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); } }
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); } }
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); }
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); } }
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); } }
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); } }
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); } }
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 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); } }
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); } }
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); } }