关于添加pdf水印那些事

本文介绍了如何使用iTextSharp库在PDF上添加水印,包括如何设置文字水印、调整位置和角度,以及解决特定PDF报错的问题。通过设置PdfReader.unethicalreading为true,成功解决无法打开带所有者密码的PDF进行加水印的难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        鱼酱第一次接触到为pdf加水印的功能,需求是输入使用事由,将事由作为附件pdf的水印,使用者下载得到水印附件。

        度娘很快告诉我itextsharp非常好使,于是下载了dll,做出了生成文字水印的功能。

        水印想做成三行,本以为 里边的变量要定义三次,结果发现定义的PdfContentByte有一个接口,直接调用三次就可以了,只需要传入不同的文字就OK:

        pdfContentByte.ShowTextAligned(Element.ALIGN_CENTER, "仅供", width / 2-50, height / 2+50, 45);

        pdfContentByte.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, width / 2 + 10, height / 2 - 10, 45);

        pdfContentByte.ShowTextAligned(Element.ALIGN_CENTER, "使用", width / 2+70, height / 2-70, 45);

        鱼酱做的水印是文件中心倾斜45°的,这样在上方生水印(GetOverContent)与在下方生水印(GetUnderContent)调用其中一个就OK,两个都是用发现水印效果没有什么变化。

       功能做好之后测试下载时,系统报了一个错误,但不是每次下载都报错:

       “PdfReader not opened with owner password”,

        排查发现针对某一个PDF,做水印时出现此错误,其他pdf都可正常生成水印并下载,检查此pdf可正常打开无异常,无解遂又寻度娘 ,有粘贴出大段落的,但是鱼渣没看懂,有说将itextsharp版本换成2.0开头的,鉴于一些原因更换不是很方便,遂鱼酱又继续找寻方法,最终在一个外文网站 发现一个回帖,只有一句,自感霸气侧漏相当高冷:

         PdfReader.unethicalreading = true;

         (ps:此色自带高冷色)抱着侥幸心理 一试,Bingo!心中顿时跪拜此人隐有世外高手气质~如此,最后一个问题也如愿解决。然后想加什么水印加什么水印,例如 :呵呵、呵你妹啊、我就呵呵咋滴、呵呵假水印 。。。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值