让 Graphic Magick 检测 Ghostscript 以在 Windows 上阅读 pdf。如何将 WINDOWS CMD 上的 Ghostscript 调用名称更改为“gs”?

Posted

技术标签:

【中文标题】让 Graphic Magick 检测 Ghostscript 以在 Windows 上阅读 pdf。如何将 WINDOWS CMD 上的 Ghostscript 调用名称更改为“gs”?【英文标题】:Making Graphic Magick detect Ghostscript for reading pdf on Windows. How to change Ghostscript invocation name on WINDOWS CMD to 'gs'? 【发布时间】:2021-03-05 03:07:06 【问题描述】:

我的操作系统是 Windows 10。我为 Ghostscript 安装做了什么

我安装了 Ghostscript (v9.53.3) 我将 Ghostscript bin 文件夹位置添加到我的环境 PATH 变量中。 (C:\Program Files\gs\gs9533\bin) 我重新启动了我的机器。

在这一步之后,我的 cmd 能够识别“gswin64c”命令。但是,“gs”无法识别。根据 Ghostscript 示例,“gs”命令应该可以工作。 我必须做什么才能让“gs”命令被识别?我应该担心吗?

现在,我的图形魔术问题:

我还在我的机器上使用 Graphic Magick v1.3.36 (GM)。 即使我如上所述安装了 Ghostscript,我的 GM 也没有 pdf 格式的委托。从这个错误中可以看出,每次我尝试使用 gm 将 pdf 文件转换为图像时。

C:\program files\graphicsmagick-1.3.36-q16\gm.exe convert: 此图像格式没有解码委托 (file1.pdf)

我怀疑“gs”命令在 Windows 中无法识别,这导致 GM 无法检测到 Ghostscript

我会重视任何关于如何让 GM 在我的 Windows 机器上使用 ghostscript 的建议。谢谢。

更新(2021 年 3 月 5 日) 我发现将 Ghostscript 的命令更改为 gs 并不能解决 GM 的 pdf 委托问题——GM 仍然无法检测到 Ghostscript!我上面的怀疑是错误的。

【问题讨论】:

【参考方案1】:

我也在为“GM 的 pdf 委托问题”而苦苦挣扎。我发现 GraphicsMagick 使用 Ghostscript 字体(也称为“URW 字体”)来支持标准的 Adob​​e Postscript 字体集,例如“Helvetica”和“Times Roman”。 从此处Ghostscript Fonts 下载字体并将下载的文件夹 fonts 粘贴到包含 Ghostscript 文件 **C:Program Files\gs\gs9.27** 的文件夹中。 Here您可以找到更多信息。

【讨论】:

这对你有用吗?我粘贴了字体文件夹,但它仍然不起作用。我仍然得到,“这种图像格式没有解码委托” 在您的 bin 文件夹 (C:\Program Files\gs\gs9.54.0\bin) 中,您是否将 exe 文件名保留为“gswin64.exe”和“gswin64c.exe”?因为在我的 Windows 终端上,“gs”是一个未找到的命令,但“gswin64”和“gswin64c”是有效的命令。在文档中,“gs”是常用命令,但在我的 PC 上却不同。这种名称不匹配会是个问题吗? 在我的终端上,'gs' 命令没有问题,它可以工作。但我的 bin 文件夹中有 gs.exe。你用的是什么安装程序?我使用旧版本的 Ghostscript,来自此链接 github.com/ArtifexSoftware/ghostpdl-downloads/releases/tag/…。下载gs952w64.exe,然后启动这个安装程序,添加环境变量C:\Program Files\gs\gs9.52\bin,添加字体文件夹,现在可以使用了。【参考方案2】:

安装ghostscript并将其路径添加到环境变量并通过运行gswin64c命令检查它。

更新 C:\Program Files\GraphicsMagick-1.3.34-Q16 处的 delegates.mgk 文件

默认情况下,delegates.mgk 条目看起来有点像这样-

<delegate decode="pdf" encode="eps" mode="bi" command='"@PSDelegate@" -q -dBATCH -dSAFER -dMaxBitmap=50000000 -dNOPAUSE -sDEVICE=@GSEPSDevice@ "-sOutputFile=%o" -- "%i" -c quit' />

注意命令中的@PSDelegate@ env 变量,只需在所有位置找到所有@PSDelegate@ 并将其替换为路径gswin64c。之后,Graphic Magick 将开始将任务委派给 Ghostscript。

正如一位维护者here 所提到的,Windows 的 Graphic Magick v1.3.36 也存在问题 所以尝试安装旧版本。

question 也解释了类似的问题。

【讨论】:

以上是关于让 Graphic Magick 检测 Ghostscript 以在 Windows 上阅读 pdf。如何将 WINDOWS CMD 上的 Ghostscript 调用名称更改为“gs”?的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf 试图让Ghost与MySQL合作......没有运气......但......

硬盘重装无法引导开机

GHOST CMS - 索引Index

Magick++ 链接错误

人脸检测+图像变形

将 Magick::Image 转换为 cv::Mat