打开PDF文件时,在文件上面加一组随机码的水印

liuyjcel 2011-04-07 10:59:32
在打开PDF文件时,怎么才能做到放一组随机数据以水印的形式添加在文件中。
...全文
298 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymecho 2013-03-12
  • 打赏
  • 举报
回复
谁会提取水印并验证没被篡改?
liuyjcel 2011-04-08
  • 打赏
  • 举报
回复
还有其他方法没有?
段传涛 2011-04-07
  • 打赏
  • 举报
回复
参考我之前的代码
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();
}
}

子夜__ 2011-04-07
  • 打赏
  • 举报
回复
itextsharp
PdfReader reader = new PdfReader("C:/PDF/Test.pdf");
PdfStamper stamp = new PdfStamper(reader, new FileStream("C:/PDF/Test.pdf", FileMode.Create));
int n = reader.NumberOfPages;
int i = 0;
PdfContentByte under;
iTextSharp.text.Image im = iTextSharp.text.Image.GetInstance("C:/Image/123.jpg");
im.SetAbsolutePosition(440, 730);
im.ScaleAbsolute(160, 60);

while (i < n)
{
i++;
under = stamp.GetOverContent(i);
under.AddImage(im);
}
stamp.Close();
reader.Close();

快溜 2011-04-07
  • 打赏
  • 举报
回复
生成一个图片加随机数再做水印加到pdf上去
Dotnet水印之1:PDF文档加水印图片
jianshao810 2011-04-07
  • 打赏
  • 举报
回复
http://lexinquan.iteye.com/blog/602271
itextsharp
学习啦。。
le616 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]

itextsharp
C# code
PdfReader reader = new PdfReader("C:/PDF/Test.pdf");
PdfStamper stamp = new PdfStamper(reader, new FileStream("C:/PDF/Test.pdf", FileMode.Create));
int n = reade……
[/Quote]
参考下
itextSharp

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