Chi*_*a B 75 gui command-line pdf
我有一个受密码保护的 PDF 文件。我知道密码,但为了共享文件,我必须从 PDF 中删除密码并共享未受保护的副本。无论有没有 GUI,我如何在 Ubuntu 中做到这一点?
Chi*_*a B 109
最简单的GUI方式(推荐给新手)
打开受保护的文件并使用ctrl+p或使用打印选项打印文件,现在将文件另存为 pdf。
使用命令行
如果您已经安装了 pdftk,则可以跳过步骤 1
步骤 0:检查 Pdftk 是否已安装
sudo apt list | grep pdftk
Run Code Online (Sandbox Code Playgroud)
如果输出包含带有 pdftk 的 '[installed]' 标签,那么您可以跳过步骤 1,即如果输出是这样的
pdftk/xenial 2.02-4 amd64 [installed]
Run Code Online (Sandbox Code Playgroud)
第一步:安装pdftk
sudo apt-get install pdftk
Run Code Online (Sandbox Code Playgroud)
第 2 步:运行以下命令
pdftk /path/to/input.pdf input_pw <yourpassword> output out.pdf
Run Code Online (Sandbox Code Playgroud)
要使用 qpdf 生成不安全的 pdf,请运行以下命令。
qpdf -password=<your-password> -decrypt /path/to/secured.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看此HTG 教程
小智 31
我在 ubuntu mate 19.04 中试过这个:
sudo apt-get install qpdf
qpdf --password=YOURPASSWORD-HERE --decrypt input.pdf output.pdf
Run Code Online (Sandbox Code Playgroud)
这是一个老问题,但似乎是关于此事的参考,令人惊讶的是,没有一个答案告诉我们如何避免在命令行上传递密码(这可能是泄漏的来源)。当然,由于这是从文件中删除密码保护,因此也许您并不关心。但也许您从一家公司收到了一份 pdf 文件,该公司使用您的一些数据来加密该文件,并且您希望避免泄露它。
我们pdftk
可以使用:
pdftk protected.pdf input_pw output out.pdf do_ask
Run Code Online (Sandbox Code Playgroud)
然后在终端中查询密码,您可以输入它。
有了qpdf
它就有点不那么直接了。可以读取传递给选项qpdf
的密码:stdin
-
--password-file=
qpdf --password-file=- --decrypt protected.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)
输入后,qpdf
将等待来自标准输入的输入。然后您可以输入<yourpassword>
,RET和Ctrl+ d(Ctrl+在 Linux 中d发送EOF
。在 Windows 中,我认为它会是Ctrl+ z,但我不确定)。
如果您有旧版本qpdf
(v10.2.0 之前),则--password-file=
无法以这种方式工作,但仍然可以使用stdin
该@-
选项读取整个参数。鉴于此,您可以使用:
qpdf @- --decrypt protected.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)
然后输入--password=<yourpassword>
,RET和Ctrl+ d。
小智 5
sudo apt-get install pdftk
pdftk input.pdf output output.pdf user_pw YOURPASSWORD-HERE
Run Code Online (Sandbox Code Playgroud)
这需要您input.pdf
,删除密码并将其导出为output.pdf
.
您可能需要查看此处以探索其他方法。
使用这个 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"
}
Run Code Online (Sandbox Code Playgroud)
:
是一个no-operations
函数。$in:r
获取不带扩展名的变量。显然你需要ghostscript
安装。