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]

