我想锁定PDF文件后,某些表格字段已填写使用itext7在Java.

我知道如果我在签名后对某个签名字段设置PdfSigFieldLock,我可以锁定PDF.

但我很难弄清楚是否有可能为纯文本表单字段做这样的事情?我猜不是,但我想确保我没有错过任何东西.

推荐答案

"锁定PDF"作为一个整体是将PDF的当前MDP(修改检测和预防)值降低到1的过程("除了更新DSS和应用文档时间戳之外,不允许任何更改").

"锁定单个字段"是另一种MDP机制.

这两种方法都是通过将带有DocMDP或FieldMDP转换的签名应用到PDF来激活的.参见ISO 32000—2章节www.example.com "签名字段"和章节12.8.2 "转换方法".

如果没有使用DocMDP或FieldMDP转换的签名,则无法应用MDP.

no, it is 100 possible to do something like this for plain text form fields.


当然,你可以使用iText来设置所有字段为只读后,某些字段被填写.或者你可以用它来压平表单.或者您可以添加JavaScript来阻止某些操作.但所有这些都很容易被覆盖,而undo撤消MDP锁定也会使相关签名无效.因此,这些其他选项并不真正像MDP锁定.

Java相关问答推荐

如何用javac编译Java类,即使对像java.lang.*这样的基本类也没有任何依赖关系?

查找最大子数组的和

为什么我们仍然需要实现noArgsConstructor如果Java默认提供一个非参数化的构造函数?''

尽管类型擦除,instanceof与泛型在Java中如何工作?

Intellij显示项目语言级别最高为12,尽管有java版本17 SDK

JDK22执行repackage of goal org. springframework. boot:spring—boot—maven—plugin:3.2.3:repackage failed:unsupported class file major version 66—>

Hibernate 6支持Joda DateTime吗?

Hibernate EmptyInterceptor可以工作,但不能拦截器

我不能再在Android Studio Hedgehog上用Java语言创建新项目了吗?

Java17支持哪个MapR版本?

在Frege中,我如何将一个字符串安全地转换为一个可能的Int?

Lombok@Nonnull是否也对供应商有影响?

错误:未找到扩展元素在JBossEAP 7.2中安装FUSE时出错

在使用具有不同成本的谓词调用allMatch之前对Java流进行排序会带来什么好处吗?

JavaFX:无论何时显示应用程序,如何更改组件/ node 位置?

JOLT根据值删除并保留其余的json键

错误:JOIN/ON的参数必须是boolean类型,而不是bigint类型.Java Spring启动应用程序

Eureka客户端无法使用用户/通行证注册到Eureka服务器

如何在Java上为循环数组从synchronized迁移到ReentrantLock

将在 Docker 中运行的 Spring Boot 连接到在 Docker 中运行的 PostgreSQL,无需 compose 文件?