[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: XSL-FO page layout question

Subject: RE: XSL-FO page layout question
From: "Cindy Hunt" <Cindy.Hunt@xxxxxxx>
Date: Thu, 5 Apr 2007 10:40:32 -0400
RE:  XSL-FO page layout question
Thanks for the suggestion. This seems to kick it in the pants and make the
first page of the next chapter know that it is a first page. One thing it now
does weird is that if the page before it is blank, it now prints the even
numbered page using the odd-page layout (the running head is flush right
instead of left like a right hand page). So I will have 3 recto-looking pages
in a row instead of the one in the middle looking like a verso.

Anyone seen this behavior before?

Thanks,
Cindy Hunt

-----Original Message-----
From: Wendell Piez [mailto:wapiez@xxxxxxxxxxxxxxxx]
Sent: Monday, April 02, 2007 3:38 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE:  XSL-FO page layout question

Cindy,

Sorry if you've been waiting -- been busy. (It happens. And for whatever
reason, people aren't as ready to jump in on XSL-FO questions.)

Anyhow, I imagine what you want can probably be done by using attributes on
your page-sequence elements. Check out, in particular, the
force-page-count="even" or ="end-on-even" settings. That way each page
sequence will start on an odd page. Then you shouldn't need the break-before
behavior, but your pages will still be assigned their layouts more in line
with your expectations.

Good luck,
Wendell

At 09:47 AM 3/30/2007, you wrote:
>Thanks - this definitely gave me a good start. I did not realize I
>could put the page-sequences inside the element definition so that
>makes lots more sense to me now. This is helping but it looks like if
>one of my chapters just has a single page then the first page of the
>next chapter gets the odd-before static content rather than the
>first-page one. I know that because I stuck an "XXX" after the page
>number for the first-page to show me which model it gets. I tried
>sticking in a blank-page definition but that doesn't seem to help. Any
ideas?
>
>Here is what I have now:
>
>                         <fo:layout-master-set>
>                                 <fo:simple-page-master
> master-name="first-page" xsl:use-attribute-sets="pageDimensions">
>                                         <fo:region-body margin-top="0pt" />
>                                         <fo:region-before
> region-name="first-before" extent="32pt" />
>                                         <fo:region-start extent="93pt" />
>                                 </fo:simple-page-master>
>                                 <fo:simple-page-master
> master-name="odd-page" xsl:use-attribute-sets="pageDimensions">
>                                         <fo:region-body
> margin-top="71.5pt" />
>                                         <fo:region-before
> region-name="odd-before" extent="45pt" />
>                                         <fo:region-start extent="93pt" />
>                                 </fo:simple-page-master>
>                                 <fo:simple-page-master
> master-name="even-page" xsl:use-attribute-sets="pageDimensions">
>                                         <fo:region-body
> margin-top="71.5pt" />
>                                         <fo:region-before
> region-name="even-before" extent="45pt" />
>                                         <fo:region-start extent="93pt" />
>                                 </fo:simple-page-master>
>                                 <fo:simple-page-master
> master-name="blank-page" xsl:use-attribute-sets="pageDimensions">
>                                         <fo:region-body
> margin-top="71.5pt" />
>                                         <fo:region-before
> region-name="body-blank" extent="45pt" />
>                                         <fo:region-start extent="93pt" />
>                                 </fo:simple-page-master>
>                                 <fo:page-sequence-master
> master-name="my-sequence">
>
> <fo:repeatable-page-master-alternatives>
>
><fo:conditional-page-master-reference page-position="first"
>
>master-reference="first-page" odd-or-even="odd"/>
>
><fo:conditional-page-master-reference odd-or-even="odd"
>blank-or-not-blank="not-blank"
>
>master-reference="odd-page"/>
>
><fo:conditional-page-master-reference odd-or-even="even"
>blank-or-not-blank="not-blank"
>
master-reference="even-page"/>
>                         <fo:conditional-page-master-reference
> blank-or-not-blank="blank"
>
>master-reference="blank-page"/>
>
></fo:repeatable-page-master-alternatives>
>                                 </fo:page-sequence-master>
>                         </fo:layout-master-set>
>
>
>
>         <xsl:template match="chapter">
>           <fo:page-sequence master-reference="my-sequence">
>                 <fo:static-content flow-name="first-before">
>                         <fo:block
> xsl:use-attribute-sets="runningHeadPageNumber"
>
>text-align="right"><fo:page-number/>XXX</fo:block>
>                 </fo:static-content>
>
>             <!-- This code sets up running head for odd pages -->
>                 <fo:static-content flow-name="odd-before">
>                         <fo:block xsl:use-attribute-sets="runningHeadText"
>                                                 text-align="right">
>                                 <fo:retrieve-marker
> retrieve-class-name="section" retrieve-position="last-ending-within-page"
>
>retrieve-boundary="document"/>
>                                 <fo:leader leader-pattern="space"
> leader-length="1em"/>
>                                 <fo:inline
>xsl:use-attribute-sets="runningHeadPageNumber"><fo:page-number/></fo:inline>
>                         </fo:block>
>                 </fo:static-content>
>
>                 <!-- This code sets up running head for even pages -->
>                 <fo:static-content flow-name="even-before">
>                         <fo:block xsl:use-attribute-sets="runningHeadText"
>                                                 start-indent="-93pt"
>
>keep-together.within-line="always"
>                                                 text-align="left">
>                                 <fo:inline
>xsl:use-attribute-sets="runningHeadPageNumber"><fo:page-number/></fo:inline>
>                                                 <fo:leader
>leader-pattern="space" leader-length="12pt"/>
>                                                 <fo:retrieve-marker
>retrieve-class-name="chapterTitle"
retrieve-position="last-ending-within-page"
>
>retrieve-boundary="document"/>
>                         </fo:block>
>                 </fo:static-content>
>
>                 <fo:static-content flow-name="blank-before">
>                         <fo:block
> xsl:use-attribute-sets="runningHeadPageNumber"
>                                                 start-indent="-93pt"
>
>keep-together.within-line="always"
>
>text-align="left"><fo:page-number/>
>                         </fo:block>
>                 </fo:static-content>
>
>                 <fo:flow flow-name="xsl-region-body">
>                         <fo:block break-before="odd-page" id="{$newId}">
>                                 <xsl:apply-templates/>
>                         </fo:block>
>                 </fo:flow>
>           </fo:page-sequence>
>         </xsl:template>
>
>Thanks for all of the help,
>Cindy Hunt
>
>
>-----Original Message-----
>From: Wendell Piez [mailto:wapiez@xxxxxxxxxxxxxxxx]
>Sent: Thursday, March 29, 2007 12:26 PM
>To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>Subject: Re:  XSL-FO page layout question
>
>Cindy,
>
>You're almost there.
>
>Currently, you're flowing your entire content into a single
>page-sequence, as shown here:
>
>At 09:58 AM 3/29/2007, you wrote:
> ><fo:page-sequence master-reference="my-sequence">
> >   <fo:static-content flow-name="first-before"> ... </fo:static-content>
> >   <!-- This code sets up running head for odd pages -->
> >   <fo:static-content flow-name="odd-before"> ... </fo:static-content>
> >   <!-- This code sets up running head for even pages -->
> >   <fo:static-content flow-name="even-before"> ... </fo:static-content>
> >   <fo:flow flow-name="xsl-region-body">
> >      <xsl:apply-templates select="/book/body"/>
> >   </fo:flow>
> ></fo:page-sequence>
>
>Instead, you want each chapter to get its own page sequence. Something
>like
>
>(where the above appeared)
>       <xsl:apply-templates select="/book/body/chapter"/>
>
>and then
>
><xsl:template match="chapter">
>    <fo:page-sequence master-reference="my-sequence">
>       ... first, your static contents ...
>       then:
>       <fo:flow flow-name="xsl-region-body">
>         <xsl:apply-templates/>
>       </fo:flow>
>    </fo:page-sequence>
></xsl:template>
>
>(with adjustments made for the actual structure of your input).
>
>Then each chapter gets its own page sequence and thus its own first page.
>
>You may have to adjust settings on the page-sequence-master to get
>pagination to be continuous, control where the first page appears (on
>an odd or even page), etc.
>
>Cheers,
>Wendell
>
>
>======================================================================
>Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
>Mulberry Technologies, Inc.                http://www.mulberrytech.com
>17 West Jefferson Street                    Direct Phone: 301/315-9635
>Suite 207                                          Phone: 301/315-9631
>Rockville, MD  20850                                 Fax: 301/315-8285
>----------------------------------------------------------------------
>    Mulberry Technologies: A Consultancy Specializing in SGML and  XML
>======================================================================


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
   Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.