2012-10-09 90 views
2

我想添加一個表作爲包含所有版權文本,頁碼等,頁腳,但我無法找到將接受PdfPTable添加PDFPTable到頁面底部的iText

任何輔助方法

一個短語有這樣的代碼:

ColumnText.showTextAligned(writer.getDirectContent(), 
     Element.ALIGN_CENTER, new Phrase(
      String.format("%d", document.getPageNumber())), 
      (document.getPageSize().getLeft() + document.getPageSize().getRight())/2, 
      document.getPageSize().getBottom() + 18, 0); 

回答

6

發表布魯諾的例子是一個很好的指針,這裏沒有神奇的數字爲例:

private void writeFooterTable(PdfWriter writer, Document document, PdfPTable table) { 
     final int FIRST_ROW = 0; 
     final int LAST_ROW = -1; 
     //Table must have absolute width set. 
     if(table.getTotalWidth()==0) 
      table.setTotalWidth((document.right()-document.left())*table.getWidthPercentage()/100f); 
     table.writeSelectedRows(FIRST_ROW, LAST_ROW, document.left(), document.bottom()+table.getTotalHeight(),writer.getDirectContent()); 
    } 

這將在底部的文檔的頁邊距內寫PdfPTable在底部您有任何文字重疊。如果您希望在邊距中編寫表格,請使用:document.bottom()而不是document.bottom()+table.getTotalHeight()


Header/Footer Example

由於一項相關注意,如果您下面這個鏈接的例子中,「藝術」盒子似乎並不需要與神奇數字36,54,559,788對應到:

document.left(), document.bottom(), document.right(), document.top()