Ejemplo n.º 1
0
        private void AddNewPdf(List <string> images)
        {
            var outputPdf = System.IO.Path.Combine(_settings.OutputFolderPath, $"{_settings.OutputFilesPrefix}_{_currentOutputNumber:D3}.pdf");

            try
            {
                using (var writer = new PdfWriter(outputPdf))
                {
                    using (var pdf = new PdfDocument(writer))
                    {
                        using (var document = new Document(pdf))
                        {
                            foreach (var img in images)
                            {
                                if (_cancelTokenSource.Token.IsCancellationRequested)
                                {
                                    break;
                                }

                                var   imageData = ImageDataFactory.Create(img);
                                Image image     = new Image(imageData);

                                var page = pdf.AddNewPage(new PageSize(image.GetImageWidth(), image.GetImageHeight()));

                                PdfCanvas aboveCanvas = new PdfCanvas(page);
                                Rectangle area        = page.GetPageSize();
                                new Canvas(aboveCanvas, pdf, area).Add(image);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Log(ex);
            }
            _currentOutputNumber++;
        }
        public virtual void EqualsWithDocTest()
        {
            CompareTool compareTool = new CompareTool();

            using (PdfDocument firstDoc = new PdfDocument(new PdfWriter(new MemoryStream()))) {
                using (PdfDocument secondDoc = new PdfDocument(new PdfWriter(new MemoryStream()))) {
                    // add a page to avoid exception throwing on close
                    firstDoc.AddNewPage();
                    secondDoc.AddNewPage();
                    PdfIndirectReference obj41Gen0 = CreateIndirectReference(firstDoc, 41, 0);
                    PdfIndirectReference obj42Gen0 = CreateIndirectReference(firstDoc, 42, 0);
                    NUnit.Framework.Assert.IsTrue(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                              (CreateIndirectReference(firstDoc, 41, 0), obj42Gen0)));
                    NUnit.Framework.Assert.IsTrue(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                              (obj41Gen0, CreateIndirectReference(firstDoc, 42, 0))));
                    NUnit.Framework.Assert.IsFalse(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                               (CreateIndirectReference(firstDoc, 42, 0), obj42Gen0)));
                    NUnit.Framework.Assert.IsFalse(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                               (obj41Gen0, CreateIndirectReference(firstDoc, 41, 0))));
                    NUnit.Framework.Assert.IsFalse(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                               (CreateIndirectReference(firstDoc, 41, 1), obj42Gen0)));
                    NUnit.Framework.Assert.IsFalse(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                               (obj41Gen0, CreateIndirectReference(firstDoc, 42, 1))));
                    // TODO: DEVSIX-4756 start asserting false
                    NUnit.Framework.Assert.IsTrue(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                              (CreateIndirectReference(null, 41, 0), obj42Gen0)));
                    // TODO: DEVSIX-4756 start asserting false
                    NUnit.Framework.Assert.IsTrue(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                              (obj41Gen0, CreateIndirectReference(null, 42, 0))));
                    // TODO: DEVSIX-4756 start asserting false
                    NUnit.Framework.Assert.IsTrue(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                              (CreateIndirectReference(secondDoc, 41, 0), obj42Gen0)));
                    // TODO: DEVSIX-4756 start asserting false
                    NUnit.Framework.Assert.IsTrue(new CompareTool.ObjectPath(obj41Gen0, obj42Gen0).Equals(new CompareTool.ObjectPath
                                                                                                              (obj41Gen0, CreateIndirectReference(secondDoc, 42, 0))));
                }
            }
        }
Ejemplo n.º 3
0
        public virtual void TagStructureFlushingTest06()
        {
            PdfWriter writer = new PdfWriter(destinationFolder + "tagStructureFlushingTest06.pdf");

            writer.SetCompressionLevel(CompressionConstants.NO_COMPRESSION);
            PdfDocument document = new PdfDocument(writer);

            document.SetTagged();
            PdfPage        page1      = document.AddNewPage();
            TagTreePointer tagPointer = new TagTreePointer(document);

            tagPointer.SetPageForTagging(page1);
            PdfCanvas canvas = new PdfCanvas(page1);

            tagPointer.AddTag(StandardRoles.DIV);
            tagPointer.AddTag(StandardRoles.P);
            canvas.BeginText();
            PdfFont standardFont = PdfFontFactory.CreateFont(StandardFonts.COURIER);

            canvas.SetFontAndSize(standardFont, 24).SetTextMatrix(1, 0, 0, 1, 32, 512);
            tagPointer.AddTag(StandardRoles.SPAN);
            WaitingTagsManager waitingTagsManager = document.GetTagStructureContext().GetWaitingTagsManager();
            Object             associatedObj      = new Object();

            waitingTagsManager.AssignWaitingState(tagPointer, associatedObj);
            canvas.OpenTag(tagPointer.GetTagReference()).ShowText("Hello ").CloseTag();
            canvas.SetFontAndSize(standardFont, 30).OpenTag(tagPointer.GetTagReference()).ShowText("World").CloseTag();
            canvas.EndText().Release();
            page1.Flush();
            tagPointer.RelocateKid(0, new TagTreePointer(document).MoveToKid(StandardRoles.DIV).SetNextNewKidIndex(0).
                                   AddTag(StandardRoles.P));
            tagPointer.RemoveTag();
            waitingTagsManager.RemoveWaitingState(associatedObj);
            document.GetTagStructureContext().FlushPageTags(page1);
            document.GetStructTreeRoot().CreateParentTreeEntryForPage(page1);
            document.Close();
            CompareResult("tagStructureFlushingTest06.pdf", "cmp_tagStructureFlushingTest06.pdf", "diffFlushing06_");
        }
