> -----Original Message-----
> From: David Kim [mailto:[EMAIL PROTECTED]
>
Hi David,
I'm jumping immediately to:
> 3. My Problem(s)
> How can I make data title first in every new page
> instead of column NAME without using table?
The nature of your problem seems to be that the page-breaks are known only
during layout, so there is no easy and straightforward way to detect a
page-break _before_ that phase (unless it is forced by a break-before
or -after property)
If I get it correctly, you actually want to know which node in your source
XML will cause the content to overflow the page-boundary.
In theory it is possible to calculate where a page-break will occur, based
upon page-height, font-size and other relevant attributes. However, this is
very, very tricky, and I think that at best you will end up with a close
approximation, and that it will actually mean that much of the calculation
is done twice: once by your XSL, and again by FOP at layout. Such an
approach would obviously be far from optimal...
This does in no way mean that I think your problem is unsolvable, but I
think you can get around by taking a very close look at fo:marker and
fo:retrieve-marker, and have your XSLT generate FO that looks like what I
describe below.
Caution: _very_ rough sketch. It will surely need some work...
One remark in advance: I assume you are using FOP 0.20.5, and unfortunately,
I don't know exactly which 'retrieve-boundary' and 'retrieve-position'
values are correctly implemented in that version, as I have gotten by with
only 'page' and 'first-starting-within-page'. Maybe one of the FOP-veterans
can add some useful comments here...?
The FO would look something like:
<fo:page-sequence master-reference="...">
<fo:static-content flow-name="xsl-region-before">
<fo:block>
<fo:retrieve-marker retrieve-class-name="data-title"
retrieve-boundary="page-sequence"
retrieve-position="first-starting-within-page-sequence" />
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:marker marker-class-name="data-title">
<!-- put the data titles here only once -->
</fo:marker>
<fo:block>
<!-- put the data itself here -->
</fo:block>
</fo:flow>
</fo:page-sequence>
(If 'page-sequence/first-starting-within-p-s' isn't implemented, then you
will need to repeat the fo:marker before every line of data. Don't worry,
the titles will still be rendered only once on every page.)
If all goes well, then during formatting, the content you put inside the
fo:marker will be rendered at the top of every page(*), and you don't need
to know when or where the page-break occurs. You just let the formatter take
care of it.
(*) provided that the page-master has a before-region that is large enough
to hold the content, of course...
I hope I've explained it adequately, and that it helps...
If not, don't hesitate to ask for further info.
Greetz,
Andreas
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]