public virtual void NestedXObjectWithTransparencyTest()
 {
     NUnit.Framework.Assert.That(() => {
         PdfWriter writer        = new PdfWriter(new MemoryStream());
         PdfDocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_3B, null);
         PdfFormXObject form1    = new PdfFormXObject(new Rectangle(0, 0, 50, 50));
         PdfCanvas canvas1       = new PdfCanvas(form1, pdfDocument);
         canvas1.SaveState();
         PdfExtGState state = new PdfExtGState();
         state.SetFillOpacity(0.6f);
         canvas1.SetExtGState(state);
         canvas1.Circle(25, 25, 10);
         canvas1.Fill();
         canvas1.RestoreState();
         canvas1.Release();
         form1.Flush();
         //Create form XObject and flush to document.
         PdfFormXObject form = new PdfFormXObject(new Rectangle(0, 0, 50, 50));
         PdfCanvas canvas    = new PdfCanvas(form, pdfDocument);
         canvas.Rectangle(10, 10, 30, 30);
         canvas.Stroke();
         canvas.AddXObject(form1, 0, 0);
         canvas.Release();
         form.Flush();
         //Create page1 and add forms to the page.
         PdfPage page1 = pdfDocument.AddNewPage();
         canvas        = new PdfCanvas(page1);
         canvas.AddXObject(form, 0, 0);
         canvas.Release();
         pdfDocument.Close();
     }
                                 , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(MessageFormatUtil.Format(PdfAConformanceException.THE_DOCUMENT_DOES_NOT_CONTAIN_A_PDFA_OUTPUTINTENT_BUT_PAGE_CONTAINS_TRANSPARENCY_AND_DOES_NOT_CONTAIN_BLENDING_COLOR_SPACE)))
     ;
 }
        private PdfFormXObject CreateFormXObject(PdfDocument pdfDocument)
        {
            ImageData      image    = ImageDataFactory.Create(sourceFolder + "itis.jpg");
            PdfFormXObject template = new PdfFormXObject(new Rectangle(image.GetWidth(), image.GetHeight()));
            PdfCanvas      canvas   = new PdfCanvas(template, pdfDocument);

            canvas.AddImage(image, 0, 0, image.GetWidth(), false).Flush();
            canvas.Release();
            template.Flush();
            return(template);
        }
Esempio n. 3
0
        public virtual void CreateDocumentWithForms()
        {
            String      destinationDocument = destinationFolder + "documentWithForms1.pdf";
            FileStream  fos      = new FileStream(destinationDocument, FileMode.Create);
            PdfWriter   writer   = new PdfWriter(fos);
            PdfDocument document = new PdfDocument(writer);
            //Create form XObject and flush to document.
            PdfFormXObject form   = new PdfFormXObject(new Rectangle(0, 0, 50, 50));
            PdfCanvas      canvas = new PdfCanvas(form, document);

            canvas.Rectangle(10, 10, 30, 30);
            canvas.Fill();
            canvas.Release();
            form.Flush();
            //Create page1 and add forms to the page.
            PdfPage page1 = document.AddNewPage();

            canvas = new PdfCanvas(page1);
            canvas.AddXObject(form, 0, 0).AddXObject(form, 50, 0).AddXObject(form, 0, 50).AddXObject(form, 50, 50);
            canvas.Release();
            //Create form from the page1 and flush it.
            form = new PdfFormXObject(page1);
            form.Flush();
            //Now page1 can be flushed. It's not needed anymore.
            page1.Flush();
            //Create page2 and add forms to the page.
            PdfPage page2 = document.AddNewPage();

            canvas = new PdfCanvas(page2);
            canvas.AddXObject(form, 0, 0);
            canvas.AddXObject(form, 0, 200);
            canvas.AddXObject(form, 200, 0);
            canvas.AddXObject(form, 200, 200);
            canvas.Release();
            page2.Flush();
            document.Close();
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationDocument, sourceFolder + "cmp_documentWithForms1.pdf"
                                                                             , destinationFolder, "diff_"));
        }