【问题标题】:Defining Row span for writeSelectedRows() method为 writeSelectedRows() 方法定义行跨度
【发布时间】:2014-05-19 06:20:57
【问题描述】:

我试图通过扩展 PdfPageEventHelper 类来为表格添加标题。所以我尝试使用 onEndPage() 。我得到了正确的标题,但rowspan 属性不适用于表格。

我正在尝试使用下面的代码,

 PdfPTable table1 = new PdfPTable(3);
        try{
            table1.setWidths(new int[]{15,20,20});
            table1.setLockedWidth(true);
            table1.setTotalWidth(700);

        Image image = Image.getInstance("images.png");
        PdfPCell cell = new PdfPCell(new Paragraph("{Month}", font3));
        PdfPCell cell2 = new PdfPCell(image, false);
        cell.setColspan(2);
        cell.setBorder(PdfPCell.NO_BORDER);
        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell2.setBorder(PdfPCell.NO_BORDER);
        cell2.setRowspan(2);
        PdfPCell cell3 = new PdfPCell(new Paragraph("Mr Fname Lname", font3));
        cell3.setColspan(2);
        cell3.setBorder(PdfPCell.NO_BORDER);
        cell3.setHorizontalAlignment(Element.ALIGN_LEFT);
        table1.addCell(cell);
        table1.addCell(cell2);
        table1.addCell(cell3);
        table1.writeSelectedRows(0, -1, 20 , 820, writer.getDirectContent());
        }

更新:

当我运行您在示例中提供给我的相同代码时,它会打印如下所示的 pdf,

【问题讨论】:

    标签: java pdf-generation itext pdfptable


    【解决方案1】:

    您的代码中有很多尴尬的行。例如:您正在为表格的默认单元格定义属性,但您没有在任何地方使用默认单元格:您只使用cellcell2cell3。这三个单元格是使用PdfPCell 构造函数创建的,这意味着它们不会从默认单元格继承任何内容。

    如果您的指控“它不起作用”是指默认单元格的属性,那么您的指控是错误的:您没有在任何地方使用默认单元格。

    如果您使用writeSelectedRows() 方法添加表格,则无需锁定宽度。您将表格宽度定义为 700,但您确定 700 适合页面宽度吗?

    您的图片尺寸是多少?由于您没有缩放图像以适应单元格,因此它可能会超出单元格的大小。

    我已经简化了您的代码,删除了上面提到的所有无用代码,最终得到了RowspanAbsolutePosition 示例。 resulting PDF file looks perfectly normal,从而证明你的问题标题“Row span not working for writeSelectedRows() method”是不正确的。

    PS:定义两列并同时为该列中的所有单元格赋予两个 colspan 是没有意义的。将其减少为包含正常单元格的一列是有意义的。

    【讨论】:

    • 也许您使用的是旧版本的 iText。
    • 我使用 iText 5.1.0 。我需要升级它吗?
    • 您使用的版本已超过 3 年。你应该升级!
    • 我试过itext 5.4.2。加载图像但单独显示在单行中
    • 使用 iText 5.5.1。当您可以使用今天发布的 iText 5.5.1 时,您为什么要使用已有一年的 iText 5.4.2?
    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    相关资源
    最近更新 更多