- From: Vladimir Rodimyuk <VladimirR@ukrinvent.com>
- Date: Tue, 11 Sep 2007 16:11:27 +0300
- To: "Winterflood, Jonathan" <jonathan.winterflood@capgemini.com>, "www-xsl-fo@w3.org" <www-xsl-fo@w3.org>
- Message-ID: <C50378BB9C267D4796753862ED9AE1A346BB725EA3@UI-OPTERON.ukrinvent.com>
Hi Jonathan
There is a method that works for XEP formatter. The trick is to set block-progression-dimension to image height. See code below
<fo:block-container block-progression-dimension="3in">
<!-- wrapping container with height sufficient for inserted image -->
<fo:table width="100%" table-layout="fixed">
<fo:table-column column-width="80%"/>
<fo:table-column column-width="20%"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell border-style="solid" height="50%">
<!-- Set height to 50% of available area -->
<fo:block>A</fo:block>
</fo:table-cell>
<fo:table-cell number-rows-spanned="2" border-style="solid">
<fo:block>
<fo:instream-foreign-object height="100%" baseline-shift="-10%"
content-height="scale-to-fit" scaling="uniform" role="checked checkbox">
<svg:svg width="1.2in" height="2.7in" viewBox="0 0 100 300">
<svg:text font-family="Helvetica" font-size="50" text-anchor="start" x="2" y="100">SVG</svg:text>
<svg:text font-family="Helvetica" font-size="42" text-anchor="start" x="2" y="200"
>Image</svg:text>
</svg:svg>
</fo:instream-foreign-object>
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell border-style="solid" height="100%">
<!-- The 50% of area is already allocated, so set height to the rest of it - 100% of available area -->
<fo:block>C</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block-container>
But it fails for FOP formatter (the version I tried is 0.93). Here is a part of its log:
SEVERE: Cannot find LM to handle given FO for LengthBase. 16:06
Sep 11, 2007 3:39:39 PM org.apache.fop.layoutmgr.AbstractBaseLayoutManager getBaseLength
SEVERE: Cannot find LM to handle given FO for LengthBase.
Sep 11, 2007 3:39:39 PM org.apache.fop.layoutmgr.AbstractBaseLayoutManager getBaseLength
SEVERE: Cannot find LM to handle given FO for LengthBase.
Sep 11, 2007 3:39:39 PM org.apache.fop.layoutmgr.AbstractBaseLayoutManager getBaseLength
SEVERE: Cannot find LM to handle given FO for LengthBase.
Sep 11, 2007 3:39:39 PM org.apache.fop.layoutmgr.table.TableContentLayoutManager createElementsForRowGroup
WARNING: The contents of row 1 are taller than they should be (there is a block-progression-dimension or height cons
traint on the indicated row). Due to its contents the row grows to 14400 millipoints, but the row shouldn't get any
taller than MinOptMax[min=opt=max=0] millipoints. (fo:table-row, location: 17/21)
Maybe you should ask about similar trick for FOP in fop-user@xmlgraphics.apache.org mailing list.
Respectfully,
Volopdymyr Rodymyuk
> -----Original Message-----
> From: www-xsl-fo-request@w3.org [mailto:www-xsl-fo-request@w3.org] On
> Behalf Of Winterflood, Jonathan
> Sent: Monday, September 10, 2007 6:27 PM
> To: www-xsl-fo@w3.org
> Subject: Same height rows in table
>
>
> Hi,
>
> I'm trying to tell xsl-fo to keep all rows in a table the same height:
>
> The table contains 2 columns, and 2(n) rows.
> The second column spans all rows and contains a 'large' graphic and
> makes the table expand beyond the height required by the first column
> rows.
> In this case, the last row in the first column grows so the bottom edge
> matches that of the second column (like a table, fancy that!) and is
> therefore taller than the other rows.
>
> I would like all the rows to keep the same height, i.e. expand together
> to match the height of the second column.
>
> Current: Wanted:
> +---+---+ +---+---+
> | | | | | |
> +---+ | | | |
> | | | | | |
> | | | +---+ |
> | | | | | |
> | | | | | |
> | | | | | |
> +---+---+ +---+---+
>
> Is this possible without hard-coding the height of the lines? (I would
> rather not calculate the size of the content of the second column...)
>
> I have tried setting the table-row heights to 50% (100/n%), to no avail.
>
> Just in case it matters, I'm using Apache FOP for the rendering.
>
> Here is a (hopefully) minimal example:
>
> <?xml version="1.0" encoding="iso-8859-1"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
> <xsl:template match="/">
> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
> <fo:layout-master-set>
> <fo:simple-page-master master-name="test">
> <fo:region-body/>
> </fo:simple-page-master>
> </fo:layout-master-set>
> <fo:page-sequence master-reference="test">
> <fo:flow flow-name="xsl-region-body">
> <fo:table width="100%" table-layout="fixed">
> <fo:table-column column-width="80%"/>
> <fo:table-column column-width="20%"/>
> <fo:table-body>
> <fo:table-row>
> <fo:table-cell border-style="solid">
> <fo:block>A</fo:block>
> </fo:table-cell>
> <fo:table-cell number-rows-spanned="2" border-style="solid">
> <fo:block>BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB
> BBBBBBBB</fo:block>
> </fo:table-cell>
> </fo:table-row>
> <fo:table-row>
> <fo:table-cell border-style="solid">
> <fo:block>C</fo:block>
> </fo:table-cell>
> </fo:table-row>
> </fo:table-body>
> </fo:table>
> </fo:flow>
> </fo:page-sequence>
> </fo:root>
> </xsl:template>
> </xsl:stylesheet>
>
> Regards,
>
> Jonathan Winterflood
>
>
> This message contains information that may be privileged or confidential
> and is the property of the Capgemini Group. It is intended only for the
> person to whom it is addressed. If you are not the intended recipient,
> you are not authorized to read, print, retain, copy, disseminate,
> distribute, or use this message or any part thereof. If you receive this
> message in error, please notify the sender immediately and delete all
> copies of this message.
>
>
Attachments
- application/octet-stream attachment: tab_row.fo
- application/pdf attachment: tab_row_byXEP.pdf
- application/pdf attachment: tab_row_byFOP.pdf
Received on Tuesday, 11 September 2007 13:18:08 UTC