Hello,

I'd like to set the initial zoom of my FOP-generated PDF document to
"Fit Visible".  According to the PDF Specification, an /OpenAction entry
in the catalog can be used to accomplish this.
( http://partners.adobe.com/public/developer/en/pdf/PDFReference13.pdf ,
Sec 7.2.1.)  Below, I have included the patch with the minimal kludge
that I devised to implement Fit Visible.

Of course, I'm hoping to implement something more flexible and elegant
-- perhaps an extension element to allow the initial view to be
specified in the FO document.  Does anyone have any suggestions for what
the syntax of such an element should be?  Maybe something like

  <fo:root xmlns:fo="..." xmlns:fox="...">
    <fox:initial-view page="..." zoom="fit-visible"/>
    <fo:layout-master-set>
      ...
    </fo:layout-master-set>
    ...
  </fo:root>

Derek


--- fop-0.20.5/src/org/apache/fop/pdf/PDFRoot.java.defaultzoom  2003-07-15 
02:03:24.000000000 +0000
+++ fop-0.20.5/src/org/apache/fop/pdf/PDFRoot.java      2004-11-17 
01:14:27.000000000 +0000
@@ -145,6 +145,13 @@
                                           + " obj\n<< /Type /Catalog\n/Pages "
                                           + this.rootPages.referencePDF()
                                           + "\n");
+        // Set the initial view to the first page, with Fit Visible as the
+        // default magnification
+        if (this.rootPages.kids.size() > 0) {
+            p.append("/OpenAction [");
+            p.append(this.rootPages.kids.get(0));
+            p.append(" /FitBH null]\n");
+        }
         if (_outline != null) {
             p.append(" /Outlines " + _outline.referencePDF() + "\n");
             p.append(" /PageMode /UseOutlines\n");

Reply via email to