我正在寻找在线计算器,工具或至少一篇易于理解的文章,该文章可让我定义Ghostscript命令行的dPermissiions
参数的值。
请咨询!
答案 0 :(得分:1)
它记录在VectorDevices.htm中,在该文件中指出了一点点,并将您引向《 PDF参考手册》。实际值由Adobe定义。
各种访问权限在“标准安全处理程序”(在1.7 PDF参考的p121上)中进行了描述,而各个位在表3.20(在1.7 PDF参考手册中的p124和124)中进行了描述。
第1位和第2位(最低的2位)始终被定义为0,因为(当前)是13-32位。令人讨厌的是,第7和8位保留为1。
因此,假设您要授予打印文档的权限,需要设置位3。因此,位1-2为0,位4-32也为0,位7和8必须为1。二进制对应于:
00000000 00000000 00000000 11000100
十六进制为00 00 00 C4,十进制为196。因此,您应设置-dPermissions = 196
举一个更复杂的例子,我们可能还希望将位12设置为允许高质量打印(对于安全处理程序的修订版3或更高版本)。现在我们要以二进制设置位3和12:
00000000 00000000 00001000 11000100
以十六进制00 00 08 C4(十进制2244)表示,因此您可以设置-dPermissions = 2244
当设置为程序员模式时,Windows计算器具有二进制条目配置。如果您以二进制形式输入位域,然后切换到十进制,它将为您转换。另外,还有一个在线转换工具here。
只需写出要设置为二进制的位,设置7和8位,然后转换为十进制即可!
-编辑-
因此,正如Vsevolod Azovsky所指出的那样,位12-32应该为1。使用我上面指出的相同工具,您可以获取二进制表示形式的十进制有符号2的补码,您可以将其用作Permissions的值。
但是,如果执行此操作,则Ghostscript的pdfwrite设备将产生警告。原因是我上面设置的某些位(第8位以上的任何位)仅与版本3(或更高级)的安全处理程序兼容,而pdfwrite的默认设置是使用版本2的安全加密。
因此,如果要使用Adobe文档中标记为“修订版3”的位,那么(显然)您需要使用-dEncryptionR=3
将修订版设置为3。这要求输出的PDF文件为1.4或更高版本,您不能将修订版3与PDF 1.3文件一起使用。
请注意,对于版本2安全处理程序,所有位1-2和7-32必须均为1。
希望也能回答上一条评论中的问题。