2014-02-17 37 views
1

我试图将表格插入到PDF模板中。当表格适合页面时,它是成功的。但是,如果它太大,我们会丢失数据。我基本上只是希望它将ColumnText的剩余部分粘贴到页面#5的下一页。使用columnText将表格插入多个PDF页面

这是我当前的代码,它在页面#4前面创建一个空白页面,它是将剩余的ColumnText数据写入第一次粘贴的位置。

PdfImportedPage templatePage = stamper.GetImportedPage(pdfReader, 5); 

int pageNum = 5; 

while (true) 
{ 
     ct.SetSimpleColumn(-75, 50, PageSize.A4.Height + 25, PageSize.A4.Width - 200); 
     if (!ColumnText.HasMoreText(ct.Go())) 
      break; 
     pageNum++; 
     stamper.InsertPage(pageNum, new Rectangle(792f, 612f)); 
     stamper.GetOverContent(pageNum).AddTemplate(templatePage, 0, 0); 

} 

回答

2

我创建了一个名为AddLongTable,你可以用它来完成你的代码一个小的代码示例。所有内容添加到同一页面的原因很简单。你忘了此行:

ct.setCanvas(stamper.getOverContent(pageNum)); 

请注意,我的例子是用Java编写的,但我敢肯定你会知道如何使其适应C#。如果您在解决方案中发布修补程序,我会更新我的答案,并添加解决方案的C#版本。

+1

这非常合理,但由于某种原因,我无法在C#中找到setCanvas的等效项。有任何想法吗? –

+0

怎么样'ct.Canvas = stamper.GetOverContent(pagenum);' –

+0

啊我多么愚蠢。非常感谢你的帮助,它非常完美。 –