{
final PdfDictionary header = getHeader();
final int size = ((PdfInteger)header.get(PdfName.Size)).getValue();
final int[] entryFieldSizes;
{
final PdfArray entryFieldSizesObject = (PdfArray)header.get(PdfName.W);
entryFieldSizes = new int[entryFieldSizesObject.size()];
for(int index = 0, length = entryFieldSizes.length; index < length; index++)
{entryFieldSizes[index] = ((PdfInteger)entryFieldSizesObject.get(index)).getValue();}
}
final PdfArray subsectionBounds;
if(header.containsKey(PdfName.Index))
{subsectionBounds = (PdfArray)header.get(PdfName.Index);}
else
{
subsectionBounds = new PdfArray();
subsectionBounds.add(new PdfInteger(0));
subsectionBounds.add(new PdfInteger(size));
}
body.setByteOrder(ByteOrder.BIG_ENDIAN);
body.seek(0);
final Iterator<PdfDirectObject> subsectionBoundIterator = subsectionBounds.iterator();
while(subsectionBoundIterator.hasNext())
{
try
{
final int start = ((PdfInteger)subsectionBoundIterator.next()).getValue();