【发布时间】:2011-12-17 09:24:24
【问题描述】:
我正在使用 XSL-FO 生成帐户对帐单打印输出。 PDF 实际上只是一个简单的表格,每页都有一个简单的标题。困难在于我必须显示每页的交易量,例如
第 1 页
+------------------------------+-----------+-----------+---------------------+
| 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 |
+------------------------------+-----------+-----------+---------------------+
第 2 页
+------------------------------+-----------+-----------+---------------------+
| 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 变量。没问题,这是一个常规页眉(仅在第一页上)
- 此值是按每页计算的。它汇总了同一页面上的所有信用额度。我自己无法计算,因为我不知道 XSL-FO 何时会进行分页。所以我想 XSL-FO 必须为我做计算。页面底部的总和与后续页面顶部的值相同。
- 此值与 2 相同,仅用于借方金额。
- 此值只是页面底部的最后一笔交易的余额。该值在下一页顶部重复。
如何使用 XSL-FO 进行这些计算?
另请参阅此相关问题:How to display one or the other information depending on the page number in XSL-FO?
【问题讨论】:
-
您看过 XSLT 了吗?您可以编写一个包含/生成 FO 元素的 XSLT 样式表,它允许您进行任何合理的计算。
-
@Dabbler:我正在使用 XSLT,我只是不确定如何让 XSL-FO 在每页的基础上使用计算值。我猜迈克尔的回答很有价值
标签: xslt xsl-fo apache-fop