Hi,

I'd like to help, but to be honest, I haven't understood you. What do you mean with "stamping it back"?

The usual way to write in a COSStream is like this:

os = cosStream.createUnfilteredStream();

os.write(....)
os.close()



If you need more help, mention what version you are using. The official one is 1.8.9.

Tilman

Am 29.04.2015 um 16:52 schrieb Philip Poupart:
I'm wondering if anyone can point me in the right direction here. I have a
series of PDFs that have short content streams that just reference /Xf1 in
the PDF body. These were PDFs modified with iText. It is essentially a PDF
placed on a page of a PDF.

I'm extracting the nested contents stream just fine. I can modify that
contents stream, but am having difficulty stamping it back to the
Resources->XObjects dictionary.



Original content stream is a reference to /Xf1 object in pdf body.

1 0 0 1 0 0 cm /Xf1 Do Q


Below are some snippets of my code.


-----------get the nested content stream (this works)

String xDict = "Xf1" ;

Map<String,PDXObject> trimMap = resources.getXObjects();

PDXObject xObjects = trimMap.get(xDict);

PDStream nestedContentStream = xObjects.getPDStream();



   ... modify nestedContentStream ...


-----------stamp it back to resources (fails to create COSStream)


byte[] modContentBytes =
StringUtils.getBytesIso8859_1(newlyModifiedContentsStr);

RandomAccessBuffer rab = new RandomAccessBuffer();

rab.write(modContentBytes, 0, modContentBytes.length);


COSStream cosStream  = new COSStream(rab); <------ cosStream length is 0
even though rab is 218727 bytes


PDXObject modifiedPdxObj =
PDXObject.createXObject(cosStream.getCOSObject());

trimMap.put(trimmedXDict, modifiedPdxObj);

resources.setXObjects(trimMap); <------ this blows up because my COSStream
length is 0 (I think)


Any help would be appreciated. Thanks,

Phil Poupart
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to