2013-03-03 145 views
1

有什麼方法可以找到當前頁面將在iTextSharp中結束。例如,iTextSharp - 查找頁面末尾

表示有大約10條記錄需要在第一頁末尾寫下兩個頁面,我希望添加'(contd on nex page')。有沒有辦法做到這一點。將查找頁面的結尾作爲這個的答案或者是否有辦法找到寫入完成的行號,以便我可以進行計算以決定是否添加我選擇的消息並進入下一頁。

任何意見是非常讚賞:)

感謝數不勝數

回答

2

通常,這被定義爲表頁腳完成。當表自動斷開時,iText將顯示該頁腳。當然:你不希望這個頁腳出現在最後一頁(在表格的最後一行之後)。這就是爲什麼還有一種方法可以跳過最後一行。

This example向您展示瞭如何創建一個帶頁眉和頁腳的表格。 This是鏈接到SkipLastFooter

注意,說「發現的行號」將解決你的問題是錯誤的,原因有二:

  1. 沒有在PDF文件行號沒有這樣的事情。您有一個MediaBox,並使用座標在MediaBox定義的畫布上繪製內容。
  2. 有一種方法可以在將一個對象添加到文檔之後的頁面上獲取當前的Y位置。你可以在之前添加一個表格,之後的Y位置,然後在之後添加一個表格,但不能在創建表格的時候。

上述建議的替代解決方案之一就是使用表事件。

+0

謝謝布魯諾!我會試試這個:) – 2013-03-04 03:38:46

2

如果你真的需要找到頁的末尾,而不是使用一個表,將在每一頁的末尾打印尾行,你可以使用PdfWriter對象如下:

var remainingPageSpace = pdfWriter.GetVerticalPosition(false) - pdfDocument.BottomMargin; 

這會爲您提供頁面上的剩餘空間,您可以從中確定下一步要做什麼。

但是,如果您使用的是表格數據,則最好使用PdfPTable並充分利用頁腳行功能。