OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Centering Tables in Print with Fop 1.0


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::table[@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>
&nbs p;          </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, tom.browder@gmail.com 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">
&n bsp;    <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>&#xFEFF;</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>
  &nbs p;      </fo:table>

       </fo:table-cell>

       <!-- ditto from [2] -->
       <fo:table-cell><fo:block>&#xFEFF;</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: docbook-apps-unsubscribe@lists.oasis-open.org
For additional commands, e-m ail: docbook-apps-help@lists.oasis-open.org

 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]