我有一个受密码保护的 PDF 文件。我知道密码,但为了共享文件,我必须从 PDF 中删除密码并共享未受保护的副本。如何在有或没有 GUI 的 Ubuntu 中执行此操作?
答案1
最简单的 GUI 方式(建议新手使用)
打开受保护的文件并使用ctrl+p或使用打印选项打印文件,现在将文件保存为 pdf。
使用命令行
如果你已经安装了 pdftk,你可以跳过步骤 1
步骤 0:检查 Pdftk 是否已安装
sudo apt list | grep pdftk
如果输出包含 pdftk 的 '[installed]' 标签,那么你可以跳过步骤 1,即如果输出是这样的
pdftk/xenial 2.02-4 amd64 [installed]
步骤 1:安装 pdftk
sudo apt-get install pdftk
第 2 步:运行以下命令
pdftk /path/to/input.pdf input_pw <yourpassword> output out.pdf
如果您不想安装 pdftk,还有另一个实用程序 qpdf 会自动安装(至少在我使用的 16.04 上)
要使用 qpdf 生成不安全的 pdf,请运行以下命令。
qpdf -password=<your-password> -decrypt /path/to/secured.pdf out.pdf
有关详细信息,请参阅这HTG 教程
答案2
我在 ubuntu mate 19.04 中尝试过这个:
sudo apt-get install qpdf
qpdf --password=YOURPASSWORD-HERE --decrypt input.pdf output.pdf
编辑:您也可以先在 chrome 中打开该文件,然后保存为 PDF。
答案3
这是一个老问题,但似乎是关于此事的参考,令人惊讶的是,没有一个答案告诉我们如何避免在命令行上传递密码(这可能是泄漏的来源)。当然,因为这是关于从文件中删除密码保护,所以也许你不在乎。但也许你从一家公司收到了一份 pdf,该公司使用你的一些数据来加密文件,你想避免泄露它。
我们pdftk
可以使用:
pdftk protected.pdf input_pw output out.pdf do_ask
然后在终端中查询密码,您可以输入密码。
这样qpdf
就没那么直接了。可以通过传递选项来qpdf
读取密码:stdin
-
--password-file=
qpdf --password-file=- --decrypt protected.pdf out.pdf
输入该内容后,qpdf
将等待来自 stdin 的输入。然后您可以输入<yourpassword>
,RET然后Ctrl+ d(在 Linux 中Ctrl+d发送EOF
。在 Windows 中,我认为应该是Ctrl+ z,但我不确定)。
如果您使用的是旧版本qpdf
(v10.2.0 之前),则无法通过这种方式工作,但仍可以使用选项--password-file=
读取整个参数。 鉴于此,您可以使用:stdin
@-
qpdf @- --decrypt protected.pdf out.pdf
然后输入--password=<yourpassword>
,RET和Ctrl+ d。
答案4
使用这个 zsh 函数:
pdf-unencrypt () {
: "Usage: <file>
Uses ghostscript to rewrite the file without encryption."
local in="$1"
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${in:r}_unencrypted.pdf" -c .setpdfwrite -f "$in"
}
:
是一个no-operations
函数。$in:r
获取不带扩展名的变量。显然您需要ghostscript
安装。