images = resources.getImages();
// If request specifies the need to append to the document
if(appendContent)
{
// Get the pdstream from the source page instead of creating a new one
PDStream contents = sourcePage.getContents();
// Create a pdstream to append new content
PDStream contentsToAppend = new PDStream( document );
// This will be the resulting COSStreamArray after existing and new streams are merged
COSStreamArray compoundStream = null;
// If contents is already an array, a new stream is simply appended to it
if(contents.getStream() instanceof COSStreamArray)
{
compoundStream = (COSStreamArray)contents.getStream();
compoundStream.appendStream( contentsToAppend.getStream());
}
else
{
// Creates the COSStreamArray and adds the current stream plus a new one to it
COSArray newArray = new COSArray();
newArray.add(contents.getCOSObject());
newArray.add(contentsToAppend.getCOSObject());
compoundStream = new COSStreamArray(newArray);
}
if( compress )
{
List filters = new ArrayList();
filters.add( COSName.FLATE_DECODE );
contentsToAppend.setFilters( filters );
}
// Sets the compoundStream as page contents
sourcePage.setContents( new PDStream(compoundStream) );
output = contentsToAppend.createOutputStream();
}
else
{
PDStream contents = new PDStream( document );
if( compress )
{
List filters = new ArrayList();
filters.add( COSName.FLATE_DECODE );
contents.setFilters( filters );
}
sourcePage.setContents( contents );
output = contents.createOutputStream();
}
formatDecimal.setMaximumFractionDigits( 10 );
formatDecimal.setGroupingUsed( false );
}