[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] olinking between PDFs - page citation
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.
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.