Package org.apache.pdfbox.jbig2
Class JBIG2Document
- java.lang.Object
-
- org.apache.pdfbox.jbig2.JBIG2Document
-
class JBIG2Document extends java.lang.ObjectThis class represents the document structure with its pages and global segments.
-
-
Field Summary
Fields Modifier and Type Field Description private intamountOfPagesAccording to D.4.3 - Number of pages field (4 bytes).private booleanamountOfPagesUnknownAccording to D.4.2 - Bit 1
trueif amount of pages is unknown, amount of pages field is not presentfalseif there is a field in the file header where the amount of pages can be readprivate int[]FILE_HEADER_IDID string in file header, see ISO/IEC 14492:2001, D.4.1private shortfileHeaderLengthThe length of the file header if existsprivate booleangbUseExtTemplateDefines whether extended Template is used.private JBIG2GlobalsglobalSegmentsHolds a load of segments, that aren't associated with a page.private shortorganisationTypeAccording to D.4.2 - File header bit 0private java.util.Map<java.lang.Integer,JBIG2Page>pagesThis map contains all pages of this document.static intRANDOMstatic intSEQUENTIALprivate SubInputStreamsubInputStreamThis is the source data stream wrapped into aSubInputStream.
-
Constructor Summary
Constructors Modifier Constructor Description protectedJBIG2Document(javax.imageio.stream.ImageInputStream input)protectedJBIG2Document(javax.imageio.stream.ImageInputStream input, JBIG2Globals globals)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voiddetermineRandomDataOffsets(java.util.List<SegmentHeader> segments, long offset)Determines the start of the data parts and sets the offset.protected intgetAmountOfPages()Retrieves the amount of pages in this JBIG2 document.(package private) SegmentHeadergetGlobalSegment(int segmentNr)Retrieves the segment with the given segment number considering only segments that aren't associated with a page.protected JBIG2GlobalsgetGlobalSegments()protected JBIG2PagegetPage(int pageNumber)Retrieves aJBIG2Pagespecified by the given page number.protected booleanisAmountOfPagesUnknown()private booleanisFileHeaderPresent()(package private) booleanisGbUseExtTemplate()private voidmapStream()This method maps the stream and stores all segments.private voidparseFileHeader()This method reads the stream and sets variables for information about organization type and length etc.private booleanreachedEndOfStream(long offset)This method checks, if the stream is at its end to avoidEOFExceptions and reads 32 bits.
-
-
-
Field Detail
-
FILE_HEADER_ID
private int[] FILE_HEADER_ID
ID string in file header, see ISO/IEC 14492:2001, D.4.1
-
pages
private final java.util.Map<java.lang.Integer,JBIG2Page> pages
This map contains all pages of this document. The key is the number of the page.
-
fileHeaderLength
private short fileHeaderLength
The length of the file header if exists
-
organisationType
private short organisationType
According to D.4.2 - File header bit 0This flag contains information about the file organization:
1for sequential0for random-access
RANDOMandSEQUENTIAL.
-
RANDOM
public static final int RANDOM
- See Also:
- Constant Field Values
-
SEQUENTIAL
public static final int SEQUENTIAL
- See Also:
- Constant Field Values
-
amountOfPagesUnknown
private boolean amountOfPagesUnknown
According to D.4.2 - Bit 1
trueif amount of pages is unknown, amount of pages field is not presentfalseif there is a field in the file header where the amount of pages can be read
-
amountOfPages
private int amountOfPages
According to D.4.3 - Number of pages field (4 bytes). Only present ifamountOfPagesUnknownisfalse.
-
gbUseExtTemplate
private boolean gbUseExtTemplate
Defines whether extended Template is used.
-
subInputStream
private final SubInputStream subInputStream
This is the source data stream wrapped into aSubInputStream.
-
globalSegments
private JBIG2Globals globalSegments
Holds a load of segments, that aren't associated with a page.
-
-
Constructor Detail
-
JBIG2Document
protected JBIG2Document(javax.imageio.stream.ImageInputStream input) throws java.io.IOException- Throws:
java.io.IOException
-
JBIG2Document
protected JBIG2Document(javax.imageio.stream.ImageInputStream input, JBIG2Globals globals) throws java.io.IOException- Throws:
java.io.IOException
-
-
Method Detail
-
getGlobalSegment
SegmentHeader getGlobalSegment(int segmentNr)
Retrieves the segment with the given segment number considering only segments that aren't associated with a page.- Parameters:
segmentNr- - The number of the wanted segment.- Returns:
- The requested
SegmentHeader.
-
getPage
protected JBIG2Page getPage(int pageNumber)
Retrieves aJBIG2Pagespecified by the given page number.
-
getAmountOfPages
protected int getAmountOfPages() throws java.io.IOExceptionRetrieves the amount of pages in this JBIG2 document. If the pages are striped, the document will be completely parsed and the amount of pages will be gathered.- Returns:
- The amount of pages in this JBIG2 document.
- Throws:
java.io.IOException
-
mapStream
private void mapStream() throws java.io.IOExceptionThis method maps the stream and stores all segments.- Throws:
java.io.IOException
-
isFileHeaderPresent
private boolean isFileHeaderPresent() throws java.io.IOException- Throws:
java.io.IOException
-
determineRandomDataOffsets
private void determineRandomDataOffsets(java.util.List<SegmentHeader> segments, long offset)
Determines the start of the data parts and sets the offset.- Parameters:
segments-offset-
-
parseFileHeader
private void parseFileHeader() throws java.io.IOExceptionThis method reads the stream and sets variables for information about organization type and length etc.- Throws:
java.io.IOException
-
reachedEndOfStream
private boolean reachedEndOfStream(long offset) throws java.io.IOExceptionThis method checks, if the stream is at its end to avoidEOFExceptions and reads 32 bits.- Parameters:
offset-- Returns:
trueif end of stream reachedfalseif there are more bytes to read- Throws:
java.io.IOException
-
getGlobalSegments
protected JBIG2Globals getGlobalSegments()
-
isAmountOfPagesUnknown
protected boolean isAmountOfPagesUnknown()
-
isGbUseExtTemplate
boolean isGbUseExtTemplate()
-
-