我有一个通过 iText1.4.6 生成的动态 PDF(是的,我坚持使用这个旧版本)。我在两件事上遇到了麻烦:
1)向所有页面添加水印,而不仅仅是第一个。
2) 根据结果集中的结果数量更改页面维度。
这是一些代码:
Document testScoreReport = new Document(PageSize.A4,50,50,25,230);
OutputStream outStream = response.getOutputStream();
PdfWriter writer = null;
writer = PdfWriter.getInstance(testScoreReport, outStream);
testScoreReport.open();
Image watermark = Image.getInstance(CreateTestReport.class.getResource("/resource/img.jpg"));
// Build table
PdfPTable testTable = new PdfPTable(3);
PdfPCell cell1 = new PdfPCell(new Phrase("Test Date", FONT)));
PdfPCell cell2 = new PdfPCell(new Phrase("Test Name", FONT)));
PdfPCell cell3 = new PdfPCell(new Phrase("Test Score", FONT)));
testTable.addCell(cell1);
testTable.addCell(cell2);
testTable.addCell(cell3);
// QUERY HERE
while (resultSet.next()) {
if (resultTestCount > 20) {
// NEW PAGE, SO PRINT WATERMARK AND CHANGE PAGE DIMENSIONS OF NEW PAGE
resultTestCount = 0;
}
PdfPCell cell1 = new PdfPCell(new Phrase(testDate, FONT)));
PdfPCell cell2 = new PdfPCell(new Phrase(testName, FONT)));
PdfPCell cell3 = new PdfPCell(new Phrase(testScore, FONT)));
resultTestCount++;
}
testScoreReport.close();
我认为这就是所有相关的代码。我试图将水印添加到表格单元格中,或者只是将其添加到 while 循环中,但它似乎只是忽略了它。页面尺寸 - 我尝试了一些东西,但似乎没有任何效果。