## com.lowagie.text.pdf
Class PdfWriter.PdfBody

    java.lang.Object
      com.lowagie.text.pdf.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`

Nested Class Summary
`(package private) static class` `PdfWriter.PdfBody.PdfCrossReference` `PdfCrossReference` is an entry in the PDF Cross-Reference table.

Field Summary
`private int` `currentObjNum`
`private ByteBuffer` `index`
`private int` `numObj`
`private static int` `OBJSINSTREAM`
`private int` `position` the current byteposition in the body.
`private int` `refnum`
`private ByteBuffer` `streamObjects`
`private PdfWriter` `writer`
`private java.util.TreeSet` `xrefs` array containing the cross-reference table of the normal objects.

Constructor Summary
`PdfWriter.PdfBody(PdfWriter writer)` Constructs a new `PdfBody`.

Method Summary
`(package private) PdfIndirectObject` `add(PdfObject object)` Adds a `PdfObject` to the body.
`(package private) PdfIndirectObject` `add(PdfObject object, boolean inObjStm)`
`(package private) PdfIndirectObject` `add(PdfObject object, int refNumber)`
`(package private) PdfIndirectObject` `add(PdfObject object, int refNumber, boolean inObjStm)`
`(package private) PdfIndirectObject` `add(PdfObject object, PdfIndirectReference ref)` Adds a `PdfObject` to the body given an already existing PdfIndirectReference.
`(package private) PdfIndirectObject` `add(PdfObject object, PdfIndirectReference ref, boolean inObjStm)`
`private PdfWriter.PdfBody.PdfCrossReference` `addToObjStm(PdfObject obj, int nObj)`
`private void` `flushObjStm()`
`(package private) int` `getIndirectReferenceNumber()`
`(package private) PdfIndirectReference` `getPdfIndirectReference()` Gets a PdfIndirectReference for an object that will be created in the future.
`(package private) int` `offset()` Returns the offset of the Cross-Reference table.
`(package private) void` `setRefnum(int refnum)`
`(package private) int` `size()` Returns the total number of objects contained in the CrossReferenceTable of this `Body`.
`(package private) void` `writeCrossReferenceTable(java.io.OutputStream os, PdfIndirectReference root, PdfIndirectReference info, PdfIndirectReference encryption, PdfObject fileID, int prevxref)` Returns the CrossReferenceTable of the `Body`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### xrefs

    private java.util.TreeSet xrefs

  array containing the cross-reference table of the normal objects.

### refnum

    private int refnum

### position

    private int position

  the current byteposition in the body.

### writer

    private PdfWriter writer

### OBJSINSTREAM

    private static final int OBJSINSTREAM

See Also:
  Constant Field Values

### index

    private ByteBuffer index

### streamObjects

    private ByteBuffer streamObjects

### currentObjNum

    private int currentObjNum

### numObj

    private int numObj

Constructor Detail

### PdfWriter.PdfBody

    PdfWriter.PdfBody(PdfWriter writer)

  Constructs a new `PdfBody`.

  Parameters:
    `writer` -

Method Detail

### setRefnum

    void setRefnum(int refnum)

### addToObjStm

    private PdfWriter.PdfBody.PdfCrossReference addToObjStm(PdfObject obj,
                                                            int nObj)
                                                     throws java.io.IOException

  Throws:
    `java.io.IOException`

### 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

    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

    PdfIndirectObject add(PdfObject object,
                          PdfIndirectReference ref,
                          boolean inObjStm)
                    throws java.io.IOException

  Throws:
    `java.io.IOException`

### add

    PdfIndirectObject add(PdfObject object,
                          int refNumber)
                    throws java.io.IOException

  Throws:
    `java.io.IOException`

### add

    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`