Thank you very much. I have never know this before.
But I use FOP to generate PDF, it give me an error says:
java.lang.RuntimeException: org.apache.fop.apps.FOPException: Currently only
Table Rows are supported in table body, header and footer
So I have to put <fo:table-row>. In my case, for each Attachment, how can I
output its <info> on top of its <filename>, so the output will look like:
......
<table-cell border="solid" starts-row="true">
<block>information for Image5445.jpg</block>
</table-cell>
<table-cell border="solid">
<block>information for Image5447.jpg</block>
</table-cell>
<table-cell border="solid" starts-row="true">
<block>Image5445.jpg</block>
</table-cell>
<table-cell border="solid">
<block>Image5447.jpg</block>
</table-cell>
......
Biying
"G. Ken Holman" wrote:
At 2003-09-26 12:24 -0400, Biying Huang wrote:
In PDF output, I am trying to display 2 images side by side and its info
above each image, but only display images that has the attribute
showImage="true".
This is an ideal situation for the cell-based row-grouping strategy in
XSL-FO ... most of my students have never heard of this and only think of
the row-based row-grouping strategy because of their background in HTML. I
see from your attempt that you, too, were trying to work out an answer
using the row-based row-grouping strategy.
When dealing algorithmically with column counts in XSL-FO, using the
cell-based row-grouping strategy delegates the hard work to the XSL-FO
engine, making the stylesheet very easy.
The example below works as expected in both Antenna House and RenderX
XSL-FO engines. I increased the size of the data sample to show it working
with more cells.
I hope this helps.
...................... Ken
T:\Biying>type biying.xml
<AttachmentList>
<Attachment showImage="true">
<filename>Image5445.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="false">
<filename>Image5446.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="true">
<filename>Image5447.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="false">
<filename>Image5448.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="true">
<filename>Image5449.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="false">
<filename>Image5450.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="true">
<filename>Image5451.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="true">
<filename>Image5452.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="false">
<filename>Image5453.jpg</filename>
<info>image information</info>
</Attachment>
<Attachment showImage="true">
<filename>Image5454.jpg</filename>
<info>image information</info>
</Attachment>
</AttachmentList>
T:\Biying>type biying.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="/">
<root font-family="Times" font-size="20pt">
<layout-master-set>
<simple-page-master master-name="frame"
page-height="210mm" page-width="297mm"
margin-top="1cm" margin-bottom="1cm"
margin-left="1cm" margin-right="1cm">
<region-body region-name="frame-body"/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="frame">
<flow flow-name="frame-body">
<block>Test of table columns</block>
<table border="solid">
<table-body>
<xsl:apply-templates select="/AttachmentList/
Attachment[(_at_)showImage='true']"/>
</table-body>
</table>
</flow>
</page-sequence>
</root>
</xsl:template>
<xsl:template match="Attachment">
<table-cell border="solid">
<xsl:if test="count(
preceding-sibling::Attachment[(_at_)showImage='true'] )
mod 2 = 0">
<xsl:attribute name="starts-row">true</xsl:attribute>
</xsl:if>
<block>
<xsl:value-of select="filename"/>
</block>
</table-cell>
</xsl:template>
</xsl:stylesheet>
T:\Biying>saxon -o biying.fo biying.xml biying.xsl
T:\Biying>type biying.fo
<?xml version="1.0" encoding="utf-8"?>
<root xmlns="http://www.w3.org/1999/XSL/Format" font-family="Times"
font-size="20pt">
<layout-master-set>
<simple-page-master master-name="frame" page-height="210mm"
page-width="297mm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm"
margin-right="1cm">
<region-body region-name="frame-body"/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="frame">
<flow flow-name="frame-body">
<block>Test of table columns</block>
<table border="solid">
<table-body>
<table-cell border="solid" starts-row="true">
<block>Image5445.jpg</block>
</table-cell>
<table-cell border="solid">
<block>Image5447.jpg</block>
</table-cell>
<table-cell border="solid" starts-row="true">
<block>Image5449.jpg</block>
</table-cell>
<table-cell border="solid">
<block>Image5451.jpg</block>
</table-cell>
<table-cell border="solid" starts-row="true">
<block>Image5452.jpg</block>
</table-cell>
<table-cell border="solid">
<block>Image5454.jpg</block>
</table-cell>
</table-body>
</table>
</flow>
</page-sequence>
</root>
--
Next public US delivery: 3-day XSLT/2-day XSL-FO 2003-10-13
Next public European delivery: 3-day XSLT/2-day XSL-FO 2003-11-??
Instructor-led on-site corporate, government & user group training
for XSLT and XSL-FO world-wide: please contact us for the details
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6 Definitive XSLT and XPath
ISBN 0-13-140374-5 Definitive XSL-FO
ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners: http://XMLGuild.info
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list