Ejemplo n.º 4
0
        public virtual void CreatePdf(String dest)
        {
            //Initialize PDF document
            PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
            //Add new page
            PageSize       ps     = PageSize.A4;
            PdfPage        page   = pdf.AddNewPage(ps);
            PdfCanvas      canvas = new PdfCanvas(page);
            IList <String> text   = new List <String>();

            text.Add("         Episode V         ");
            text.Add("  THE EMPIRE STRIKES BACK  ");
            text.Add("It is a dark time for the");
            text.Add("Rebellion. Although the Death");
            text.Add("Star has been destroyed,");
            text.Add("Imperial troops have driven the");
            text.Add("Rebel forces from their hidden");
            text.Add("base and pursued them across");
            text.Add("the galaxy.");
            text.Add("Evading the dreaded Imperial");
            text.Add("Starfleet, a group of freedom");
            text.Add("fighters led by Luke Skywalker");
            text.Add("has established a new secret");
            text.Add("base on the remote ice world");
            text.Add("of Hoth...");
            //Replace the origin of the coordinate system to the top left corner
            canvas.ConcatMatrix(1, 0, 0, 1, 0, ps.GetHeight());
            canvas.BeginText().SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.COURIER_BOLD), 14).SetLeading(14
                                                                                                                    * 1.2f).MoveText(70, -40);
            foreach (String s in text)
            {
                //Add text and move to the next line
                canvas.NewlineShowText(s);
            }
            canvas.EndText();
            //Close document
            pdf.Close();
        }
Ejemplo n.º 5
0
        public virtual void ColorTest04()
        {
            //Create document with 3 colored rectangles in memory.
            ByteArrayOutputStream baos   = new ByteArrayOutputStream();
            PdfWriter             writer = new PdfWriter(baos);

            writer.SetCompressionLevel(CompressionConstants.NO_COMPRESSION);
            PdfDocument document   = new PdfDocument(writer);
            PdfPage     page       = document.AddNewPage();
            PdfCanvas   canvas     = new PdfCanvas(page);
            FileStream  streamGray = new FileStream(SOURCE_FOLDER + "BlackWhite.icc", FileMode.Open, FileAccess.Read);
            FileStream  streamRgb  = new FileStream(SOURCE_FOLDER + "CIERGB.icc", FileMode.Open, FileAccess.Read);
            FileStream  streamCmyk = new FileStream(SOURCE_FOLDER + "USWebUncoated.icc", FileMode.Open, FileAccess.Read
                                                    );
            IccBased gray = new IccBased(streamGray, new float[] { 0.5f });
            IccBased rgb  = new IccBased(streamRgb, new float[] { 1.0f, 0.5f, 0f });
            IccBased cmyk = new IccBased(streamCmyk, new float[] { 1.0f, 0.5f, 0f, 0f });

            canvas.SetFillColor(gray).Rectangle(50, 500, 50, 50).Fill();
            canvas.SetFillColor(rgb).Rectangle(150, 500, 50, 50).Fill();
            canvas.SetFillColor(cmyk).Rectangle(250, 500, 50, 50).Fill();
            canvas.Release();
            document.Close();
            //Copies page from created document to new document.
            //This is not strictly necessary for ICC-based colors paces test, but this is an additional test for copy functionality.
            byte[]    bytes  = baos.ToArray();
            PdfReader reader = new PdfReader(new MemoryStream(bytes));

            document = new PdfDocument(reader);
            writer   = new PdfWriter(DESTINATION_FOLDER + "colorTest04.pdf");
            PdfDocument newDocument = new PdfDocument(writer);

            newDocument.AddPage(document.GetPage(1).CopyTo(newDocument));
            newDocument.Close();
            document.Close();
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(DESTINATION_FOLDER + "colorTest04.pdf", SOURCE_FOLDER
                                                                             + "cmp_colorTest04.pdf", DESTINATION_FOLDER, "diff_"));
        }
 public virtual void CompareToWithDocTest()
 {
     using (PdfDocument firstDoc = new PdfDocument(new PdfWriter(new MemoryStream()))) {
         using (PdfDocument secondDoc = new PdfDocument(new PdfWriter(new MemoryStream()))) {
             // add a page to avoid exception throwing on close
             firstDoc.AddNewPage();
             secondDoc.AddNewPage();
             PdfIndirectReference obj41Gen7 = new PdfIndirectReference(firstDoc, 41, 7);
             NUnit.Framework.Assert.AreEqual(0, obj41Gen7.CompareTo(new PdfIndirectReference(firstDoc, 41, 7)));
             NUnit.Framework.Assert.AreEqual(1, obj41Gen7.CompareTo(new PdfIndirectReference(firstDoc, 11, 17)));
             NUnit.Framework.Assert.AreEqual(-1, obj41Gen7.CompareTo(new PdfIndirectReference(firstDoc, 51, 0)));
             NUnit.Framework.Assert.AreEqual(-1, obj41Gen7.CompareTo(new PdfIndirectReference(firstDoc, 41, 17)));
             NUnit.Framework.Assert.AreEqual(1, obj41Gen7.CompareTo(new PdfIndirectReference(firstDoc, 41, 0)));
             NUnit.Framework.Assert.AreEqual(1, obj41Gen7.CompareTo(new PdfIndirectReference(null, 41, 7)));
             // we do not expect that ids could be equal
             int docIdsCompareResult = firstDoc.GetDocumentId() > secondDoc.GetDocumentId() ? 1 : -1;
             NUnit.Framework.Assert.AreEqual(docIdsCompareResult, obj41Gen7.CompareTo(new PdfIndirectReference(secondDoc
                                                                                                               , 41, 7)));
             NUnit.Framework.Assert.AreEqual(-docIdsCompareResult, new PdfIndirectReference(secondDoc, 41, 7).CompareTo
                                                 (obj41Gen7));
         }
     }
 }
