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