这让我彻底发疯了...基本上我有一个由 TCPDF 生成的 PDF 表单,并希望为该 PDF 设置用户权限(使用 setUserRights),以便用户可以使用他们输入的数据保存表单。TCPDF 手册在这一点上并没有真正的帮助,并指出您需要一个“签名证书”来启用保存和其他扩展功能。
所以我使用 OpenSSL 生成了一个 SSL 证书和私有证书,并使用 setSignature 方法“导入”了它们。如果不使用这种方法,Adobe Reader 会抱怨:
本文档启用了 Adobe Reader 中的扩展功能。该文档自创建以来已更改,并且不再使用扩展功能。请联系作者获取本文档的原始版本。
当设置了所需的 setSignature 方法时,该消息不会出现,但 Reader 仍然无法保存 PDF。
$this->Pdf->setSignature("file:///certificates/forms.crt", "file:///certificates/forms.key", "somepassword", "", 3);
然后我设置了完整的用户权限:
$this->Pdf->setUserRights(true, '/FullSave', '/Create/Delete/Modify/Copy/Import/Export', '/Add/Delete/FillIn/Import/Export/SubmitStandalone/SpawnTemplate', '/Modify');
有没有人使用过这个特定的功能并且能够指出我在这里做错了什么?
更新
TCPDF 包含一个使用演示证书的示例。但我不清楚如何获得这样的证书。使用演示版仍然不允许我正确设置用户的权限。