public void parse() throws IOException {
try
{
//need to first parse the header.
int numberOfObjects = stream.getInt( "N" );
objectNumbers = new ArrayList< Integer >( numberOfObjects );
streamObjects = new ArrayList< COSObject >( numberOfObjects );
for( int i=0; i< numberOfObjects; i++ )
{
int objectNumber = readInt();
int offset = readInt();
objectNumbers.add( new Integer( objectNumber ) );
}
COSObject object = null;
COSBase cosObject = null;
int objectCounter = 0;
while( (cosObject = parseDirObject()) != null )
{
object = new COSObject(cosObject);
object.setGenerationNumber( COSInteger.ZERO );
COSInteger objNum =
COSInteger.get( objectNumbers.get( objectCounter).intValue() );
object.setObjectNumber( objNum );
streamObjects.add( object );
if(log.isDebugEnabled())
{
log.debug( "parsed=" + object );
}
objectCounter++;
}
}
finally
{
pdfSource.close();
}
}
This will parse the tokens in the stream. This will close the
stream when it is finished parsing. |