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]

Reply via email to