我需要从XML文档生成PDF文件。并且PDF应该在每个页面上都有页眉和页脚,并且在PDF的正文中应该有来自XML的表格数据,这些数据应该跨越页眉和页脚的页面
例如:
第1页
Header Contents :
Table :
Line 1
Line 2
Footer Contents :
第2页
Header Contents :
Table :
Line 3
Line 4
Footer Contents :
就像,我应该在每页的表格中显示有限的行。每页一页中只有2行,其中包含页眉和页脚内容。
请找到我的XML:
<receipt>
<order>
<page></page>
<page>
<line_number>1</line_number>
<product_code>S10</product_code>
<line_number>2</line_number>
<product_code>S20</product_code>
</page>
<page>
<line_number>3</line_number>
<product_code>S92</product_code>
<line_number>4</line_number>
<product_code>S31</product_code>
</page>
</order>
</receipt>
请找到我的xsl样式表:
xmlns:date =“http://exslt.org/dates-and-times”extension-element-prefixes =“date”&gt;
<xsl:template match="/receipt">
<html>
<head>
<style>@page {size: a4 landscape;}</style>
</head>
<body>
<table >
<thead>
<tr >
<th >Line</th>
<th>Item Code</th>
</tr>
</thead>
<tbody>
<xsl:for-each select="order/page/line_number">
<tr style="font-size: 9px; ">
<td><xsl:value-of select="." /></td>
<td><xsl:value-of select="following-sibling::product_code[1]" /></td>
</tr>
</xsl:for-each>
</tbody>
</table>
<br />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:2)
尝试以下代码。
为第一代tr
元素添加<page>
样式将按<tbody>
<xsl:for-each select="order/page[exists(*)]">
<xsl:for-each-group select="*" group-adjacent="count(self::line_number|preceding-sibling::line_number)">
<xsl:variable name="pos" as="xs:integer" select="position()"/>
<tr style="{concat('font-size: 9px;',if ($pos eq 1) then 'page-break-before:always;' else '')}">
<td>
<xsl:value-of select="current-group()[1]"/>
</td>
<td>
<xsl:value-of select="current-group()[2]"/>
</td>
</tr>
</xsl:for-each-group>
</xsl:for-each>
</tbody>
元素拆分表。这将解决您的要求。
jsx