我正在使用XSL-FO生成打印出的帐户对帐单。 PDF实际上只是一个简单的表格,每页都有一个简单的标题。困难在于我必须显示每页的交易量,例如
+------------------------------+-----------+-----------+---------------------+
| Text | Credit | Debit | Balance |
+------------------------------+-----------+-----------+---------------------+
| Previous month | | | (*1) 1000 |
| abc | 1000 | | 2000 |
| abc | | 500 | 1500 |
| abc | | 200 | 1300 |
| ... | | | |
| Carry over | (*2) 1000 | (*3) 700 | (*4) 1300 |
+------------------------------+-----------+-----------+---------------------+
+------------------------------+-----------+-----------+---------------------+
| Text | Credit | Debit | Balance |
+------------------------------+-----------+-----------+---------------------+
| Previous page | (*2) 1000 | (*3) 700 | (*4) 1300 |
| abc | 1000 | | 2300 |
| abc | | 500 | 1800 |
| abc | | 200 | 1600 |
| ... | | | |
| Carry over | (*2) 2000 | (*3) 1400 | (*4) 1600 |
+------------------------------+-----------+-----------+---------------------+
以下是一些解释:
如何使用XSL-FO进行这些计算?
另请参阅此相关问题:How to display one or the other information depending on the page number in XSL-FO?
答案 0 :(得分:1)
尝试“表格标记”:http://www.w3.org/TR/xsl/#fo_retrieve-table-marker。
在XSLT中,每行注入一个带总和的标记。然后让引擎选择一个标记来替换表头或页脚中的fo:retrieve-table-marker。我们的想法是在渲染时选择合适的标记,具体取决于标记在页面上的位置以及@ retrieve-position和@ retrieve-boundary上的fo:retrieve-table-marker。
答案 1 :(得分:1)
不幸的是,fop没有从我发现的内容中实现<fo:retrieve-table-marker/>
。相反,这个解决方案对我有用:
How to display one or the other information depending on the page number in XSL-FO?
它涉及在<fo:flow/>
之外创建一个单独的表格,该表格使用<fo:retrieve-marker/>
元素显示表格标题。