6

我正在使用 MigraDoc 生成一些 PDF。我有代码为数组中的每个元素创建一个文本表,并用这些表打印出页面。

但是,我得到的要求是,如果我有 2 个表,并且由于第一个表的长度,第二个表不适合页面,我需要第二个表来开始下一页。然后,我需要对要添加到文档中的每个表重复此操作。

我该怎么做呢?

4

1 回答 1

8

如果所有表格都小到足以容纳一页,那么有一个简单的解决方案:将第一行的 KeepWith 属性设置为行数减一,以将整个表格保持在一页上。

如果表格并不总是适合单个页面:您可以尝试破解,例如将 KeepWith 设置为 6 或 8 或 10(取决于表格行的高度)。如果该值接近于适合单个页面的值(不超过),表格将自动在新页面上开始。
显然,如果表格行具有恒定的高度,这将非常有效;如果表格行的高度不同,这将无法可靠地工作,但仍会阻止第一页上只有一两行的表格(这不是您的要求,但也许可以讨论这个要求?)。

满足您要求的干净(但复杂)的方法:访问内部 GetRenderInfoFromPage 方法。您将不得不开始一个增量过程:
1)渲染文档;
2) 如果您找到一个拆分表,请在该表之前插入一个分页符并从 1 开始重复。
另请参见此处:http:
//forum.pdfsharp.net/viewtopic.php?p=1960#p1960

于 2012-10-16T08:08:40.223 回答