- java.lang.Object
-
- org.jfree.pdf.PDFDocument
-
public class PDFDocument extends java.lang.Object
Represents a PDF document. The focus of this implementation is to allow the use of thePDFGraphics2D
class to generate PDF content, typically in the following manner:PDFDocument pdfDoc = new PDFDocument();
Page page = pdfDoc.createPage(new Rectangle(612, 468));
PDFGraphics2D g2 = page.getGraphics2D();
g2.setPaint(Color.RED);
g2.draw(new Rectangle(10, 10, 40, 50));
pdfDoc.writeToFile(new File("demo.pdf"));
The implementation is light-weight and works very well alongside packages such as JFreeChart and Orson Charts.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
author
The author of the document (can be null).private DictionaryObject
catalog
The document catalog.private boolean
debug
A flag that is used to indicate that we are in DEBUG mode.private DictionaryObject
info
Document info.private static java.util.logging.Logger
LOGGER
private int
nextNumber
The next PDF object number in the document.private java.util.List<PDFObject>
otherObjects
A list of other objects added to the document.private DictionaryObject
outlines
The outlines (placeholder, outline support is not implemented).private Pages
pages
The pages of the document.private static java.lang.String
PRODUCER
Producer string.private java.lang.String
title
The document title (can be null).
-
Constructor Summary
Constructors Constructor Description PDFDocument()
Creates a newPDFDocument
, initially with no content.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addObject(PDFObject object)
Adds an object to the document.Page
createPage(java.awt.geom.Rectangle2D bounds)
Creates a newPage
, adds it to the document, and returns a reference to thePage
.java.lang.String
getAuthor()
Returns the author for the document.int
getNextNumber()
Returns a new PDF object number and increments the internal counter for the next PDF object number.byte[]
getPDFBytes()
Returns a byte array containing the encoding of this PDF document.java.lang.String
getTitle()
Returns the title for the document.boolean
isDebugMode()
Returns the debug mode flag that controls whether or not the output stream is filtered.void
setAuthor(java.lang.String author)
Sets the author for the document.void
setDebugMode(boolean debug)
Sets the debug MODE flag (this needs to be set before any call tocreatePage(java.awt.geom.Rectangle2D)
).void
setTitle(java.lang.String title)
Sets the title for the document.private byte[]
toBytes(java.lang.String s)
A utility method to convert a string to US-ASCII byte format.void
writeToFile(java.io.File f)
Writes the PDF document to a file.
-
-
-
Field Detail
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
PRODUCER
private static final java.lang.String PRODUCER
Producer string.- See Also:
- Constant Field Values
-
catalog
private DictionaryObject catalog
The document catalog.
-
outlines
private DictionaryObject outlines
The outlines (placeholder, outline support is not implemented).
-
info
private DictionaryObject info
Document info.
-
title
private java.lang.String title
The document title (can be null).
-
author
private java.lang.String author
The author of the document (can be null).
-
pages
private Pages pages
The pages of the document.
-
otherObjects
private java.util.List<PDFObject> otherObjects
A list of other objects added to the document.
-
nextNumber
private int nextNumber
The next PDF object number in the document.
-
debug
private boolean debug
A flag that is used to indicate that we are in DEBUG mode. In this mode, the graphics stream for a page does not have a filter applied, so the output can be read in a text editor.
-
-
Method Detail
-
getTitle
public java.lang.String getTitle()
Returns the title for the document. The default value isnull
.- Returns:
- The title for the document (possibly
null
).
-
setTitle
public void setTitle(java.lang.String title)
Sets the title for the document.- Parameters:
title
- the title (null
permitted).
-
getAuthor
public java.lang.String getAuthor()
Returns the author for the document. The default value isnull
.- Returns:
- The author for the document (possibly
null
).
-
setAuthor
public void setAuthor(java.lang.String author)
Sets the author for the document.- Parameters:
author
- the author (null
permitted).
-
isDebugMode
public boolean isDebugMode()
Returns the debug mode flag that controls whether or not the output stream is filtered.- Returns:
- The debug flag.
- Since:
- 1.4
-
setDebugMode
public void setDebugMode(boolean debug)
Sets the debug MODE flag (this needs to be set before any call tocreatePage(java.awt.geom.Rectangle2D)
).- Parameters:
debug
- the new flag value.- Since:
- 1.4
-
createPage
public Page createPage(java.awt.geom.Rectangle2D bounds)
Creates a newPage
, adds it to the document, and returns a reference to thePage
.- Parameters:
bounds
- the page bounds (null
not permitted).- Returns:
- The new page.
-
addObject
void addObject(PDFObject object)
Adds an object to the document.- Parameters:
object
- the object (null
not permitted).
-
getNextNumber
public int getNextNumber()
Returns a new PDF object number and increments the internal counter for the next PDF object number. This method is used to ensure that all objects in the document are assigned a unique number.- Returns:
- A new PDF object number.
-
getPDFBytes
public byte[] getPDFBytes()
Returns a byte array containing the encoding of this PDF document.- Returns:
- A byte array containing the encoding of this PDF document.
-
writeToFile
public void writeToFile(java.io.File f)
Writes the PDF document to a file. This is not a robust method, it exists mainly for the demo output.- Parameters:
f
- the file.
-
toBytes
private byte[] toBytes(java.lang.String s)
A utility method to convert a string to US-ASCII byte format.- Parameters:
s
- the string.- Returns:
- The corresponding byte array.
-
-