aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/org/apache/fop/pdf/PDFOutline.java4
-rw-r--r--src/org/apache/fop/pdf/PDFRoot.java50
2 files changed, 45 insertions, 9 deletions
diff --git a/src/org/apache/fop/pdf/PDFOutline.java b/src/org/apache/fop/pdf/PDFOutline.java
index ef5a099d9..76c4990b9 100644
--- a/src/org/apache/fop/pdf/PDFOutline.java
+++ b/src/org/apache/fop/pdf/PDFOutline.java
@@ -52,7 +52,7 @@ public class PDFOutline extends PDFObject {
* @param title the title of the outline entry (can only be null for root Outlines obj)
* @param action the action for this outline
*/
- public PDFOutline(int number, String title, String action) {
+ public PDFOutline(int number, String ti, String action) {
super(number);
subentries = new ArrayList();
count = 0;
@@ -61,7 +61,7 @@ public class PDFOutline extends PDFObject {
next = null;
first = null;
last = null;
- title = title;
+ title = ti;
actionRef = action;
}
diff --git a/src/org/apache/fop/pdf/PDFRoot.java b/src/org/apache/fop/pdf/PDFRoot.java
index ea112f8ad..5445cc4b2 100644
--- a/src/org/apache/fop/pdf/PDFRoot.java
+++ b/src/org/apache/fop/pdf/PDFRoot.java
@@ -13,6 +13,26 @@ package org.apache.fop.pdf;
public class PDFRoot extends PDFObject {
/**
+ * Use no page mode setting, default
+ */
+ public static final int PAGEMODE_USENONE = 0;
+
+ /**
+ * Use outlines page mode to show bookmarks
+ */
+ public static final int PAGEMODE_USEOUTLINES = 1;
+
+ /**
+ * Use thumbs page mode to show thumbnail images
+ */
+ public static final int PAGEMODE_USETHUMBS = 2;
+
+ /**
+ * Full screen page mode
+ */
+ public static final int PAGEMODE_FULLSCREEN = 3;
+
+ /**
* the /Pages object that is root of the Pages hierarchy
*/
protected PDFPages rootPages;
@@ -22,6 +42,8 @@ public class PDFRoot extends PDFObject {
*/
private PDFOutline outline;
+ private int pageMode = PAGEMODE_USENONE;
+
/**
* create a Root (/Catalog) object. NOTE: The PDFRoot
* object must be created before the PDF document is
@@ -38,13 +60,13 @@ public class PDFRoot extends PDFObject {
}
/**
- * Before the root is written to the document stream,
- * make sure it's object number is set. Package-private access
- * only; outsiders should not be fiddling with this stuff.
+ * Set the page mode for the PDF document.
+ *
+ * @param mode the page mode
*/
- /*void setNumber(int number) {
- this.number = number;
- }*/
+ public void setPageMode(int mode) {
+ pageMode = mode;
+ }
/**
* add a /Page object to the root /Pages object
@@ -95,8 +117,22 @@ public class PDFRoot extends PDFObject {
if (outline != null) {
p.append(" /Outlines " + outline.referencePDF() + "\n");
p.append(" /PageMode /UseOutlines\n");
+ } else {
+ switch (pageMode) {
+ case PAGEMODE_USEOUTLINES:
+ p.append(" /PageMode /UseOutlines\n");
+ break;
+ case PAGEMODE_USETHUMBS:
+ p.append(" /PageMode /UseThumbs\n");
+ break;
+ case PAGEMODE_FULLSCREEN:
+ p.append(" /PageMode /FullScreen\n");
+ break;
+ case PAGEMODE_USENONE:
+ default:
+ break;
+ }
}
- p.append(" /PageMode /FullScreen\n");
p.append(" >>\nendobj\n");
return p.toString().getBytes();
}