Author: tilman
Date: Sat Sep 13 03:28:57 2025
New Revision: 1928394
Log:
PDFBOX-6067: include case where /Pg is in a kid
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
Sat Sep 13 03:28:52 2025 (r1928393)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
Sat Sep 13 03:28:57 2025 (r1928394)
@@ -962,6 +962,27 @@ class PDFMergerUtilityTest
++cnt;
set.add(kdict);
}
+ else if (kdict.containsKey(COSName.K))
+ {
+ // at least 1 kid with dict with /Pg and /MCR
+ // happens with confidential file from PDFBOX-6009
+ COSArray kidArray = kdict.getCOSArray(COSName.K);
+ if (kidArray != null)
+ {
+ for (int i = 0; i < kidArray.size(); ++i)
+ {
+ COSBase base2 = kidArray.getObject(i);
+ if (base2 instanceof COSDictionary &&
+ ((COSDictionary)
base2).containsKey(COSName.PG) &&
+ ((COSDictionary)
base2).containsKey(COSName.MCID))
+ {
+ ++cnt;
+ set.add(kdict);
+ break;
+ }
+ }
+ }
+ }
if (kdict.containsKey(COSName.K))
{
walk(kdict.getDictionaryObject(COSName.K));