gpt4 book ai didi

java - 为 writeSelectedRows() 方法定义行跨度

转载 作者:行者123 更新时间:2023-12-01 12:58:07 25 4
gpt4 key购买 nike

我试图通过扩展 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,

enter image description here

最佳答案

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

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

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

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

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

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

关于java - 为 writeSelectedRows() 方法定义行跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23730886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com