javapdfreader⽤法_使⽤iText进⾏Acroform编辑的Pdf
你的诊断错了。问题与 AcroForms 的存在⽆关。问题与您的⽂档是否为Reader Enabled有关。 Reader-enabling 只能使⽤ Adobe 软件完成。这是⼀个需要使⽤ Adobe 私钥进⾏数字签名的过程。如果存在有效签名,则在 Adobe Reader 中解锁特定功能(在签名时的使⽤权限中定义)。
马迪亚
请查看此问题的答案,了解如何检测 PDF 是否为 Reader-enabled:如何使⽤ C#检查 PDF 是否启⽤了 Reader?
您更改此类 PDF 的内容,因此您打破了签名。打破这个签名是导致丑陋的错误消息的原因:
本⽂档在 Adobe Acrobat Reader DC 中启⽤了扩展功能。该⽂档⾃创建以来已更改,并且不再使⽤扩展功能。请联系作者以获取本⽂档的原始版本。
有两种⽅法可以避免此错误消息:
删除使⽤权限。这将导致表单不再启⽤ Reader。例如:如果⽂档的创建者允许填写的表单可以在本地保存,则在删除使⽤权限后将⽆法再进⾏此操作。
在追加模式下填写表格。这将导致更⼤的⽂件⼤⼩,但将保留 Reader 启⽤。有线上网
入党转正
删除使⽤权限的⽅式如下:
PdfReader reader = new PdfReader(path_to_file);作文怎么写好
高蛋白食物if (reader.hasUsageRights()) {
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(path_to_new_file));
stamper.clo();
}
reader.clo();
在追加模式下使⽤ iText 是这样的:
PdfReader reader = new PdfReader(src);乔任梁死因
PdfStamper stamper =
优秀学生奖学金
new PdfStamper(reader, new FileOutputStream(dest), '\0', true);
我眼中的李白stamper.clo();
reader.clo();
注意PdfStamper中的额外参数。