This indent stuff very nearly does the trick, but not quite.

The outer edges of both pages are perfect, so the -negative start-indent on the right-hand page pulls the right edge of the table exactly where I want it (in line with the text margin of the page) by outdenting exactly half the table. The left-hand page start correctly too but this isn't much of a surprise. :)

However the gutters near the spine are not respected. I define my page margins as follows:

   <xsl:variable name="leftPageMargins"> 0.0in 0.833in 0.6in
   0.0in</xsl:variable>
   <xsl:variable name="rightPageMargins">0.0in 0.0in 0.6in
   0.833in</xsl:variable>

hoping to have the table not write into the "0.833in" gutters. I define a margin-left/right on the region-body and region-before to set the outer edges correctly (there's even a good reason for doing this).

I've tried playing with the indent numbers but that only shifts the start point.

I've tried "overflow=hidden" on the region but this just gives me a completely blank area!? No effect with overflow=hidden on the table data. (Confession: the table of data is, for reasons long since lost, in a cell of a containing table but wrapping the table in a "fo:block overflow=hidden" doesn't help.)

I'm this close to setting "color=white background-color=white" in the last/first visible column but that kind of programming in xsl is just plain ugly.

So my initial objective has been accomplished: I can perfectly size all tables, including those which span facing pages. I can show the table data as it would appear on each page. I just show a little more than I would like. This will have to do for now, until I gain the strength to do the white-on-white trick. Other chores beckon at this point.

Cheers,




On 06/10/2011 10:23 AM, Vincent Hennebert wrote:
Hi Rob,

(Sorry for the delay.)

On 01/06/11 00:30, Rob Sargent wrote:
I have a table of data which is designed to span across two facing pages.
Thanks to the tip from Jeremias Maerki I can size the tables perfectly and
allot the correct space in the region-before or each page. But how do I get
the table to "break" across the two pages nicely?  Since the definition of
each line's depth my be determined by any column I cannot lay the two halves
out separately.  It would be cool if it would just flow nicely all by itself
but that's not quite how flow works far as I know.  Perhaps I could lay the
entire table in both region and have it truncate the left/right overflow?
That seems to me like the best way to achieve what you want. Normally
you just have to play with start-indent and end-indent on the table. You
can even set the other indent (end-indent or start-indent) to a negative
value to avoid FOP warnings. Something like this:
• for even pages:
   <fo:table table-layout="fixed" width="200%"
     start-indent="0" end-indent="-100%">
     <fo:table-header start-indent="0" end-indent="0">
       ...
     </fo:table-header>
     <fo:table-body start-indent="0" end-indent="0">
       ...
     </fo:table-body>
   </fo:table>
• for odd pages:
   <fo:table table-layout="fixed" width="200%"
     start-indent="-100%" end-indent="0">
     <fo:table-header start-indent="0" end-indent="0">
       ...
     </fo:table-header>
     <fo:table-body start-indent="0" end-indent="0">
       ...
     </fo:table-body>
   </fo:table>

(You may have to adjust the width of the table a bit to account for its
borders.)


Seems possible for the left page, but would it work for the right hand page.
i.e. Can one force the region to in essence "fill from the right".

Or is there a correct way to accomplish this?

All pointer welcome,

rjs
HTH,
Vincent

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org

Reply via email to