问题描述
我正在使用 XSL-FO 生成打印输出的帐户报表.PDF 实际上只是一个简单的表格,每一页都有一个简单的标题.困难在于我必须显示每页的交易量,例如
I'm using XSL-FO to generate an account statement print out. The PDF is actually just a simple table with a simple header on every page. The difficulty is that I have to display transaction volumes per page, e.g.
+------------------------------+-----------+-----------+---------------------+
| 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 can I do these calculations with XSL-FO?
另见这个相关问题:如何根据 XSL-FO 中的页码显示一个或另一个信息?
推荐答案
不幸的是,fop 没有实现我发现的 <fo:retrieve-table-marker/>
.相反,这里的解决方案对我有用:
Unfortunately, fop doesn't implement <fo:retrieve-table-marker/>
from what I have found out. Instead, this solution here worked for me:
它涉及在 <fo:flow/>
之外创建一个单独的表,使用 <fo:retrieve-marker/>
显示表头元素.
It involves creating a separate table outside of the <fo:flow/>
that displays the table header using <fo:retrieve-marker/>
elements.
这篇关于如何总结 XSL-FO 表格中每页的一些值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!