2012-10-15 20 views
4

我正在使用Migradoc生成一些PDF。我有一个代码为数组中的每个元素创建一个文本表格,并用这些表格打印出页面。如何确定Migradoc表是否会在两个页面之间拆分?

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

我该怎么做呢?

回答

5

如果所有的表都足够小以适合单个页面,那么有一个简单的解决方案:将第一行的KeepWith属性设置为行数减一,以将整个表保存在一个页面上。

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

干净(但复杂)的方式来满足您的要求:访问内部GetRenderInfoFromPage方法。你将不得不开始一个增量过程:
1)呈现文档;
2)如果发现有分解表,插入表之前分页符,并从1
参见这里再重复一遍:
http://forum.pdfsharp.net/viewtopic.php?p=1960#p1960

+0

每个表应该是一个网页最多3/4度,所以KeepWith属性应该足够。一旦我终于可以测试出来,我会将其标记为答案,谢谢! – KallDrexx

+0

完美地工作,谢谢! – KallDrexx

相关问题