Package org.apache.pdfbox.pdfparser
Class PDFStreamParser
- java.lang.Object
-
- org.apache.pdfbox.pdfparser.BaseParser
-
- org.apache.pdfbox.pdfparser.PDFStreamParser
-
public class PDFStreamParser extends BaseParser
This will parse a PDF byte stream and extract operands and such.
-
-
Field Summary
Fields Modifier and Type Field Description private byte[]binCharTestArrprivate intinlineImageDepthprivate longinlineOffsetprivate static org.apache.commons.logging.LogLOGLog instance.private static intMAX_BIN_CHAR_TEST_LENGTH-
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, MAX_LENGTH_LONG, N, O, R, S, source, STREAM_STRING, T
-
-
Constructor Summary
Constructors Constructor Description PDFStreamParser(byte[] bytes)Constructor.PDFStreamParser(PDContentStream pdContentstream)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the underlying resource.private booleanhasNextSpaceOrReturn()Checks if the next char is a space or a return.private booleanhasNoFollowingBinData()Looks up an amount of bytes if they contain only ASCII characters (no control sequences etc.), and that these ASCII characters begin with a sequence of 1-3 non-blank characters between blanksprivate booleanisSpaceOrReturn(int c)java.util.List<java.lang.Object>parse()This will parse all the tokens in the stream.java.lang.ObjectparseNextToken()This will parse the next token in the stream.private java.lang.StringreadOperator()This will read an operator from the stream.-
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
-
-
-
-
Field Detail
-
LOG
private static final org.apache.commons.logging.Log LOG
Log instance.
-
MAX_BIN_CHAR_TEST_LENGTH
private static final int MAX_BIN_CHAR_TEST_LENGTH
- See Also:
- Constant Field Values
-
binCharTestArr
private final byte[] binCharTestArr
-
inlineImageDepth
private int inlineImageDepth
-
inlineOffset
private long inlineOffset
-
-
Constructor Detail
-
PDFStreamParser
public PDFStreamParser(PDContentStream pdContentstream) throws java.io.IOException
Constructor.- Parameters:
pdContentstream- The content stream to parse.- Throws:
java.io.IOException- If there is an error initializing the stream.
-
PDFStreamParser
public PDFStreamParser(byte[] bytes)
Constructor.- Parameters:
bytes- the bytes to parse.
-
-
Method Detail
-
parse
public java.util.List<java.lang.Object> parse() throws java.io.IOExceptionThis will parse all the tokens in the stream. This will close the stream when it is finished parsing.- Returns:
- All of the tokens in the stream.
- Throws:
java.io.IOException- If there is an error while parsing the stream.
-
parseNextToken
public java.lang.Object parseNextToken() throws java.io.IOExceptionThis will parse the next token in the stream.- Returns:
- The next token in the stream or null if there are no more tokens in the stream.
- Throws:
java.io.IOException- If an io error occurs while parsing the stream.
-
hasNoFollowingBinData
private boolean hasNoFollowingBinData() throws java.io.IOExceptionLooks up an amount of bytes if they contain only ASCII characters (no control sequences etc.), and that these ASCII characters begin with a sequence of 1-3 non-blank characters between blanks- Returns:
trueif next bytes are probably printable ASCII characters starting with a PDF operator, otherwisefalse- Throws:
java.io.IOException
-
readOperator
private java.lang.String readOperator() throws java.io.IOExceptionThis will read an operator from the stream.- Returns:
- The operator that was read from the stream.
- Throws:
java.io.IOException- If there is an error reading from the stream.
-
isSpaceOrReturn
private boolean isSpaceOrReturn(int c)
-
hasNextSpaceOrReturn
private boolean hasNextSpaceOrReturn() throws java.io.IOExceptionChecks if the next char is a space or a return.- Returns:
- true if the next char is a space or a return
- Throws:
java.io.IOException- if something went wrong
-
close
public void close() throws java.io.IOExceptionClose the underlying resource.- Throws:
java.io.IOException- if something went wrong
-
-