【发布时间】:2011-10-04 10:03:02
【问题描述】:
我正在使用 iText 库,并尝试在页面底部添加水印。水印很简单,它必须居中,左边是图片,右边是文字。
此时,我拥有 png 格式的图像和文本。我可以计算我想要放置图像的位置(居中)计算页面大小和图像大小,但现在我想将文本包含为文本(更好的易读性等)。
我可以将图像和文本嵌入到某个组件中,然后像现在这样计算位置吗?其他解决方案或想法?
这是我的实际代码:
try {
PdfReader reader = new PdfReader("example.pdf");
int numPages = reader.getNumberOfPages();
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("pdfWithWatermark.pdf"));
int i = 0;
Image watermark = Image.getInstance("watermark.png");
PdfContentByte addMark;
while (i < numPages) {
i++;
float x = reader.getPageSizeWithRotation(i).getWidth() - watermark.getWidth();
watermark.setAbsolutePosition(x/2, 15);
addMark = stamp.getUnderContent(i);
addMark.addImage(watermark);
}
stamp.close();
}
catch (Exception i1) {
logger.info("Exception adding watermark.");
i1.printStackTrace();
}
提前谢谢你!
【问题讨论】:
-
我会去寻找一个 text-to-png 解决方案 (java.awt.Graphics.drawString() ?) 并使用图形 API 将两者放在一起。
-
重点是我不想把文本放到PNG格式,我需要把它放到“文本模式”。
标签: java jakarta-ee itext watermark