gnu.jpdf
Class PDFDocument

java.lang.Object
  extended by gnu.jpdf.PDFDocument
All Implemented Interfaces:
java.io.Serializable

public class PDFDocument
extends java.lang.Object
implements java.io.Serializable

This class is the base of the PDF generator. A PDFDocument class is created for a document, and each page, object, annotation, etc is added to the document. Once complete, the document can be written to an OutputStream, and the PDF document's internal structures are kept in sync.

Note that most programmers using this package will NEVER access one of these objects directly. Most everything can be done using PDFJob and PDFGraphics, so you don't need to directly instantiate a PDFDocument

ezb - 20011115 - Wondering if the constructors should even be public. When would someone want to make one of these and manipulate it outside the context of a job and graphics object?

See Also:
Serialized Form

Field Summary
protected  PDFObject defaultOutlineBorder
          This holds a PDFObject describing the default border for annotations.
static int FULLSCREEN
           This page mode indicates that when the document is opened, it is displayed in full-screen-mode.
protected  java.util.Vector objects
          This vector contains each indirect object within the document.
protected  int objser
          This is used to allocate objects a unique serial number in the document.
static java.lang.String[] PDF_PAGE_MODES
           These map the page modes just defined to the pagemodes setting of PDF.
static int USENONE
          This page mode indicates that the document should be opened just with the page visible.
static int USEOUTLINES
          This page mode indicates that the Outlines should also be displayed when the document is opened.
static int USETHUMBS
          This page mode indicates that the Thumbnails should be visible when the document first opens.
 
Constructor Summary
PDFDocument()
          This creates a PDF document with the default pagemode
PDFDocument(int pagemode)
          This creates a PDF document
 
Method Summary
 int add(PDFObject obj)
          This adds a top level object to the document.
 PDFFont getFont(java.lang.String type, java.lang.String font, int style)
          This returns a font of the specified type and font.
 PDFOutline getOutline()
           
 PDFPage getPage(int page)
          This returns a specific page.
 PDFInfo getPDFInfo()
          Get the PDFInfo object, which contains author, title, keywords, etc
 java.lang.String setImageName(PDFImage img)
          Sets a unique name to a PDFImage
 void setPDFInfo(PDFInfo info)
          Set the PDFInfo object, which contains author, title, keywords, etc
 void write(java.io.OutputStream os)
          This writes the document to an OutputStream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

objser

protected int objser
This is used to allocate objects a unique serial number in the document.


objects

protected java.util.Vector objects
This vector contains each indirect object within the document.


defaultOutlineBorder

protected PDFObject defaultOutlineBorder
This holds a PDFObject describing the default border for annotations. It's only used when the document is being written.


USENONE

public static final int USENONE

This page mode indicates that the document should be opened just with the page visible. This is the default

See Also:
Constant Field Values

USEOUTLINES

public static final int USEOUTLINES

This page mode indicates that the Outlines should also be displayed when the document is opened.

See Also:
Constant Field Values

USETHUMBS

public static final int USETHUMBS

This page mode indicates that the Thumbnails should be visible when the document first opens.

See Also:
Constant Field Values

FULLSCREEN

public static final int FULLSCREEN

This page mode indicates that when the document is opened, it is displayed in full-screen-mode. There is no menu bar, window controls nor any other window present.

See Also:
Constant Field Values

PDF_PAGE_MODES

public static final java.lang.String[] PDF_PAGE_MODES

These map the page modes just defined to the pagemodes setting of PDF.

Constructor Detail

PDFDocument

public PDFDocument()

This creates a PDF document with the default pagemode


PDFDocument

public PDFDocument(int pagemode)

This creates a PDF document

Parameters:
pagemode - an int, determines how the document will present itself to the viewer when it first opens.
Method Detail

add

public int add(PDFObject obj)
This adds a top level object to the document.

Once added, it is allocated a unique serial number.

Note: Not all object are added directly using this method. Some objects which have Kids (in PDF sub-objects or children are called Kids) will have their own add() method, which will call this one internally.

Parameters:
obj - The PDFObject to add to the document
Returns:
the unique serial number for this object.

getPage

public PDFPage getPage(int page)

This returns a specific page. It's used mainly when using a Serialized template file.

?? How does a serialized template file work ???

Parameters:
page - page number to return
Returns:
PDFPage at that position

getOutline

public PDFOutline getOutline()
Returns:
the root outline

getFont

public PDFFont getFont(java.lang.String type,
                       java.lang.String font,
                       int style)
This returns a font of the specified type and font. If the font has not been defined, it creates a new font in the PDF document, and returns it.

Parameters:
type - PDF Font Type - usually "/Type1"
font - Java font name
style - java.awt.Font style (NORMAL, BOLD etc)
Returns:
PDFFont defining this font

setImageName

public java.lang.String setImageName(PDFImage img)
Sets a unique name to a PDFImage

Parameters:
img - PDFImage to set the name of
Returns:
the name given to the image

setPDFInfo

public void setPDFInfo(PDFInfo info)

Set the PDFInfo object, which contains author, title, keywords, etc


getPDFInfo

public PDFInfo getPDFInfo()

Get the PDFInfo object, which contains author, title, keywords, etc


write

public void write(java.io.OutputStream os)
           throws java.io.IOException
This writes the document to an OutputStream.

Note: You can call this as many times as you wish, as long as the calls are not running at the same time.

Also, objects can be added or amended between these calls.

Also, the OutputStream is not closed, but will be flushed on completion. It is up to the caller to close the stream.

Parameters:
os - OutputStream to write the document to
Throws:
java.io.IOException - on error