Package org.apache.pdfbox.jbig2
Class SegmentHeader
java.lang.Object
org.apache.pdfbox.jbig2.SegmentHeader
The basic class for all JBIG2 segments.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
private byte
private byte
private SegmentHeader[]
private static final Map
<Integer, Class<? extends SegmentData>> private Reference
<SegmentData> private long
private long
private long
private int
private int
private final SubInputStream
-
Constructor Summary
ConstructorsConstructorDescriptionSegmentHeader
(JBIG2Document document, SubInputStream sis, long offset, int organisationType) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Creates and returns a newSubInputStream
that provides the data part of this segment.int
short
Retrieves the segments' data part.long
long
long
int
int
private void
parse
(JBIG2Document document, ImageInputStream subInputStream, long offset, int organisationType) private int
readAmountOfReferredToSegments
(ImageInputStream subInputStream) 7.2.4 Amount of referred-to segmentsprivate void
readDataStartOffset
(ImageInputStream subInputStream, int organisationType) Sets the offset only if organization type is SEQUENTIAL.private int[]
readReferredToSegmentsNumbers
(ImageInputStream subInputStream, int countOfRTS) 7.2.5 Referred-to segments numbersprivate void
readSegmentDataLength
(ImageInputStream subInputStream) 7.2.7 Segment data lengthprivate void
readSegmentHeaderFlag
(ImageInputStream subInputStream) 7.2.3 Segment header flagsprivate void
readSegmentHeaderLength
(ImageInputStream subInputStream, long offset) private void
readSegmentNumber
(ImageInputStream subInputStream) 7.2.2 Segment numberprivate void
readSegmentPageAssociation
(JBIG2Document document, ImageInputStream subInputStream, int countOfRTS, int[] rtsNumbers) 7.2.6 Segment page associationvoid
setSegmentDataStartOffset
(long segmentDataStartOffset) toString()
-
Field Details
-
SEGMENT_TYPE_MAP
-
segmentNr
private int segmentNr -
segmentType
private int segmentType -
retainFlag
private byte retainFlag -
pageAssociation
private int pageAssociation -
pageAssociationFieldSize
private byte pageAssociationFieldSize -
rtSegments
-
segmentHeaderLength
private long segmentHeaderLength -
segmentDataLength
private long segmentDataLength -
segmentDataStartOffset
private long segmentDataStartOffset -
subInputStream
-
segmentData
-
-
Constructor Details
-
SegmentHeader
public SegmentHeader(JBIG2Document document, SubInputStream sis, long offset, int organisationType) throws IOException - Throws:
IOException
-
-
Method Details
-
parse
private void parse(JBIG2Document document, ImageInputStream subInputStream, long offset, int organisationType) throws IOException - Parameters:
document
-subInputStream
-offset
- - The offset where the segment header startsorganisationType
-- Throws:
IOException
-
readSegmentNumber
7.2.2 Segment number- Parameters:
subInputStream
-- Throws:
IOException
-
readSegmentHeaderFlag
7.2.3 Segment header flags- Parameters:
subInputStream
-- Throws:
IOException
-
readAmountOfReferredToSegments
7.2.4 Amount of referred-to segments- Parameters:
subInputStream
-- Returns:
- The amount of referred-to segments.
- Throws:
IOException
-
readReferredToSegmentsNumbers
private int[] readReferredToSegmentsNumbers(ImageInputStream subInputStream, int countOfRTS) throws IOException 7.2.5 Referred-to segments numbersGathers all segment numbers of referred-to segments. The segments itself are stored in the
rtSegments
array.- Parameters:
subInputStream
- - Wrapped source data input stream.countOfRTS
- - The amount of referred-to segments.- Returns:
- An array with the segment number of all referred-to segments.
- Throws:
IOException
-
readSegmentPageAssociation
private void readSegmentPageAssociation(JBIG2Document document, ImageInputStream subInputStream, int countOfRTS, int[] rtsNumbers) throws IOException 7.2.6 Segment page association- Parameters:
document
-subInputStream
-countOfRTS
-rtsNumbers
-- Throws:
IOException
-
readSegmentDataLength
7.2.7 Segment data lengthContains the length of the data part in bytes.
- Parameters:
subInputStream
-- Throws:
IOException
-
readDataStartOffset
private void readDataStartOffset(ImageInputStream subInputStream, int organisationType) throws IOException Sets the offset only if organization type is SEQUENTIAL. If random, data starts after segment headers and can be determined when all segment headers are parsed and allocated.- Parameters:
subInputStream
-organisationType
-- Throws:
IOException
-
readSegmentHeaderLength
private void readSegmentHeaderLength(ImageInputStream subInputStream, long offset) throws IOException - Throws:
IOException
-
getSegmentNr
public int getSegmentNr() -
getSegmentType
public int getSegmentType() -
getSegmentHeaderLength
public long getSegmentHeaderLength() -
getSegmentDataLength
public long getSegmentDataLength() -
getSegmentDataStartOffset
public long getSegmentDataStartOffset() -
setSegmentDataStartOffset
public void setSegmentDataStartOffset(long segmentDataStartOffset) -
getRtSegments
-
getPageAssociation
public int getPageAssociation() -
getRetainFlag
public short getRetainFlag() -
getDataInputStream
Creates and returns a newSubInputStream
that provides the data part of this segment. It is a clipped view of the source input stream.- Returns:
- The
SubInputStream
that represents the data part of the segment.
-
getSegmentData
Retrieves the segments' data part.- Returns:
- Retrieved
SegmentData
instance.
-
cleanSegmentData
public void cleanSegmentData() -
toString
-