Ejemplo n.º 7
0
        public static string AddEvenPage(string src_file)
        {
            int    ind      = src_file.LastIndexOf('\\');
            string filename = System.IO.Path.GetFileNameWithoutExtension(src_file);
            string dst_file = src_file.Substring(0, ind + 1) + filename + "_even.pdf";

            PdfDocument pdfDoc = new PdfDocument(new PdfReader(src_file), new PdfWriter(dst_file));
            Document    doc    = new Document(pdfDoc);

            //PdfReader reader = new PdfReader(src_file);
            //FileStream dstFile = new FileStream(dst_file, FileMode.OpenOrCreate);

            //PdfStamper stamper = new PdfStamper(reader, dstFile);

            int pageNumber = pdfDoc.GetNumberOfPages();

            if (pageNumber % 2 == 1)
            {
                pdfDoc.AddNewPage(pageNumber, PageSize.A4);
            }
            doc.Close();
            return(dst_file);
        }
Ejemplo n.º 8
0
        public virtual void MultilineTextFieldRedundantSpacesAreTrimmedTest()
        {
            String      filename = destinationFolder + "multilineTextFieldRedundantSpacesAreTrimmedTest.pdf";
            PdfDocument pdfDoc   = new PdfDocument(new PdfWriter(filename));

            pdfDoc.AddNewPage();
            PdfAcroForm      form  = PdfAcroForm.GetAcroForm(pdfDoc, true);
            PdfPage          page  = pdfDoc.GetFirstPage();
            Rectangle        rect  = new Rectangle(210, 490, 90, 200);
            PdfTextFormField field = PdfFormField.CreateMultilineText(pdfDoc, rect, "TestField", "before spaces           after spaces"
                                                                      );

            form.AddField(field, page);
            pdfDoc.Close();
            CompareTool compareTool  = new CompareTool();
            String      errorMessage = compareTool.CompareByContent(filename, sourceFolder + "cmp_multilineTextFieldRedundantSpacesAreTrimmedTest.pdf"
                                                                    , destinationFolder, "diff_");

            if (errorMessage != null)
            {
                NUnit.Framework.Assert.Fail(errorMessage);
            }
        }
Ejemplo n.º 9
0
        public virtual void CreatePdf(String dest)
        {
            PdfDocument pdf       = new PdfDocument(new PdfWriter(dest));
            Document    document  = new Document(pdf, PageSize.A4.Rotate());
            PdfCanvas   pdfCanvas = new PdfCanvas(pdf.AddNewPage());

            for (int i = 1; i <= 10; i++)
            {
                pdfCanvas.MoveTo(document.GetLeftMargin() + i * 50, 0);
                pdfCanvas.LineTo(document.GetLeftMargin() + i * 50, 595);
            }
            pdfCanvas.Stroke();
            IList <IList <String> > resultSet = CsvTo2DList.Convert(SRC, "|");

            foreach (IList <String> record in resultSet)
            {
                Paragraph p = new Paragraph();
                p.Add(record[0].Trim()).Add(new Tab()).Add(record[1].Trim()).Add(new Tab()).Add(record[2].Trim()).Add(new
                                                                                                                      Tab()).Add(record[3].Trim()).Add(new Tab()).Add(record[4].Trim()).Add(new Tab()).Add(record[5].Trim());
                document.Add(p);
            }
            document.Close();
        }
Ejemplo n.º 10
0
 public virtual void Png_imageTransparancy_24bitDepthImage() {
     String outFileName = destinationFolder + "png_imageTransparancy_24bitDepthImage.pdf";
     String cmpFileName = sourceFolder + "cmp_png_imageTransparancy_24bitDepthImage.pdf";
     PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName, new WriterProperties().SetCompressionLevel
         (CompressionConstants.NO_COMPRESSION)));
     PdfPage page = pdfDocument.AddNewPage(PageSize.A4);
     PdfCanvas canvas = new PdfCanvas(page);
     canvas.SetFillColor(ColorConstants.LIGHT_GRAY).Fill();
     canvas.Rectangle(80, 0, PageSize.A4.GetWidth() - 80, PageSize.A4.GetHeight()).Fill();
     canvas.SaveState().BeginText().MoveText(116, 800).SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA
         ), 14).SetFillColor(ColorConstants.MAGENTA).ShowText("24 bit depth PNG").MoveText(0, -20).ShowText("This image should not have a white rectangle as background"
         ).EndText().RestoreState();
     ImageData img = ImageDataFactory.Create(sourceFolder + "manualTransparency_24bit.png");
     canvas.AddImage(img, 100, 450, 200, false);
     canvas.SaveState().BeginText().MoveText(116, 400).SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA
         ), 14).SetFillColor(ColorConstants.MAGENTA).ShowText("32 bit depth PNG").EndText().RestoreState();
     img = ImageDataFactory.Create(sourceFolder + "manualTransparency_32bit.png");
     canvas.AddImage(img, 116, 100, 200, false);
     canvas.Release();
     pdfDocument.Close();
     NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder
         , "diff_"));
 }
Ejemplo n.º 11
0
        public virtual void FlushSelfContainingObjectsWritingMode()
        {
            PdfDocument   pdfDoc   = new PdfDocument(new PdfWriter(new MemoryStream()));
            PdfDictionary pageDict = pdfDoc.AddNewPage().GetPdfObject();
            PdfDictionary dict1    = new PdfDictionary();

            pageDict.Put(new PdfName("dict1"), dict1);
            PdfArray arr1 = new PdfArray();

            pageDict.Put(new PdfName("arr1"), arr1);
            dict1.Put(new PdfName("dict1"), dict1);
            dict1.Put(new PdfName("arr1"), arr1);
            arr1.Add(arr1);
            arr1.Add(dict1);
            arr1.MakeIndirect(pdfDoc);
            dict1.MakeIndirect(pdfDoc);
            PageFlushingHelper flushingHelper = new PageFlushingHelper(pdfDoc);

            flushingHelper.UnsafeFlushDeep(1);
            NUnit.Framework.Assert.IsTrue(dict1.IsFlushed());
            NUnit.Framework.Assert.IsTrue(arr1.IsFlushed());
            pdfDoc.Close();
        }
