Letter in XSL:FO
Here should go questions about transforming XML with XSLT and FOP.
			- 
				kirashet
 - Posts: 4
 - Joined: Fri Nov 18, 2005 11:37 am
 
Letter in XSL:FO
Hi there,
I have some problems creating a certain XSL:FO file.
I'd like to create series letters respective account statements for n-customers.
The XML-Data is managed like followed:
One 'page' is one customer with its n-Vouchers. The first page should contain receipient address, subject, 
columnnames, text etc and the list of vouchers.
That works fine but when there are many vouchers, a second page ist printed, but with the receipient adress, subject etc.
How to handle this?`
The XSL-File:
Can sb give me a hint?
Greets
kirashet
			
			
									
									
						I have some problems creating a certain XSL:FO file.
I'd like to create series letters respective account statements for n-customers.
The XML-Data is managed like followed:
Code: Select all
<data>
 <page>
  <name>
	Mr. X
  </name>
  <street>
  	X-Street 1
  </street>
  <city>
	Ownedtown
  </city>
  <header>
	Accountstatement
  </header>
  <maintext>
	Foo Bar
  </maintext>
  <column0>
	Documentnumber
  </column0>
  <column1>
	Documenttext
  </column1>
  <column2>
	Debit/Credit
  </column2>
  <body>
   <voucher>
    <docnumber>
	1
    </docnumber>
    <doctext>
	Invoice
    </doctext>
    <amount>
	100
    </amount>
   </voucher>
	.
   n-vouchers
	.
   <voucher>
    <docnumber>
	100
    </docnumber>
    <doctext>
	Invoice
    </doctext>
    <amount>
	120
    </amount>
   </voucher>
  </body>
 </page>
 <page>
	same as obove
 </page>	
</data>columnnames, text etc and the list of vouchers.
That works fine but when there are many vouchers, a second page ist printed, but with the receipient adress, subject etc.
How to handle this?`
The XSL-File:
Code: Select all
<xsl:template match ="/">
		<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
		<fo:layout-master-set>
			<fo:simple-page-master 	master-reference="main" 
						page-height="29.7cm" 
						page-width="21cm" 
						margin-top="6.0cm" 
						margin-bottom="1.5cm" 
						margin-left="1.5cm" 
						margin-right="1.5cm">
				<fo:region-before extent="8.0cm"/>
				<fo:region-after extent="2.0cm"/>
				<fo:region-body margin-top="7.0cm" margin-bottom="0.5cm"/>
			</fo:simple-page-master>
		</fo:layout-master-set>
		<xsl:for-each select="data/page">
		<fo:page-sequence master-name="main" initial-page-number="1">
			<fo:static-content flow-name="xsl-region-before">
                        	<fo:table table-layout="fixed" padding="3pt">
                                        <fo:table-column column-width="10cm"/>
					<fo:table-column column-width="8cm"/>
                                        <fo:table-header>
                                        <fo:table-row>
							<fo:table-cell>
								<fo:block 	text-align="left" 
										font-size="10pt" 
										font-family="Courier" 
										line-height="14pt">
                                                                                        <xsl:apply-templates select="title"/>
                                                                                        <fo:block></fo:block>
                                                                                        <xsl:apply-templates select="name1"/>
                                                                                        <fo:block></fo:block>
											<xsl:apply-templates select="name2"/>
                                                                                        <fo:block></fo:block>
                                                                                        <xsl:apply-templates select="street"/>
                                                                                        <fo:block></fo:block>
                                                                                        <xsl:apply-templates select="postalcode"/><xsl:apply-templates select="city"/>
								</fo:block>
							</fo:table-cell>
					</fo:table-row>
					<fo:table-row>
                                                        <fo:table-cell number-columns-spanned="2">
                                                            <fo:block font-family="Courier" font-size="10pt" text-align="left">
                                                                <xsl:apply-templates select="header"/>
                                                            </fo:block>
        						</fo:table-cell>
                                        </fo:table-row>
	                                <fo:table-row>
                                                        <fo:table-cell number-columns-spanned="2">
								<fo:block font-family="Courier" font-size="10pt" text-align="left">
                                                                    <xsl:apply-templates select="maintext"/>
                                                                </fo:block>
							</fo:table-cell>
                                         </fo:table-row>
        </fo:table-body>
				</fo:table>
                                <fo:table table-layout="fixed" padding="1pt">
                                        <fo:table-column column-width="2.6cm"/>
                                        <fo:table-column column-width="2.0cm"/>
                                        <fo:table-column column-width="2.3cm"/>
					<fo:table-header>
						<fo:table-row>
							<fo:table-cell >
								<fo:block font-family="Courier" font-size="10pt" text-align="left">
                                                                    <xsl:apply-templates select="column0"/>
								</fo:block>
							</fo:table-cell>
							<fo:table-cell>
								<fo:block font-family="Courier" font-size="10pt" text-align="left"  > <!-- white-space-collapse="false">-->
                                                                    <xsl:apply-templates select="column1"/>
								</fo:block>
							</fo:table-cell>
                                                        <fo:table-cell>
								<fo:block font-family="Courier" font-size="10pt" text-align="left"  > <!-- white-space-collapse="false">-->
                                                                    <xsl:apply-templates select="column2"/>
								</fo:block>
                                                        </fo:table-cell>
						</fo:table-row>
                                        </fo:table-header>
                                        <fo:table-body>
                                        </fo:table-body>
				</fo:table>
			</fo:static-content>
			<fo:flow flow-name="xsl-region-body">
				<xsl:apply-templates/>
			</fo:flow>
		</fo:page-sequence>
	</xsl:for-each>
	</fo:root>
	</xsl:template>
	<xsl:template match="data/page/body/voucher" >
            <fo:table table-layout="fixed" padding="1pt">
                <fo:table-column column-width="2.6cm"/>
                <fo:table-column column-width="2.0cm"/>
                <fo:table-column column-width="2.3cm"/>
                <fo:table-header>
		<fo:table-row>
                    <fo:table-cell >
                        <fo:block font-family="Courier" font-size="10pt" text-align="left">
                            <xsl:apply-templates select="docnumber"/>
			</fo:block>
                    </fo:table-cell>
                    <fo:table-cell >
                        <fo:block font-family="Courier" font-size="10pt" text-align="left">
                            <xsl:apply-templates select="doctext"/>
			</fo:block>
                    </fo:table-cell>
                    <fo:table-cell >
                        <fo:block font-family="Courier" font-size="10pt" text-align="right" border-width="1mm"> <!-- white-space-collapse="false">-->
                            <xsl:apply-templates select="amount"/>
			</fo:block>
                    </fo:table-cell>
                </fo:table-row>
                </fo:table-header>
                <fo:table-body>
                </fo:table-body>
            </fo:table>
        </xsl:template>
