Hi Bergfrid,
Yes, this can be done now.  FOP, XEP, and Antenna House all have an option to 
produce an Area Tree output instead of PDF.  An Area Tree file is an 
intermediate XML file format that represents the typeset pages (as opposed to 
the .fo file which is just typesetting specifications).  For example, run FOP 
with the -at option instead of -pdf.

The Area Tree includes elements that carry the id attributes from the FO file 
(and from the XML source, if specified there), embedded in <pageSequence> 
elements that have page number attributes.  So it is possible to write an XSLT 
process to read an olink targets file for each id, find that id, back up to its 
ancestor pageSequence to get its page number, and load the page number 
information into the olink targets file.

One caution: id attributes in the .fo and .at file come from the DocBook 
element if it has xml:id, or it is generated by the XSLT processor if not.  
Generated id values are not necessarily consistent between runs.  If you want 
to reliably reference another document's pages, you are advised to put id 
attributes in your DocBook source for every element you might reference and not 
rely on generated id values.

Bob Stayton
Sagehill Enterprises
[email protected]


From: Bergfrid Skaara 
Sent: Tuesday, August 06, 2013 1:18 AM
To: DocBook Apps 
Subject: [docbook-apps] olinking between PDFs - page citation


My next issue with external PDF olinks is page citations.

I realize this is a long shot, but has there been any development on populating 
the page attribute of the olink data as described in 
http://www.sagehill.net/docbookxsl/OlinkPrintOutput.html#OlinkPageRefs ?

We need to port an extensive amount of legacy PDFs from unstructured FrameMaker 
to DocBook XML. These PDFs are formal specifications for hardware and rely 
heavily on cross references with page citation to requirements in the various 
specifications (huge interconnected mesh of specs).

Is there any way to get page numbers on external olinks, automaticly or 
manually ?

We are currently using Apache FOP, but I am testing Render XEP.

Best regards
Bergfrid Skaara

Reply via email to