Ejemplo n.º 12
0
        public virtual void CreateEmptyDocumentWithAbcXmp()
        {
            MemoryStream fos    = new MemoryStream();
            PdfWriter    writer = new PdfWriter(fos);
            PdfDocument  pdfDoc = new PdfDocument(writer);

            pdfDoc.GetDocumentInfo().SetAuthor("Alexander Chingarev").SetCreator("iText 7").SetTitle("Empty iText 7 Document"
                                                                                                     );
            pdfDoc.GetDocumentInfo().GetPdfObject().Remove(PdfName.CreationDate);
            pdfDoc.GetDocumentInfo().GetPdfObject().Remove(PdfName.ModDate);
            PdfPage page = pdfDoc.AddNewPage();

            page.Flush();
            pdfDoc.SetXmpMetadata("abc".GetBytes());
            pdfDoc.Close();
            PdfReader   reader      = new PdfReader(new MemoryStream(fos.ToArray()));
            PdfDocument pdfDocument = new PdfDocument(reader);

            NUnit.Framework.Assert.AreEqual(false, reader.HasRebuiltXref(), "Rebuilt");
            NUnit.Framework.Assert.AreEqual("abc".GetBytes(), pdfDocument.GetXmpMetadata());
            NUnit.Framework.Assert.IsNotNull(pdfDocument.GetPage(1));
            reader.Close();
        }
Ejemplo n.º 13
0
 public virtual void NestedElementWithAbsolutePositioningInCanvasTest()
 {
     NUnit.Framework.Assert.That(() => {
         //TODO: DEVSIX-4820 (NullPointerException on processing absolutely positioned elements in small canvas area)
         String testName = "nestedElementWithAbsolutePositioningInCanvas";
         String @out     = destinationFolder + testName + ".pdf";
         String cmp      = sourceFolder + "cmp_" + testName + ".pdf";
         using (PdfDocument pdf = new PdfDocument(new PdfWriter(@out))) {
             pdf.AddNewPage();
             iText.Layout.Canvas canvas = new iText.Layout.Canvas(new PdfCanvas(pdf.GetFirstPage()), new Rectangle(120,
                                                                                                                   650, 55, 80));
             Div notFittingDiv   = new Div().SetWidth(100).Add(new Paragraph("Paragraph in Div with Not set position"));
             Div divWithPosition = new Div().SetFixedPosition(50, 20, 80);
             divWithPosition.Add(new Paragraph("Paragraph in Div with set position"));
             notFittingDiv.Add(divWithPosition);
             canvas.Add(notFittingDiv);
             canvas.Close();
         }
         NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, destinationFolder));
     }
                                 , NUnit.Framework.Throws.InstanceOf <NullReferenceException>())
     ;
 }
Ejemplo n.º 14
0
        public virtual void BackgroundLinearGradientClipOriginNoRepeatTest()
        {
            PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));

            byte[]           bytes       = new byte[] { 54, 25, 47, 15, 2, 2, 2, 44, 55, 77, 86, 24 };
            PdfCanvas        pdfCanvas   = new _PdfCanvas_589(pdfDocument.AddNewPage());
            DrawContext      drawContext = new DrawContext(pdfDocument, pdfCanvas);
            AbstractRenderer renderer    = new DivRenderer(new Div().SetPadding(20).SetBorder(new DashedBorder(10)));

            renderer.occupiedArea = new LayoutArea(1, new Rectangle(100f, 200f, 300f, 400f));
            Rectangle targetBoundingBox = new Rectangle(50f, 150f, 300f, 300f);
            AbstractLinearGradientBuilder gradientBuilder = new LinearGradientBuilder().SetGradientVector(targetBoundingBox
                                                                                                          .GetLeft() + 100f, targetBoundingBox.GetBottom() + 100f, targetBoundingBox.GetRight() - 100f, targetBoundingBox
                                                                                                          .GetTop() - 100f).SetSpreadMethod(GradientSpreadMethod.PAD).AddColorStop(new GradientColorStop(ColorConstants
                                                                                                                                                                                                         .RED.GetColorValue(), 0d, GradientColorStop.OffsetType.RELATIVE)).AddColorStop(new GradientColorStop(ColorConstants
                                                                                                                                                                                                                                                                                                              .BLUE.GetColorValue(), 1d, GradientColorStop.OffsetType.RELATIVE));
            BackgroundImage backgroundImage = new BackgroundImage.Builder().SetLinearGradientBuilder(gradientBuilder).
                                              SetBackgroundRepeat(new BackgroundRepeat(BackgroundRepeat.BackgroundRepeatValue.NO_REPEAT)).SetBackgroundClip
                                                  (BackgroundBox.CONTENT_BOX).SetBackgroundOrigin(BackgroundBox.BORDER_BOX).Build();

            renderer.SetProperty(Property.BACKGROUND_IMAGE, backgroundImage);
            renderer.DrawBackground(drawContext);
        }
Ejemplo n.º 15
0
        public virtual void CreateEmptyDocument()
        {
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(destinationFolder + "emptyDocument.pdf"));

            pdfDoc.GetDocumentInfo().SetAuthor("Alexander Chingarev").SetCreator("iText 6").SetTitle("Empty iText 6 Document"
                                                                                                     );
            PdfPage page = pdfDoc.AddNewPage();

            page.Flush();
            pdfDoc.Close();
            PdfReader   reader      = new PdfReader(destinationFolder + "emptyDocument.pdf");
            PdfDocument pdfDocument = new PdfDocument(reader);

            NUnit.Framework.Assert.AreEqual(false, reader.HasRebuiltXref(), "Rebuilt");
            NUnit.Framework.Assert.IsNotNull(pdfDocument.GetPage(1));
            String   date    = pdfDocument.GetDocumentInfo().GetPdfObject().GetAsString(PdfName.CreationDate).GetValue();
            DateTime cl      = PdfDate.Decode(date);
            double   diff    = DateTimeUtil.GetUtcMillisFromEpoch(null) - DateTimeUtil.GetUtcMillisFromEpoch(cl);
            String   message = "Unexpected creation date. Different from now is " + (float)diff / 1000 + "s";

            NUnit.Framework.Assert.IsTrue(diff < 5000, message);
            pdfDocument.Close();
        }
