Class PdfIndirectReference

java.lang.Object
com.itextpdf.kernel.pdf.PdfObject
com.itextpdf.kernel.pdf.PdfIndirectReference
All Implemented Interfaces:
Comparable<PdfIndirectReference>

public class PdfIndirectReference extends PdfObject implements Comparable<PdfIndirectReference>
  • Field Details

    • objNr

      protected final int objNr
      Object number.
    • genNr

      protected int genNr
      Object generation.
    • refersTo

      protected PdfObject refersTo
      PdfObject that current PdfIndirectReference instance refers to.
    • objectStreamNumber

      protected int objectStreamNumber
      Indirect reference number of object stream containing refersTo object. If refersTo is not placed into object stream - objectStreamNumber = 0.
    • offsetOrIndex

      protected long offsetOrIndex
      Offset in a document of the refersTo object. If the object placed into object stream then it is an object index inside object stream.
    • pdfDocument

      protected PdfDocument pdfDocument
      PdfDocument object belongs to. For direct objects it is null.
  • Constructor Details

    • PdfIndirectReference

      protected PdfIndirectReference (PdfDocument doc, int objNr)
    • PdfIndirectReference

      protected PdfIndirectReference (PdfDocument doc, int objNr, int genNr)
    • PdfIndirectReference

      protected PdfIndirectReference (PdfDocument doc, int objNr, int genNr, long offset)
  • Method Details

    • getObjNumber

      public int getObjNumber()
    • getGenNumber

      public int getGenNumber()
    • getRefersTo

      public PdfObject getRefersTo()
    • getRefersTo

      public PdfObject getRefersTo (boolean recursively)
      Gets direct object and try to resolve indirects chain.

      Note: If chain of references has length of more than 32, this method return 31st reference in chain.

      Parameters:
      recursively - true to resolve indirects chain
      Returns:
      the PdfObject result of indirect reference resolving
    • setRefersTo

      protected void setRefersTo (PdfObject refersTo)
    • getObjStreamNumber

      public int getObjStreamNumber()
    • getOffset

      public long getOffset()
      Gets refersTo object offset in a document.
      Returns:
      object offset in a document. If refersTo object is in object stream then -1.
    • getIndex

      public int getIndex()
      Gets refersTo object index in the object stream.
      Returns:
      object index in a document. If refersTo object is not in object stream then -1.
    • equals

      public boolean equals (Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • compareTo

      public int compareTo (PdfIndirectReference o)
      Specified by:
      compareTo in interface Comparable<PdfIndirectReference>
    • getType

      public byte getType()
      Description copied from class: PdfObject
      Gets object type.
      Specified by:
      getType in class PdfObject
      Returns:
      object type.
    • getDocument

      public PdfDocument getDocument()
    • setFree

      public void setFree()
      Marks indirect reference as free in the document. This doesn't "remove" indirect objects from the document, it only ensures that corresponding xref entry is free and indirect object referred by this reference is no longer linked to it. Actual object still might be written to the resultant document (and would get a new corresponding indirect reference in this case) if it is still contained in some other object.

      This method will not give any result if the corresponding indirect object or another object that contains a reference to this object is already flushed.

      Note: in some cases, removing a link of indirect object to it's indirect reference while leaving the actual object in the document structure might lead to errors, because some objects are expected to always have such explicit link (e.g. Catalog object, page objects, etc).

    • isFree

      public boolean isFree()
      Checks if this PdfIndirectReference instance corresponds to free indirect reference. Indirect reference might be in a free state either because it was read as such from the opened existing PDF document or because it was set free via setFree() method.
      Returns:
      true if this PdfIndirectReference is free, false otherwise.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getWriter

      protected PdfWriter getWriter()
      Gets a PdfWriter associated with the document object belongs to.
      Returns:
      PdfWriter.
    • getReader

      protected PdfReader getReader()
      Gets a PdfReader associated with the document object belongs to.
      Returns:
      PdfReader.
    • newInstance

      protected PdfObject newInstance()
      Description copied from class: PdfObject
      Creates new instance of object.
      Specified by:
      newInstance in class PdfObject
      Returns:
      new instance of object.
    • copyContent

      protected void copyContent (PdfObject from, PdfDocument document, ICopyFilter copyFilter)
      Description copied from class: PdfObject
      Copies object content from object 'from'.
      Overrides:
      copyContent in class PdfObject
      Parameters:
      from - object to copy content from.
      document - document to copy object to.
      copyFilter - ICopyFilter a filter that will apply on dictionaries and array Use NullCopyFilter for no filtering
    • copyContent

      protected void copyContent (PdfObject from, PdfDocument document)
      Description copied from class: PdfObject
      Copies object content from object 'from'.
      Overrides:
      copyContent in class PdfObject
      Parameters:
      from - object to copy content from.
      document - document to copy object to.
    • setState

      protected PdfObject setState (short state)
      Sets special states of current object.
      Overrides:
      setState in class PdfObject
      Parameters:
      state - special flag of current object
      Returns:
      this PdfObject