-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.14
-
Fix Version/s: 2.0.16, 3.0.0 PDFBox
-
Component/s: Writing
-
Labels:
-
Flags:Patch
If a COSBase is directly embedded in a COSObject, it should not be assigned a new object number by the writer. We suggest the following implementation for `COSWriter.getObjectKey(COSBase)`:
/** * This will get the object key for the object. * * @param obj The object to get the key for. * * @return The object key for the object. */ protected COSObjectKey getObjectKey( COSBase obj ) { COSBase actual = obj; if( actual instanceof COSObject ) { actual = ((COSObject)obj).getObject(); } COSObjectKey key = null; key = objectKeys.get(obj); if( key == null && actual != null ) { key = objectKeys.get(actual); } if (key == null) { setNumber(getNumber()+1); key = new COSObjectKey(getNumber(),0); objectKeys.put(obj, key); if( actual != null ) { objectKeys.put(actual, key); } } return key; }