我正在使用PDFBox2.0.8,并尝试使用提供给jar文件的命令行选项进行PDF解密。有几个PDF文件,导致错误,说这些只能解密与所有者密码(好吧),但我可以删除PDF密码与使用QPDF的在线工具,我猜。
现在我关心的是,我是否可以使用PDFBox相同的选项来解密PDF,而不用担心所有者/用户的密码保留?(我想是的,因为相同的密码可以用Acrobat打开PDF文件,也可以通过提供相同的密码保存decyrpted PDF文件)。
我的当前命令行示例
java -jar "D:\pdfbox.jar" Decrypt -password xxxxxxxx
"D:\uploads\Jjre2pJsC-7KerheiZ8OUt079E7d4dlS.pdf"
2018-06-13 - 09:52:30 - error: SaveDecryptedPDF > Failed > Error: Command
failed: java -jar "D:\pdfbox.jar" Decrypt -password xxxxxxxx
"D:\uploads\Jjre2pJsC-7KerheiZ8OUt079E7d4dlS.pdf"
Exception in thread "main" java.io.IOException: Error: You are only allowed to
decrypt a document with the owner password.
at org.apache.pdfbox.tools.Decrypt.decrypt(Decrypt.java:154)
at org.apache.pdfbox.tools.Decrypt.main(Decrypt.java:64)
at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:52)
显然,用户和所有者这两个密码在技术上都允许解密整个文档。但是在语义上有区别,使用用户密码打开PDF的人与使用所有者密码打开同一PDF的人相比,对PDF的访问权限有限。
不同的库和工具在不同程度上遵循这些语义。有的甚至完全无视区别。
另一方面,PDFBoxdecrypt
工具显式地尝试遵循这些语义,并且只允许所有者解密PDF:
AccessPermission ap = document.getCurrentAccessPermission();
if(ap.isOwnerPermission())
{
document.setAllSecurityToBeRemoved(true);
document.save( outfile );
}
else
{
throw new IOException(
"Error: You are only allowed to decrypt a document with the owner password." );
}
我已经将示例项目放入GitHub:https://github.com/marioosh-net/pdfbox
我正在试着制作一个定制的发射器,但我不知道如何使用命令行来启动minecraft。我看到了这个问题:从命令行启动Minecraft-使用名称和密码作为前缀。但是答案根本不起作用,所以有人能告诉我如何使用以用户名和密码为前缀的命令行启动minecraft吗
我需要能够删除安全/加密从一些PDF文档,最好与itextsharp库。这在过去是可能的(如何通过使用C#提供文件的密码作为参数来解密pdf文件?),但最近对库的更改意味着该解决方案不再起作用。
主要内容:加密PDF文档,示例在前一章中,我们已经看到了如何在PDF文档中插入图像。 在本章中,我们将学习如何加密PDF文档。 加密PDF文档 使用和类提供的方法加密PDF文档。 类用于通过为其分配访问权限来保护PDF文档。 使用此教程,您可以限制用户执行以下操作。 打印文档 修改文档的内容 复制或提取文档的内容 添加或修改注释 填写交互式表单域 提取文字和图形以便视障人士使用 汇编文件 打印质量下降 类用于向文档添加基于密码
我怀疑它没有正确解密,因为它能够拉动表单的文本提示,但不能拉动响应本身。在下面的代码中,它从示例PDF中提取和,但不是它们之间的响应。 我正在使用PDFBox2.0,但我也尝试过1.8。 我已经尝试了所有的解密方法,我可以找到的PDFBox,包括不推荐的那些(为什么不)。我得到的结果与完全不尝试解密一样,只是地址和城市提示。