C# 如何确定是否将一个文档表拆分为两个页面?

C# 如何确定是否将一个文档表拆分为两个页面?,c#,migradoc,C#,Migradoc,我正在使用MigraDoc生成一些PDF。我有代码为数组中的每个元素创建一个文本表,并用这些表打印出页面 然而,我被给予的要求是,如果我有两个表,并且由于第一个表的长度,第二个表不能放在页面上,我需要第二个表来开始下一页。然后,我需要对添加到文档中的每个表重复此操作 如何执行此操作?如果所有表都足够小,可以容纳一个页面,那么有一个简单的解决方案:将第一行的KeepWith属性设置为row count减1,以将整个表保持在一个页面上 如果表格不总是适合单个页面:您可以尝试一种破解方法,例如将Kee

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

然而,我被给予的要求是,如果我有两个表,并且由于第一个表的长度,第二个表不能放在页面上,我需要第二个表来开始下一页。然后,我需要对添加到文档中的每个表重复此操作


如何执行此操作?

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

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

实现需求的干净(但复杂)方法是:访问内部GetRenderInfoFromPage方法。您必须启动一个增量过程:
1) 提交文件
2) 如果找到拆分表,请在该表之前插入分页符,然后从1开始重复操作。
另请参见此处:

每个表最多应为一页的3/4,因此KeepWith属性应足够。一旦我能最终测试出来,我会把这个作为答案,谢谢!