2014-05-09 91 views
2

我已經使用java中的itext在pdf文檔中創建了表格。在功能方面表現良好。 但我需要顯示錶格作爲文檔的下面。如何使用java中的itext創建pdf文檔的最後一頁底部

這是我的代碼

PdfPTable datatablebottom = new PdfPTable(8); 
      PdfPCell cell = new PdfPCell(); 
      cell.setBorder(Rectangle.NO_BORDER); 
      cell.setColspan(8); 
      cell.setBackgroundColor(BaseColor.GRAY); 
      cell.setBorderWidthTop(5.0f); 
      cell.setBorderColorTop(BaseColor.DARK_GRAY); 

      if(msgfb.equals("1")){ 
       //document.add(new Paragraph("")); 
       cell.addElement(new Paragraph("")); 
      }else if(msgfb.equals("2")){ 
       //document.add(new Paragraph("Thank you for your business")); 
       Paragraph pf = new Paragraph("Thank you for your business Thanks for your bussiness Thanks for your bussiness Thanks for your bussiness Thanks for your bussiness Thanks for your bussiness Thanks for your bussiness",BT_NORMAL); 
       pf.setAlignment(Element.ALIGN_CENTER); 
       cell.addElement(pf); 
      }else{ 
       //document.add(new Paragraph(msgfb)); 
       Paragraph pf = new Paragraph(msgfb,BT_NORMAL); 
       pf.setAlignment(Element.ALIGN_CENTER); 
       cell.addElement(pf); 
       //cell.addElement(new Paragraph(msgfb,BT_NORMAL)); 
      } 
      cell.setPaddingBottom(10.0f); 
      datatablebottom.addCell(cell); 
      datatablebottom.setTotalWidth(PageSize.A4.getWidth()-70); 
      datatablebottom.setLockedWidth(true); 
      document.add(datatablebottom); 
+0

您能簡單介紹一下您需要如何顯示嗎? –

回答

0

您需要定義表格的絕對寬度:

datatable.setTotalWidth(document.right(document.rightMargin()) - document.left(document.leftMargin())); 

然後,你需要更換行:

document.add(datatablebottom); 

與此一個:

datatable.writeSelectedRows(0, -1, document.left(document.leftMargin()), datatable.getTotalHeight() + document.bottom(document.bottomMargin()), writer.getDirectContent()); 

writeSelectedRows()方法在絕對位置繪製表格。我們通過詢問document它的左邊距(x值)並通過將該表格的高度加到文檔的底邊(Y座標)來計算該位置。我們繪製全部行(0至-1)。

+0

我已經像上面提到的那樣替換了代碼。我的錯誤是「錯誤500表格寬度必須大於零」。我沒有得到pdf page.this錯誤來了document.rightMargin() - document.leftMargin()爲零 – user3434594

+0

糟糕,我的壞,我混淆了'文檔'方法。我會適應我的答案,但通常你不應該理解這個概念。 –

+0

嗨,朋友,它顯示文檔的底部工作正常,但我需要增加數據表的寬度。 – user3434594

相關問題