[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] PDF olinking and FOP (Patch included)
Hi there, In order to log this discussion, I opened a bug report with the current patch I am using on my system. See http://sourceforge.net/tracker/?func=detail&aid=3029845&group_id=21935&atid=373747 I am open to suggestion Thanks ! On Tue, Jul 13, 2010 at 11:58 PM, Mathieu Malaterre <mathieu.malaterre@gmail.com> wrote: > Hi Bob, > > Thanks for your interest ! > You actually need two patches: > 1. Fix the url mangling > 2. Fix the declaration of named destinations > > I could patch the first one with a very ugly patch: > > diff -ru /tmp/docbook-xsl-1.75.2+dfsg/fo/xref.xsl > /usr/share/xml/docbook/stylesheet/docbook-xsl/fo/xref.xsl > --- /tmp/docbook-xsl-1.75.2+dfsg/fo/xref.xsl 2009-06-08 07:09:03.000000000 +0200 > +++ /usr/share/xml/docbook/stylesheet/docbook-xsl/fo/xref.xsl 2010-07-13 > 17:47:53.000000000 +0200 > @@ -1199,6 +1199,16 @@ > </xsl:when> > <xsl:when test="$href != ''"> > <xsl:choose> > + <xsl:when test="$fop1.extensions != 0"> > + <xsl:variable name="mybeg" select="substring-before($href,'#')"/> > + <xsl:variable name="myend" select="substring-after($href,'#')"/> > + <fo:basic-link > external-destination="url({concat($mybeg,'#dest=',$myend)})" > + xsl:use-attribute-sets="olink.properties"> > + <xsl:copy-of select="$hottext"/> > + </fo:basic-link> > + <xsl:copy-of select="$olink.page.citation"/> > + <xsl:copy-of select="$olink.docname.citation"/> > + </xsl:when> > <xsl:when test="$xep.extensions != 0"> > <fo:basic-link external-destination="url({$href})" > xsl:use-attribute-sets="olink.properties"> > > Clearly a filename could contains a # so the patch may not work in all > cases, but I did not feel comfortable patching the make.olink.href > function... > > The second one is trickier, as it involve generating each > fox:destination right after the fo:bookmark-tree > > diff -ru /tmp/docbook-xsl-1.75.2+dfsg/fo/docbook.xsl > /usr/share/xml/docbook/stylesheet/docbook-xsl/fo/docbook.xsl > --- /tmp/docbook-xsl-1.75.2+dfsg/fo/docbook.xsl 2009-04-23 > 04:00:30.000000000 +0200 > +++ /usr/share/xml/docbook/stylesheet/docbook-xsl/fo/docbook.xsl 2010-07-13 > 18:20:56.000000000 +0200 > @@ -283,6 +283,20 @@ > <xsl:copy-of select="$bookmarks"/> > </fo:bookmark-tree> > </xsl:if> > <!-- insert fox:destination --> > > I do not know how to iterate over > $bookmarks/fo:bookmark[@internal-destination] > So I am stuck right now. Any advice, would be greatly appreciated ! > > Thanks, > > On Tue, Jul 13, 2010 at 6:32 PM, Bob Stayton <bobs@sagehill.net> wrote: >> Hi, >> When FOP was updated to 0.95, the old fox:outline extension element (and its >> descendant elements) for bookmarks was replaced with the XSL-FO 1.1 standard >> fo:bookmark element and its children. The old fox:outline contained the >> fox:destination elements, but they are not needed in the new bookmarks so >> they were not retained. >> >> However, if they are needed for olink destinations, then they should be >> restored. I'm not sure where to do that, though. In the old fop.xsl, they >> were all contained in the fox:outline structure, and were not placed on the >> destination fo:blocks. I guess the id on the destination block was >> sufficient for connecting a reference through the fox:destination element. >> Putting them all in the fox:outline was easy, as it could all be done in >> one place. >> >> Can fox:destination be put into the fo:bookmark structure without generating >> errors? If not, can a fox:outline structure still be added along side the >> fo:bookmark structure and not produce errors? Or does each fox:destination >> have to be placed on the destination block itself? If the latter, then that >> requires making changes in many places in the stylesheet for all the >> elements that might need them. >> >> Bob Stayton >> Sagehill Enterprises >> bobs@sagehill.net >> >> >> ----- Original Message ----- From: "Mathieu Malaterre" >> <mathieu.malaterre@gmail.com> >> To: "DocBook Apps" <docbook-apps@lists.oasis-open.org> >> Sent: Monday, July 12, 2010 8:31 AM >> Subject: [docbook-apps] PDF olinking and FOP >> >> >>> Hi, >>> >>> I am wondering if anyone has a complete setup of docbook + pdf + >>> olinking working. After some research pdf olinking is documented as >>> not working with fop: >>> >>> http://www.sagehill.net/docbookxsl/OlinkPrintOutput.html >>> >>> I believe this is incorrect. I could get it working by patching >>> directly the output fo file to use the following syntax: >>> >>> <fo:basic-link external-destination="url(my.pdf#dest=myid)"> >>> >>> to get the page syntax working: >>> >>> <fo:basic-link external-destination="url(my.pdf#page=7)"> >>> >>> The corresponding my.fo should contains fox:destination named destinations >>> (*): >>> >>> <fox:destination internal-destination="myid"/> >>> >>> I found out that the old fop.xsl was exporting fox:destination >>> elements, but not the new fop1.xsl... >>> >>> Could someone please shed some light on the actual support of named >>> destinations in PDF using fop + docbook 1.75 ? >>> >>> Thanks ! >>> -- >>> Mathieu >>> (*) >>> http://xmlgraphics.apache.org/fop/0.95/extensions.html#named-destinations >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org >>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org >>> >>> >>> >> >> > > > > -- > Mathieu > -- Mathieu
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]