2014-02-17 70 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

啊我多麼愚蠢。非常感謝你的幫助,它非常完美。 –