private static iText.Kernel.Pdf.Navigation.PdfStructureDestination Create(PdfStructElem elem, PdfName type , float left, float bottom, float right, float top, float zoom) { return(new iText.Kernel.Pdf.Navigation.PdfStructureDestination().Add(elem).Add(type).Add(left).Add(bottom) .Add(right).Add(top).Add(zoom)); }
/// <summary> /// Creates a new /// <see cref="TagTreePointer"/> /// which points at given /// <see cref="iText.Kernel.Pdf.Tagging.PdfStructElem"/> /// . /// </summary> /// <param name="structElem"> /// a /// <see cref="iText.Kernel.Pdf.Tagging.PdfStructElem"/> /// for which /// <see cref="TagTreePointer"/> /// will be created. /// </param> /// <returns> /// a new /// <see cref="TagTreePointer"/> /// . /// </returns> public virtual TagTreePointer CreatePointerForStructElem(PdfStructElem structElem) { return(new TagTreePointer(structElem, document)); }
internal virtual Object SaveAssociatedObjectForWaitingTag(Object associatedObj, PdfStructElem structElem) { associatedObjToWaitingTag.Put(associatedObj, structElem); return(waitingTagToAssociatedObj.Put(structElem.GetPdfObject(), associatedObj)); }
private void RemoveOldRoot(PdfStructElem oldRoot) { TagTreePointer tagPointer = new TagTreePointer(document); tagPointer.SetCurrentStructElem(oldRoot).RemoveTag(); }
public virtual void StructElemTest04() { MemoryStream baos = new MemoryStream(); PdfWriter writer = new PdfWriter(baos); 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 page = document.AddNewPage(); PdfCanvas canvas = new PdfCanvas(page); 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, page)); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrNumber(page, span1)))); canvas.ShowText("Hello "); canvas.CloseTag(); PdfStructElem span2 = paragraph.AddKid(new PdfStructElem(document, new PdfName("Chunk"), page)); canvas.OpenTag(new CanvasTag(span2.AddKid(new PdfMcrNumber(page, span2)))); canvas.ShowText("World"); canvas.CloseTag(); canvas.EndText(); canvas.Release(); page.Flush(); document.Close(); byte[] bytes = baos.ToArray(); PdfReader reader = new PdfReader(new MemoryStream(bytes)); writer = new PdfWriter(destinationFolder + "structElemTest04.pdf"); writer.SetCompressionLevel(CompressionConstants.NO_COMPRESSION); document = new PdfDocument(reader, writer); page = document.GetPage(1); canvas = new PdfCanvas(page); PdfStructElem p = (PdfStructElem)document.GetStructTreeRoot().GetKids()[0].GetKids()[0]; canvas.BeginText(); canvas.SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.COURIER), 24); canvas.SetTextMatrix(1, 0, 0, 1, 32, 490); //Inserting span between of 2 existing ones. span1 = p.AddKid(1, new PdfStructElem(document, PdfName.Span, page)); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrNumber(page, span1)))); canvas.ShowText("text1"); canvas.CloseTag(); //Inserting span at the end. span1 = p.AddKid(new PdfStructElem(document, PdfName.Span, page)); canvas.OpenTag(new CanvasTag(span1.AddKid(new PdfMcrNumber(page, span1)))); canvas.ShowText("text2"); canvas.CloseTag(); canvas.EndText(); canvas.Release(); page.Flush(); document.Close(); CompareResult("structElemTest04.pdf", "cmp_structElemTest04.pdf", "diff_structElem_04_"); }
/// <summary> /// Moves this /// <see cref="TagTreePointer"/> /// instance to the tag at which given /// <see cref="TagTreePointer"/> /// instance is pointing. /// </summary> /// <param name="tagTreePointer"> /// a /// <see cref="TagTreePointer"/> /// that points at the tag which will become the current tag /// of this instance. /// </param> /// <returns> /// this /// <see cref="TagTreePointer"/> /// instance. /// </returns> public virtual iText.Kernel.Pdf.Tagutils.TagTreePointer MoveToPointer(iText.Kernel.Pdf.Tagutils.TagTreePointer tagTreePointer) { this.currentStructElem = tagTreePointer.currentStructElem; return(this); }
internal virtual void SaveConnectionBetweenStructAndModel(IAccessibleElement element, PdfStructElem structElem ) { connectedModelToStruct[element] = structElem; connectedStructToModel[structElem.GetPdfObject()] = element; }
private PdfStructElem AddNewKid(PdfStructElem kid) { return(GetCurrentStructElem().AddKid(GetNextNewKidPosition(), kid)); }
internal virtual iText.Kernel.Pdf.Tagutils.TagTreePointer SetCurrentStructElem(PdfStructElem structElem) { currentStructElem = structElem; return(this); }
internal override void SetToStructElem(PdfStructElem elem) { }
internal BackedAccessibleProperties(PdfStructElem backingElem) { this.backingElem = backingElem; }
internal TagTreePointer(PdfStructElem structElem, PdfDocument document) { tagStructureContext = document.GetTagStructureContext(); SetCurrentStructElem(structElem); }
private PdfStructElem AddNewKid(PdfStructElem kid) { return(GetCurrentElemEnsureIndirect().AddKid(GetNextNewKidPosition(), kid)); }
internal virtual iText.Kernel.Pdf.Tagutils.TagTreePointer SetCurrentStructElem(PdfStructElem structElem) { if (structElem.GetParent() == null) { throw new PdfException(PdfException.StructureElementShallContainParentObject); } currentStructElem = structElem; return(this); }
public static iText.Kernel.Pdf.Navigation.PdfStructureDestination CreateXYZ(PdfStructElem elem, float left , float top, float zoom) { return(Create(elem, PdfName.XYZ, left, float.NaN, float.NaN, top, zoom)); }
internal virtual IAccessibleElement GetModelConnectedToStruct(PdfStructElem @struct) { return(connectedStructToModel.Get(@struct.GetPdfObject())); }
public static iText.Kernel.Pdf.Navigation.PdfStructureDestination CreateFit(PdfStructElem elem) { return(Create(elem, PdfName.Fit, float.NaN, float.NaN, float.NaN, float.NaN, float.NaN)); }
public static iText.Kernel.Pdf.Navigation.PdfStructureDestination CreateFitR(PdfStructElem elem, float left , float bottom, float right, float top) { return(Create(elem, PdfName.FitR, left, bottom, right, top, float.NaN)); }