如何从 PDF 中删除密码?

如何从 PDF 中删除密码?

我有一个受密码保护的 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>,RETCtrl+ 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安装。

相关内容