You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2014/12/22 16:26:46 UTC

svn commit: r1647331 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java

Author: lehmi
Date: Mon Dec 22 15:26:46 2014
New Revision: 1647331

URL: http://svn.apache.org/r1647331
Log:
PDFBOX-1618: take GoTo actions into account when removing page links

Modified:
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java?rev=1647331&r1=1647330&r2=1647331&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java Mon Dec 22 15:26:46 2014
@@ -18,6 +18,8 @@ package org.apache.pdfbox.util;
 
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.interactive.action.type.PDAction;
+import org.apache.pdfbox.pdmodel.interactive.action.type.PDActionGoTo;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink;
 import org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDDestination;
@@ -263,10 +265,18 @@ public class Splitter
             {
                 PDAnnotationLink link = (PDAnnotationLink)annotation;   
                 PDDestination destination = link.getDestination();
+                if (destination == null && link.getAction() != null)
+                {
+                    PDAction action = link.getAction();
+                    if (action instanceof PDActionGoTo)
+                    {
+                        destination = ((PDActionGoTo)action).getDestination();
+                    }
+                }
                 if (destination instanceof PDPageDestination)
                 {
                     // TODO preserve links to pages within the splitted result  
-                    link.setDestination(null);
+                    ((PDPageDestination) destination).setPage(null);
                 }
             }
             else