public virtual void CreatePdf(String dest) { //Initialize PDF document PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); PdfPage page = pdf.AddNewPage(); PdfCanvas pdfCanvas = new PdfCanvas(page); Rectangle rectangle = new Rectangle(36, 650, 100, 100); pdfCanvas.Rectangle(rectangle); pdfCanvas.Stroke(); iText.Layout.Canvas canvas1 = new iText.Layout.Canvas(pdfCanvas, rectangle); PdfFont font = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN); PdfFont bold = PdfFontFactory.CreateFont(StandardFonts.TIMES_BOLD); Text title = new Text("The Strange Case of Dr. Jekyll and Mr. Hyde").SetFont(bold); Text author = new Text("Robert Louis Stevenson").SetFont(font); Paragraph p = new Paragraph().Add(title).Add(" by ").Add(author); canvas1.Add(p); PdfPage page2 = pdf.AddNewPage(); PdfCanvas pdfCanvas2 = new PdfCanvas(page2); iText.Layout.Canvas canvas2 = new iText.Layout.Canvas(pdfCanvas2, rectangle); canvas2.Add(new Paragraph("Dr. Jekyll and Mr. Hyde")); PdfPage page1 = pdf.GetFirstPage(); PdfCanvas pdfCanvas1 = new PdfCanvas(page1.NewContentStreamBefore(), page1.GetResources(), pdf); rectangle = new Rectangle(100, 700, 100, 100); pdfCanvas1.SaveState().SetFillColor(ColorConstants.CYAN).Rectangle(rectangle).Fill().RestoreState(); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas1, rectangle); canvas.Add(new Paragraph("Dr. Jekyll and Mr. Hyde")); //Close document pdf.Close(); }
public virtual void CheckIfOcgForPdfA2Works() { String fileName = "createdOcgPdfA.pdf"; Stream colorStream = new FileStream(sourceFolder + "color/sRGB_CS_profile.icm", FileMode.Open, FileAccess.Read ); String outFileName = destinationFolder + fileName; String cmpFileName = sourceFolder + "cmp/PdfA2LayoutOcgTest/cmp_" + fileName; PdfDocument pdfDoc = new PdfADocument(new PdfWriter(outFileName), PdfAConformanceLevel.PDF_A_2A, new PdfOutputIntent ("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", colorStream)); pdfDoc.SetTagged(); pdfDoc.GetCatalog().SetLang(new PdfString("en-US")); pdfDoc.AddNewPage(); iText.Layout.Element.Image image1 = new Image(ImageDataFactory.Create(sourceFolder + "images/manualTransparency_for_png.png" )); PdfCanvas pdfCanvas = new PdfCanvas(pdfDoc, 1); iText.Layout.Canvas canvas1 = new iText.Layout.Canvas(pdfCanvas, pdfDoc, new Rectangle(0, 0, 590, 420)); PdfLayer imageLayer1 = new PdfLayer("*[email protected]", pdfDoc); imageLayer1.SetOn(true); pdfCanvas.BeginLayer(imageLayer1); canvas1.Add(image1); pdfCanvas.EndLayer(); canvas1.Close(); pdfDoc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder , "diff01_")); }
private void DrawSimulatedDiv(PdfPage page, IDictionary <int, Object> styles, float[] margins, bool drawBackground , int pageNumber, bool recalculateBodyAreaForContentSize) { Div pageBordersSimulation = new Div().SetFillAvailableArea(true); foreach (KeyValuePair <int, Object> entry in styles) { if ((entry.Key == Property.BACKGROUND || entry.Key == Property.BACKGROUND_IMAGE) && !drawBackground) { continue; } pageBordersSimulation.SetProperty(entry.Key, entry.Value); } pageBordersSimulation.GetAccessibilityProperties().SetRole(StandardRoles.ARTIFACT); Rectangle backgroundArea = new Rectangle(page.GetTrimBox()).ApplyMargins(margins[0], margins[1], margins[2 ], margins[3], false); if (recalculateBodyAreaForContentSize) { if (pageStylesPropertiesMap.Get(pageNumber).lowestAndHighest == null) { return; } HtmlBodyStylesApplierHandler.LowestAndHighest lowestAndHighest = pageStylesPropertiesMap.Get(pageNumber).lowestAndHighest; RecalculateBackgroundAreaForBody(backgroundArea, pageBordersSimulation, lowestAndHighest); } if (pdfCanvas == null) { pdfCanvas = new PdfCanvas(page.NewContentStreamBefore(), page.GetResources(), page.GetDocument()); } iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, backgroundArea); canvas.EnableAutoTagging(page); canvas.Add(pageBordersSimulation); canvas.Close(); }
public virtual void PrecisionTest01() { String outFileName = destinationFolder + "precisionTest01.pdf"; String cmpFileName = sourceFolder + "cmp_precisionTest01.pdf"; String imageFileName = sourceFolder + "LOGO_PDF_77.jpg"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outFileName)); PdfPage page = pdfDoc.AddNewPage(); PdfCanvas currentPdfCanvas = new PdfCanvas(page); Rectangle rc = new Rectangle(56.6929131f, 649.13385f, 481.889771f, 136.062988f); iText.Layout.Canvas canvas = new iText.Layout.Canvas(currentPdfCanvas, pdfDoc, rc); Table table = new Table(UnitValue.CreatePointArray(new float[] { 158f })); table.SetTextAlignment(TextAlignment.LEFT); iText.Layout.Element.Image logoImage = new iText.Layout.Element.Image(ImageDataFactory.Create(imageFileName )); Paragraph p = new Paragraph().Add(logoImage.SetAutoScale(true)); Cell cell = new Cell(); cell.SetKeepTogether(true); cell.Add(p); table.AddCell(cell.SetHeight(85.03937f).SetVerticalAlignment(VerticalAlignment.TOP).SetPadding(0)); canvas.Add(table); pdfDoc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder , "diff")); }
public virtual void CreatePdf(String dest) { // Initialize PDF document PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); // Initialize document PdfPage page = pdf.AddNewPage(); PdfCanvas pdfCanvas = new PdfCanvas(page); Rectangle rectangle = new Rectangle(36, 36, 523, 770); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, rectangle); Paragraph p; p = new Paragraph("Testing font methods"); canvas.Add(p); PdfFont font = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN); canvas.SetFont(font); p = new Paragraph("Testing font methods: changed font"); canvas.Add(p); canvas.SetFontSize(18); p = new Paragraph("Testing font methods: changed font size"); canvas.Add(p); canvas.SetFontColor(ColorConstants.BLUE); p = new Paragraph("Testing font methods: changed color"); canvas.Add(p); canvas.SetBold(); p = new Paragraph("Testing font methods: to bold"); canvas.Add(p); canvas.SetItalic(); p = new Paragraph("Testing font methods: to italic"); canvas.Add(p); canvas.SetProperty(Property.BOLD_SIMULATION, false); canvas.SetProperty(Property.ITALIC_SIMULATION, false); canvas.SetProperty(Property.FONT_COLOR, null); p = new Paragraph("Testing font methods: resetting style and color"); canvas.Add(p); canvas.SetLineThrough(); p = new Paragraph("Testing font methods: line through (default)"); canvas.Add(p); canvas.SetProperty(Property.UNDERLINE, null); canvas.SetUnderline(); p = new Paragraph("Testing font methods: underline (default)"); canvas.Add(p); canvas.SetProperty(Property.UNDERLINE, null); canvas.SetUnderline(2, 4); canvas.SetUnderline(ColorConstants.BLUE, 5, 0.1f, 2, -0.5f, PdfCanvasConstants.LineCapStyle.ROUND); p = new Paragraph("Testing font methods: underline (custom)"); canvas.Add(p); canvas.SetProperty(Property.UNDERLINE, null); canvas.SetTextRenderingMode(PdfCanvasConstants.TextRenderingMode.STROKE); p = new Paragraph("Testing font methods: change text rendering mode"); canvas.Add(p); canvas.SetStrokeWidth(0.1f); canvas.SetStrokeColor(ColorConstants.BLUE); p = new Paragraph("Testing font methods: change stroke width and color"); canvas.Add(p); //Close document pdf.Close(); }
public virtual void HandleEvent(Event @event) { PdfDocumentEvent docEvent = (PdfDocumentEvent)@event; PdfDocument pdf = docEvent.GetDocument(); PdfPage page = docEvent.GetPage(); PdfCanvas pdfCanvas = new PdfCanvas(page); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, page.GetPageSize()); canvas.Add(new Paragraph().Add(docEvent.GetEventType())); }
/// <summary>Draws page border.</summary> /// <param name="page">the page</param> private void DrawPageBorders(PdfPage page) { if (pageBordersSimulation == null) { return; } iText.Layout.Canvas canvas = new iText.Layout.Canvas(new PdfCanvas(page), page.GetTrimBox()); canvas.EnableAutoTagging(page); canvas.Add(pageBordersSimulation); canvas.Close(); }
public virtual void CanvasImmediateFlushConstructorTest() { PdfDocument pdf = new PdfDocument(new PdfWriter(new ByteArrayOutputStream())); PdfPage page = pdf.AddNewPage(); PdfCanvas pdfCanvas = new PdfCanvas(page.GetLastContentStream(), page.GetResources(), pdf); Rectangle rectangle = new Rectangle(0, 0); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, rectangle, false); NUnit.Framework.Assert.AreEqual(pdfCanvas.GetDocument(), canvas.GetPdfDocument()); NUnit.Framework.Assert.IsFalse(canvas.immediateFlush); }
/// <summary>Draws page background and borders.</summary> /// <param name="page">the page</param> private void DrawPageBackgroundAndBorders(PdfPage page) { iText.Layout.Canvas canvas = new iText.Layout.Canvas(new PdfCanvas(page), page.GetBleedBox()); canvas.EnableAutoTagging(page); canvas.Add(pageBackgroundSimulation); canvas.Close(); canvas = new iText.Layout.Canvas(new PdfCanvas(page), page.GetTrimBox()); canvas.EnableAutoTagging(page); canvas.Add(pageBordersSimulation); canvas.Close(); }
/// <summary>Draws page background.</summary> /// <param name="page">the page</param> /// <returns>pdfCanvas instance if there was a background to draw, otherwise returns null</returns> internal virtual PdfCanvas DrawPageBackground(PdfPage page) { PdfCanvas pdfCanvas = null; if (pageBackgroundSimulation != null) { pdfCanvas = new PdfCanvas(page.NewContentStreamBefore(), page.GetResources(), page.GetDocument()); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, page.GetBleedBox()); canvas.EnableAutoTagging(page); canvas.Add(pageBackgroundSimulation); canvas.Close(); } return(pdfCanvas); }
private static void AddParaWithImgSetOverflowX(iText.Layout.Canvas canvas, OverflowPropertyValue?overflowX ) { String imgPath = sourceFolder + "itis.jpg"; iText.Layout.Element.Image img = new iText.Layout.Element.Image(ImageDataFactory.Create(imgPath)); Paragraph p = new Paragraph().SetTextAlignment(TextAlignment.CENTER).SetHeight(150f).SetWidth(150f).SetBorder (new SolidBorder(5f)); p.SetProperty(Property.OVERFLOW_X, overflowX); p.SetProperty(Property.OVERFLOW_Y, OverflowPropertyValue.HIDDEN); img.SetProperty(Property.OVERFLOW_X, OverflowPropertyValue.VISIBLE); img.SetProperty(Property.OVERFLOW_Y, OverflowPropertyValue.VISIBLE); canvas.Add(p.Add(img)); }
public virtual void OverflowVisibleOnCanvasTest02() { String outFileName = destinationFolder + "overflowVisibleOnCanvasTest02.pdf"; String cmpFileName = sourceFolder + "cmp_overflowVisibleOnCanvasTest02.pdf"; PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName)); PdfPage page = pdfDocument.AddNewPage(); iText.Layout.Canvas canvas = new iText.Layout.Canvas(page, page.GetPageSize().Clone().ApplyMargins(36, 36, 36, 36, false)); AddParaWithImgSetOverflowX(canvas, OverflowPropertyValue.VISIBLE); canvas.Close(); pdfDocument.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder , "diff")); }
public virtual void CanvasWithPageLinkTest() { String testName = "canvasWithPageLinkTest"; String @out = destinationFolder + testName + ".pdf"; String cmp = sourceFolder + "cmp_" + testName + ".pdf"; PdfDocument pdf = new PdfDocument(new PdfWriter(@out)); PdfPage page = pdf.AddNewPage(); Rectangle pageSize = page.GetPageSize(); Rectangle rectangle = new Rectangle(pageSize.GetX() + 36, pageSize.GetTop() - 80, pageSize.GetWidth() - 72 , 50); iText.Layout.Canvas canvas = new iText.Layout.Canvas(page, rectangle); canvas.Add(new Paragraph(new Link("Google link!", PdfAction.CreateURI("https://www.google.com")).SetUnderline ().SetFontColor(ColorConstants.BLUE))); canvas.Close(); pdf.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, destinationFolder)); }
private void AddTextToCanvas(String text, PdfFont font, Rectangle dataRect) { PdfCanvas canvas; canvas = new PdfCanvas(n2, document); Paragraph paragraph = new Paragraph(text).SetFont(font).SetMargin(0).SetMultipliedLeading(0.9f); iText.Layout.Canvas layoutCanvas = new iText.Layout.Canvas(canvas, document, dataRect); if (layer2FontSize == 0) { ApplyCopyFittingFontSize(paragraph, dataRect, layoutCanvas.GetRenderer()); } else { paragraph.SetFontSize(layer2FontSize); } layoutCanvas.Add(paragraph); }
public virtual void ShowTextAlignedTest03() { String outFileName = destinationFolder + "showTextAlignedTest03.pdf"; String cmpFileName = sourceFolder + "cmp_showTextAlignedTest03.pdf"; PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outFileName)); Document doc = new Document(pdfDoc); iText.Layout.Element.Image img = new Image(ImageDataFactory.Create(sourceFolder + "bruno.jpg")); float width = img.GetImageScaledWidth(); float height = img.GetImageScaledHeight(); PdfFormXObject template = new PdfFormXObject(new Rectangle(width, height)); iText.Layout.Canvas canvas = new iText.Layout.Canvas(template, pdfDoc); canvas.Add(img).ShowTextAligned("HELLO BRUNO", width / 2, height / 2, TextAlignment.CENTER); doc.Add(new iText.Layout.Element.Image(template)); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder , "diff")); }
public virtual void ParentElemWithAbsolPositionKidNotSuitCanvasTest() { String testName = "parentElemWithAbsolPositionKidNotSuitCanvas"; 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")); canvas.Add(notFittingDiv); Div divWithPosition = new Div().SetFixedPosition(120, 300, 80); divWithPosition.Add(new Paragraph("Paragraph in Div with set position")); canvas.Add(divWithPosition); canvas.Close(); } NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, destinationFolder)); }
public void HandleEvent(iText.Kernel.Events.Event @event) { PdfDocumentEvent docEvent = (PdfDocumentEvent)@event; PdfPage page = docEvent.GetPage(); PdfCanvas pdfCanvas = new PdfCanvas(page); Rectangle pageSize = page.GetPageSize(); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, pageSize); Paragraph headerP = new Paragraph(); foreach (IElement elem in elements) { if (elem is IBlockElement) { headerP.Add((IBlockElement)elem); } else { if (elem is Image) { headerP.Add((Image)elem); } } } Paragraph footerP = new Paragraph(); foreach (IElement elem in footer) { if (elem is IBlockElement) { footerP.Add((IBlockElement)elem); } else { if (elem is Image) { footerP.Add((Image)elem); } } } canvas.ShowTextAligned(headerP, pageSize.GetWidth() / 2, pageSize.GetTop() - 30, TextAlignment.LEFT); canvas.ShowTextAligned(footerP, 0, 0, TextAlignment.LEFT); }
public virtual void CreatePdf(String dest) { //Initialize PDF document PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); PdfPage page = pdf.AddNewPage(); PdfCanvas pdfCanvas = new PdfCanvas(page); Rectangle rectangle = new Rectangle(36, 650, 100, 100); pdfCanvas.Rectangle(rectangle); pdfCanvas.Stroke(); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, rectangle); PdfFont font = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN); PdfFont bold = PdfFontFactory.CreateFont(StandardFonts.TIMES_BOLD); Text title = new Text("The Strange Case of Dr. Jekyll and Mr. Hyde").SetFont(bold); Text author = new Text("Robert Louis Stevenson").SetFont(font); Paragraph p = new Paragraph().Add(title).Add(" by ").Add(author); canvas.Add(p); //Close document pdf.Close(); }
public virtual void CanvasWithPageEnableTaggingTest02() { String testName = "canvasWithPageEnableTaggingTest02"; String @out = destinationFolder + testName + ".pdf"; String cmp = sourceFolder + "cmp_" + testName + ".pdf"; PdfDocument pdf = new PdfDocument(new PdfWriter(@out)); pdf.SetTagged(); PdfPage page = pdf.AddNewPage(); Rectangle pageSize = page.GetPageSize(); Rectangle rectangle = new Rectangle(pageSize.GetX() + 36, pageSize.GetTop() - 80, pageSize.GetWidth() - 72 , 50); iText.Layout.Canvas canvas = new iText.Layout.Canvas(page, rectangle); // This will disable tagging and also prevent annotations addition. Created tagged document is invalid. Expected log message. canvas.EnableAutoTagging(null); canvas.Add(new Paragraph(new Link("Google link!", PdfAction.CreateURI("https://www.google.com")).SetUnderline ().SetFontColor(ColorConstants.BLUE))); canvas.Close(); pdf.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, destinationFolder)); }
public virtual void CreatePdf(String dest) { // Initialize PDF document PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); PdfPage page = pdf.AddNewPage(); PdfCanvas pdfCanvas = new PdfCanvas(page); Rectangle rectangle = new Rectangle(36, 36, 523, 770); iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, rectangle); Paragraph p; p = new Paragraph("Testing layout methods"); canvas.Add(p); canvas.SetTextAlignment(TextAlignment.CENTER); p = new Paragraph("Testing layout methods"); canvas.Add(p); p = new Paragraph(); for (int i = 0; i < 6; i++) { p.Add("singing supercalifragilisticexpialidocious "); } canvas.Add(p); canvas.SetHyphenation(new HyphenationConfig("en", "uk", 3, 3)); canvas.Add(p); canvas.SetTextAlignment(TextAlignment.JUSTIFIED); canvas.Add(p); canvas.SetHyphenation(null); canvas.SetSplitCharacters(new _ISplitCharacters_62()); canvas.Add(p); canvas.SetSplitCharacters(new DefaultSplitCharacters()); canvas.SetTextAlignment(TextAlignment.LEFT); canvas.Add(p); canvas.SetWordSpacing(10); canvas.Add(p); canvas.SetCharacterSpacing(5); canvas.Add(p); //Close document pdf.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>()) ; }
private void DrawOverlayText(PdfCanvas canvas, String overlayText, Rectangle annotRect, PdfBoolean repeat, PdfString defaultAppearance, int justification) { IDictionary <String, IList> parsedDA; try { parsedDA = ParseDAParam(defaultAppearance); } catch (NullReferenceException) { throw new PdfException(PdfException.DefaultAppearanceNotFound); } PdfFont font; float fontSize = 12; IList fontArgs = parsedDA.Get("Tf"); PdfDictionary formDictionary = pdfDocument.GetCatalog().GetPdfObject().GetAsDictionary(PdfName.AcroForm); if (fontArgs != null && formDictionary != null) { font = GetFontFromAcroForm((PdfName)fontArgs[0]); fontSize = ((PdfNumber)fontArgs[1]).FloatValue(); } else { font = PdfFontFactory.CreateFont(); } if (pdfDocument.IsTagged()) { canvas.OpenTag(new CanvasArtifact()); } iText.Layout.Canvas modelCanvas = new iText.Layout.Canvas(canvas, pdfDocument, annotRect, false); Paragraph p = new Paragraph(overlayText).SetFont(font).SetFontSize(fontSize).SetMargin(0); TextAlignment? textAlignment = TextAlignment.LEFT; switch (justification) { case 1: { textAlignment = TextAlignment.CENTER; break; } case 2: { textAlignment = TextAlignment.RIGHT; break; } default: { break; } } p.SetTextAlignment(textAlignment); IList strokeColorArgs; parsedDA.TryGetValue("StrokeColor", out strokeColorArgs); if (strokeColorArgs != null) { p.SetStrokeColor(GetColor(strokeColorArgs)); } IList fillColorArgs; parsedDA.TryGetValue("FillColor", out fillColorArgs); if (fillColorArgs != null) { p.SetFontColor(GetColor(fillColorArgs)); } modelCanvas.Add(p); if (repeat != null && repeat.GetValue()) { bool?isFull = modelCanvas.GetRenderer().GetPropertyAsBoolean(Property.FULL); while (isFull == null || (bool)!isFull) { p.Add(overlayText); LayoutArea previousArea = modelCanvas.GetRenderer().GetCurrentArea().Clone(); modelCanvas.Relayout(); if (modelCanvas.GetRenderer().GetCurrentArea().Equals(previousArea)) { // Avoid infinite loop. This might be caused by the fact that the font does not support the text we want to show break; } isFull = modelCanvas.GetRenderer().GetPropertyAsBoolean(Property.FULL); } } modelCanvas.GetRenderer().Flush(); if (pdfDocument.IsTagged()) { canvas.CloseTag(); } }