Tom
Here is an adjusted version that triggers only when "align" is used on the
table. This has some peculiarities when processed with FOP 1.0.
I would suggest that you use fixed column widths and not proportional in the
XML tables because proportional is not quite right in FOP when used in a table
in a table. But if you use fixed widths it should be fine (or at least in my
setup it was).
Cheers,
Dean Nelson
<!-- center tables in print, from p. 474 in Stayton: -->
<xsl:template name="table.layout">
<xsl:param name="table.content"/>
<xsl:choose>
<xsl:when test="self::tab...@align]">
<fo:table width="100%" table-layout="fixed">
<fo:table-column column-width="proportional-column-width(1)"/>
<fo:table-column/>
<fo:table-column column-width="proportional-column-width(1)"/>
<fo:table-body start-indent="0pt">
<fo:table-row>
<fo:table-cell><fo:block></fo:block></fo:table-cell>
<fo:table-cell>
<fo:table>
<fo:table-body start-indent="0pt">
<fo:table-row><fo:table-cell><fo:block>
<xsl:copy-of select="$table.content"/>
</fo:block></fo:table-cell></fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
<fo:table-cell><fo:block></fo:block></fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$table.content"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
In a message dated 11/11/10 06:40:35 Pacific Standard Time,
[email protected] writes:
I have no problems now for tables spanning the print width, nor with
tables of any width in html. But I need to center
less-than-page-width tables in print.
I have used Bob Stayton's xsl fo chunk on p. 474 as a start to try to
get my narrow tables centered in print. Here is my current version:
<!-- center tables in print, from p. 474 in Stayton: -->
<xsl:template name="table.layout">
<xsl:param name="table.content"/>
<fo:table width="100%" table-layout="fixed"><!-- I dded table-layout
attribute -->
<fo:table-column column-width="proportional-column-width(1)"/>
<!- [1] hack next line: added actual table width here -->
<fo:table-column column-width="3in"/>
<fo:table-column column-width="proportional-column-width(1)"/>
<fo:table-body start-indent="0pt">
<fo:table-row>
<!-- <fo:table-cell/> -->
<!-- [2] fo complains about missing table-cell children, I
added Bob's zero space char from p. 261 -->
<fo:table-cell><fo:block></fo:block></fo:table-cell>
<fo:table-cell>
<fo:table>
<fo:table-body start-indent="0pt">
<fo:table-row><fo:table-cell><fo:block>
<xsl:copy-of select="$table.content"/>
</fo:block></fo:table-cell></fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
<!-- ditto from [2] -->
<fo:table-cell><fo:block></fo:block></fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:template>
That works for the one specific table when I hardwire the actual table
width. Is there any xsl:fo magic that can get the total original
table width at [1]? If not I suppose I can post process the fo to fix
it, but there must be a more elegant way.
Thanks,
-Tom
Thomas M. Browder, Jr.
Niceville, Florida
USA
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]