http://blog.sina.com.cn/lunjunsun[订阅]
字体大小: 正文
续解读XSL-FO中列表、表格、布局、页眉页脚(2009-05-18 00:32:36)
附例子代码:

<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simple" page-width="29.7cm" page-height="21cm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm">
<fo:region-body margin="3cm"/>
<fo:region-before extent="2cm" region-name="ra-left"/>
<fo:region-after extent="2cm" region-name="rb-left"/>
<fo:region-start extent="2cm"/>
<fo:region-end extent="2cm"/>
</fo:simple-page-master>
<!--<fo:page-sequence-master master-name="standard">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="first" page-position="first"/>
<fo:conditional-page-master-reference master-reference="left" odd-or-even="even"/>
<fo:conditional-page-master-reference master-reference="right" odd-or-even="odd"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>-->
</fo:layout-master-set>
<fo:page-sequence master-reference="simple">
<fo:static-content flow-name="ra-left">
<fo:table font-size="10pt" text-align-last="end">
<fo:table-column column-width="350pt"/>
<fo:table-column column-width="75pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding-start="3pt" padding-end="3pt">
<fo:block text-align="start">
XSL Formatting Objects
</fo:block>
</fo:table-cell>
<fo:table-cell padding-start="3pt" padding-end="3pt">
<fo:block text-align="end">Page
<fo:page-number/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:static-content>
<fo:static-content flow-name="rb-left">
<fo:table font-size="10pt" text-align-last="end">
<fo:table-column column-width="75pt"/>
<fo:table-column column-width="350pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding-start="3pt" padding-end="3pt">
<fo:block text-align="end">
Friends
</fo:block>
</fo:table-cell>
<fo:table-cell padding-start="3pt" padding-end="3pt">
<fo:block text-align="start" font-weight="bold" font-family="monospace">
http://blog.sina.com.cn/lunjunsun
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<!-- Title -->
<fo:block font-size="18pt" font-family="simhei" line-height="24pt" space-after.optimum="15pt" background-color="blue" color="white" text-align="center" padding-top="3pt">
支持中文的FOP 0.20.2
</fo:block>
<!-- Normal Text -->
<fo:block font-size="12pt" font-family="simhei" line-height="15pt" space-after.optimum="3pt" text-align="justify" text-indent="1.0cm">
FOP is the world's first print formatter driven by XSL formatting objects. It is a Java application that reads a formatting object tree and then turns it into a PDF document.
</fo:block>
<fo:list-block provisional-distance-between-starts="2.0cm">
<fo:list-item>
<fo:list-item-label start-indent="1.0cm" end-indent="1.0cm">
<fo:block>
<xsl:number value="position()" format="1."/>
</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<fo:block>TestOL</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
<fo:list-block provisional-distance-between-starts="2.0cm">
<fo:list-item>
<fo:list-item-label start-indent="1.0cm" end-indent="1.0cm">
<fo:block>•</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<fo:block>TestUL</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
<fo:list-block provisional-distance-between-starts="2.0cm">
<fo:list-item>
<fo:list-item-label start-indent="1.0cm" end-indent="1.0cm">
<fo:block>
<fo:external-graphic src="D:\fop\test\0.gif" content-height="0.5cm"/>
</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<fo:block>TestGraphic</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
<fo:table>
<fo:table-column column-width="25mm"/>
<fo:table-column column-width="25mm"/>
<fo:table-column column-width="25mm"/>
<fo:table-header>
<fo:table-row>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt" background-color="#FFFFCC">
<fo:block font-weight="bold">Car</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt" background-color="#FFFFCC">
<fo:block font-weight="bold">Price</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt" background-color="#FFFFCC">
<fo:block font-weight="bold">Desc</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<fo:table-body>
<fo:table-row>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt">
<fo:block>Volvo</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt">
<fo:block>$50000</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt" number-rows-spanned="2" text-align="center">
<fo:block>Good</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt">
<fo:block>SAAB</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt" padding-before="3pt" padding-after="3pt" padding-start="3pt" padding-end="3pt">
<fo:block>$48000</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:flow>
</fo:page-sequence>
</fo:root>
执行:fop -c conf/config.xml -fo test/simple.fo -pdf test/simple.pdf,如图:

转换后的效果:

 


加载中,请稍候...
  • 评论加载中,请稍候...

验证码:请点击后输入验证码  收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...