Exemple #1
0
        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
                                                                             ));
        }
Exemple #4
0
        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_"));
        }
Exemple #6
0
        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())))
     ;
 }
Exemple #12
0
 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);
        }