public virtual void CheckPageEndEvent() { // TODO DEVSIX-2645 String outPdf = destinationFolder + "checkPageEndEvent.pdf"; String cmpPdf = sourceFolder + "cmp_checkPageEndEvent.pdf"; PdfWriter writer = new PdfWriter(outPdf); PdfADocument pdfDoc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent("Custom" , "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream(sourceFolder + "sRGB Color Space Profile.icm" , FileMode.Open, FileAccess.Read))); pdfDoc.SetTagged(); pdfDoc.GetCatalog().SetLang(new PdfString("en-US")); PdfFont freesans = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", true); pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, new PdfAPageEndEventTest.HeaderEventHandler(freesans)); Document document = new Document(pdfDoc, PageSize.A4); // TODO fix header duplication on the first page document.Add(new Paragraph("Hello World on page 1").SetFont(freesans)); document.Add(new AreaBreak()); document.Add(new Paragraph("Hello World on page 2").SetFont(freesans)); document.Add(new AreaBreak()); document.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_" )); }
public virtual void PdfA1bButtonAppearanceRegenerateTest() { String name = "pdfA1b_ButtonAppearanceRegenerateTest"; String outPath = destinationFolder + name + ".pdf"; String cmpPath = cmpFolder + "cmp_" + name + ".pdf"; String diff = "diff_" + name + "_"; PdfWriter writer = new PdfWriter(outPath); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); doc.AddNewPage(); PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); Rectangle rect = new Rectangle(36, 626, 100, 40); PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", "WinAnsi", true); PdfFormField button = PdfFormField.CreatePushButton(doc, rect, "push button", "push", font, 12, PdfAConformanceLevel .PDF_A_1B); button.RegenerateField(); form.AddField(button); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPath, cmpPath, destinationFolder, diff )); }
public virtual void PdfA1aCheckFieldOffAppearanceTest() { String name = "pdfA1a_checkFieldOffAppearance"; String outPath = destinationFolder + name + ".pdf"; String cmpPath = cmpFolder + "cmp_" + name + ".pdf"; String diff = "diff_" + name + "_"; PdfWriter writer = new PdfWriter(outPath); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); doc.AddNewPage(); PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); PdfFormField chk = PdfFormField.CreateCheckBox(doc, new Rectangle(100, 500, 50, 50), "name", "Off", PdfFormField .TYPE_CHECK, PdfAConformanceLevel.PDF_A_1A); chk.SetBorderColor(ColorConstants.BLACK); chk.SetBorderWidth(1); form.AddField(chk); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPath, cmpPath, destinationFolder, diff )); }
public virtual void ListTest01() { String outPdf = destinationFolder + "pdfA1b_listTest01.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA1b_listTest01.pdf"; Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(new PdfWriter(outPdf), PdfAConformanceLevel.PDF_A_1B, outputIntent ); Document doc = new Document(pdfDocument); pdfDocument.SetTagged(); PdfFont textfont = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", PdfEncodings.WINANSI, true); textfont.SetSubset(true); List list = new List(); ListItem listItem = new ListItem(); listItem.Add(new Paragraph().Add("foobar")); list.Add(listItem); listItem.SetFont(textfont); doc.Add(list); doc.Close(); String result = new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"); if (result != null) { NUnit.Framework.Assert.Fail(result); } }
public virtual void CheckIfOcgForPdfA2Works() { String fileName = "createdOcgPdfA.pdf"; Stream colorStream = new FileStream(sourceFolder + "color/sRGB_CS_profile.icm", FileMode.Open, FileAccess.Read ); String outFileName = destinationFolder + fileName; String cmpFileName = sourceFolder + "cmp/PdfA2LayoutOcgTest/cmp_" + fileName; PdfDocument pdfDoc = new PdfADocument(new PdfWriter(outFileName), PdfAConformanceLevel.PDF_A_2A, new PdfOutputIntent ("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", colorStream)); pdfDoc.SetTagged(); pdfDoc.GetCatalog().SetLang(new PdfString("en-US")); pdfDoc.AddNewPage(); iText.Layout.Element.Image image1 = new Image(ImageDataFactory.Create(sourceFolder + "images/manualTransparency_for_png.png" )); PdfCanvas pdfCanvas = new PdfCanvas(pdfDoc, 1); iText.Layout.Canvas canvas1 = new iText.Layout.Canvas(pdfCanvas, pdfDoc, new Rectangle(0, 0, 590, 420)); PdfLayer imageLayer1 = new PdfLayer("*[email protected]", pdfDoc); imageLayer1.SetOn(true); pdfCanvas.BeginLayer(imageLayer1); canvas1.Add(image1); pdfCanvas.EndLayer(); canvas1.Close(); pdfDoc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder , "diff01_")); }
public virtual void PdfA1aRadioFieldOffAppearanceTest() { String name = "pdfA1a_radioFieldOffAppearance"; String outPath = destinationFolder + name + ".pdf"; String cmpPath = cmpFolder + "cmp_" + name + ".pdf"; String diff = "diff_" + name + "_"; PdfWriter writer = new PdfWriter(outPath); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); doc.AddNewPage(); PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); PdfButtonFormField group = PdfFormField.CreateRadioGroup(doc, "group", "1", PdfAConformanceLevel.PDF_A_1B); group.SetReadOnly(true); Rectangle rect1 = new Rectangle(36, 700, 20, 20); Rectangle rect2 = new Rectangle(36, 680, 20, 20); PdfFormField.CreateRadioButton(doc, rect1, group, "1", PdfAConformanceLevel.PDF_A_1B).SetBorderWidth(2).SetBorderColor (ColorConstants.RED).SetBackgroundColor(ColorConstants.LIGHT_GRAY).SetVisibility(PdfFormField.VISIBLE); PdfFormField.CreateRadioButton(doc, rect2, group, "2", PdfAConformanceLevel.PDF_A_1B).SetBorderWidth(2).SetBorderColor (ColorConstants.RED).SetBackgroundColor(ColorConstants.LIGHT_GRAY).SetVisibility(PdfFormField.VISIBLE); form.AddField(group); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPath, cmpPath, destinationFolder, diff )); }
public virtual void CheckThatFlushingPreventedWhenAddingElementToDocument() { // Expected log message that page flushing was not performed String outPdf = destinationFolder + "checkThatFlushingPreventedWhenAddingElementToDocument.pdf"; PdfWriter writer = new PdfWriter(outPdf); PdfADocument pdfDoc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent("Custom" , "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream(sourceFolder + "sRGB Color Space Profile.icm" , FileMode.Open, FileAccess.Read))); pdfDoc.SetTagged(); pdfDoc.GetCatalog().SetLang(new PdfString("en-US")); PdfAPageTest.EndPageEventHandler eventHandler = new PdfAPageTest.EndPageEventHandler(); pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, eventHandler); int pageCount = 3; Document document = new Document(pdfDoc, PageSize.A4); for (int i = 1; i < pageCount; i++) { // Adding a area break causes a new page to be added and an attempt to flush the page will occur, // but flushing these pages will be prevented due to a condition added to the PdfAPage#flush method document.Add(new AreaBreak()); } // Before closing document have 3 pages, but no one call of end page event NUnit.Framework.Assert.AreEqual(pageCount, document.GetPdfDocument().GetNumberOfPages()); NUnit.Framework.Assert.AreEqual(0, eventHandler.GetCounter()); document.Close(); // During the closing event was called on each document page NUnit.Framework.Assert.AreEqual(pageCount, eventHandler.GetCounter()); NUnit.Framework.Assert.IsNull(new VeraPdfValidator().Validate(outPdf)); }
public virtual void CheckFlushingOfCheckedPage() { String outPdf = destinationFolder + "checkFlushingOfCheckedPage.pdf"; PdfWriter writer = new PdfWriter(outPdf); PdfADocument pdfDoc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent("Custom" , "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream(sourceFolder + "sRGB Color Space Profile.icm" , FileMode.Open, FileAccess.Read))); pdfDoc.SetTagged(); pdfDoc.GetCatalog().SetLang(new PdfString("en-US")); PdfAPageTest.EndPageEventHandler eventHandler = new PdfAPageTest.EndPageEventHandler(); pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, eventHandler); int pageCount = 3; for (int i = 0; i < pageCount; i++) { PdfPage page = pdfDoc.AddNewPage(); pdfDoc.checker.CheckSinglePage(page); page.Flush(false); } NUnit.Framework.Assert.AreEqual(pageCount, pdfDoc.GetNumberOfPages()); NUnit.Framework.Assert.AreEqual(pageCount, eventHandler.GetCounter()); pdfDoc.Close(); NUnit.Framework.Assert.AreEqual(pageCount, eventHandler.GetCounter()); NUnit.Framework.Assert.IsNull(new VeraPdfValidator().Validate(outPdf)); }
/// <exception cref="System.IO.IOException"/> private Document CreatePdfATaggedDocument(String outPdf) { PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfDocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, new PdfOutputIntent("Custom" , "", "http://www.color.org", "sRGB IEC61966-2.1", @is)); Document doc = new Document(pdfDocument); pdfDocument.SetTagged(); return(doc); }
private static void CreateInputPdfADocument(String docName) { PdfWriter writer = new PdfWriter(docName); PdfADocument pdfDoc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent("Custom" , "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream(sourceFolder + "sRGB Color Space Profile.icm" , FileMode.Open, FileAccess.Read))); pdfDoc.SetTagged(); pdfDoc.GetCatalog().SetLang(new PdfString("en-US")); PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage()); canvas.SaveState().BeginText().MoveText(36, 750).SetFontAndSize(PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf" , true), 16).ShowText("This page 1").EndText().RestoreState(); canvas.Release(); pdfDoc.Close(); }
public virtual void AnnotationCheckTest12() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new ByteArrayOutputStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2A, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); PdfPage page = doc.AddNewPage(); Rectangle rect = new Rectangle(100, 650, 400, 100); PdfAnnotation annot = new PdfStampAnnotation(rect); annot.SetFlags(PdfAnnotation.PRINT); page.AddAnnotation(annot); doc.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(MessageFormatUtil.Format(PdfAConformanceException.ANNOTATION_OF_TYPE_0_SHOULD_HAVE_CONTENTS_KEY, PdfName.Stamp.GetValue()))) ; }
public virtual void AnnotationCheckTest08() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new ByteArrayOutputStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1A, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); PdfPage page = doc.AddNewPage(); Rectangle rect = new Rectangle(100, 100, 100, 100); PdfAnnotation annot = new PdfStampAnnotation(rect); annot.SetFlag(PdfAnnotation.PRINT); page.AddAnnotation(annot); doc.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.AnnotationOfType1ShouldHaveContentsKey)); ; }
public virtual void AnnotationCheckTest13() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new ByteArrayOutputStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2A, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); PdfPage page = doc.AddNewPage(); Rectangle rect = new Rectangle(100, 650, 400, 100); PdfAnnotation annot = new PdfStampAnnotation(rect); annot.SetFlags(PdfAnnotation.PRINT); annot.SetContents("Hello world"); page.AddAnnotation(annot); doc.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.EVERY_ANNOTATION_SHALL_HAVE_AT_LEAST_ONE_APPEARANCE_DICTIONARY)) ; }
public virtual void AnnotationCheckTest09() { String outPdf = destinationFolder + "pdfA1a_annotationCheckTest09.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA1a_annotationCheckTest09.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_1A, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); PdfPage page = doc.AddNewPage(); Rectangle rect = new Rectangle(100, 100, 100, 100); PdfAnnotation annot = new PdfStampAnnotation(rect); annot.SetFlag(PdfAnnotation.PRINT); annot.SetContents("Hello world"); page.AddAnnotation(annot); doc.Close(); CompareResult(outPdf, cmpPdf); }