如何使用ghostscript设置PDF的用户和所有者密码? [重复]

问题描述 投票:0回答:3

我知道到目前为止他的问题已被问过很多次,但没有解决方案能够为 Ghostscript 提供正确的语法和参数,从而能够使用所有者和用户密码以及所使用的加密来保护 pdf,我使用了以下内容命令但似乎没有人工作:

gswin64   -dNOPAUSE -dBATCH -sOutputFile=d:/sec/result.pdf -sOwnerPassword=string -f d:/sec/sunday.pdf
gswin64   -dBATCH -sOutputFile=d:/sec/result.pdf -sOwnerPassword=string -f d:/sec/sunday.pdf
gswin64   -dNOPAUSE  -dPermissions=3 -sOwnerPassword=string sOutputFile=d:\sec\result.pdf d:\sec\tt.pdf

我缺少任何参数吗?

ghostscript
3个回答
4
投票

对我来说这有效:

gswin64 -sDEVICE=pdfwrite -sOwnerPassword=password -sOutputFile=out.pdf test.ps

Acrobat 报告文件具有安全性“密码安全性”,不允许页面提取,其他一切都允许。

同样适用于:

gswin64 -sDEVICE=pdfwrite -sOwnerPassword=password -sOutputFile=out.pdf test.pdf

您究竟如何测试文档是否已加密?


2
投票

该线程又旧了,其他答案对我不起作用。 2020 年有效的方法是:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dBATCH -dNOPROMPT -dNOPAUSE -dQUIET -SPDFPassword=<filepasswordhere> -sOutputFile=<output_pdf_file> <input_pdf_file>

例如:名为

myfile.pdf
的文件的密码设置为
1234
,我们希望将其保存到
mynewfile.pdf
。那么,完整的命令行将是:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dBATCH -dNOPROMPT -dNOPAUSE -dQUIET -SPDFPassword=1234 -sOutputFile=myfile.pdf mynewfile.pdf

GS版本:

$ gs -v
GPL Ghostscript 9.50 (2019-10-15)
Copyright (C) 2019 Artifex Software, Inc.  All rights reserved.

2023-09-28更新:

我随机获取了一个未受保护的 pdf 文件,并使用以下命令对其进行了密码保护:

qpdf --encrypt user-password owner-password 256 -- input.pdf out.pdf

此时,为了用

out.pdf
打开
evince
,我必须输入密码。正如预期的那样,
user-password
owner-password
都有效。

我可以使用以下任一方法通过

gs
删除密码保护:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dBATCH -dNOPROMPT -dNOPAUSE -dQUIET -SPDFPassword=user-password -sOutputFile=unprotected.pdf out.pdf

...或者这个:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dBATCH -dNOPROMPT -dNOPAUSE -dQUIET -SPDFPassword=owner-password -sOutputFile=unprotected.pdf out.pdf

这两个命令在这里都能立即生效。

$ gs -v
GPL Ghostscript 9.55.0 (2021-09-27)
Copyright (C) 2021 Artifex Software, Inc.  All rights reserved.

更新2:尝试回答OP的原始问题:

我添加此内容是为了根据 K J 的评论补充我的答案。

要使用 gs

添加
密码到不受密码保护的 pdf 文档,过程非常相似:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=protected.pdf -dCompatibilityLevel=1.4 -sOwnerPassword=my-owner-password -sUserPassword=my-user-password -f unprotected.pdf

my-owner-password
my-user-password
替换为您要使用的密码。


0
投票

以上答案对我不起作用。

(我知道这是一个相当老的话题。这个问题是在 2013 年提出的,现在是 2018 年了。:D ) 不知道,但是 Ghost 脚本文档很难。

好的。对我来说,我的 Ghostscript 版本看起来像这样。

manan@manan-EliteBook-8470p ~ $ gs -v
GPL Ghostscript 9.18 (2015-10-05)
Copyright (C) 2015 Artifex Software, Inc.  All rights reserved.

有效的命令...

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dBATCH -dNOPROMPT -dNOPAUSE -dQUIET -sOwnerPassword=mypassword -sUserPassword=manan -sOutputFile=MyOutputFile.pdf MyInputFile.pdf
© www.soinside.com 2019 - 2024. All rights reserved.