在 Windows 上使用 GhostScript 将 eps 转换为 png

在 Windows 上使用 GhostScript 将 eps 转换为 png

如果我有一些.eps文件pic00.eps,例如pic01.eps,,...然后在 Linux 上我.png通过运行以下命令将它们转换为文件:

gs -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -sDEVICE=png16m -r600 -sOutputFile=pic%02d.png pic*.eps

我刚刚在 Windows 10 上尝试过(使用gswin64c而不是gs),但不起作用。错误信息如下:

pic*.eps 是未定义的文件名。

Windows 上的命令是什么?

答案1

这在 Linux 中有效,因为你的 shell(可能bash)正在将扩展*.eps为完整的 epses 列表ghostscript 可以获取任何内容。在 Windows 中,shell 不会为您执行此操作。

在 Powershell 中,我会这样做:

$names = (dir *.eps).name
gswin64c -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -sDEVICE=png16m -r600 '-sOutputFile=pic%02d.png' $names

我还对参数进行了单引号处理,-sOutputFile以防 PowerShell 在处理百分号时遇到问题。

在 cmd 批处理中,我会执行以下操作:

for %%i in (*.eps) do (
   gswin64c -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -sDEVICE=png16m -r600 "-sOutputFile=%%i.pic%02d.png" %%i
)

这与 Linux 和 Powershell 的做法不同,因为每个 EPS 都会触发单独的 ghostscript 执行。这通常是可以的;使用一个 EPS 作为另一个 EPS 的前导码是相当不常见的。

我还在 PNG 文件名前面加上了 eps 名称,因为页数计数器将为每个 EPS 文件重置,并且您不希望第一个 EPS 中的 pic01.png 被第二个 EPS 破坏。

相关内容