Class PDFFile
java.lang.Object
com.sun.pdfview.PDFFile
An encapsulation of a .pdf file. The methods of this class
can parse the contents of a PDF file, but those methods are
hidden. Instead, the public methods of this class allow
access to the pages in the PDF file. Typically, you create
a new PDFFile, ask it for the number of pages, and then
request one or more PDFPages.
- Author:
- Mike Wessler
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionPDFFile(ByteBuffer buf) get a PDFFile from a .pdf file.PDFFile(ByteBuffer buf, PDFPassword password) get a PDFFile from a .pdf file. -
Method Summary
Modifier and TypeMethodDescriptiondereference(PDFXref ref, PDFDecrypter decrypter) Used internally to track down PDFObject references.Get the default decrypter for the documentintreturn the major version of the PDF header.Get the keys into the Info metadata, for use withgetStringMetadata(String)intreturn the minor version of the PDF header.intreturn the number of pages in this PDFFile.Gets the outline tree as a tree of OutlineNode, which is a subclass of DefaultMutableTreeNode.getPage(int pagenum) Get the page commands for a given page in a separate thread.getPage(int pagenum, boolean wait) Get the page commands for a given page.intgetPageNumber(PDFObject page) Gets the page number (starting from 1) of the page represented by a particular PDFObject.getRoot()get the root PDFObject of this PDFFile.getStringMetadata(String name) Get metadata (e.g., Author, Title, Creator) from the Info dictionary as a string.return the version string from the PDF header.static booleanisDelimiter(int c) Is the argument a delimiter according to the PDF spec?booleanGets whether the owner of the file has given permission to print the file.static booleanisRegularCharacter(int c) return true if the character is neither a whitespace or a delimiter.booleanGets whether the owner of the file has given permission to save a copy of the file.static booleanisWhiteSpace(int c) Is the argument a white space character according to the PDF spec?.get a Rectangle2D.Float representation for a PDFObject that is an array of four Numbers.voidstop(int pageNum) Stop the rendering of a particular image on this page
-
Field Details
-
NUL_CHAR
public static final int NUL_CHAR- See Also:
-
FF_CHAR
public static final int FF_CHAR- See Also:
-
-
Constructor Details
-
PDFFile
get a PDFFile from a .pdf file. The file must me a random access file at the moment. It should really be a file mapping from the nio package.Use the getPage(...) methods to get a page from the PDF file.
- Parameters:
buf- the RandomAccessFile containing the PDF.- Throws:
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'scausewill be an instance ofUnsupportedEncryptionException.PDFAuthenticationFailureException- if the file is password protected and requires a password
-
PDFFile
get a PDFFile from a .pdf file. The file must me a random access file at the moment. It should really be a file mapping from the nio package.Use the getPage(...) methods to get a page from the PDF file.
- Parameters:
buf- the RandomAccessFile containing the PDF.password- the user or owner password- Throws:
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'scausewill be an instance ofUnsupportedEncryptionException.PDFAuthenticationFailureException- if the file is password protected and the supplied password does not decrypt the document
-
-
Method Details
-
isPrintable
public boolean isPrintable()Gets whether the owner of the file has given permission to print the file.- Returns:
- true if it is okay to print the file
-
isSaveable
public boolean isSaveable()Gets whether the owner of the file has given permission to save a copy of the file.- Returns:
- true if it is okay to save the file
-
getRoot
get the root PDFObject of this PDFFile. You generally shouldn't need this, but we've left it open in case you want to go spelunking. -
getNumPages
public int getNumPages()return the number of pages in this PDFFile. The pages will be numbered from 1 to getNumPages(), inclusive. -
getStringMetadata
Get metadata (e.g., Author, Title, Creator) from the Info dictionary as a string.- Parameters:
name- the name of the metadata key (e.g., Author)- Returns:
- the info
- Throws:
IOException- if the metadata cannot be read
-
getMetadataKeys
Get the keys into the Info metadata, for use withgetStringMetadata(String)- Returns:
- the keys present into the Info dictionary
- Throws:
IOException- if the keys cannot be read
-
dereference
Used internally to track down PDFObject references. You should never need to call this.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.
- Throws:
IOException
-
isWhiteSpace
public static boolean isWhiteSpace(int c) Is the argument a white space character according to the PDF spec?. ISO Spec 32000-1:2008 - Table 1 -
isDelimiter
public static boolean isDelimiter(int c) Is the argument a delimiter according to the PDF spec?ISO 32000-1:2008 - Table 2
- Parameters:
c- the character to test
-
isRegularCharacter
public static boolean isRegularCharacter(int c) return true if the character is neither a whitespace or a delimiter.- Parameters:
c- the character to test- Returns:
- boolean
-
getMajorVersion
public int getMajorVersion()return the major version of the PDF header.- Returns:
- int
-
getMinorVersion
public int getMinorVersion()return the minor version of the PDF header.- Returns:
- int
-
getVersionString
-
getOutline
Gets the outline tree as a tree of OutlineNode, which is a subclass of DefaultMutableTreeNode. If there is no outline tree, this method returns null.- Throws:
IOException
-
getPageNumber
Gets the page number (starting from 1) of the page represented by a particular PDFObject. The PDFObject must be a Page dictionary or a destination description (or an action).- Returns:
- a number between 1 and the number of pages indicating the page number, or 0 if the PDFObject is not in the page tree.
- Throws:
IOException
-
getPage
Get the page commands for a given page in a separate thread.- Parameters:
pagenum- the number of the page to get commands for
-
getPage
Get the page commands for a given page.- Parameters:
pagenum- the number of the page to get commands forwait- if true, do not exit until the page is complete.
-
stop
public void stop(int pageNum) Stop the rendering of a particular image on this page -
parseRect
get a Rectangle2D.Float representation for a PDFObject that is an array of four Numbers.- Parameters:
obj- a PDFObject that represents an Array of exactly four Numbers.- Throws:
IOException
-
getDefaultDecrypter
Get the default decrypter for the document- Returns:
- the default decrypter; never null, even for documents that aren't encrypted
-