我正在使用iTextSharp创建PDF文档,它包含一个跨越多个页面的表。添加表格后,我的PDF文档有3页。
现在我想做的是:
答案 0 :(得分:0)
rahlrokks发布的问题最初与How to add text to an image?完全相同,但是:
这迫使我创建WatermarkedImages3示例。
它使用我对How to add text to an image?
的回答中提到的方法public Image getWatermarkedImage(PdfContentByte cb, Image img, String watermark) throws DocumentException {
float width = img.getScaledWidth();
float height = img.getScaledHeight();
PdfTemplate template = cb.createTemplate(width, height);
template.addImage(img, width, 0, 0, height, 0, 0);
ColumnText.showTextAligned(template, Element.ALIGN_CENTER,
new Phrase(watermark, FONT), width / 2, height / 2, 30);
return Image.getInstance(template);
}
Rahlrokks声称这不起作用。很容易证明rahlrokk没有告诉我们真相。如果我们查看watermark3.pdf,我们会清楚地看到我们位于最后一页(2/2),我们会在图片顶部看到文字。
如果你查看我的代码,你甚至可以看到我甚至回答了他的更新问题:
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
PdfPTable table = new PdfPTable(1);
for (int i = 0; i < 50; i++) {
table.addCell("rahlrokks doesn't listen to what people tell him");
}
PdfContentByte cb = writer.getDirectContentUnder();
table.addCell(getWatermarkedImage(cb, Image.getInstance(IMAGE1), "Bruno"));
document.add(table);
ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, new Phrase("Bruno knows best"), 260, 400, 45);
document.close();
}
我不仅在图片上添加文字,而且还使用PdfContentByte
在最后一页添加文字:
我很抱歉rahlrokks,但你不应该说它不起作用如果它很容易证明它确实起作用< / em>的