问题描述
我正在使用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?
另请参阅以下相关问题:
See also this related question: How to display one or the other information depending on the page number in 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的表格中汇总每页的某些值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!