我正在寫下面的代碼,以創建一個帶有表格的PDF文件它。iText:創建的表(com.lowagie.text)只佔用整個頁面的80%,如何使它利用整個頁面
Document document = new Document(PageSize.A4, 20, 20, 20, 80);
Font myfont = new Font(FontFactory.getFont(FontFactory.COURIER_BOLD, 13, Font.NORMAL));
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(request.getRealPath("/") + "SAMPLE.pdf"));
document.open();
Table table = new Table(2);
Cell c2 = new Cell();
int[] widths = {8, 150}; //Tried different values, but no change
table.setBorder(Rectangle.BOX);
table.setAlignment(Element.ALIGN_LEFT);
table.setSpacing(0);
table.setPadding(0);
table.setTableFitsPage(true); //Tried with 'false', even removed it, but no change
table.setWidths(widths);
c2 = new Cell(new Paragraph("1. ", myfont));
c2.setBorder(Rectangle.NO_BORDER);
table.addCell(c2);
c2 = new Cell(new Paragraph("TEST DATA ", myfont));
c2.setBorder(Rectangle.NO_BORDER);
table.addCell(c2);
c2 = new Cell(new Paragraph("2. ", myfont));
c2.setBorder(Rectangle.NO_BORDER);
table.addCell(c2);
c2 = new Cell(new Paragraph("TEST DATA", myfont));
c2.setBorder(Rectangle.NO_BORDER);
table.addCell(c2);
c2 = new Cell(new Paragraph("3. ", myfont));
c2.setBorder(Rectangle.NO_BORDER);
table.addCell(c2);
c2 = new Cell(new Paragraph("TEST DATA", myfont));
c2.setBorder(Rectangle.NO_BORDER);
table.addCell(c2);
document.add(table);
document.close();
但創建的文件包含一個佔據頁面大約80-85%的表格。我希望它能夠利用整個頁面。
我試着對代碼進行一些調整,如將table.setTableFitsPage(true);
更改爲table.setTableFitsPage(false);
,甚至嘗試刪除它。 也隨着指定的寬度而改變。但在所有情況下,它只是給了我一份只佔80-85%頁面表格的文件。
是否有東西我缺少要添加到我的代碼或有一個屬性,阻止表佔100%的頁面。
它會在內容很大時產生問題,因爲我最終得到的表格長度過長,頁面上的空格仍未被佔用。
附上這裏生成的實際PDF文件的屏幕截圖!
Screen-shot of the PDF generated
您正在使用哪個版本的iText? – Tommi 2011-03-10 07:47:01
我正在使用** itext-2.1.5.jar ** – 2011-03-10 08:42:11
在這種情況下,我首先建議升級到最新版本(目前爲5.0.6)。請前往http://itextpdf.com/download.php下載。與您使用的版本相比,最新版本將包含許多改進和錯誤修復,此外,您更有可能從類似網站獲得支持(因爲有更多人使用最新版本而非舊版本圖書館)。 – Tommi 2011-03-10 10:16:51