Ejemplo n.º 16
0
 public virtual void CheckAppearanceStreamWithTransparencyGroup2()
 {
     using (MemoryStream bos = new MemoryStream()) {
         using (PdfWriter writer = new PdfWriter(bos)) {
             using (PdfDocument document = new PdfDocument(writer)) {
                 PdfFormXObject formXObject = new PdfFormXObject(new Rectangle(0f, 0f));
                 formXObject.SetGroup(new PdfTransparencyGroup());
                 PdfFormXObject formStream = new PdfFormXObject(new Rectangle(0f, 0f));
                 formStream.GetResources().AddForm(formXObject);
                 PdfAnnotation annotation = new PdfPopupAnnotation(new Rectangle(0f, 0f));
                 annotation.SetNormalAppearance(formStream.GetPdfObject());
                 PdfPage pageToCheck = document.AddNewPage();
                 pageToCheck.AddAnnotation(new PdfPopupAnnotation(new Rectangle(0f, 0f)));
                 pageToCheck.AddAnnotation(annotation);
                 NUnit.Framework.Assert.That(() => {
                     pdfA2Checker.CheckSinglePage(pageToCheck);
                 }
                                             , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.THE_DOCUMENT_DOES_NOT_CONTAIN_A_PDFA_OUTPUTINTENT_BUT_PAGE_CONTAINS_TRANSPARENCY_AND_DOES_NOT_CONTAIN_BLENDING_COLOR_SPACE))
                 ;
             }
         }
     }
 }
Ejemplo n.º 17
0
        public virtual void TagTreePointerTest07()
        {
            PdfWriter writer = new PdfWriter(destinationFolder + "tagTreePointerTest07.pdf").SetCompressionLevel(CompressionConstants
                                                                                                                 .NO_COMPRESSION);
            PdfDocument document = new PdfDocument(writer);

            document.SetTagged();
            PdfPage        page       = document.AddNewPage();
            TagTreePointer tagPointer = new TagTreePointer(document).SetPageForTagging(page);

            tagPointer.AddTag(StandardRoles.SPAN);
            PdfCanvas canvas       = new PdfCanvas(page);
            PdfFont   standardFont = PdfFontFactory.CreateFont(StandardFonts.COURIER);

            canvas.BeginText().SetFontAndSize(standardFont, 24).SetTextMatrix(1, 0, 0, 1, 32, 512);
            canvas.OpenTag(tagPointer.GetTagReference()).ShowText("Hello ").CloseTag();
            canvas.OpenTag(tagPointer.GetTagReference().AddProperty(PdfName.E, new PdfString("Big Mister"))).ShowText(
                " BMr. ").CloseTag();
            canvas.SetFontAndSize(standardFont, 30).OpenTag(tagPointer.GetTagReference()).ShowText("World").CloseTag();
            canvas.EndText();
            document.Close();
            CompareResult("tagTreePointerTest07.pdf", "cmp_tagTreePointerTest07.pdf", "diff07_");
        }
Ejemplo n.º 18
0
        public virtual void Barcode03Test()
        {
            String      filename = "barcodeEANSUP.pdf";
            PdfWriter   writer   = new PdfWriter(destinationFolder + filename);
            PdfDocument document = new PdfDocument(writer);
            PdfPage     page     = document.AddNewPage();
            PdfCanvas   canvas   = new PdfCanvas(page);
            BarcodeEAN  codeEAN  = new BarcodeEAN(document);

            codeEAN.SetCodeType(BarcodeEAN.EAN13);
            codeEAN.SetCode("9781935182610");
            BarcodeEAN codeSUPP = new BarcodeEAN(document);

            codeSUPP.SetCodeType(BarcodeEAN.SUPP5);
            codeSUPP.SetCode("55999");
            codeSUPP.SetBaseline(-2);
            BarcodeEANSUPP eanSupp = new BarcodeEANSUPP(codeEAN, codeSUPP);

            eanSupp.PlaceBarcode(canvas, null, ColorConstants.BLUE);
            document.Close();
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
                                                                             + "cmp_" + filename, destinationFolder, "diff_"));
        }
Ejemplo n.º 19
0
        public virtual void IndirectsChain4()
        {
            PdfDocument document = new PdfDocument(new PdfWriter(new MemoryStream()));

            document.AddNewPage();
            PdfDictionary catalog    = document.GetCatalog().GetPdfObject();
            PdfDictionary dictionary = GetTestPdfDictionary();
            PdfObject     @object    = dictionary;

            for (int i = 0; i < 31; i++)
            {
                @object = @object.MakeIndirect(document).GetIndirectReference();
            }
            PdfArray array = new PdfArray();

            array.Add(@object);
            catalog.Put(new PdfName("a"), array);
            @object = ((PdfArray)catalog.Get(new PdfName("a"))).Get(0, true);
            NUnit.Framework.Assert.IsTrue(@object is PdfDictionary);
            NUnit.Framework.Assert.AreEqual(new PdfName("c").ToString(), ((PdfDictionary)@object).Get(new PdfName("b")
                                                                                                      ).ToString());
            document.Close();
        }
