XSL-FO: Alternating flows

Hello

I'd like to know if I missed something in the specs or if I really
stumbled on something that is not covered by the XSL Candidate
Recommendation. I've got the following situation:

I'm printing invoices. On the backside of the first sheet of each
invoice there is some text that explains some of the things on the
invoice. So we're talking about duplex printing here, though there is no
non-static text on the backsides. I'm currently using Apache FOP version
0.17 which I have modified in a way so I can have two flows in one
page-sequence. The approach works for me but it is non-standard and
results in not being able to freely follow the development of FOP.

To illustrate again what I'm doing please look at this:

"I" indicates part of the flow for the invoice
"B" indicates the flow for the backside text
"X" indicates an blank page

The 6 resulting pages (3 sheets of paper in duplex) get constructed as
follows:

Page:     1   2   3   4   5   6
Content: I1   B   I2  X   I3  X

This is an extract of my (not so correct) XSL:FO file:

<fo:root>
	<!-- defines the layout master -->
	<fo:layout-master-set>
		<fo:simple-page-master master-name="first_page" page-height="29.7cm" page-width="21cm" margin-top="1.6cm" margin-bottom="10.6cm + {$vertical_correction} + 4mm + {$instructions_height} + {$summary_height}" margin-left="1.6cm" margin-right="1.2cm">
			<fo:region-body/>
			<fo:region-after/>
			<!-- extent 10.6 cm ESR + 4mm space + {$instructions_height} + {$summary_height} Invoice summary-->
		</fo:simple-page-master>
		<fo:simple-page-master master-name="normal_page" page-height="29.7cm" page-width="21cm" margin-top="1.6cm" margin-bottom="1.6cm" margin-left="1.6cm" margin-right="1.2cm">
			<fo:region-before/>
			<fo:region-body margin-top="3.6cm"/>
		</fo:simple-page-master>
		<fo:simple-page-master master-name="backside" page-height="29.7cm" page-width="21cm" margin-top="1.2cm" margin-bottom="10.6cm" margin-left="1.3cm" margin-right="2.5cm">
			<fo:region-body region-name="backsideregion"/>
		</fo:simple-page-master>
		<fo:page-sequence-master master-name="all">
			<fo:repeatable-page-master-alternatives>
				<fo:conditional-page-master-reference master-name="first_page" page-position="first"/>
			</fo:repeatable-page-master-alternatives>
			<fo:repeatable-page-master-alternatives>
				<fo:conditional-page-master-reference master-name="normal_page" odd-or-even="odd"/>
				<fo:conditional-page-master-reference master-name="backside" odd-or-even="even"/>
			</fo:repeatable-page-master-alternatives>
		</fo:page-sequence-master>
	</fo:layout-master-set>
	<!-- starts actual layout -->
	<fo:page-sequence master-name="all" force-page-count="even">
		<fo:static-content flow-name="xsl-region-before">
[snip]
		</fo:static-content>
		<fo:static-content flow-name="xsl-region-after">
[snip]
		</fo:static-content>
		<fo:flow flow-name="xsl-region-body">
[snip - main invoice content]
		</fo:flow>
		<fo:flow flow-name="backsideregion">
[snip - backside content]
		</fo:flow>
	</fo:page-sequence>
</fo:roo

Is it possible to model this requirement in XSL 1.0 CR? If not, I'd like
to have this kind of functionality added to the XSL wishlist.

Thank you.

Jeremias Märki

mailto:jeremias.maerki@outline.ch

OUTLINE AG
Postfach 3954 - Rhynauerstr. 15 - CH-6002 Luzern
Fon +41 (41) 317 2020 - Fax +41 (41) 317 2029
Internet http://www.outline.ch

Received on Thursday, 14 June 2001 23:43:37 UTC