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)))); } } }
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_"); }
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(); }
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)); } } }
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); }
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); } }
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(); }
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_")); }
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(); }
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(); }
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>()) ; }
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); }
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(); }
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)) ; } } } }
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_"); }
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_")); }
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(); }
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); }
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); }
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_" )); }
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_")); }
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); }
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); }
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(); }
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(); }
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); }
public void WriteToPdf(PdfDocument doc) { doc.AddNewPage(); }