Ejemplo n.º 20
0
        public virtual void NotPrintNotOnPanel()
        {
            String      outPdf = destinationFolder + "notPrintNotOnPanel.pdf";
            String      cmpPdf = sourceFolder + "cmp_notPrintNotOnPanel.pdf";
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outPdf));
            PdfFont     font   = PdfFontFactory.CreateFont();
            PdfLayer    notPrintedNotOnPanel = new PdfLayer("not printed", pdfDoc);

            notPrintedNotOnPanel.SetOnPanel(false);
            notPrintedNotOnPanel.SetPrint("Print", false);
            PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage());

            canvas.SetFontAndSize(font, 14);
            PdfLayerTestUtils.AddTextInsideLayer(null, canvas, "Normal page content, hello lorem ispum!", 100, 750);
            canvas.BeginLayer(notPrintedNotOnPanel);
            canvas.BeginText().SetFontAndSize(font, 24).MoveText(100, 700).ShowText("WHEN PRINTED THIS LINE IS NOT THERE"
                                                                                    ).EndText();
            canvas.BeginText().SetFontAndSize(font, 16).MoveText(100, 680).ShowText("(this text layer is not in the layers panel as well)"
                                                                                    ).EndText();
            canvas.EndLayer();
            pdfDoc.Close();
            PdfLayerTestUtils.CompareLayers(outPdf, cmpPdf);
        }
Ejemplo n.º 21
0
        public virtual void ChangeIdTest()
        {
            MemoryStream baos        = new MemoryStream();
            PdfWriter    writer      = new PdfWriter(baos);
            PdfDocument  pdfDocument = new PdfDocument(writer);
            String       value       = "Modified ID 1234";

            writer.properties.SetModifiedDocumentId(new PdfString(value));
            pdfDocument.AddNewPage();
            pdfDocument.Close();
            byte[] documentBytes = baos.ToArray();
            baos.Dispose();
            PdfReader reader = new PdfReader(new MemoryStream(documentBytes));

            pdfDocument = new PdfDocument(reader);
            PdfArray idArray = pdfDocument.GetTrailer().GetAsArray(PdfName.ID);

            NUnit.Framework.Assert.IsNotNull(idArray);
            String extractedValue = idArray.GetAsString(1).GetValue();

            pdfDocument.Close();
            NUnit.Framework.Assert.AreEqual(value, extractedValue);
        }
Ejemplo n.º 22
0
        public virtual void InvalidAttributeTest02()
        {
            IDictionary <String, String> lineProperties = new Dictionary <String, String>();

            lineProperties.Put("x1", "100");
            lineProperties.Put("y1", "800");
            lineProperties.Put("x2", "1 0");
            lineProperties.Put("y2", "0 2 0");
            lineProperties.Put("stroke", "orange");
            String      filename = "invalidAttributes02.pdf";
            PdfDocument doc      = new PdfDocument(new PdfWriter(destinationFolder + filename));

            doc.AddNewPage();
            LineSvgNodeRenderer root = new LineSvgNodeRenderer();

            root.SetAttributesAndStyles(lineProperties);
            SvgDrawContext context = new SvgDrawContext(null, null);
            PdfCanvas      cv      = new PdfCanvas(doc, 1);

            context.PushCanvas(cv);
            root.Draw(context);
            doc.Close();
        }
        public virtual void AddFormXObjectXYHeightLargerOneWithMatrixTest()
        {
            String         fileName    = "addXObjectXYHeightLargerOneWithMatrixTest.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[] { 3, 0.2f, 0, 1, 20, 5 }));
            new PdfCanvas(formXObject, document).Circle(10, 15, 10).Fill();
            PdfPage   page   = document.AddNewPage();
            PdfCanvas canvas = new PdfCanvas(page);
            Rectangle rect   = PdfXObject.CalculateProportionallyFitRectangleWithHeight(formXObject, 2.5f, 0, 30);

            canvas.AddXObjectFittedIntoRectangle(formXObject, rect);
            canvas.Release();
            page.Flush();
            document.Close();
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destPdf, cmpPdf, DESTINATION_FOLDER, "diff_"
                                                                             ));
        }
Ejemplo n.º 24
0
 public virtual void ImagesWithDifferentDepth() {
     String outFileName = destinationFolder + "transparencyTest01.pdf";
     String cmpFileName = sourceFolder + "cmp_transparencyTest01.pdf";
     PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName, new WriterProperties().SetCompressionLevel
         (CompressionConstants.NO_COMPRESSION)));
     PdfPage page = pdfDocument.AddNewPage(PageSize.A3);
     PdfCanvas canvas = new PdfCanvas(page);
     canvas.SetFillColor(ColorConstants.LIGHT_GRAY).Fill();
     canvas.Rectangle(80, 0, 700, 1200).Fill();
     canvas.SaveState().BeginText().MoveText(116, 1150).SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.
         HELVETICA), 14).SetFillColor(ColorConstants.MAGENTA).ShowText("8 bit depth PNG").EndText().RestoreState
         ();
     ImageData img = ImageDataFactory.Create(sourceFolder + "manualTransparency_8bit.png");
     canvas.AddImage(img, 100, 780, 200, false);
     canvas.SaveState().BeginText().MoveText(316, 1150).SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.
         HELVETICA), 14).SetFillColor(ColorConstants.MAGENTA).ShowText("24 bit depth PNG").EndText().RestoreState
         ();
     img = ImageDataFactory.Create(sourceFolder + "manualTransparency_24bit.png");
     canvas.AddImage(img, 300, 780, 200, false);
     canvas.SaveState().BeginText().MoveText(516, 1150).SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.
         HELVETICA), 14).SetFillColor(ColorConstants.MAGENTA).ShowText("32 bit depth PNG").EndText().RestoreState
         ();
     img = ImageDataFactory.Create(sourceFolder + "manualTransparency_32bit.png");
     canvas.AddImage(img, 500, 780, 200, false);
     canvas.SaveState().BeginText().MoveText(116, 650).SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA
         ), 16).SetFillColor(ColorConstants.MAGENTA).ShowText("GIF image ").EndText().RestoreState();
     img = ImageDataFactory.Create(sourceFolder + "manualTransparency_gif.gif");
     canvas.AddImage(img, 100, 300, 200, false);
     canvas.SaveState().BeginText().MoveText(316, 650).SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA
         ), 16).SetFillColor(ColorConstants.MAGENTA).ShowText("TIF image ").EndText().RestoreState();
     img = ImageDataFactory.Create(sourceFolder + "manualTransparency_tif.tif");
     canvas.AddImage(img, 300, 300, 200, false);
     canvas.Release();
     pdfDocument.Close();
     NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder
         , "diff_"));
 }
