Author: tilman
Date: Thu Jul 4 08:24:54 2024
New Revision: 1918903
URL: http://svn.apache.org/viewvc?rev=1918903&view=rev
Log:
PDFBOX-5848: remove /Parent entry for widgets because it can lead to orphan
pages
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java?rev=1918903&r1=1918902&r2=1918903&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/Splitter.java
Thu Jul 4 08:24:54 2024
@@ -57,6 +57,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;
@@ -820,6 +821,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);