public class PDFFile extends Object
Constructor and Description |
---|
PDFFile(ByteBuffer buf)
get a PDFFile from a .pdf file.
|
PDFFile(ByteBuffer buf,
PDFPassword password)
get a PDFFile from a .pdf file.
|
Modifier and Type | Method and Description |
---|---|
PDFObject |
dereference(PDFXref ref,
PDFDecrypter decrypter)
Used internally to track down PDFObject references.
|
PDFDecrypter |
getDefaultDecrypter()
Get the default decrypter for the document
|
int |
getMajorVersion()
return the major version of the PDF header.
|
Iterator<String> |
getMetadataKeys()
Get the keys into the Info metadata, for use with
getStringMetadata(String) |
int |
getMinorVersion()
return the minor version of the PDF header.
|
int |
getNumPages()
return the number of pages in this PDFFile.
|
OutlineNode |
getOutline()
Gets the outline tree as a tree of OutlineNode, which is a subclass
of DefaultMutableTreeNode.
|
PDFPage |
getPage(int pagenum)
Get the page commands for a given page in a separate thread.
|
PDFPage |
getPage(int pagenum,
boolean wait)
Get the page commands for a given page.
|
int |
getPageNumber(PDFObject page)
Gets the page number (starting from 1) of the page represented by
a particular PDFObject.
|
PDFObject |
getRoot()
get the root PDFObject of this PDFFile.
|
String |
getStringMetadata(String name)
Get metadata (e.g., Author, Title, Creator) from the Info dictionary
as a string.
|
String |
getVersionString()
return the version string from the PDF header.
|
static boolean |
isDelimiter(int c)
Is the argument a delimiter according to the PDF spec?
|
boolean |
isPrintable()
Gets whether the owner of the file has given permission to print
the file.
|
static boolean |
isRegularCharacter(int c)
return true if the character is neither a whitespace or a delimiter.
|
boolean |
isSaveable()
Gets whether the owner of the file has given permission to save
a copy of the file.
|
static boolean |
isWhiteSpace(int c)
Is the argument a white space character according to the PDF spec?.
|
Rectangle2D.Float |
parseRect(PDFObject obj)
get a Rectangle2D.Float representation for a PDFObject that is an
array of four Numbers.
|
void |
stop(int pageNum)
Stop the rendering of a particular image on this page
|
public static final int NUL_CHAR
public static final int FF_CHAR
public PDFFile(ByteBuffer buf) throws IOException
Use the getPage(...) methods to get a page from the PDF file.
buf
- the RandomAccessFile containing the PDF.IOException
- if there's a problem reading from the bufferPDFParseException
- if the document appears to be malformed, or
its features are unsupported. If the file is encrypted in a manner that
the product or platform does not support then the exception's cause
will be an instance of UnsupportedEncryptionException
.PDFAuthenticationFailureException
- if the file is password
protected and requires a passwordpublic PDFFile(ByteBuffer buf, PDFPassword password) throws IOException
Use the getPage(...) methods to get a page from the PDF file.
buf
- the RandomAccessFile containing the PDF.password
- the user or owner passwordIOException
- if there's a problem reading from the bufferPDFParseException
- if the document appears to be malformed, or
its features are unsupported. If the file is encrypted in a manner that
the product or platform does not support then the exception's cause
will be an instance of UnsupportedEncryptionException
.PDFAuthenticationFailureException
- if the file is password
protected and the supplied password does not decrypt the documentpublic boolean isPrintable()
public boolean isSaveable()
public PDFObject getRoot()
public int getNumPages()
public String getStringMetadata(String name) throws IOException
name
- the name of the metadata key (e.g., Author)IOException
- if the metadata cannot be readpublic Iterator<String> getMetadataKeys() throws IOException
getStringMetadata(String)
IOException
- if the keys cannot be readpublic PDFObject dereference(PDFXref ref, PDFDecrypter decrypter) throws IOException
Since this is the only public method for tracking down PDF objects, it is synchronized. This means that the PDFFile can only hunt down one object at a time, preventing the file's location from getting messed around.
This call stores the current buffer position before any changes are made and restores it afterwards, so callers need not know that the position has changed.
IOException
public static boolean isWhiteSpace(int c)
public static boolean isDelimiter(int c)
ISO 32000-1:2008 - Table 2
c
- the character to testpublic static boolean isRegularCharacter(int c)
c
- the character to testpublic int getMajorVersion()
public int getMinorVersion()
public String getVersionString()
public OutlineNode getOutline() throws IOException
IOException
public int getPageNumber(PDFObject page) throws IOException
IOException
public PDFPage getPage(int pagenum)
pagenum
- the number of the page to get commands forpublic PDFPage getPage(int pagenum, boolean wait)
pagenum
- the number of the page to get commands forwait
- if true, do not exit until the page is complete.public void stop(int pageNum)
public Rectangle2D.Float parseRect(PDFObject obj) throws IOException
obj
- a PDFObject that represents an Array of exactly four
Numbers.IOException
public PDFDecrypter getDefaultDecrypter()
Copyright © 2023. All rights reserved.