html - xml, xslt - 所有页面上的页眉和页脚,具有连续的表格数据内容
问题描述
我需要从 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">
<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>
解决方案
试试下面的代码。page-break-before:always;
为第一代元素添加样式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>
推荐阅读
- javascript - 如何遍历 React 组件中数组内对象的属性?
- symfony - 引用类“Doctrine\ODM\MongoDB\UnitOfWork”,但不存在此类服务
- apache-spark - 我们可以在 UDF 中使用关键字参数吗
- html - 升级到 bootstrap 4,菜单不隐藏
- java - 我可以在我的 java 程序中运行一个无限循环来检查第三方是否在数据库中做了一些更改
- firefox - 从 Firefox WebExtension 注册 PAC 代理文件 - 未定义函数
- php - PHP 警告:include_once()
- django - django 上下文找不到在模板标签中使用时存在的值
- javascript - 在提交 asp.net core 2.0 之前验证表单
- android - 垂直搜索栏在 API25 上变为透明-