Example #1
0
        protected void ManipulatePdf(String dest)
        {
            PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));

            // Suppose that this is our image data
            byte[] circleData = new byte[]
            { (byte)0x3c, (byte)0x7e, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0x7e, (byte)0x3c };

            PdfSpecialCs colorspace = GetSeparationColorspace(pdfDoc.GetWriter(),
                                                              new DeviceCmyk(0.8f, 0.3f, 0.3f, 0.1f));

            // Specifying a single component colorspace in the image
            ImageData image = ImageDataFactory.Create(8, 8, 1, 1, circleData,
                                                      new int[] { 0, 0 });
            PdfImageXObject imageXObject = new PdfImageXObject(image);

            imageXObject.Put(PdfName.ColorSpace, colorspace.GetPdfObject());
            imageXObject.MakeIndirect(pdfDoc);

            // Now we add the image to the existing PDF document
            PdfPage pdfPage = pdfDoc.GetFirstPage();

            pdfPage.SetIgnorePageRotationForContent(true);
            PdfCanvas canvas = new PdfCanvas(pdfPage);
            Rectangle rect   = PdfXObject.CalculateProportionallyFitRectangleWithWidth(imageXObject, 100, 200, 100);

            canvas.AddXObjectFittedIntoRectangle(imageXObject, rect);

            pdfDoc.Close();
        }
Example #2
0
        public virtual void CalculateProportionallyFitRectangleWithWidthTest()
        {
            String         fileName    = "calculateProportionallyFitRectangleWithWidthTest.pdf";
            String         destPdf     = DESTINATION_FOLDER + fileName;
            String         cmpPdf      = SOURCE_FOLDER + "cmp_" + fileName;
            FileStream     fos         = new FileStream(destPdf, FileMode.Create);
            PdfWriter      writer      = new PdfWriter(fos);
            PdfDocument    document    = new PdfDocument(writer);
            PdfFormXObject formXObject = new PdfFormXObject(new Rectangle(5, 5, 15, 20));

            formXObject.Put(PdfName.Matrix, new PdfArray(new float[] { 1, 0.57f, 0, 2, 20, 5 }));
            new PdfCanvas(formXObject, document).Circle(10, 15, 10).Fill();
            PdfImageXObject imageXObject = new PdfImageXObject(ImageDataFactory.Create(SOURCE_FOLDER + "itext.png"));
            PdfPage         page         = document.AddNewPage();
            PdfCanvas       canvas       = new PdfCanvas(page);
            Rectangle       rect         = PdfXObject.CalculateProportionallyFitRectangleWithWidth(formXObject, 0, 0, 20);

            canvas.AddXObjectFittedIntoRectangle(formXObject, rect);
            rect = PdfXObject.CalculateProportionallyFitRectangleWithWidth(imageXObject, 20, 0, 20);
            canvas.AddXObjectFittedIntoRectangle(imageXObject, rect);
            canvas.Release();
            page.Flush();
            document.Close();
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destPdf, cmpPdf, DESTINATION_FOLDER, "diff_"
                                                                             ));
        }
Example #3
0
 public virtual void CalculateProportionallyFitRectangleWithWidthForCustomXObjectTest()
 {
     NUnit.Framework.Assert.That(() => {
         PdfXObject pdfXObject = new PdfXObjectTest.CustomPdfXObject(new PdfStream());
         PdfXObject.CalculateProportionallyFitRectangleWithWidth(pdfXObject, 0, 0, 20);
     }
                                 , NUnit.Framework.Throws.InstanceOf <ArgumentException>().With.Message.EqualTo("PdfFormXObject or PdfImageXObject expected."))
     ;
 }
        public virtual void AddFormXObjectXYWidthLargerOneWithoutMatrixTest()
        {
            String         fileName    = "addXObjectXYWidthLargerOneWithoutMatrixTest.pdf";
            String         destPdf     = DESTINATION_FOLDER + fileName;
            String         cmpPdf      = SOURCE_FOLDER + "cmp_" + fileName;
            FileStream     fos         = new FileStream(destPdf, FileMode.Create);
            PdfWriter      writer      = new PdfWriter(fos);
            PdfDocument    document    = new PdfDocument(writer);
            PdfFormXObject formXObject = new PdfFormXObject(new Rectangle(10, 15, 10, 20));

            new PdfCanvas(formXObject, document).Rectangle(10, 10, 10, 20).Fill();
            PdfPage   page   = document.AddNewPage();
            PdfCanvas canvas = new PdfCanvas(page);
            Rectangle rect   = PdfXObject.CalculateProportionallyFitRectangleWithWidth(formXObject, 5, 5, 30);

            canvas.AddXObjectFittedIntoRectangle(formXObject, rect);
            canvas.Release();
            page.Flush();
            document.Close();
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destPdf, cmpPdf, DESTINATION_FOLDER, "diff_"
                                                                             ));
        }