在iText中打印证书时,页脚图像打印两次

时间:2015-08-24 11:58:41

标签: itext

在证书打印证明全部大部分打印但是页脚图像打印2次。我正在使用Pdfptable打印页脚图像。

table = new PdfPTable(1);
int footerWidth[] = {100};
table.setWidths(footerWidth);
table.setWidthPercentage(100);
Image image2 = Image.getInstance("footerImage.jpg");
cell = new PdfPCell(image2,true);
cell.setBorder(0);
table.setTotalWidth(document.getPageSize().width()-document.leftMargin()-document.rightMargin());
table.addCell(cell);
//write the footer
table.writeSelectedRows(0, -1, document.leftMargin(), table.getTotalHeight()+document.bottomMargin(), writer.getDirectContent());
EventLog.write(appName,"done adding footer",logFile);
document.add(table);

1 个答案:

答案 0 :(得分:0)

您的表格会被添加两次,因为您将其添加两次。

使用writeSelectedRows()时首次添加:

table.writeSelectedRows(0, -1, document.leftMargin(), table.getTotalHeight()+document.bottomMargin(), writer.getDirectContent());

这会将表格添加到由坐标定义的非常特定的位置:

x = document.leftMargin();
y = table.getTotalHeight()+document.bottomMargin();

第二次添加表时,执行此操作:

document.add(table);

这会在页面光标所处的位置添加表格,这通常紧接在使用document.add()方法添加的上一个内容之后。

<强> PS:

页眉和页脚通常会添加到OnEndPage()页面事件中。您只需添加一次页脚。您可能希望使用页面事件在每个页面上添加页脚。