Ejemplo n.º 25
0
        public virtual void TestCreateAndUpdateXMP()
        {
            String      created     = destinationFolder + "testCreateAndUpdateXMP_create.pdf";
            String      updated     = destinationFolder + "testCreateAndUpdateXMP_update.pdf";
            PdfDocument pdfDocument = new PdfDocument(new PdfWriter(created));

            pdfDocument.AddNewPage();
            pdfDocument.GetXmpMetadata(true);
            // create XMP metadata
            pdfDocument.Close();
            pdfDocument = new PdfDocument(new PdfReader(created), new PdfWriter(updated));
            PdfXrefTable  xref    = pdfDocument.GetXref();
            PdfDictionary catalog = pdfDocument.GetCatalog().GetPdfObject();

            ((PdfIndirectReference)catalog.Remove(PdfName.Metadata)).SetFree();
            PdfIndirectReference ref0    = xref.Get(0);
            PdfIndirectReference freeRef = xref.Get(6);

            pdfDocument.Close();

            /*
             * Current xref structure:
             * xref
             * 0 8
             * 0000000006 65535 f % this is object 0; 6 refers to free object 6
             * 0000000203 00000 n
             * 0000000510 00000 n
             * 0000000263 00000 n
             * 0000000088 00000 n
             * 0000000015 00000 n
             * 0000000000 00001 f % this is object 6; 0 refers to free object 0; note generation number
             * 0000000561 00000 n
             */
            NUnit.Framework.Assert.IsTrue(freeRef.IsFree());
            NUnit.Framework.Assert.AreEqual(ref0.offsetOrIndex, freeRef.objNr);
            NUnit.Framework.Assert.AreEqual(1, freeRef.genNr);
        }
Ejemplo n.º 26
0
        public virtual void CreatePdf(String dest)
        {
            PdfDocument pdf      = new PdfDocument(new PdfWriter(dest));
            Document    document = new Document(pdf, PageSize.A4.Rotate());

            float[]         stops    = new float[] { 80, 120, 580, 590, 720 };
            IList <TabStop> tabstops = new List <TabStop>();

            tabstops.Add(new TabStop(stops[0], TabAlignment.CENTER));
            tabstops.Add(new TabStop(stops[1], TabAlignment.LEFT));
            tabstops.Add(new TabStop(stops[2], TabAlignment.RIGHT));
            tabstops.Add(new TabStop(stops[3], TabAlignment.LEFT));
            TabStop anchor = new TabStop(stops[4], TabAlignment.ANCHOR);

            anchor.SetTabAnchor(' ');
            tabstops.Add(anchor);
            PdfCanvas pdfCanvas = new PdfCanvas(pdf.AddNewPage());

            for (int i = 0; i < stops.Length; i++)
            {
                pdfCanvas.MoveTo(document.GetLeftMargin() + stops[i], 0);
                pdfCanvas.LineTo(document.GetLeftMargin() + stops[i], 595);
            }
            pdfCanvas.Stroke();
            IList <IList <String> > resultSet = CsvTo2DList.Convert(SRC, "|");

            foreach (IList <String> record in resultSet)
            {
                Paragraph p = new Paragraph();
                p.AddTabStops(tabstops);
                p.Add(record[0].Trim()).Add(new Tab()).Add(record[1].Trim()).Add(new Tab()).Add(record[2].Trim()).Add(new
                                                                                                                      Tab()).Add(record[3].Trim()).Add(new Tab()).Add(record[4].Trim()).Add(new Tab()).Add(record[5].Trim()
                                                                                                                                                                                                           + " \'");
                document.Add(p);
            }
            document.Close();
        }
        public virtual void ImageBinaryTransparencySameColorTest()
        {
            // See http://stackoverflow.com/questions/39119776/itext-binary-transparency-bug
            String outFile = destinationFolder + "imageBinaryTransparencySameColorTest.pdf";
            String cmpFile = sourceFolder + "cmp_imageBinaryTransparencySameColorTest.pdf";

            ImageData       bkgnd = ImageDataFactory.Create(sourceFolder + "itext.jpg");
            PdfImageXObject image = new PdfImageXObject(bkgnd);

            PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFile));

            PdfCanvas canvas    = new PdfCanvas(pdfDocument.AddNewPage());
            PdfPage   firstPage = pdfDocument.GetFirstPage();

            canvas.AddXObject(image, firstPage.GetPageSize());
            canvas
            .BeginText()
            .SetTextMatrix(36, 790)
            .SetFontAndSize(PdfFontFactory.CreateFont(), 12)
            .ShowText("Invisible image (both opaque and non opaque pixels have the same color)")
            .EndText();
            canvas.AddXObject(new PdfImageXObject(
                                  ImageDataFactory.Create(CreateBinaryTransparentAWTImage(Color.Black, false, null), null)), 36, 580);

            PdfDocument cmpDoc = new PdfDocument(new PdfReader(cmpFile));

            // In general case this code will probably will fail, however in this particular case we know the structure of the pdf
            PdfStream outStream = firstPage.GetResources().GetResource(PdfName.XObject).GetAsStream(new PdfName("Im1"));
            PdfStream cmpStream = cmpDoc.GetFirstPage().GetResources().GetResource(PdfName.XObject).GetAsStream(new PdfName("Im1"));

            NUnit.Framework.Assert.IsNull(new CompareTool().CompareStreamsStructure(outStream, cmpStream));

            cmpDoc.Close();
            pdfDocument.Close();

            PrintOutputPdfNameAndDir(outFile);
        }
