public virtual void StructElemTest03() { PdfWriter writer = new PdfWriter(destinationFolder + "structElemTest03.pdf"); writer.SetCompressionLevel(CompressionConstants.NO_COMPRESSION); PdfDocument document = new PdfDocument(writer); document.SetTagged(); document.GetStructTreeRoot().GetRoleMap().Put(new PdfName("Chunk"), PdfName.Span); PdfStructElem doc = document.GetStructTreeRoot().AddKid(new PdfStructElem(document, PdfName.Document)); PdfPage page1 = document.AddNewPage(); PdfCanvas canvas = new PdfCanvas(page1); 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, page1)); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrNumber(page1, span1)))); canvas.ShowText("Hello "); canvas.CloseTag(); PdfStructElem span2 = paragraph.AddKid(new PdfStructElem(document, new PdfName("Chunk"), page1)); canvas.OpenTag(new CanvasTag(span2.AddKid(new PdfMcrNumber(page1, span2)))); canvas.ShowText("World"); canvas.CloseTag(); canvas.EndText(); canvas.Release(); PdfPage page2 = document.AddNewPage(); canvas = new PdfCanvas(page2); canvas.BeginText(); canvas.SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA), 24); canvas.SetTextMatrix(1, 0, 0, 1, 32, 512); paragraph = doc.AddKid(new PdfStructElem(document, PdfName.P)); span1 = paragraph.AddKid(new PdfStructElem(document, PdfName.Span, page2)); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrNumber(page2, span1)))); canvas.ShowText("Hello "); canvas.CloseTag(); span2 = paragraph.AddKid(new PdfStructElem(document, new PdfName("Chunk"), page2)); canvas.OpenTag(new CanvasTag(span2.AddKid(new PdfMcrNumber(page2, span2)))); canvas.ShowText("World"); canvas.CloseTag(); canvas.EndText(); canvas.Release(); page1.Flush(); page2.Flush(); document.Close(); document = new PdfDocument(new PdfReader(destinationFolder + "structElemTest03.pdf")); NUnit.Framework.Assert.AreEqual(2, (int)document.GetNextStructParentIndex()); PdfPage page = document.GetPage(1); NUnit.Framework.Assert.AreEqual(0, page.GetStructParentIndex()); NUnit.Framework.Assert.AreEqual(2, page.GetNextMcid()); document.Close(); }