当前位置: 首页 > 知识库问答 >
问题:

如何使用java代码自动填写PDF文档的密码字段?

司寇祖鹤
2023-03-14

这是片段:

PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
form.setField(key, value);
stamper.setFormFlattening(true);
stamper.close();
reader.close();

有人请帮助我如何可以自动填充一个PDF的密码字段,需要一个密码访问。

共有1个答案

姚烨
2023-03-14

看来你是在混合两种不同的东西:

  1. 表单字段,其中有一个文本字段,该字段设置了特定的字段标志,以使添加的文本模糊化(例如,“password”显示为“********”)。读你的要求,这不是你想要的。另外:我看到您将表单扁平化设置为true,这将删除所有字段信息,包括将文本字段更改为密码字段的字段标志。
  2. 加密,使用一个或两个密码保护文档。

我假设您想要保护一个文档,但我必须承认我的假设可能是错误的。我不知道你为什么在问题中提到表单字段。

如果您只使用所有者密码来保护文档,则每个人都可以访问该文档,但您可以设置一些权限。这不是一个安全的解决方案,因为许多观众忽略了所有者密码;而且,删除机主密码也是非常容易的。

如果使用所有者和用户密码保护文档,则只有知道所有者密码或用户密码的人才能查看该文档。文档的所有内容都是加密的(元数据除外,如果您希望元数据可以访问的话)。

请阅读以下问题的答案:

  • 如何使用用户名和密码保护PDF?
  • 如何使用密码保护已存在的PDF?
  • iText setEncryption错误
  • BadPasswordException:错误的用户密码(这可能是最有趣的一个)

更详细的答案,请查阅官方网站上的常见问题解答。

  • 对于iText 5:如何使用所有者密码解密PDF文档?
  • 对于iText 7:如何使用所有者密码解密PDF文档?

在PDF规范(ISO-32000)中,表单字段(即使在文本字段上使用密码标志)和使用加密保护文档是两个完全不同的主题。你不能在一个PDF表单中“自动填充一个密码字段”,并且希望你可以使用那个字段的值来打开一个受保护的文档。

 类似资料:
  • 我需要能够删除安全/加密从一些PDF文档,最好与itextsharp库。这在过去是可能的(如何通过使用C#提供文件的密码作为参数来解密pdf文件?),但最近对库的更改意味着该解决方案不再起作用。

  • 我是新的PDF框,需要填写的信息在PDF表单,其中有节和字段名: 填写信息的名称和框 地址和填写信息的框 城市框来填充信息。 目前没有错误上面的代码正在工作填写一些垃圾字段。 需要用方框信息填满姓名,方框信息填满姓名,方框信息填满地址,方框信息填满地址,方框信息填满地址

  • 本文向大家介绍JAVA读取PDF、WORD文档实例代码,包括了JAVA读取PDF、WORD文档实例代码的使用技巧和注意事项,需要的朋友参考一下 读取PDF文件jar引用 读取WORD文件jar引用 读取WORD文件方法 读取PDF文件方法 希望本篇实例代码可以帮到您

  • 问题内容: 我想使pdf文件受密码保护。我只是对它进行了搜索,并在下面找到了一个好的解决方案。它工作正常,但是使用下面给定的代码保护pdf后,它会清除pdf中已经存在的所有数据。 此代码使用的jar文件是: itextpdf-5.2.1.jar bcmail-jdk16-1.46.jar bcprov-jdk16-1.46.jar bctsp-jdk16-1.46.jar 保护PDF的代码: 我需

  • 我试图用fdf或xfdf中的汉字填充pdf字段。 到目前为止,我已经尝试了pdftk、mcpdf、pdfbox和fpdm。 它们都可以将字符输入字段,但不会显示。当我点击要编辑的字段时,字符按预期显示,但当我再次点击字段外时,字符消失。如果我输入的是英语,它们就会显示错误,例如“hello”变成“IFMMP”。 这一切都让我怀疑这是字体/字符映射的问题,我尝试过将完整的字体嵌入到pdf中,但没有任

  • 就是类似 lodash 将所有函数放到windows._上方便操作 我如何插入相关 js 文件 或者 vue ui等