public abstract class BaseParser extends Object
Modifier and Type | Field and Description |
---|---|
static String |
DEF
This is a string constant that will be used for comparisons.
|
protected COSDocument |
document
This is the document that will be parsed.
|
static byte[] |
ENDOBJ
This is a byte array that will be used for comparisons.
|
static byte[] |
ENDSTREAM
This is a byte array that will be used for comparisons.
|
protected boolean |
forceParsing
Flag to skip malformed or otherwise unparseable input where possible.
|
protected PushBackInputStream |
pdfSource
This is the stream that will be read from.
|
static String |
PROP_PUSHBACK_SIZE
system property allowing to define size of push back buffer.
|
Modifier | Constructor and Description |
---|---|
|
BaseParser()
Default constructor.
|
protected |
BaseParser(byte[] input)
Constructor.
|
|
BaseParser(InputStream input)
Constructor.
|
|
BaseParser(InputStream input,
boolean forceParsingValue)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
clearResources()
Release all used resources.
|
protected boolean |
isClosing()
This will tell if the next character is a closing brace( close of PDF array ).
|
protected boolean |
isClosing(int c)
This will tell if the next character is a closing brace( close of PDF array ).
|
protected boolean |
isEndOfName(char ch)
Determine if a character terminates a PDF name.
|
protected boolean |
isEOL()
This will tell if the next byte to be read is an end of line byte.
|
protected boolean |
isEOL(int c)
This will tell if the next byte to be read is an end of line byte.
|
protected boolean |
isWhitespace()
This will tell if the next byte is whitespace or not.
|
protected boolean |
isWhitespace(int c)
This will tell if the next byte is whitespace or not.
|
protected COSBoolean |
parseBoolean()
This will parse a boolean object from the stream.
|
protected COSArray |
parseCOSArray()
This will parse a PDF array object.
|
protected COSDictionary |
parseCOSDictionary()
This will parse a PDF dictionary.
|
protected COSName |
parseCOSName()
This will parse a PDF name from the stream.
|
protected COSStream |
parseCOSStream(COSDictionary dic,
RandomAccess file)
This will read a COSStream from the input stream.
|
protected COSString |
parseCOSString()
This will parse a PDF string.
|
protected COSString |
parseCOSString(boolean isDictionary)
Deprecated.
Not needed anymore. Use
parseCOSString() instead. PDFBOX-1437 |
protected COSBase |
parseDirObject()
This will parse a directory object from the stream.
|
protected String |
readExpectedString(String theString)
This will read bytes until the end of line marker occurs.
|
protected int |
readGenerationNumber()
This will read a integer from the Stream and throw an
IllegalArgumentException if the integer value
has more than the maximum object revision (i.e. : bigger than GENERATION_NUMBER_THRESHOLD ) |
protected int |
readInt()
This will read an integer from the stream.
|
protected String |
readLine()
This will read bytes until the first end of line marker occurs.
|
protected long |
readLong()
This will read an long from the stream.
|
protected long |
readObjectNumber()
This will read a long from the Stream and throw an
IllegalArgumentException if the long value
has more than 10 digits (i.e. : bigger than OBJECT_NUMBER_THRESHOLD ) |
protected String |
readString()
This will read the next string from the stream.
|
protected String |
readString(int length)
This will read the next string from the stream up to a certain length.
|
protected StringBuilder |
readStringNumber()
This method is used to read a token by the readInt() method
and the readLong() method.
|
protected void |
readUntilEndStream(OutputStream out)
This method will read through the current stream object until
we find the keyword "endstream" meaning we're at the end of this
object.
|
void |
setDocument(COSDocument doc)
Set the document for this stream.
|
protected void |
skipSpaces()
This will skip all spaces and comments that are present.
|
public static final String PROP_PUSHBACK_SIZE
public static final byte[] ENDSTREAM
public static final byte[] ENDOBJ
public static final String DEF
protected PushBackInputStream pdfSource
protected COSDocument document
protected final boolean forceParsing
public BaseParser()
public BaseParser(InputStream input, boolean forceParsingValue) throws IOException
input
- The input stream to read the data from.forceParsingValue
- flag to skip malformed or otherwise unparseable
input where possibleIOException
- If there is an error reading the input stream.public BaseParser(InputStream input) throws IOException
input
- The input stream to read the data from.IOException
- If there is an error reading the input stream.protected BaseParser(byte[] input) throws IOException
input
- The array to read the data from.IOException
- If there is an error reading the byte data.public void setDocument(COSDocument doc)
doc
- The current document.protected COSDictionary parseCOSDictionary() throws IOException
IOException
- IF there is an error reading the stream.protected COSStream parseCOSStream(COSDictionary dic, RandomAccess file) throws IOException
file
- The file to write the stream to when reading.dic
- The dictionary that goes with this stream.IOException
- If there is an error reading the stream.protected void readUntilEndStream(OutputStream out) throws IOException
out
- stream we write out to.IOException
@Deprecated protected COSString parseCOSString(boolean isDictionary) throws IOException
parseCOSString()
instead. PDFBOX-1437isDictionary
- indicates if the stream is a dictionary or notIOException
- If there is an error reading from the stream.protected COSString parseCOSString() throws IOException
IOException
- If there is an error reading from the stream.protected COSArray parseCOSArray() throws IOException
IOException
- If there is an error parsing the stream.protected boolean isEndOfName(char ch)
ch
- The charactertrue
if the character terminates a PDF name, otherwise false
.protected COSName parseCOSName() throws IOException
IOException
- If there is an error reading from the stream.protected COSBoolean parseBoolean() throws IOException
IOException
- If an IO error occurs during parsing.protected COSBase parseDirObject() throws IOException
IOException
- If there is an error during parsing.protected String readString() throws IOException
IOException
- If there is an error reading from the stream.protected String readExpectedString(String theString) throws IOException
theString
- The next expected string in the stream.IOException
- If there is an error reading from the stream or theString does not match what was read.protected String readString(int length) throws IOException
length
- The length to stop reading at.IOException
- If there is an error reading from the stream.protected boolean isClosing() throws IOException
IOException
- If an IO error occurs.protected boolean isClosing(int c)
c
- The character to check against end of lineprotected String readLine() throws IOException
IOException
- If there is an error reading from the stream.protected boolean isEOL() throws IOException
IOException
- If there is an error reading from the stream.protected boolean isEOL(int c)
c
- The character to check against end of lineprotected boolean isWhitespace() throws IOException
IOException
- If there is an error reading from the stream.protected boolean isWhitespace(int c)
c
- The character to check against whitespaceprotected void skipSpaces() throws IOException
IOException
- If there is an error reading from the stream.protected long readObjectNumber() throws IOException
IllegalArgumentException
if the long value
has more than 10 digits (i.e. : bigger than OBJECT_NUMBER_THRESHOLD
)IOException
- if an I/O error occursprotected int readGenerationNumber() throws IOException
IllegalArgumentException
if the integer value
has more than the maximum object revision (i.e. : bigger than GENERATION_NUMBER_THRESHOLD
)IOException
- if an I/O error occursprotected int readInt() throws IOException
IOException
- If there is an error reading from the stream.protected long readLong() throws IOException
IOException
- If there is an error reading from the stream.protected final StringBuilder readStringNumber() throws IOException
IOException
- throws by the pdfSource
methods.public void clearResources()
Copyright © 2002–2017 The Apache Software Foundation. All rights reserved.