Java 使用iText进行Acroform编辑的Pdf
我正在使用iText向现有pdf文件添加文本。它适用于简单的pdf,但在使用AcroForms的pdf时存在问题 我的代码:Java 使用iText进行Acroform编辑的Pdf,java,pdf,itext,Java,Pdf,Itext,我正在使用iText向现有pdf文件添加文本。它适用于简单的pdf,但在使用AcroForms的pdf时存在问题 我的代码: PdfReader reader = new PdfReader("/Users/simple-user/Downloads/acroform.pdf"); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( "/Users/simple-user/Do
PdfReader reader = new PdfReader("/Users/simple-user/Downloads/acroform.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(
"/Users/simple-user/Downloads/acroform2.pdf"));
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252,
BaseFont.NOT_EMBEDDED);
PdfContentByte over = stamper.getOverContent(1);
over.beginText();
over.setFontAndSize(bf, 10);
over.setTextMatrix(107, 107);
over.showText("page updated");
over.endText();
stamper.close();
错误消息:
“此文档在Adobe Acrobat Reader DC中启用了扩展功能。文档自创建以来已被更改,无法再使用扩展功能。请与作者联系以获取此文档的原始版本。”
并没有我想添加到文件中的文本
你知道我遗漏了什么吗?你的诊断是错误的。问题与AcroForms的存在无关。问题与文档是否启用了读取器有关。只能使用Adobe软件启用读卡器。这是一个需要使用Adobe的私钥进行数字签名的过程。当存在有效签名时,Adobe Reader中的特定功能(如签名时的使用权限中所定义)将被解锁 请查看此问题的答案,了解如何检测PDF是否启用了读卡器: 您更改了此类PDF的内容,因此破坏了签名。破坏此签名是导致错误消息的原因: 本文档启用了Adobe Acrobat Reader DC中的扩展功能。文档创建后已更改,扩展功能不再可用。请联系作者以获取本文档的原始版本 有两种方法可以避免此错误消息:
PdfReader reader = new PdfReader(path_to_file);
if (reader.hasUsageRights()) {
reader.removeUsageRights();
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(path_to_new_file));
stamper.close();
}
reader.close();
PdfReader reader = new PdfReader(src);
PdfStamper stamper =
new PdfStamper(reader, new FileOutputStream(dest), '\0', true);
stamper.close();
reader.close();
在追加模式下使用iText的操作如下:
PdfReader reader = new PdfReader(path_to_file);
if (reader.hasUsageRights()) {
reader.removeUsageRights();
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(path_to_new_file));
stamper.close();
}
reader.close();
PdfReader reader = new PdfReader(src);
PdfStamper stamper =
new PdfStamper(reader, new FileOutputStream(dest), '\0', true);
stamper.close();
reader.close();
注意
PdfStamper
中的额外参数有什么问题?有错误信息吗?我们需要更多的细节来提供帮助。哦,对不起,忘了。错误消息“此文档在Adobe Acrobat Reader DC中启用了扩展功能。文档自创建以来已更改,扩展功能的使用不再可用。请与作者联系以获取此文档的原始版本。”并且没有我要添加到文件中的文本。请编辑您的问题以包含此错误,尽可能多的了解细节。你为什么使用一种要求你是PDF专家的方法?为什么不使用iText中提供的方便方法呢?2.您正在位置x=107处添加文本;y=107。您如何知道这些坐标是有效的?下载并搜索水印示例(有几个)。您的代码看起来像是从某处复制/粘贴的。如果你喜欢复制/粘贴,为什么不自己从母版复制/粘贴呢?;-)