[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XSL-FO to generate Footnotes


Subject: Re: [xsl] XSL-FO to generate Footnotes
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 01 Oct 2012 10:14:38 -0400

At 2012-10-01 08:03 +0000, Struijk, Toon van der wrote:
On a project I'm working at, I want to generate footnotes. So far, I know how to autonumber the footnotes, and have the footnotes themselves a different styling. But I can't get them on the bottom of a page. The code I have so far looks like this:

Looking at the XSLT you have is less important than looking at the XSL-FO your XSLT produces. Can you reduce your example to a test that illustrates your problem?


As far as I can see, this is the proper way to render footnotes.
We use the XSL-FO processor from Altsoft (http://bit.ly/JFV1MI) which should be capable of rendering footnotes.
Because I'm really new to XSL-FO, having no real programming experience, and just learn by doing, it might be that I'm missing some important part in the above example.

I learned a *lot* about XSL-FO just by writing mini examples of different constructs in order to understand how they work.


When I teach XSL-FO, I don't teach any XSLT (that is the subject of another separate class), I only cover the XSL-FO constructs.

Consider how you likely learned HTML: you just hack together examples until you understand how things work. An XSL-FO instance is simply well-formed XML and so you can throw together examples in order to understand how constructs interact.

So if anyone would be so kind to point in the right direction, it would be very appreciated.

Can you try the working example below with your processor?


If it does, then inspect the XSL-FO created by your XSLT and see what may be different.

I hope this helps.

. . . . . . . . . . Ken

<?xml version="1.0" encoding="utf-8"?><!--foot.fo-->
<!DOCTYPE root [
<!ENTITY page-width    "210mm">
<!ENTITY page-height   "297mm">
<!ENTITY margin-top    "15mm">
<!ENTITY margin-bottom "15mm">
<!ENTITY margin-left   "15mm">
<!ENTITY margin-right  "15mm">
<!ENTITY before-extent "13mm">
<!ENTITY after-extent  "13mm">
 ]>
<root font-family="Times" font-size="20pt"
         xmlns="http://www.w3.org/1999/XSL/Format">

<layout-master-set>
  <simple-page-master master-name="frame"
    page-height="&page-height;" page-width="&page-width;"
    margin-top="&margin-top;" margin-bottom="&margin-bottom;"
    margin-left="&margin-left;" margin-right="&margin-right;">
    <region-body region-name="frame-body"
      margin-top="&before-extent;" margin-bottom="&after-extent;"/>
    <region-after extent="&after-extent;"/>
  </simple-page-master>
</layout-master-set>

<page-sequence master-reference="frame">

<static-content flow-name="xsl-region-after">
  <block text-align="center"><page-number/></block>
</static-content>
<static-content flow-name="xsl-footnote-separator">
  <block font-style="italic">Footnotes</block>
</static-content>

<flow flow-name="frame-body" font-size="40pt">
<block>This is a test</block>
<block>This is a<footnote>
<inline baseline-shift="15pt" font-size="20pt">1</inline>
<footnote-body>
  <block font-size="20pt">
    <inline baseline-shift="5pt" font-size="15pt"
      >1 </inline>This is a footnote with a very
long paragraph so that it will (hopefully) wrap onto
multiple lines in the footnote area.
  </block>
</footnote-body>
</footnote> test</block>
<block>This is a test</block>
<block>This is a<footnote>
<inline baseline-shift="15pt" font-size="20pt">2</inline>
<footnote-body>
  <block font-size="20pt">
    <inline baseline-shift="5pt" font-size="15pt"
      >2 </inline>This is another footnote, once
again with a very long paragraph so that it will
(hopefully) wrap onto multiple lines in the footnote area.
  </block>
</footnote-body>
</footnote> test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>
<block>This is a test</block>

</flow>

</page-sequence>

</root>


-- Contact us for world-wide XML consulting and instructor-led training Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal


Current Thread
Keywords