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


Reply via email to