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:25:33 UTC
svn commit: r1647330 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java
Author: lehmi
Date: Mon Dec 22 15:25:33 2014
New Revision: 1647330
URL: http://svn.apache.org/r1647330
Log:
PDFBOX-1618: take GoTo actions into account when removing page links
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java?rev=1647330&r1=1647329&r2=1647330&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/Splitter.java Mon Dec 22 15:25:33 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.PDAction;
+import org.apache.pdfbox.pdmodel.interactive.action.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;
@@ -216,10 +218,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