因此,最近我设法创建了一组PHP脚本,允许哑机用户上传PDF文件并将其作为JPG图像进行查看。它工作得很完美。我测试了它,它似乎在大多数情况下都工作得很好。此外,负载是完全平衡的,所以到目前为止没有问题,我已经准备好迎接严重的流量!
当用户上传的PDF文件没有嵌入字体,并且使用了Ghostscript无法识别的字体时,我的问题就会出现。有没有可能设置一个默认的备用字体来防止Ghostscript出现木马错误?
设置: OS: Debian
它是如何工作的:我使用imagick提供的" convert“命令将pdf格式转换为jpeg格式,不需要设置额外的参数。我不确定我的Ghostscript/Imagick设置如何,但我不认为它有什么特别之处。如果您需要了解有关安装的一些信息,请向我提供特定配置文件的位置和设置:我将尽我所能尽快提供。
如果你还需要什么,请随时提出来!提前感谢!
发布于 2013-09-26 14:00:50
是的,您可以添加此参数,指向windows中的字体文件夹。例如,在ghostscript过程中,它将开始从以下路径获取字体
-sFONTPATH=c:/windows/fonts 另请注意,您可以下载并添加windows字体文件夹中没有的其他字体。
至于设置问题,我正在使用ghostscript将PDF转换为图像,您为什么要使用imagemagick?至于这一部分,不需要任何参数,在我的例子中,我使用参数来提高生成图像的质量,作为建议,您可以将此参数添加到ghostscript中,以控制生成图像的质量。
-r150 根据ghosscript文档here
您可以为Ghostscript提供命令行选项:-dPDFNOCIDFALLBACK。通过将-dPDFNOCIDFALLBACK与-dPDFSTOPONERROR相结合,生产工作流程可以强制缺少CIDFonts的CIDFont出错,并避免仅在打印后才意识到缺少CIDFont。
发布于 2013-09-26 15:12:04
Ghostscript不会在丢失的字体上抛出错误,它会尝试回退,首先将名称与字体和样式列表进行匹配,最后(通常)替换Helvetica。
在缺少字形的情况下,您没有说明您认为缺少的是哪种类型),它尝试替换,并最终退回到使用DroidSansFallback,它可能没有字形,但仍然不会引发错误。
因此,要么是你使用的Ghostscript版本太旧,无法提供这个功能(而且你没有说你正在使用的GS是什么版本),要么是因为某种原因,这个功能已经被破坏了。当前版本是9.10,我建议您确保使用该版本,理想情况下是您自己构建的,因为Linux维护者习惯于对Ghostscript应用特定于发行版的补丁和不寻常(在我们看来不可取的)构建条件。
虽然您可以使用-sFONTPATH添加额外的字体,但这通常不会对缺少字体的PDF文件有帮助,因为您的系统中通常也不会有缺少的字体。
user1283633是非常正确的,你不需要使用convert,除非你需要额外的处理,否则Ghostscript非常有能力直接产生JPEG输出。
https://stackoverflow.com/questions/19013674
复制相似问题