Author: tilman
Date: Thu Jul 4 08:25:03 2024
New Revision: 1918905
URL: http://svn.apache.org/viewvc?rev=1918905&view=rev
Log:
PDFBOX-5848: remove /Parent entry for widgets because it can lead to orphan
pages
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java?rev=1918905&r1=1918904&r2=1918905&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
Thu Jul 4 08:25:03 2024
@@ -55,6 +55,7 @@ import org.apache.pdfbox.pdmodel.interac
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationMarkup;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationPopup;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceStream;
import
org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDDestination;
import
org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDNamedDestination;
@@ -823,6 +824,12 @@ public class Splitter
}
}
}
+ if (annotationClone instanceof PDAnnotationWidget &&
+ annotationClone.getCOSObject().containsKey(COSName.PARENT))
+ {
+ // remove non-terminal field /Parent reference, because this
may lead to orphan pages
+ annotationClone.getCOSObject().removeItem(COSName.PARENT);
+ }
if (annotation.getPage() != null)
{
annotationClone.setPage(imported);