我正在使用ghostscript(lib/ghostpdf.inf
)附带的Windows postscript打印驱动程序从打印作业生成postscript文件。
但是,postscript驱动程序没有经过数字签名,因此Windows 8和Windows Server 2012不允许安装它而不启动到“允许未签名的驱动程序”-mode。
您知道是否有任何已签名的版本可用于最新的Windows版本?
如果不是这样的话,我自己很好地编译和签名,但是我无法在http://git.ghostscript.com/ghostpdl.git的git仓库中找到postscript打印驱动程序的源代码。 我可以监督它,因为我不熟悉构建驱动程序。
可以给我一个提示,我可以在哪里找到postscript驱动文件来自行编译吗?
编辑: .INF文件如何告诉Windows驱动程序二进制文件所在的位置?我查看了“ClassGUID”但是对于所有驱动程序都是一样的,注册表项对C:\Windows\System32\ntprint.dll
说了些什么。我不认为这对问题很重要,是吗?
答案 0 :(得分:4)
要签署“ghostscript驱动程序”,您只需签署Ghostscript附带的INF文件。
有article on technet描述了执行此操作所需的步骤。
步骤如下:
1)创建/获取证书
2)确保您的计算机信任该证书(如果需要,将其放在您的证书库中)
3)下载并安装Windows Driver Kit (WDK)
4)将INF文件中的CatalogFile=oemprint.cat
更改为ghostpdf.cat
5)将DriverVer=01/02/2007,1.0.0.1
更改为DriverVer=01/01/2013,1.0.0.1
(也许您需要其他日期,您将在下一步中看到)
6)使用Inf2Cat
工具创建一个cat文件(对我来说是C:\Program Files (x86)\Windows Kits\8.0\bin\x86
):
注意强>
使用cmd.exe而不是powershell,因为powershell始终会出现Parameter format not correct.
错误
命令:
inf2cat.exe /driver:c:\path\to\folder\whereCatFileIsIn /os:7_X86,7_X64,8_X86,8_X64[,other OS you'd like to support]
7)使用signtool
(与Inf2Cat
工具相同的目录)对cat文件进行签名
命令:
SignTool.exe sign /f "C:Path\to\my.pfx" /t http://timestamp.verisign.com/scripts/timestamp.dll "C:\Path\To\ghostpdf.cat"
(有关可用参数的更多信息,请参阅signtool docs)
答案 1 :(得分:0)
.inf文件不是驱动程序,它们只是带有一些安装程序信息的文本文件。没有签名版本,也不需要它,您可以使用任何PostScript驱动程序的输出与Ghostscript。
你无法编译.inf文件,因为没有什么可编译的,我不知道你如何在最新版本的Windows中签署这样的东西,但如果你想尝试一下,你可以使用文本编辑器打开.inf文件。
答案 2 :(得分:0)
问:您知道是否有任何签名版本可用于最新的Windows版本?
*解决方法* 答:对于我的Postscript驱动程序问题,我重新使用了已经签名的驱动程序来自免费软件PDF生成器PDFil Writer。 https://www.pdfill.com/freewriter.html
就我而言,我是Sybase Powerbuilder开发人员,我的应用程序依赖于Ghostscript Postscript驱动程序。
我希望这会有所帮助。