我想知道是否可以在没有任何库的情况下为PDF文件加水印。
我设法通过iText做到了这一点,但是我想在纯JAVA中做水印。如果有人知道是否可行,请告诉我。
理论上?是的。大多数可以产生水印的Java库可能都是用纯Java编写的,因此您可以自己编写该功能。
实际上?没有(据我所知;如果我错了,请纠正我)任何允许您以这种方式操作PDF的核心库,因此您可以将大量工作投入到基本上复制iTexts功能的一部分中,或者只需使用一个库。
可以使用Java库iText添加到PDF的水印。
这里是使用方法的示例:
PdfReader reader = new PdfReader("HelloWorld.pdf");
PdfStamper pdfStamper = new PdfStamper(reader,
new FileOutputStream("NewHelloWorld.pdf"));
Image image = Image.getInstance("MyWatermark.png");
for (int i=1; i<= reader.getNumberOfPages(); i++){
PdfContentByte content = pdfStamper.getUnderContent(i);
image.setAbsolutePosition(150f, 750f);
content.addImage(image);
}
pdfStamper.close();
这里是另一个相关示例:https://web.archive.org/web/20151023054638/http://itextpdf.com/sandbox/events/Watermarking