3

我正在使用 iTextSharp 创建发票。这显示得很好,但有时,当发票项目的数量较大时,汇总部分(显示小计、税收、折扣、总计等)会被拆分。一些显示在当前页面,一些移动到下一页。我正在考虑将整个摘要部分移到下一页,如果当前的剩余高度还不够的话。

但是,要做到这一点,我需要知道还剩下多少页面高度(在我当前的页面内容呈现之后)。我想知道是否有人知道如何计算页面的当前左侧高度?或者,如果 pdfPTable 中有一个属性可能会强制表格作为一个整体打印并且不要让它分成多个页面!我想如果第二个选项可用,那将很容易。

总之,我需要知道是否可以计算剩余页面高度,以及是否可以强制表格不拆分为多个页面。

谢谢你。萨默斯

4

3 回答 3

11

您可以设置SplitLatefalse避免单元格数据中的自动分页符超出限制。

......
table.addCell(cellData);

table.SplitLate = false;
......
于 2011-10-18T05:46:46.543 回答
1

我建议您在摘要部分使用嵌套表。我不相信 iText 会在页面边界上拆分给定的单元格,因此该单元格中的所有内容(即使它是一个带有自己的单元格的嵌套表)都将保留在同一页面上。

使用表格的单元格的行跨度,以便它自己占据一整行。

我不确定,但我会赌上一杯啤酒。

于 2010-12-28T20:48:57.380 回答
0

您使用什么对象将数据添加到 PDF?多列文本、段落、短语?

您应该能够使用 Document.PageSize.Height 属性来返回页面的高度。

然后使用 PDFPTable.Height 返回表格的高度。

因此,只需使用逻辑 Document.PageSize.Height - table.Height,您就可以使用剩余的 y 轴空间。

PDFPTable 对象具有名为 SplitLate 和 SplitRows 的属性。我相信您可以使用这些属性来尝试将表格保持在一页上。

于 2010-10-14T13:52:21.530 回答