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);


Reply via email to