org.apache.pdfbox.pdfparser

## Class PDFParser

- java.lang.Object
- - org.apache.pdfbox.pdfparser.BaseParser
  - - org.apache.pdfbox.pdfparser.COSParser
    - - org.apache.pdfbox.pdfparser.PDFParser

All Implemented Interfaces:
  ICOSParser

    public class PDFParser
    extends COSParser

### Field Summary

### Fields inherited from class org.apache.pdfbox.pdfparser.COSParser

`EOF_MARKER, fileLen, initialParseDone, OBJ_MARKER, securityHandler, SYSPROP_EOFLOOKUPRANGE, xrefTrailerResolver`

### Fields inherited from class org.apache.pdfbox.pdfparser.BaseParser

`A, ASCII_CR, ASCII_LF, B, D, DEF, document, E, ENDOBJ_STRING, ENDSTREAM_STRING, J, M, N, O, R, S, source, STREAM_STRING, T`

### Constructor Summary

Constructors
Constructor and Description
`PDFParser(org.apache.pdfbox.io.RandomAccessRead source)` Constructor.
`PDFParser(org.apache.pdfbox.io.RandomAccessRead source, String decryptionPassword)` Constructor.
`PDFParser(org.apache.pdfbox.io.RandomAccessRead source, String decryptionPassword, InputStream keyStore, String alias)` Constructor.
`PDFParser(org.apache.pdfbox.io.RandomAccessRead source, String decryptionPassword, InputStream keyStore, String alias, org.apache.pdfbox.io.RandomAccessStreamCache.StreamCacheCreateFunction streamCacheCreateFunction)` Constructor.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`protected PDDocument` `createDocument()` Create the resulting document.
`protected void` `initialParse()` The initial parse will first parse only the trailer, the xrefstart and all xref tables to have a pointer (offset) to all the pdf's objects.
`static PDDocument` `load(File file)` Deprecated. use `Loader.loadPDF(File)` instead
`static PDDocument` `load(File file, String password)` Deprecated. use `Loader.loadPDF(File, String)` instead
`PDDocument` `parse()` This will parse the stream and populate the PDDocument object.
`PDDocument` `parse(boolean lenient)` This will parse the stream and populate the PDDocument object.

### Methods inherited from class org.apache.pdfbox.pdfparser.COSParser

`checkPages, createRandomAccessReadView, dereferenceCOSObject, getAccessPermission, getEncryption, isLenient, isString, lastIndexOf, parseCOSStream, parseFDFHeader, parseObjectDynamically, parseObjectStreamObject, parsePDFHeader, parseXrefTable, prepareDecryption, resetTrailerResolver, retrieveTrailer, setEOFLookupRange, setLenient`

### Methods inherited from class org.apache.pdfbox.pdfparser.BaseParser

`getObjectKey, isClosing, isClosing, isDigit, isDigit, isEndOfName, isEOF, isEOL, isEOL, isSpace, isSpace, isWhitespace, isWhitespace, parseCOSArray, parseCOSDictionary, parseCOSName, parseCOSString, parseDirObject, readExpectedChar, readExpectedString, readGenerationNumber, readInt, readLine, readLong, readObjectNumber, readString, readString, readStringNumber, skipLinebreak, skipSpaces, skipWhiteSpaces`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PDFParser

    public PDFParser(org.apache.pdfbox.io.RandomAccessRead source)
              throws IOException

Constructor. Unrestricted main memory will be used for buffering PDF streams.

Parameters:
  `source` - source representing the pdf.
Throws:
  `IOException` - If something went wrong.

#### PDFParser

    public PDFParser(org.apache.pdfbox.io.RandomAccessRead source,
                     String decryptionPassword)
              throws IOException

Constructor. Unrestricted main memory will be used for buffering PDF streams.

Parameters:
  `source` - input representing the pdf.
  `decryptionPassword` - password to be used for decryption.
Throws:
  `IOException` - If something went wrong.

#### PDFParser

    public PDFParser(org.apache.pdfbox.io.RandomAccessRead source,
                     String decryptionPassword,
                     InputStream keyStore,
                     String alias)
              throws IOException

Constructor. Unrestricted main memory will be used for buffering PDF streams.

Parameters:
  `source` - input representing the pdf.
  `decryptionPassword` - password to be used for decryption.
  `keyStore` - key store to be used for decryption when using public key security
  `alias` - alias to be used for decryption when using public key security
Throws:
  `IOException` - If something went wrong.

#### PDFParser

    public PDFParser(org.apache.pdfbox.io.RandomAccessRead source,
                     String decryptionPassword,
                     InputStream keyStore,
                     String alias,
                     org.apache.pdfbox.io.RandomAccessStreamCache.StreamCacheCreateFunction streamCacheCreateFunction)
              throws IOException

Constructor.

Parameters:
  `source` - input representing the pdf.
  `decryptionPassword` - password to be used for decryption.
  `keyStore` - key store to be used for decryption when using public key security
  `alias` - alias to be used for decryption when using public key security
  `streamCacheCreateFunction` - a function to create an instance of the stream cache
Throws:
  `IOException` - If something went wrong.

### Method Detail

#### initialParse

    protected void initialParse()
                         throws IOException

The initial parse will first parse only the trailer, the xrefstart and all xref tables to have a pointer (offset) to all the pdf's objects. It can handle linearized pdfs, which will have an xref at the end pointing to an xref at the beginning of the file. Last the root object is parsed.

Throws:
  `InvalidPasswordException` - If the password is incorrect.
  `IOException` - If something went wrong.

#### parse

    public PDDocument parse()
                     throws IOException

This will parse the stream and populate the PDDocument object. This will close the keystore stream when it is done parsing. Lenient mode is active by default.

Returns:
  the populated PDDocument
Throws:
  `InvalidPasswordException` - If the password is incorrect.
  `IOException` - If there is an error reading from the stream or corrupt data is found.

#### parse

    public PDDocument parse(boolean lenient)
                     throws IOException

This will parse the stream and populate the PDDocument object. This will close the keystore stream when it is done parsing.

Parameters:
  `lenient` - activate leniency if set to true
Returns:
  the populated PDDocument
Throws:
  `InvalidPasswordException` - If the password is incorrect.
  `IOException` - If there is an error reading from the stream or corrupt data is found.

#### createDocument

    protected PDDocument createDocument()
                                 throws IOException

Create the resulting document. Maybe overwritten if the parser uses another class as document.

Returns:
  the resulting document
Throws:
  `IOException` - if the method is called before parsing the document

#### load

    @Deprecated
    public static PDDocument load(File file)
                                       throws IOException

Deprecated. use `Loader.loadPDF(File)` instead
Parses a PDF. Unrestricted main memory will be used for buffering PDF streams.

Parameters:
  `file` - file to be loaded
Returns:
  loaded document
Throws:
  `InvalidPasswordException` - If the file required a non-empty password.
  `IOException` - in case of a file reading or parsing error

#### load

    @Deprecated
    public static PDDocument load(File file,
                                              String password)
                                       throws IOException

Deprecated. use `Loader.loadPDF(File, String)` instead
Parses a PDF. Unrestricted main memory will be used for buffering PDF streams.

Parameters:
  `file` - file to be loaded
  `password` - password to be used for decryption
Returns:
  loaded document
Throws:
  `InvalidPasswordException` - If the password is incorrect.
  `IOException` - in case of a file reading or parsing error