public virtual void XrefStmInWriteModeTest() { String fileName = destinationFolder + "xrefStmInWriteMode.pdf"; PdfWriter writer = new PdfWriter(fileName, new WriterProperties().SetFullCompressionMode(true).SetCompressionLevel (CompressionConstants.NO_COMPRESSION)); PdfDocument pdfDocument = new PdfDocument(writer); PdfPage page = pdfDocument.AddNewPage(); PdfTextAnnotation textannot = new PdfTextAnnotation(new Rectangle(100, 600, 50, 40)); textannot.SetText(new PdfString("Text Annotation 01")).SetContents(new PdfString("Some contents...")); page.AddAnnotation(textannot); pdfDocument.Close(); PdfDocument doc = new PdfDocument(new PdfReader(fileName)); int xrefTableCounter = 0; for (int i = 1; i < doc.GetNumberOfPdfObjects(); i++) { PdfObject obj = doc.GetPdfObject(i); if (obj is PdfDictionary) { PdfDictionary objStmDict = (PdfDictionary)doc.GetPdfObject(i); PdfObject type = objStmDict.Get(PdfName.Type); if (type != null && type.Equals(PdfName.XRef)) { xrefTableCounter++; } } } NUnit.Framework.Assert.AreEqual(((PdfNumber)doc.GetTrailer().Get(PdfName.Size)).IntValue(), doc.GetNumberOfPdfObjects ()); doc.Close(); NUnit.Framework.Assert.AreEqual(1, xrefTableCounter); }
public virtual void Test06() { String outFile = destinationFolder + "parentTreeTest06.pdf"; String cmpFile = sourceFolder + "cmp_parentTreeTest06.pdf"; PdfDocument document = new PdfDocument(new PdfWriter(outFile)); document.SetTagged(); PdfStructElem doc = document.GetStructTreeRoot().AddKid(new PdfStructElem(document, PdfName.Document)); PdfPage firstPage = document.AddNewPage(); PdfCanvas canvas = new PdfCanvas(firstPage); canvas.BeginText(); canvas.SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.COURIER), 24); canvas.SetTextMatrix(1, 0, 0, 1, 32, 512); PdfStructElem paragraph = doc.AddKid(new PdfStructElem(document, PdfName.P)); PdfStructElem span1 = paragraph.AddKid(new PdfStructElem(document, PdfName.Span, firstPage)); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrNumber(firstPage, span1)))); canvas.ShowText("Hello "); canvas.CloseTag(); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrDictionary(firstPage, span1)))); canvas.ShowText("World"); canvas.CloseTag(); canvas.EndText(); canvas.Release(); PdfPage secondPage = document.AddNewPage(); PdfLinkAnnotation linkExplicitDest = new PdfLinkAnnotation(new Rectangle(35, 785, 160, 15)); secondPage.AddAnnotation(linkExplicitDest); document.Close(); NUnit.Framework.Assert.IsTrue(CheckParentTree(outFile, cmpFile)); }
public virtual void DestTest01() { String srcFile = sourceFolder + "simpleNoLinks.pdf"; String outFile = destinationFolder + "destTest01.pdf"; String cmpFile = sourceFolder + "cmp_destTest01.pdf"; PdfDocument document = new PdfDocument(new PdfReader(srcFile), new PdfWriter(outFile)); PdfPage firstPage = document.GetPage(1); PdfLinkAnnotation linkExplicitDest = new PdfLinkAnnotation(new Rectangle(35, 785, 160, 15)); linkExplicitDest.SetAction(PdfAction.CreateGoTo(PdfExplicitDestination.CreateFit(document.GetPage(2)))); firstPage.AddAnnotation(linkExplicitDest); PdfLinkAnnotation linkStringDest = new PdfLinkAnnotation(new Rectangle(35, 760, 160, 15)); PdfExplicitDestination destToPage3 = PdfExplicitDestination.CreateFit(document.GetPage(3)); String stringDest = "thirdPageDest"; document.AddNamedDestination(stringDest, destToPage3.GetPdfObject()); linkStringDest.SetAction(PdfAction.CreateGoTo(new PdfStringDestination(stringDest))); firstPage.AddAnnotation(linkStringDest); document.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFile, cmpFile, destinationFolder, "diff_" )); }
private static PdfCanvas AddBasicContent(PdfPage pdfPage, PdfFont font) { Rectangle lineAnnotRect = new Rectangle(0, 0, PageSize.A4.GetRight(), PageSize.A4.GetTop()); pdfPage.AddAnnotation(new PdfLinkAnnotation(new Rectangle(100, 600, 100, 20)).SetAction(PdfAction.CreateURI ("http://itextpdf.com"))).AddAnnotation(new PdfLineAnnotation(lineAnnotRect, new float[] { lineAnnotRect .GetX(), lineAnnotRect.GetY(), lineAnnotRect.GetRight(), lineAnnotRect.GetTop() }).SetColor(ColorConstants .BLACK)); PdfCanvas canvas = new PdfCanvas(pdfPage); canvas.Rectangle(100, 100, 100, 100).Fill(); canvas.SaveState().BeginText().SetTextMatrix(AffineTransform.GetRotateInstance(Math.PI / 4, 36, 350)).SetFontAndSize (font, 72).ShowText("Hello Helvetica!").EndText().RestoreState(); return(canvas); }
public virtual void StructureDestination01Test() { String srcFile = sourceFolder + "customRolesMappingPdf2.pdf"; String outFile = destinationFolder + "structureDestination01Test.pdf"; String cmpFile = sourceFolder + "cmp_structureDestination01Test.pdf"; PdfDocument document = new PdfDocument(new PdfReader(srcFile), new PdfWriter(outFile)); PdfStructElem imgElement = new PdfStructElem((PdfDictionary)document.GetPdfObject(13)); PdfStructureDestination dest = PdfStructureDestination.CreateFit(imgElement); PdfPage secondPage = document.AddNewPage(); PdfLinkAnnotation linkExplicitDest = new PdfLinkAnnotation(new Rectangle(35, 785, 160, 15)); linkExplicitDest.SetAction(PdfAction.CreateGoTo(dest)); secondPage.AddAnnotation(linkExplicitDest); document.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFile, cmpFile, destinationFolder, "diff_" )); }
public virtual void StructElemTest05() { FileStream fos = new FileStream(destinationFolder + "structElemTest05.pdf", FileMode.Create); PdfWriter writer = new PdfWriter(fos); writer.SetCompressionLevel(CompressionConstants.NO_COMPRESSION); PdfDocument document = new PdfDocument(writer); document.SetTagged(); PdfStructElem doc = document.GetStructTreeRoot().AddKid(new PdfStructElem(document, PdfName.Document)); PdfPage page = document.AddNewPage(); PdfCanvas canvas = new PdfCanvas(page); canvas.BeginText(); canvas.SetFontAndSize(PdfFontFactory.CreateFont(FontConstants.COURIER), 14); canvas.SetTextMatrix(1, 0, 0, 1, 32, 512); PdfStructElem paragraph = doc.AddKid(new PdfStructElem(document, PdfName.P)); PdfStructElem span1 = paragraph.AddKid(new PdfStructElem(document, PdfName.Span, page)); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrNumber(page, span1)))); canvas.ShowText("Click "); canvas.CloseTag(); PdfStructElem link = paragraph.AddKid(new PdfStructElem(document, PdfName.Link, page)); canvas.OpenTag(new CanvasTag(link.AddKid(new PdfMcrNumber(page, link)))); canvas.SetFillColorRgb(0, 0, 1).ShowText("here"); PdfLinkAnnotation linkAnnotation = new PdfLinkAnnotation(new Rectangle(80, 508, 40, 18)); linkAnnotation.SetColor(new float[] { 0, 0, 1 }).SetBorder(new PdfArray(new float[] { 0, 0, 1 })); page.AddAnnotation(-1, linkAnnotation, false); link.AddKid(new PdfObjRef(linkAnnotation, link)); canvas.CloseTag(); PdfStructElem span2 = paragraph.AddKid(new PdfStructElem(document, PdfName.Span, page)); canvas.OpenTag(new CanvasTag(span2.AddKid(new PdfMcrNumber(page, span2)))); canvas.SetFillColorRgb(0, 0, 0); canvas.ShowText(" to visit iText site."); canvas.CloseTag(); canvas.EndText(); canvas.Release(); document.Close(); CompareResult("structElemTest05.pdf", "cmp_structElemTest05.pdf", "diff_structElem_05_"); }