这是一个如何在现有文档中添加重复水印作为背景的示例:
pdfDocument = new PdfDocument(new PdfReader(inFileName), new PdfWriter(outFileName));
PdfPattern.Tiling tiling = new Tiling(new Rectangle(100, 50));
new Canvas(new PdfPatternCanvas(tiling, pdfDocument), pdfDocument, tiling.getBBox()).add(new Paragraph("TESTING")
.setFontColor(ColorConstants.RED)
.setRotationAngle(Math.PI / 10));
for (int i = 1; i <= pdfDocument.getNumberOfPages(); i++) {
PdfPage page = pdfDocument.getPage(i);
new PdfCanvas(page.newContentStreamBefore(), page.getResources(), pdfDocument)
.saveState()
.setFillColor(new PatternColor(tiling))
.rectangle(page.getCropBox())
.fill()
.restoreState();
}
pdfDocument.close();
这是结果的外观:
好的,不是我想的那么低;),但是仍然需要知道一个人的API ... OP的图像看起来像文本在内容之上,因此,他可能想使用它
newContentStreamAfter()
。@mkl实际上是有效的注释,取决于所需的结果
newContentStreamAfter()
可能更合适