Ghostscript 切断部分图像

Posted

技术标签:

【中文标题】Ghostscript 切断部分图像【英文标题】:Ghostscript cuts off part of image 【发布时间】:2016-10-10 21:46:20 【问题描述】:

我有this eps image 命名为“input.eps”。

我在上面运行以下命令:

gs -dNOPAUSE -dBATCH -q -sDEVICE=ps2write -sOutputFile=output.eps input.eps

resulting output file "output.eps" 已将图形的右侧切掉。为什么?

注意:我使用 GhostScript 的原因是更改 input.eps 文件中的字体,我将通过指定带有字体路径的 -I 开关来完成此操作。我没有把它放在代码 sn-p 中,因为它与问题无关。

【问题讨论】:

【参考方案1】:

EPS 文件不要求媒体大小(它们旨在由应用程序包含在 PostScript 程序中)。所以,如果你不告诉 Ghostscript 要使用什么尺寸的媒体,它别无选择,只能使用它的默认值。

根据您的操作系统(以及适当的区域设置),这可能是 Letter(612 x 792 单位)或 A4(596 x 842 单位)。您的 EPS 文件声称它有一个 1008 x 504 单位的边界框。

很明显,您的 EPS 不适合整个媒体,因此会被裁剪。

您可以将 EPS 按正常方式打包以包含在 PostScript 程序中,然后在其中请求媒体,或者您可以使用 -dEPSCrop 开关从 cmets 读取边界框并将其用于媒体请求。

请注意,尽管存在 BoundingBox,但这在技术上并不是一个有效的 EPS 文件。它具有错误的 DSC 标识符并执行显示页面。

最后一点,您不会“更改” EPS 文件中的字体,因为 EPS 文件不包含任何字体,只是对字体名称的引用。

【讨论】:

以上是关于Ghostscript 切断部分图像的主要内容,如果未能解决你的问题,请参考以下文章

PHP检查Ghostscript是不是安装在服务器上

转换后的 tiff 文件 (GhostScript) 中缺少 Pdf 文本框标记

在 ASP.NET Azure 网站上使用 Ghostscript.Net

Ghostscript.NET 多线程问题

缩放后 UIImageView 在 PageControl 的右侧被切断

打印时出现 GhostScript 图像质量问题