[xep-support] Problem with rx:bookmark

Sébastien CLERMONT sclermont at hotmail.com
Fri May 5 07:17:03 PDT 2006


Hi everyone.  My XSL file is almost done.  All that remain is bookmarks.  I have an XML file and need to produce a PDF with Images and bookmarks to these images.  The problem is that the content of the XML file is dynamic.  It can containt a reference from 1 to a 1000 images.  So I can't have <fo:block> with static ids and use these ids as internal-destination.

In my XSL file, I have my rx:outline section in which I loop.  The bookmarks appear in the PDF file but they all point to the same destination which is the last destination I defined for each level of bookmark.

Here is a part of the XML data:
- - - - - - - - - -
   <type_compte type="EOP">

      <cheque type="dcn" recto="Images/recto1.jpg" cle="a"
              verso="Images/verso1.jpg"
              date="12 MAI 2005"
              nocheque="122"
              montant="1500.00"
              noref="12345678910" />

      <cheque type="rto" date="15 MAI 2005" cle="b"
...
   </type_compte>
- - - - - - - - - -

Here is the <rx:outline> part of the XSL:
- - - - - - - - - -
      <rx:outline>
         <xsl:for-each select="//type_compte">
            <rx:bookmark internal-destination="@type">
            <rx:bookmark-label><xsl:value-of select="@type"/></rx:bookmark-label>
            <xsl:for-each select="cheque">
               <rx:bookmark internal-destination="@cle">
               <rx:bookmark-label><xsl:value-of select="@cle"/></rx:bookmark-label>
               </rx:bookmark>
            </xsl:for-each>
            </rx:bookmark>
         </xsl:for-each>
      </rx:outline>
- - - - - - - - - -

Here are the <fo:block> parts of the XSL:
- - - - - - - - - -
<xsl:template match="type_compte">
   <fo:block id="@type" text-align="left" font-weight="bold" font-size="11pt" space-before.minimum="12pt">
      <xsl:value-of select="@type"/>
   </fo:block>
   <fo:block>
      <xsl:apply-templates />
   </fo:block>
</xsl:template>
- - - - - - - - - -
<xsl:template match="cheque">
   <!-- Images recto et verso -->
   <fo:block id="@cle" text-align="left" space-after.minimum="3pt">
      <xsl:choose>
         <xsl:when test="@type = 'dcn'">
...
</xsl:template>
- - - - - - - - - -

In attachment, you can see a screenshot of the result.  If I click on "EOP" or "MC1", it brings me to "MC1".  If I click on [a, b, c, d, e, f, g, h, i], it brings me to i.

What do I do wrong?  Is that possible to have dynamic ids in fo:blocks and use them in the rx:bookmark tag?

Your help would really be appreciated.  Thank you.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bookmarks.jpg
Type: image/jpeg
Size: 11690 bytes
Desc: not available
URL: <http://lists.renderx.com/pipermail/xep-support/attachments/20060505/9dac9fd1/attachment.jpg>


More information about the Xep-support mailing list