Ejemplo n.º 28
0
        public virtual void Copying1()
        {
            FileStream  fos1    = new FileStream(destinationFolder + "copying1_1.pdf", FileMode.Create);
            PdfWriter   writer1 = new PdfWriter(fos1);
            PdfDocument pdfDoc1 = new PdfDocument(writer1);

            pdfDoc1.GetDocumentInfo().SetAuthor("Alexander Chingarev").SetCreator("iText 6").SetTitle("Empty iText 6 Document"
                                                                                                      );
            pdfDoc1.GetCatalog().Put(new PdfName("a"), ((PdfName) new PdfName("b").MakeIndirect(pdfDoc1)));
            PdfPage page1 = pdfDoc1.AddNewPage();

            page1.Flush();
            pdfDoc1.Close();
            FileStream fis1    = new FileStream(destinationFolder + "copying1_1.pdf", FileMode.Open, FileAccess.Read);
            PdfReader  reader1 = new PdfReader(fis1);

            pdfDoc1 = new PdfDocument(reader1);
            FileStream  fos2    = new FileStream(destinationFolder + "copying1_2.pdf", FileMode.Create);
            PdfWriter   writer2 = new PdfWriter(fos2);
            PdfDocument pdfDoc2 = new PdfDocument(writer2);

            pdfDoc2.AddNewPage();
            pdfDoc2.GetDocumentInfo().GetPdfObject().Put(new PdfName("a"), pdfDoc1.GetCatalog().GetPdfObject().Get(new
                                                                                                                   PdfName("a")).CopyTo(pdfDoc2));
            pdfDoc2.Close();
            pdfDoc1.Close();
            PdfReader   reader      = new PdfReader(destinationFolder + "copying1_2.pdf");
            PdfDocument pdfDocument = new PdfDocument(reader);

            NUnit.Framework.Assert.AreEqual(false, reader.HasRebuiltXref(), "Rebuilt");
            PdfDictionary trailer = pdfDocument.GetTrailer();
            PdfDictionary info    = trailer.GetAsDictionary(PdfName.Info);
            PdfName       b       = info.GetAsName(new PdfName("a"));

            NUnit.Framework.Assert.AreEqual("/b", b.ToString());
            reader.Close();
        }
Ejemplo n.º 29
0
        public virtual void CopyObject5()
        {
            FileStream  fos1    = new FileStream(destinationFolder + "copyObject5_1.pdf", FileMode.Create);
            PdfWriter   writer1 = new PdfWriter(fos1);
            PdfDocument pdfDoc1 = new PdfDocument(writer1);
            PdfPage     page1   = pdfDoc1.AddNewPage();

            page1.GetContentStream(0).GetOutputStream().Write(ByteUtils.GetIsoBytes("%Page_1"));
            page1.Flush();
            pdfDoc1.Close();
            PdfDocument pdfDoc1R = new PdfDocument(new PdfReader(destinationFolder + "copyObject5_1.pdf"));

            page1 = pdfDoc1R.GetPage(1);
            FileStream  fos2    = new FileStream(destinationFolder + "copyObject5_2.pdf", FileMode.Create);
            PdfWriter   writer2 = new PdfWriter(fos2);
            PdfDocument pdfDoc2 = new PdfDocument(writer2);
            PdfPage     page2   = page1.CopyTo(pdfDoc2);

            pdfDoc2.AddPage(page2);
            page2.Flush();
            page2 = pdfDoc2.AddNewPage();
            page2.GetContentStream(0).GetOutputStream().Write(ByteUtils.GetIsoBytes("%Page_2"));
            page2.Flush();
            pdfDoc1R.Close();
            pdfDoc2.Close();
            PdfReader   reader      = new PdfReader(destinationFolder + "copyObject5_2.pdf");
            PdfDocument pdfDocument = new PdfDocument(reader);

            NUnit.Framework.Assert.AreEqual(false, reader.HasRebuiltXref(), "Rebuilt");
            NUnit.Framework.Assert.AreEqual(8, reader.trailer.GetAsNumber(PdfName.Size).IntValue());
            byte[] bytes = pdfDocument.GetPage(1).GetContentBytes();
            NUnit.Framework.Assert.AreEqual(ByteUtils.GetIsoBytes("%Page_1"), bytes);
            bytes = pdfDocument.GetPage(2).GetContentBytes();
            NUnit.Framework.Assert.AreEqual(ByteUtils.GetIsoBytes("%Page_2"), bytes);
            reader.Close();
        }
Ejemplo n.º 30
0
        public virtual void CopyObject8()
        {
            String      exceptionMessage = null;
            PdfDocument pdfDoc1;
            FileStream  fos1    = new FileStream(destinationFolder + "copyObject6_1.pdf", FileMode.Create);
            PdfWriter   writer1 = new PdfWriter(fos1);

            pdfDoc1 = new PdfDocument(writer1);
            try {
                PdfPage       page1        = pdfDoc1.AddNewPage();
                PdfDictionary directDict   = new PdfDictionary();
                PdfObject     indirectDict = ((PdfDictionary) new PdfDictionary().MakeIndirect(pdfDoc1));
                page1.GetPdfObject().Put(new PdfName("HelloWorldDirect"), directDict);
                page1.GetPdfObject().Put(new PdfName("HelloWorldIndirect"), indirectDict);
                indirectDict.CopyTo(null);
            }
            catch (PdfException ex) {
                exceptionMessage = ex.Message;
            }
            finally {
                pdfDoc1.Close();
            }
            NUnit.Framework.Assert.AreEqual(exceptionMessage, PdfException.DocumentToCopyToCannotBeNull);
        }
Ejemplo n.º 31
0
 public void WriteToPdf(PdfDocument doc)
 {
     doc.AddNewPage();
 }