java - iText: Table(com. lowagie. text) 创建只占整个页面的80%,如何让它利用整个页面

标签 java pdf itext

我正在编写以下代码以创建一个包含表格的 PDF 文件。

        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

最佳答案

您应该重写表代码以使用 PdfPTable反而。你可以找到一些 examples of its use online . iText in Action 第 2 版的整个第 4 章都是关于表格的,准确地说是 PdfPTables。

大量示例代码。享受吧。

关于java - iText: Table(com. lowagie. text) 创建只占整个页面的80%,如何让它利用整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256071/

相关文章:

C# System.Drawing.Printing.PrintDocument 转 PDF 推荐?

java - 如何在 iText 中的 PDFPTable 中显示动态列表

java - 如何在控制台中显示从文件读取的方法?

javascript - Hapi.js 文件上传 我如何获取文件以便我可以在其上使用 imageMagick 命令行工具

java - 是否有任何标准方法可以使用 gradle 从 intellij 运行 java 项目?

android - 在 android Activity 中的应用程序内显示 pdf 文件

java - 删除 iText PDF 签名中矩形的填充

iText 使用 XMLWorker 将整个表格保留在一页中

java - 是否有任何内置实用程序可以检查 "null"字符串而不是 null?

java - 将 DecimalFormat 与 ThreadLocal 结合使用会对性能产生哪些影响?