当我在我的文档服务器上直接通过后端运行这个命令时,它可以工作并创建一个可打印/正确的组合文档:
cd /docs/processing/ && gs -sDEVICE=pswrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=combo.ps temp1.ps temp2.ps;现在真正的任务是,我需要从另一台服务器通过SSH连接到这个文档服务器,以便执行这些命令。所以我试了一下:
ssh myuser@myserver "cd /docs/processing/ && gs -sDEVICE=pswrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=combo.ps temp1.ps temp2.ps;"当我这样做时,我得到一个丑陋的ghostscript错误代码,并且它不能工作
GPL Ghostscript 8.54: Unrecoverable error, exit code 1做了一些挖掘,看起来它与字体有关?Ghostscript在运行时幸运地打印出许多调试语句,我想我找到了问题所在。
当我在我的文档服务器上本地运行,并且没有在其中一个位置进行SSH时,它似乎正在寻找字体在这里(并且成功)
/usr/local/share/ghostscript/8.54/lib/fonts/当我通过SSH运行时,它看起来是在一个完全不同的区域中搜索字体,因为一些奇怪的原因,我不知道为什么,所以产生了所有的错误:
Can't find (or can't open) font file
/usr/local/share/ghostscript/8.54/Resource/Font/NimbusMonL-Regu.
Can't find (or can't open) font file NimbusMonL-Regu.
Querying operating system for font files...
Didn't find this font on the system!
Unable to substitute for font.
Error: /invalidfont in findfontTLDR:当我通过SSH登录时,ghostscript正在不同的文件位置查找字体,但没有找到任何字体,这导致ghostscript出错并失败。
有人知道我如何进入并告诉ghostscript在用于查找字体的目录中查找吗?特别是当我使用SSH登录时,我猜是什么时候,因为这似乎是不同之处。
谢谢!
发布于 2013-11-21 00:50:57
听起来您在这两种情况下是以不同的用户身份运行Ghostscript的。这两个用户的环境设置很可能是不同的,特别是GS_FONTPATH,但也可能是其他用户。
您应该检查这两个环境。开始时带有GS_的工作环境中的任何内容都可能需要复制到其他用户的环境中。
此外,您可能想尝试在没有-dSAFER的情况下运行,至少作为实验,因为该开关禁用从“大多数”路径读取(有关-dSAFER的更多信息,请参阅ghostpdl/gs/doc/use.htm )
https://stackoverflow.com/questions/20099773
复制相似问题