Class PdfWriter.PdfBody

  • Enclosing class:
    PdfWriter

    public 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

      • refnum

        protected int refnum
      • position

        protected long position
        the current byte position in the body.
      • streamObjects

        protected ByteBuffer streamObjects
      • currentObjNum

        protected int currentObjNum
      • numObj

        protected int numObj
    • Constructor Detail

      • PdfBody

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

      • setRefnum

        void setRefnum​(int refnum)
      • flushObjStm

        public 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
      • getPdfIndirectReference

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

        protected 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

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

        protected void write​(PdfIndirectObject indirect,
                             int refNumber)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • write

        protected void write​(PdfIndirectObject indirect,
                             int refNumber,
                             int generation)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • offset

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

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

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