Class PdfWriter.PdfBody

  • Enclosing class:
    PdfWriter

    static class PdfWriter.PdfBody
    extends java.lang.Object
    This class generates the structure of a PDF document.

    This class covers the third section of Chapter 5 in the 'Portable Document Format Reference Manual version 1.3' (page 55-60). It contains the body of a PDF document (section 5.14) and it can also generate a Cross-reference Table (section 5.15).

    See Also:
    PdfWriter, PdfObject, PdfIndirectObject
    • Field Detail

      • xrefs

        private final java.util.TreeSet xrefs
        array containing the cross-reference table of the normal objects.
      • refnum

        private int refnum
      • position

        private int position
        the current byte position in the body.
      • currentObjNum

        private int currentObjNum
      • numObj

        private int numObj
    • Constructor Detail

      • PdfBody

        PdfBody​(PdfWriter writer)
        Constructs a new PdfBody.
        Parameters:
        writer -
    • Method Detail

      • setRefnum

        void setRefnum​(int refnum)
      • flushObjStm

        private void flushObjStm()
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • add

        PdfIndirectObject add​(PdfObject object)
                       throws java.io.IOException
        Adds a PdfObject to the body.

        This methods creates a PdfIndirectObject with a certain number, containing the given PdfObject. It also adds a PdfCrossReference for this object to an ArrayList that will be used to build the Cross-reference Table.

        Parameters:
        object - a PdfObject
        Returns:
        a PdfIndirectObject
        Throws:
        java.io.IOException
      • add

        private PdfIndirectObject add​(PdfObject object,
                                      boolean inObjStm)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • getPdfIndirectReference

        PdfIndirectReference getPdfIndirectReference()
        Gets a PdfIndirectReference for an object that will be created in the future.
        Returns:
        a PdfIndirectReference
      • getIndirectReferenceNumber

        int getIndirectReferenceNumber()
      • add

        PdfIndirectObject add​(PdfObject object,
                              PdfIndirectReference ref)
                       throws java.io.IOException
        Adds a PdfObject to the body given an already existing PdfIndirectReference.

        This methods creates a PdfIndirectObject with the number given by ref, containing the given PdfObject. It also adds a PdfCrossReference for this object to an ArrayList that will be used to build the Cross-reference Table.

        Parameters:
        object - a PdfObject
        ref - a PdfIndirectReference
        Returns:
        a PdfIndirectObject
        Throws:
        java.io.IOException
      • add

        private PdfIndirectObject add​(PdfObject object,
                                      int refNumber)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • add

        private PdfIndirectObject add​(PdfObject object,
                                      int refNumber,
                                      boolean inObjStm)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • offset

        int offset()
        Returns the offset of the Cross-Reference table.
        Returns:
        an offset
      • size

        int size()
        Returns the total number of objects contained in the CrossReferenceTable of this Body.
        Returns:
        a number of objects
      • writeCrossReferenceTable

        void writeCrossReferenceTable​(java.io.OutputStream os,
                                      PdfIndirectReference root,
                                      PdfIndirectReference info,
                                      PdfIndirectReference encryption,
                                      PdfObject fileID,
                                      int prevxref)
                               throws java.io.IOException
        Returns the CrossReferenceTable of the Body.
        Parameters:
        os -
        root -
        info -
        encryption -
        fileID -
        prevxref -
        Throws:
        java.io.IOException