给你两个地址:看看有没有你需要的!
http://blog.csdn.net/longren629/archive/2007/11/09/1875436.aspx
http://www.91now.com/down/soft/141743.htm(图片水印组件下载路径)
static void waterMark(String inputFile, String outputFile,String userPassWord, String ownerPassWord, String waterMarkName, int permission)
{
try {
PdfReader reader = new PdfReader(inputFile);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( outputFile));
// 设置密码
stamper.setEncryption(userPassWord.getBytes(), ownerPassWord.getBytes(), permission, false);
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
int total = reader.getNumberOfPages() + 1;
Image image = Image.getInstance(imageFilePath);
image.setAbsolutePosition(200, 400);
PdfContentByte under;
int j = waterMarkName.length();
char c = 0;
int rise = 0;
for (int i = 1; i < total; i++) {
rise = 500;
under = stamper.getUnderContent(i);
// 添加图片
// under.addImage(image);
under.beginText();
under.setColorFill(Color.CYAN);
under.setFontAndSize(base, 30);
// 设置水印文字字体倾斜 开始
if (j >= 15) {
under.setTextMatrix(200, 120);
for (int k = 0; k < j; k++) {
under.setTextRise(rise);
c = waterMarkName.charAt(k);
under.showText(c + "");
rise -= 20;
}
} else {
under.setTextMatrix(180, 100);
for (int k = 0; k < j; k++) {
under.setTextRise(rise);
c = waterMarkName.charAt(k);
under.showText(c + "");
rise -= 18;
}
}
// 字体设置结束
under.endText();
// 画一个圆
// under.ellipse(250, 450, 350, 550);
// under.setLineWidth(1f);
// under.stroke();
}
stamper.close();
} catch (Exception e) {
e.printStackTrace();
}
}
以前看到的一个为pdf增加水印的方法,你可以用一下。哈哈
楼主去搜索下iText,这是一个在java下的开源的处理pdf的类库,里面有给pdf加水印的支持。当然楼主要的是在。net中,这个类库有对应的。net版本叫iTextSharp,使用这个就可以了。
还可以试试Spire.PDF for Java这个第三方控件,也能够支持给PDF文档添加图片水印,相关代码示例可以参考官网教程:https://www.e-iceblue.cn/watermark/pdf-watermark.html
除了可以添加图片水印外,它还支持添加文本水印。该控件的产品包也可在官网免费下载免费试用:https://www.e-iceblue.cn/Downloads/Spire-PDF-NET.html