我正在尝试使用ghostscript将.ps文件转换为一系列.png文件,主要是因为我没有可容忍的ps查看器。
这是我用过的命令:
gs -dBATCH -dEPSCrop -dEPSFitPage -sDEVICE=png16m -r300 -dNOPAUSE -sOutputFile=neptune_111115_ob1-2_13pca_boloplots_%d.png neptune_111115_ob1-2_13pca_boloplots.ps
(.ps文件是一个多页的附言)。
输出部分偏离页面。我希望这些图像适合页面。
我可以包含示例文件,但它们非常大 - 是否有任何特定的.ps文件可以提供帮助?
我怀疑.ps文件是否错误地指定了边界框,但是黑客攻击BB值没有任何影响。 .ps文件由IDL(ittvis'交互式数据语言)编写。我没有运行-dEPS *命令也尝试了上面的命令。
答案 0 :(得分:12)
-dEPSCrop
和-dEPSFitPage
是互斥的:
%%BoundingBox
来扩展EPS,以适应当前媒体。 你不能真正同时使用两者。
无论如何,该文件不能是EPS文件,因为EPS文件中不能有多个页面。所以实际上两个开关都没有任何效果(正如你所发现的那样)。
PostScript使用setpage
或setpagedevice
请求媒体大小,或者只使用当前设置的媒体。我的猜测是它只使用当前的媒体。尝试设置-sPAPERSIZE=a4
和-sPAPERSIZE=letter
。
如果可行则该程序不会请求媒体大小。如果它没有效果,则另外设置-dFIXEDMEDIA
,这将忽略后续更改媒体大小的请求。
这应该允许您指定正确的媒体大小,如果您不知道媒体大小应该是什么,那么您可以使用Ghostscript -sDEVICE=bbox
设备来查找。
最后,Ghostscript有一个基本的显示设备,您可以使用它来查看渲染的输出,而无需先进入PNG。