HABA created PDFBOX-6194:
----------------------------
Summary: COSStream becomes COSDictionary after save — shared
XObject reference replaced by Font
Key: PDFBOX-6194
URL: https://issues.apache.org/jira/browse/PDFBOX-6194
Project: PDFBox
Issue Type: Bug
Components: PDModel
Affects Versions: 3.0.7 PDFBox
Environment: Windows Server 2016, Java 21, PDFBox 3.0.7
Reporter: HABA
Hi,
`document.save()` corrupts an `/XObject` on page 3 of a 3-page PDF.
Before save:
- `Obj5` = `COSStream` (ImageMask)
After save:
- `Obj5` = `COSDictionary` (Courier font)
Pages 1–2 are unaffected. All pages share the same indirect XObject refs
(`Obj4`, `Obj5`).
Flow:
- load PDF
- render pages via `PDFRenderer.renderImageWithDPI()`
- append invisible OCR text using `PDPageContentStream` (AppendMode.APPEND,
Courier)
- save document → corruption occurs
Result:
java.io.IOException: Unexpected object type: COSDictionary
Reproduced consistently on:
* Windows Server 2016, Java 21, PDFBox 3.0.7
Not reproducible on:
* Windows 11, Java 21 (same code + input)
Likely related to shared indirect XObject being overwritten during save.
Cannot share original PDF (confidential), but can test with synthetic
reproducer if needed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]