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));
 }
Пример #2
0
 /// <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));
 }
Пример #3
0
 internal virtual Object SaveAssociatedObjectForWaitingTag(Object associatedObj, PdfStructElem structElem)
 {
     associatedObjToWaitingTag.Put(associatedObj, structElem);
     return(waitingTagToAssociatedObj.Put(structElem.GetPdfObject(), associatedObj));
 }
Пример #4
0
        private void RemoveOldRoot(PdfStructElem oldRoot)
        {
            TagTreePointer tagPointer = new TagTreePointer(document);

            tagPointer.SetCurrentStructElem(oldRoot).RemoveTag();
        }
Пример #5
0
        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_");
        }
Пример #6
0
 /// <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);
 }
Пример #7
0
 internal virtual void SaveConnectionBetweenStructAndModel(IAccessibleElement element, PdfStructElem structElem
                                                           )
 {
     connectedModelToStruct[element] = structElem;
     connectedStructToModel[structElem.GetPdfObject()] = element;
 }
Пример #8
0
 private PdfStructElem AddNewKid(PdfStructElem kid)
 {
     return(GetCurrentStructElem().AddKid(GetNextNewKidPosition(), kid));
 }
Пример #9
0
 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;
 }
Пример #12
0
 internal TagTreePointer(PdfStructElem structElem, PdfDocument document)
 {
     tagStructureContext = document.GetTagStructureContext();
     SetCurrentStructElem(structElem);
 }
Пример #13
0
 private PdfStructElem AddNewKid(PdfStructElem kid)
 {
     return(GetCurrentElemEnsureIndirect().AddKid(GetNextNewKidPosition(), kid));
 }
Пример #14
0
 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));
 }
Пример #16
0
 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));
 }