2014-05-09 55 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

相关问题