public virtual void TestFlattening() { const string INPUT_FOLDER = RESOURCES_FOLDER + "input/"; const string CMP_FOLDER = RESOURCES_FOLDER + "cmp/"; if (File.Exists(INPUT_FOLDER)) Assert.Fail("Input folder can't be found (" + INPUT_FOLDER + ")"); Directory.CreateDirectory(OUTPUT_FOLDER); String[] files = Directory.GetFiles(INPUT_FOLDER, "*.pdf"); foreach (String file in files) { // flatten fields PdfReader reader = new PdfReader(file); PdfStamper stamper = new PdfStamper(reader, new FileStream(OUTPUT_FOLDER + Path.GetFileName(file), FileMode.Create)); stamper.FormFlattening = true; stamper.Close(); // compare CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.Compare(OUTPUT_FOLDER + Path.GetFileName(file), CMP_FOLDER + Path.GetFileName(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 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 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 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); } }
public void SetUp() { testPath = this.GetType().FullName.Replace("itextsharp.xmlworker.tests.iTextSharp.", ""); testPath = testPath.Replace(".", Path.DirectorySeparatorChar.ToString()); testPath = testPath.Substring(0, testPath.LastIndexOf(Path.DirectorySeparatorChar) + 1); testName = GetTestName(); if (testName.Length > 0) { if (testName.Contains(Path.DirectorySeparatorChar.ToString())) { int startIndex = testName.LastIndexOf(Path.DirectorySeparatorChar) + 1; testName = testName.Substring(startIndex, testName.Length - startIndex); } outPath = "target" + Path.DirectorySeparatorChar + testPath + testName + Path.DirectorySeparatorChar; String inputPath = RESOURCES + Path.DirectorySeparatorChar + testPath + Path.DirectorySeparatorChar + testName + Path.DirectorySeparatorChar; differenceImagePrefix = "difference"; outPdf = outPath + testName + ".pdf"; inputHtml = inputPath + "<testName>.html".Replace("<testName>", testName); cmpPdf = inputPath + "<testName>.pdf".Replace("<testName>", testName); compareTool = new CompareTool(outPdf, cmpPdf); if (Directory.Exists(outPath)) { DeleteDirectory(outPath); } Directory.CreateDirectory(outPath); } }
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 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); } }
protected override void ComparePdf(String outPdf, String cmpPdf) { if (!DetectCrashesAndHangUpsOnly()) { CompareTool compareTool = new CompareTool(outPdf, cmpPdf); String errorMessage = compareTool.Compare(outPath, differenceImagePrefix); 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 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); }
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); }
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 virtual void EncryptAes256EncryptedStampingUpdate() { String filename = "encryptAes256EncryptedStampingUpdate.pdf"; String src = sourceFolder + "encryptedWithPlainMetadata.pdf"; String @out = destinationFolder + filename; PdfDocument pdfDoc = new PdfDocument(new PdfReader(src, new ReaderProperties().SetPassword(OWNER)), new PdfWriter (@out, new WriterProperties().SetStandardEncryption(USER, OWNER, EncryptionConstants.ALLOW_PRINTING, EncryptionConstants .STANDARD_ENCRYPTION_40)), new StampingProperties()); pdfDoc.Close(); CompareTool compareTool = new CompareTool().EnableEncryptionCompare(); String compareResult = compareTool.CompareByContent(@out, sourceFolder + "cmp_" + filename, destinationFolder , "diff_", USER, USER); if (compareResult != null) { NUnit.Framework.Assert.Fail(compareResult); } }
private void CompareResult(String testName) { String outFileName = testName + ".pdf"; String cmpFileName = "cmp_" + outFileName; CompareTool compareTool = new CompareTool(); String outPdf = destinationFolder + outFileName; String cmpPdf = sourceFolder + cmpFileName; String contentDifferences = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, testName + "Diff_" ); String taggedStructureDifferences = compareTool.CompareTagStructures(outPdf, cmpPdf); String errorMessage = ""; errorMessage += taggedStructureDifferences == null ? "" : taggedStructureDifferences + "\n"; errorMessage += contentDifferences == null ? "" : contentDifferences; if (!String.IsNullOrEmpty(errorMessage)) { NUnit.Framework.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 virtual void EncryptWithPasswordAes128NoMetadataCompression() { String srcFilename = "srcEncryptWithPasswordAes128NoMetadataCompression.pdf"; PdfReader reader = new PdfReader(sourceFolder + srcFilename, new ReaderProperties()); WriterProperties props = new WriterProperties().SetStandardEncryption("superuser".GetBytes(), "superowner" .GetBytes(), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128 | EncryptionConstants .DO_NOT_ENCRYPT_METADATA); String outFilename = "encryptWithPasswordAes128NoMetadataCompression.pdf"; PdfWriter writer = new PdfWriter(destinationFolder + outFilename, props); PdfDocument pdfDoc = new PdfDocument(reader, writer); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); compareTool.EnableEncryptionCompare(); compareTool.GetOutReaderProperties().SetPassword("superowner".GetBytes()); compareTool.GetCmpReaderProperties().SetPassword("superowner".GetBytes()); String outPdf = destinationFolder + outFilename; String cmpPdf = sourceFolder + "cmp_" + outFilename; NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_")); }
public virtual void MergeDocumentOutlinesWithNullDestinationTest01() { String resultFile = destinationFolder + "mergeDocumentOutlinesWithNullDestinationTest01.pdf"; String filename = sourceFolder + "null_dest_outline.pdf"; PdfDocument sourceDocument = new PdfDocument(new PdfReader(filename)); PdfMerger resultDocument = new PdfMerger(new PdfDocument(new PdfWriter(resultFile))); resultDocument.Merge(sourceDocument, 1, 1); resultDocument.Close(); sourceDocument.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(resultFile, sourceFolder + "cmp_mergeDocumentOutlinesWithNullDestinationTest01.pdf" , destinationFolder, "diff_"); if (errorMessage != null) { NUnit.Framework.Assert.Fail(errorMessage); } }
public virtual void CheckBoxToggleTest02() { String srcPdf = sourceFolder + "checkBoxToggledOn.pdf"; String outPdf = destinationFolder + "checkBoxToggleTest02.pdf"; String cmpPdf = sourceFolder + "cmp_checkBoxToggleTest02.pdf"; PdfDocument pdfDoc = new PdfDocument(new PdfReader(srcPdf), new PdfWriter(outPdf)); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); PdfFormField checkBox = form.GetField("cb_fs_6_7_7"); checkBox.SetValue("Off", false); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"); if (errorMessage != null) { NUnit.Framework.Assert.Fail(errorMessage); } }
public void TestPdf() { var assembly = Assembly.GetExecutingAssembly(); var assemblyDirectory = Path.GetDirectoryName(assembly.Location); var input = Path.Combine(assemblyDirectory, @"samples\fakeidcard.bmp"); var output = Path.Combine(assemblyDirectory, @"samples\fakeidcard.pdf"); using (var reader1 = new PdfReader(output)) using (var stream = Tesseract.ImageToPdf(input, languages: new[] { Language.English, Language.French })) using (var reader2 = new PdfReader(stream)) { var pdf1 = new PdfDocument(reader1); var pdf2 = new PdfDocument(reader2); var compareTool = new CompareTool(); var result = compareTool.CompareByCatalog(pdf1, pdf2); Assert.IsTrue(result.IsOk()); } }
public virtual void FormFieldTest02() { String filename = destinationFolder + "formFieldTest02.pdf"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(filename)); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); Rectangle rect = new Rectangle(210, 490, 150, 22); PdfTextFormField field = PdfFormField.CreateText(pdfDoc, rect, "fieldName", "some value"); form.AddField(field); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_formFieldTest02.pdf", destinationFolder , "diff_"); if (errorMessage != null) { NUnit.Framework.Assert.Fail(errorMessage); } }
public virtual void RemoveOcgLayer() { PdfReader reader = new PdfReader(INPUT); OCGRemover ocgRemover = new OCGRemover(); ocgRemover.RemoveLayers(reader, "ecc.pricebutton"); Directory.CreateDirectory(OUTPUT_DIR); PdfStamper stamper = new PdfStamper(reader, new FileStream(OUTPUT, FileMode.Create)); stamper.Close(); reader.Close(); CompareTool cmpTool = new CompareTool(); String errorMessage = cmpTool.CompareByContent(OUTPUT, CMP, OUTPUT_DIR, "diff"); if (errorMessage != null) { Assert.Fail(errorMessage); } }
public void SetPageContentTest02() { String outPdf = DestFolder + "out2.pdf"; PdfReader reader = new PdfReader(TestResourceUtils.GetResourceAsStream(TestResourcesPath, "in.pdf")); PdfStamper stamper = new PdfStamper(reader, new FileStream(outPdf, FileMode.Create)); int total = reader.NumberOfPages + 1; for (int i = 1; i < total; i++) { byte[] bb = reader.GetPageContent(i); reader.SetPageContent(i, bb); } reader.RemoveUnusedObjects(); stamper.Close(); String s = new CompareTool().CompareByContent(outPdf, TestResourceUtils.GetResourceAsTempFile(TestResourcesPath, "cmp_out2.pdf"), DestFolder, "diff_"); Assert.Null(s); }
public virtual void MergeDocumentTest04() { String filename = sourceFolder + "pdf_open_parameters.pdf"; String filename1 = sourceFolder + "iphone_user_guide.pdf"; String resultFile = destinationFolder + "mergedResult04.pdf"; PdfReader reader = new PdfReader(new FileStream(filename, FileMode.Open, FileAccess.Read)); PdfReader reader1 = new PdfReader(new FileStream(filename1, FileMode.Open, FileAccess.Read)); 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(); PdfMerger merger = new PdfMerger(pdfDoc3).SetCloseSourceDocuments(true); IList <int> pages = new List <int>(); pages.Add(3); pages.Add(2); pages.Add(1); merger.Merge(pdfDoc, pages); IList <int> pages1 = new List <int>(); pages1.Add(5); pages1.Add(9); pages1.Add(4); pages1.Add(3); merger.Merge(pdfDoc1, pages1); merger.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = ""; String contentErrorMessage = compareTool.CompareByContent(resultFile, sourceFolder + "cmp_mergedResult04.pdf" , destinationFolder, "diff_"); String tagStructErrorMessage = compareTool.CompareTagStructures(resultFile, sourceFolder + "cmp_mergedResult04.pdf" ); errorMessage += tagStructErrorMessage == null ? "" : tagStructErrorMessage + "\n"; errorMessage += contentErrorMessage == null ? "" : contentErrorMessage; if (!String.IsNullOrEmpty(errorMessage)) { NUnit.Framework.Assert.Fail(errorMessage); } }
public virtual void AutoScaleFontSizeInFormFields() { String outPdf = destinationFolder + "autoScaleFontSizeInFormFields.pdf"; String cmpPdf = sourceFolder + "cmp_autoScaleFontSizeInFormFields.pdf"; PdfWriter writer = new PdfWriter(outPdf); PdfDocument pdfDoc = new PdfDocument(writer); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); PdfFormField field = PdfFormField.CreateText(pdfDoc, new Rectangle(36, 786, 80, 20), "name", "TestValueAndALittleMore" ); form.AddField(field.SetFontSizeAutoScale()); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"); if (errorMessage != null) { NUnit.Framework.Assert.Fail(errorMessage); } }
/// <exception cref="System.IO.IOException"/> /// <exception cref="System.Exception"/> public virtual void CheckDocumentAppending(String filename, byte[] password) { String srcFileName = destinationFolder + filename; String outFileName = destinationFolder + "appended_" + filename; PdfReader reader = new PdfReader(srcFileName, new ReaderProperties().SetPassword(password)); PdfDocument document = new PdfDocument(reader, new PdfWriter(outFileName), new StampingProperties().UseAppendMode ()); PdfPage newPage = document.AddNewPage(); newPage.Put(PdfName.Default, new PdfString("Hello world string")); document.Close(); CompareTool compareTool = new CompareTool().EnableEncryptionCompare(); String compareResult = compareTool.CompareByContent(outFileName, sourceFolder + "cmp_appended_" + filename , destinationFolder, "diff_", USER, USER); if (compareResult != null) { NUnit.Framework.Assert.Fail(compareResult); } }
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); } } }
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 TaggedPdfReaderToolTest01() { String filename = "iphone_user_guide.pdf"; String outXmlPath = destinationFolder + "outXml01.xml"; String cmpXmlPath = sourceFolder + "cmpXml01.xml"; PdfReader reader = new PdfReader(sourceFolder + filename); PdfDocument document = new PdfDocument(reader); FileStream outXml = new FileStream(outXmlPath, FileMode.Create); TaggedPdfReaderTool tool = new TaggedPdfReaderTool(document); tool.SetRootTag("root"); tool.ConvertToXml(outXml); outXml.Dispose(); document.Close(); CompareTool compareTool = new CompareTool(); if (!compareTool.CompareXmls(outXmlPath, cmpXmlPath)) { NUnit.Framework.Assert.Fail("Resultant xml is different."); } }
public virtual void MultiSelectByValueRemoveIKeyTest() { String srcPdf = sourceFolder + "listWithPreselectedValue.pdf"; String outPdf = destinationFolder + "selectByValueRemoveIKeyTest.pdf"; String cmpPdf = sourceFolder + "cmp_selectByValueRemoveIKeyTest.pdf"; String value = "zwei"; PdfDocument document = new PdfDocument(new PdfReader(srcPdf), new PdfWriter(outPdf)); document.AddNewPage(); PdfAcroForm form = PdfAcroForm.GetAcroForm(document, true); PdfFormField field = form.GetField("choice"); field.SetValue(value); NUnit.Framework.Assert.IsNull(field.GetPdfObject().Get(PdfName.I)); CompareTool compareTool = new CompareTool(); NUnit.Framework.Assert.IsTrue(compareTool.CompareStrings(new PdfString(value), field.GetPdfObject().GetAsString (PdfName.V))); document.Close(); NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder)); }
public virtual void Meta02Test() { // In this test we also check that it's not possible to override description name content // (which iText converts to pdf's Subject content) with Subject name content HtmlConverter.ConvertToPdf(new FileInfo(sourceFolder + "metaTest02.html"), new FileInfo(destinationFolder + "metaTest02.pdf")); PdfDocumentInfo pdfDocInfo = new PdfDocument(new PdfReader(destinationFolder + "metaTest02.pdf")).GetDocumentInfo (); CompareTool compareTool = new CompareTool(); NUnit.Framework.Assert.IsNull(compareTool.CompareDocumentInfo(destinationFolder + "metaTest02.pdf", sourceFolder + "cmp_metaTest02.pdf")); NUnit.Framework.Assert.IsNull(compareTool.CompareByContent(destinationFolder + "metaTest02.pdf", sourceFolder + "cmp_metaTest02.pdf", destinationFolder, "diff02_")); NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetAuthor(), "Bruno Lowagie"); NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetKeywords(), "metadata, keywords, test"); NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetSubject(), "This is the description of the page"); NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetMoreInfo("generator"), "Eugenerator Onegenerator"); NUnit.Framework.Assert.AreEqual(pdfDocInfo.GetMoreInfo("subject"), "Trying to break iText and write pdf's Subject with subject instead of description name" ); }
// basically this is comparing content of decrypted by itext document with content of encrypted document /// <exception cref="System.IO.IOException"/> /// <exception cref="System.Exception"/> /// <exception cref="Org.BouncyCastle.Security.GeneralSecurityException"/> public virtual void CheckEncryptedWithCertificateDocumentStamping(String filename, X509Certificate certificate ) { String srcFileName = destinationFolder + filename; String outFileName = destinationFolder + "stamped_" + filename; PdfReader reader = new PdfReader(srcFileName, new ReaderProperties().SetPublicKeySecurityParams(certificate , GetPrivateKey())); PdfDocument document = new PdfDocument(reader, new PdfWriter(outFileName)); document.Close(); CompareTool compareTool = new CompareTool(); compareTool.GetCmpReaderProperties().SetPublicKeySecurityParams(certificate, GetPrivateKey()); String compareResult = compareTool.CompareByContent(outFileName, sourceFolder + "cmp_" + filename, destinationFolder , "diff_"); if (compareResult != null) { NUnit.Framework.Assert.Fail(compareResult); } }
public virtual void FillFormTwiceWithoutResources() { String outPdf = destinationFolder + "fillFormWithoutResources.pdf"; String cmpPdf = sourceFolder + "cmp_fillFormWithoutResources.pdf"; PdfWriter writer = new PdfWriter(outPdf); PdfReader reader = new PdfReader(sourceFolder + "formWithoutResources.pdf"); PdfDocument pdfDoc = new PdfDocument(reader, writer); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); IDictionary <String, PdfFormField> fields = form.GetFormFields(); PdfFormField field = fields.Get("Text1"); field.SetValue("New value size must be 8").SetFontSize(8); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"); if (errorMessage != null) { NUnit.Framework.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 TestFreeTextRecangleBBoxInteraction() { String file = "freeTextRectangleBBoxInteraction.pdf"; PdfReader pdfReader = new PdfReader(RESOURCES_FOLDER + file); PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(OUTPUT_FOLDER + file, FileMode.Create)); pdfStamper.FormFlattening = true; pdfStamper.FreeTextFlattening = 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 MultilineTextFieldWithAlignmentTest() { String outPdf = destinationFolder + "multilineTextFieldWithAlignment.pdf"; String cmpPdf = sourceFolder + "cmp_multilineTextFieldWithAlignment.pdf"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outPdf)); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); Rectangle rect = new Rectangle(210, 600, 150, 100); PdfTextFormField field = PdfFormField.CreateMultilineText(pdfDoc, rect, "fieldName", "some value\nsecond line\nthird" ); field.SetJustification(PdfTextFormField.ALIGN_RIGHT); form.AddField(field); 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 FlushedPagesTest() { String filename = destinationFolder + "flushedPagesTest.pdf"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(filename)); pdfDoc.AddNewPage().Flush(); pdfDoc.AddNewPage().Flush(); pdfDoc.AddNewPage(); PdfTextFormField field = PdfFormField.CreateText(pdfDoc, new Rectangle(100, 100, 300, 20), "name", ""); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); form.AddField(field); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_flushedPagesTest.pdf", destinationFolder , "diff_"); if (errorMessage != null) { NUnit.Framework.Assert.Fail(errorMessage); } }
public virtual void FormFieldTest04() { String filename = destinationFolder + "formFieldTest04.pdf"; PdfDocument pdfDoc = new PdfDocument(new PdfReader(sourceFolder + "formFieldFile.pdf"), new PdfWriter(filename )); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); PdfPage page = pdfDoc.GetFirstPage(); Rectangle rect = new Rectangle(210, 490, 150, 22); PdfTextFormField field = PdfFormField.CreateText(pdfDoc, rect, "TestField", "some value in courier font", PdfFontFactory.CreateFont(StandardFonts.COURIER), 10); form.AddField(field, page); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_formFieldTest04.pdf", destinationFolder , "diff_"); if (errorMessage != null) { NUnit.Framework.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 virtual void ActionCheck15() { String outPdf = destinationFolder + "pdfA2b_actionCheck15.pdf"; String cmpPdf = sourceFolder + "cmp/PdfA2ActionCheckTest/cmp_pdfA2b_actionCheck15.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); doc.GetOutlines(true); PdfOutline @out = doc.GetOutlines(false); @out.AddOutline("New").AddAction(PdfAction.CreateGoTo("TestDest")); doc.AddNewPage(); doc.Close(); String result = new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"); if (result != null) { NUnit.Framework.Assert.Fail(result); } }
public virtual void FormFieldTest03() { PdfReader reader = new PdfReader(sourceFolder + "formFieldFile.pdf"); String filename = destinationFolder + "formFieldTest03.pdf"; PdfWriter writer = new PdfWriter(new FileStream(filename, FileMode.Create)); PdfDocument pdfDoc = new PdfDocument(reader, writer); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true); PdfPage page = pdfDoc.GetFirstPage(); Rectangle rect = new Rectangle(210, 490, 150, 22); PdfTextFormField field = PdfFormField.CreateText(pdfDoc, rect, "TestField", "some value"); form.AddField(field, page); pdfDoc.Close(); CompareTool compareTool = new CompareTool(); String errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_formFieldTest03.pdf", destinationFolder , "diff_"); if (errorMessage != null) { NUnit.Framework.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 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); } }
public virtual void LabSpotBasedGradient() { // step 1 Document document = new Document(PageSize.A3); // step 2 String dest_file = DEST_FOLDER + "/lab_spot_based_gradient.pdf"; PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(dest_file, FileMode.Create)); // step 3 document.Open(); // step 4 PdfContentByte canvas = writer.DirectContent; PdfLabColor pdfLabColor = new PdfLabColor(new float[] {0.9505f, 1.0f, 1.0890f}, new float[] {0f, 0.5f, 1.5f}, new float[] {-10, 100, -10, 100}); PdfDeviceNColor pdfDeviceNNChannelColor = new PdfDeviceNColor(new PdfSpotColor[] { new PdfSpotColor("lab3", pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83))), new PdfSpotColor("labBlue", pdfLabColor.Rgb2lab(new BaseColor(0, 0, 255))) }); PdfSpotColor psc_lab3 = new PdfSpotColor("lab3", pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83))); PdfSpotColor psc_lab2 = new PdfSpotColor("lab2", pdfLabColor.Rgb2lab(new BaseColor(70, 138, 96))); PdfSpotColor psc_lab1 = new PdfSpotColor("lab1", pdfLabColor.Rgb2lab(new BaseColor(255, 0, 0))); PdfSpotColor psc_lab_blue = new PdfSpotColor("labBlue", new BaseColor(0, 0, 100)); PdfDeviceNColor pdfDeviceNNChannelColor2 = new PdfDeviceNColor(new PdfSpotColor[]{psc_lab_blue, psc_lab2, psc_lab1}); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(0, 0, 255)), 36, 878, 36, 36); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(70, 138, 96)), 90, 878, 36, 36); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83)), 144, 878, 36, 36); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(0, 50, 50)), 198, 878, 36, 36); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(0, 0, 255)).ToRgb(), 36, 824, 36, 36); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(70, 138, 96)).ToRgb(), 90, 824, 36, 36); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83)).ToRgb(), 144, 824, 36, 36); ColorRectangle(canvas, pdfLabColor.Rgb2lab(new BaseColor(0, 50, 50)).ToRgb(), 198, 824, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab1", pdfLabColor.Rgb2lab(new BaseColor(255, 0, 0))), 1f), 36, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab1", pdfLabColor.Rgb2lab(new BaseColor(255, 0, 0))), 0.8f), 90, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab1", pdfLabColor.Rgb2lab(new BaseColor(255, 0, 0))), 0.6f), 144, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab1", pdfLabColor.Rgb2lab(new BaseColor(255, 0, 0))), 0.2f), 198, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab2", pdfLabColor.Rgb2lab(new BaseColor(70, 138, 96))), 1f), 252, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab2", pdfLabColor.Rgb2lab(new BaseColor(70, 138, 96))), 0.8f), 306, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab2", pdfLabColor.Rgb2lab(new BaseColor(70, 138, 96))), 0.6f), 360, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab2", pdfLabColor.Rgb2lab(new BaseColor(70, 138, 96))), 0.2f), 416, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab3", pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83))), 1.0f), 470, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab3", pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83))), 0.8f), 524, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab3", pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83))), 0.6f), 578, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("lab3", pdfLabColor.Rgb2lab(new BaseColor(0, 217, 83))), 0.2f), 634, 986, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb1", new BaseColor(255, 0, 0)), 1f), 36, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb1", new BaseColor(255, 0, 0)), 0.8f), 90, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb1", new BaseColor(255, 0, 0)), 0.6f), 144, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb1", new BaseColor(255, 0, 0)), 0.2f), 198, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb2", new BaseColor(70, 138, 96)), 1f), 252, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb2", new BaseColor(70, 138, 96)), 0.8f), 306, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb2", new BaseColor(70, 138, 96)), 0.6f), 360, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb2", new BaseColor(70, 138, 96)), 0.2f), 416, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb3", new BaseColor(0, 217, 83)), 1.0f), 470, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb3", new BaseColor(0, 217, 83)), 0.8f), 524, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb3", new BaseColor(0, 217, 83)), 0.6f), 578, 932, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("rgb3", new BaseColor(0, 217, 83)), 0.2f), 634, 932, 36, 36); ColorRectangle(canvas, new DeviceNColor(new PdfDeviceNColor(new PdfSpotColor[]{psc_lab2, psc_lab_blue, psc_lab1}), new float[]{0, 0.0f, 1}), 36, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{0.1f, 0.1f}), 90, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{0.2f, 0.2f}), 144, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{0.3f, 0.3f}), 198, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{0.4f, 0.4f}), 252, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(new PdfDeviceNColor(new PdfSpotColor[]{psc_lab2, psc_lab_blue, psc_lab1, psc_lab3}), new float[]{0.5f, 0.5f, 1, 0.5f}), 306, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor2, new float[]{0.6f, 0.1f, 0.5f}), 360, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{0.7f, 0.7f}), 416, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{0.8f, 0.8f}), 470, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(new PdfDeviceNColor(new PdfSpotColor[]{psc_lab2, psc_lab_blue, psc_lab1}), new float[]{0.9f, 0.9f, 1}), 524, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{1, 1}), 578, 770, 36, 36); canvas.SaveState(); canvas.Rectangle(418, 412, -329, 189); canvas.Clip(); canvas.NewPath(); canvas.SaveState(); canvas.ConcatCTM(329f, 0f, 0f, -329f, 89f, 506.5f); canvas.PaintShading(PdfShading.SimpleAxial(writer, 0, 0, 1, 0, new DeviceNColor(pdfDeviceNNChannelColor, new float[]{1, 0}), new DeviceNColor(pdfDeviceNNChannelColor, new float[]{ 0, 1}))); canvas.RestoreState(); canvas.RestoreState(); canvas.SetColorStroke(new DeviceNColor(pdfDeviceNNChannelColor, new float[]{1, 1})); canvas.Rectangle(418, 412, -329, 189); canvas.Stroke(); // step 5 document.Close(); CompareTool compareTool = new CompareTool(); String error = compareTool.Compare(dest_file, TEST_RESOURCES_PATH + "cmp_lab_spot_based_gradient.pdf", DEST_FOLDER, "diff"); if (error != null) { Assert.Fail(error); } }
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 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); } }
static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Invalid number of arguments."); Console.WriteLine("Usage: html2Pdf.exe [input html_file/directory] [default css file]"); return; } List<FileStream> fileList = new List<FileStream>(); if (File.Exists(args[0])) { fileList.Add(new FileStream(args[0], FileMode.Open)); } else if (Directory.Exists(args[0])) { CollectHtmlFiles(fileList, args[0]); } if (fileList.Count == 0) { Console.WriteLine("Invalid html_file/directory"); Console.WriteLine("Usage: html2Pdf.exe [input html_file/directory] [default css file]"); return; } foreach (FileStream fileStream in fileList) { Document doc = new Document(PageSize.LETTER); doc.SetMargins(doc.LeftMargin, doc.RightMargin, 35, 0); String path = Path.GetDirectoryName(Path.GetFullPath(fileStream.Name)) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(fileStream.Name) + ".pdf"; PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream(path, FileMode.Create)); doc.Open(); Dictionary<String, String> substFonts = new Dictionary<String, String>(); substFonts["Arial Unicode MS"] = "Helvetica"; CssFilesImpl cssFiles = new CssFilesImpl(); cssFiles.Add(XMLWorkerHelper.GetCSS(new FileStream(args[1], FileMode.Open))); StyleAttrCSSResolver cssResolver = new StyleAttrCSSResolver(cssFiles); HtmlPipelineContext hpc = new HtmlPipelineContext(new CssAppliersImpl(new UnembedFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS, substFonts))); hpc.SetImageProvider(new ImageProvider(args[0])); hpc.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(Tags.GetHtmlTagProcessorFactory()); HtmlPipeline htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(doc, pdfWriter)); IPipeline pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); XMLWorker worker = new XMLWorker(pipeline, true); XMLParser xmlParse = new XMLParser(true, worker, null); xmlParse.Parse(fileStream); doc.Close(); String cmpPath = Path.GetDirectoryName(Path.GetFullPath(fileStream.Name)) + Path.DirectorySeparatorChar + "cmp_" + Path.GetFileNameWithoutExtension(fileStream.Name) + ".pdf"; if (File.Exists(cmpPath)) { CompareTool ct = new CompareTool(path, cmpPath); String outImage = "<testName>-%03d.png".Replace("<testName>", Path.GetFileNameWithoutExtension(fileStream.Name) ); String cmpImage = "cmp_<testName>-%03d.png".Replace("<testName>", Path.GetFileNameWithoutExtension(fileStream.Name) ); String diffPath = Path.GetDirectoryName(Path.GetFullPath(fileStream.Name)) + Path.DirectorySeparatorChar + "diff_" + Path.GetFileNameWithoutExtension(fileStream.Name); String errorMessage = ct.Compare(Path.GetDirectoryName(Path.GetFullPath(fileStream.Name)) + Path.DirectorySeparatorChar + "compare" + Path.DirectorySeparatorChar, diffPath); if (errorMessage != null) { Console.WriteLine(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 DeviceNSpotBasedGradient() { // step 1 Document document = new Document(PageSize.A3); // step 2 String dest_file = DEST_FOLDER + "/device_n_gradient_base.pdf"; PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(dest_file, FileMode.Create)); // step 3 document.Open(); // step 4 PdfContentByte canvas = writer.DirectContent; PdfSpotColor psc_gray = new PdfSpotColor("iTextGray", new GrayColor(0f)); PdfSpotColor psc_cmyk_yell = new PdfSpotColor("iTextYellow", new CMYKColor(0f, 0f, 1f, 0f)); PdfSpotColor psc_cmyk_magen = new PdfSpotColor("iTextMagenta", new CMYKColor(0f, 1f, 0f, 0f)); PdfSpotColor psc_rgb_blue = new PdfSpotColor("iTextBlue", new BaseColor(0, 0, 255)); PdfDeviceNColor pdfDeviceNNChannelColor = new PdfDeviceNColor(new PdfSpotColor[] {psc_cmyk_yell, psc_cmyk_magen, psc_rgb_blue}); PdfDeviceNColor pdfDeviceNNChannelColor2 = new PdfDeviceNColor(new PdfSpotColor[] {psc_cmyk_magen, psc_cmyk_yell, psc_rgb_blue}); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("iTextGray", new GrayColor(0f)), 0.8f), 36, 824, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("iTextYellow", new CMYKColor(0f, 0f, 1f, 0f)), 0.8f), 90, 824, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("iTextMagenta", new CMYKColor(0f, 1f, 0f, 0f)), 0.4f), 144, 824, 36, 36); ColorRectangle(canvas, new SpotColor(new PdfSpotColor("iTextBlue", new BaseColor(0, 0, 255)), 0.7f), 198, 824, 36, 36); ColorRectangle(canvas, new DeviceNColor(new PdfDeviceNColor(new PdfSpotColor[] {psc_cmyk_yell, psc_cmyk_magen, psc_rgb_blue}), new float[] {0, 0.0f, 1}), 36, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {0.1f, 0.1f, 1}), 90, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {0.2f, 0.2f, 1}), 144, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {0.3f, 0.3f, 1}), 198, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {0.4f, 0.4f, 1}), 252, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(new PdfDeviceNColor(new PdfSpotColor[] {psc_cmyk_yell, psc_cmyk_magen, psc_rgb_blue, psc_gray}), new float[] {0.5f, 0.5f, 1, 0.5f}), 306, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor2, new float[] {0.6f, 0.1f, 1}), 360, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {0.7f, 0.7f, 1}), 416, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {0.8f, 0.8f, 1}), 470, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(new PdfDeviceNColor(new PdfSpotColor[] {psc_cmyk_yell, psc_cmyk_magen, psc_rgb_blue}), new float[] {0.9f, 0.9f, 1}), 524, 770, 36, 36); ColorRectangle(canvas, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {1, 1, 1}), 578, 770, 36, 36); PdfDeviceNColor pdfDeviceNColor = new PdfDeviceNColor(new PdfSpotColor[] {psc_cmyk_yell, psc_cmyk_magen, psc_rgb_blue}); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0, 0, 1})); canvas.Rectangle(36, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.1f, 0.1f, 1})); canvas.Rectangle(90, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.2f, 0.2f, 1})); canvas.Rectangle(144, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.3f, 0.3f, 1})); canvas.Rectangle(198, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.4f, 0.4f, 1})); canvas.Rectangle(252, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.5f, 0.5f, 1})); canvas.Rectangle(306, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.6f, 0.1f, 1})); canvas.Rectangle(360, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.7f, 0.7f, 1})); canvas.Rectangle(416, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.8f, 0.8f, 1})); canvas.Rectangle(470, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {0.9f, 0.9f, 1})); canvas.Rectangle(524, 716, 36, 36); canvas.FillStroke(); canvas.SetColorFill(new DeviceNColor(pdfDeviceNColor, new float[] {1, 1, 1})); canvas.Rectangle(578, 716, 36, 36); canvas.FillStroke(); canvas.SaveState(); canvas.Rectangle(418, 412, -329, 189); canvas.Clip(); canvas.NewPath(); canvas.SaveState(); canvas.ConcatCTM(329f, 0f, 0f, -329f, 89f, 506.5f); canvas.PaintShading(PdfShading.SimpleAxial(writer, 0, 0, 1, 0, new DeviceNColor(pdfDeviceNNChannelColor, new float[] {1, 1, 0}), new DeviceNColor(pdfDeviceNNChannelColor, new float[] {0, 0, 1}))); canvas.RestoreState(); canvas.RestoreState(); canvas.SetColorStroke(new DeviceNColor(pdfDeviceNNChannelColor, new float[] {1, 1, 1})); canvas.Rectangle(418, 412, -329, 189); canvas.Stroke(); // step 5 document.Close(); CompareTool compareTool = new CompareTool(); String error = compareTool.Compare(dest_file, TEST_RESOURCES_PATH + "cmp_device_n_gradient_base.pdf", DEST_FOLDER, "diff_"); if (error != null) { Assert.Fail(error); } }
public virtual void DeviceNCmykRedRgbBlueGradient() { Document document = new Document(); // step 2 String dest_file = DEST_FOLDER + "/device_n_gradient_CmykRedRgbBlue.pdf"; PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(dest_file, FileMode.Create)); // step 3 document.Open(); // step 4 PdfContentByte canvas = writer.DirectContent; PdfSpotColor psc_red = new PdfSpotColor("Spot Red", new CMYKColor(0f, 1f, 1f, 0f)); PdfSpotColor psc_blue = new PdfSpotColor("Spot Blue", new BaseColor(0, 0, 255)); PdfDeviceNColor deviceNColor = new PdfDeviceNColor(new PdfSpotColor[] {psc_red, psc_blue}); canvas.SaveState(); canvas.Rectangle(418, 412, -329, 189); canvas.Clip(); canvas.NewPath(); canvas.SaveState(); canvas.ConcatCTM(329f, 0f, 0f, -329f, 89f, 506.5f); canvas.PaintShading(PdfShading.SimpleAxial(writer, 0, 0, 1, 0, new DeviceNColor(deviceNColor, new float[] {1, 0}), new DeviceNColor(deviceNColor, new float[] {0, 1}))); canvas.RestoreState(); canvas.RestoreState(); canvas.SetCMYKColorStroke(0, 0, 0, 0xFF); canvas.Rectangle(418, 412, -329, 189); canvas.Stroke(); document.Close(); CompareTool compareTool = new CompareTool(); String error = compareTool.Compare(dest_file, TEST_RESOURCES_PATH + "cmp_device_n_gradient_CmykRedRgbBlue.pdf", DEST_FOLDER, "diff_"); if (error != null) { Assert.Fail(error); } }
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 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 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); } }
private void Compare(String outPdf, String cmpPdf) { CompareTool ct = new CompareTool(outPdf, cmpPdf); Assert.IsNull(ct.Compare(OUT_FOLDER, "difference")); String outXml = Path.GetFileNameWithoutExtension(outPdf); String cmpXml = Path.GetFileNameWithoutExtension(cmpPdf); outXml = OUT_FOLDER + outXml.Replace(".pdf", "") + ".xml"; cmpXml = OUT_FOLDER + "cmp_" + cmpXml.Replace("cmp_", "").Replace(".pdf", "") + ".xml"; PdfReader reader = new PdfReader(outPdf); new MyTaggedPdfReaderTool().ConvertToXml(reader, new FileStream(outXml, FileMode.Create)); reader.Close(); reader = new PdfReader(outPdf); new MyTaggedPdfReaderTool().ConvertToXml(reader, new FileStream(cmpXml, FileMode.Create)); reader.Close(); XmlDiff xmldiff = new XmlDiff(XmlDiffOptions.None); Assert.True(xmldiff.Compare(cmpXml, outXml, false)); }
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); } }