Greets
kirashet
			
				Jump to
				
			
		
			
			
	
	- Oxygen XML Editor/Author/Developer
 - ↳ Feature Request
 - ↳ Common Problems
 - ↳ DITA (Editing and Publishing DITA Content)
 - ↳ Artificial Intelligence (AI Positron Assistant add-on)
 - ↳ SDK-API, Frameworks - Document Types
 - ↳ DocBook
 - ↳ TEI
 - ↳ XHTML
 - ↳ Other Issues
 - Oxygen XML Web Author
 - ↳ Feature Request
 - ↳ Common Problems
 - Oxygen Content Fusion
 - ↳ Feature Request
 - ↳ Common Problems
 - Oxygen JSON Editor
 - ↳ Feature Request
 - ↳ Common Problems
 - Oxygen PDF Chemistry
 - ↳ Feature Request
 - ↳ Common Problems
 - Oxygen Feedback
 - ↳ Feature Request
 - ↳ Common Problems
 - Oxygen XML WebHelp
 - ↳ Feature Request
 - ↳ Common Problems
 - XML
 - ↳ General XML Questions
 - ↳ XSLT and FOP
 - ↳ XML Schemas
 - ↳ XQuery
 - NVDL
 - ↳ General NVDL Issues
 - ↳ oNVDL Related Issues
 - XML Services Market
 - ↳ Offer a Service