如何判断MigraDoc表格是否会分页?

6
我正在使用MigraDoc生成一些PDF。我有代码可以为数组中的每个元素创建一个文本表,并打印出这些表格的页面。
然而,我收到的要求是,如果我有2个表格,并且第二个表格由于第一个表格的长度而无法适合页面,则需要将第二个表格放在下一页上。然后,我需要为我添加到文档中的每个表格重复此过程。
我应该如何去做?
1个回答

8
如果所有的表格都足够小,可以放入单个页面,则有一个简单的解决方案:将第一行的“KeepWith”属性设置为总行数减1,以保持整个表格在一页上。
如果表格不总是适合单个页面:您可以尝试使用一个hack,例如将"KeepWith"设置为6或8或10(取决于您的表格行高)。如果该值接近于适合单个页面的值(而不超过),则表格将自动开始在新页面上。
显然,如果表格行具有恒定的高度,这将非常有效;如果表格行高度变化很大,这将无法可靠地工作,但仍将防止只有一页或两页的表格(这不是您的要求,但也许可以讨论该要求?)。
实现您的要求的干净(但复杂)的方法:获取内部的“GetRenderInfoFromPage”方法。 您将不得不开始一个增量过程:
1)呈现文档;
2)如果您找到分裂表格,请在该表格之前插入一个分页符并重复从1开始。
请参阅此处:
http://forum.pdfsharp.net/viewtopic.php?p=1960#p1960

每个表格的大小应该不超过页面的3/4,因此 KeepWith 属性应该足够。一旦我最终测试完成,我就会将其标记为答案。谢谢! - KallDrexx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接