首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ghostscript -让"pdfsettings=/ebook“变成单个参数吗?

Ghostscript -让"pdfsettings=/ebook“变成单个参数吗?
EN

Stack Overflow用户
提问于 2019-01-21 12:02:19
回答 1查看 2.8K关注 0票数 2

我正在为RIP引擎创建pdf。有时,我必须将所有字体转换为轮廓,也许这些pdfs的1/1000会在撕掉时卡住。对于转换为大纲,我使用:

代码语言:javascript
复制
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dNoOutputFonts -sOutputFile outlined_output.pdf input.pdf

当发生这种情况时,我以前只是打开Acrobat中的pdf并使用PitStop转换为大纲,因为我认为问题在于Ghostscript的大纲方式。

现在,我已经注意到,如果我只是打开相同的pdf,而被卡在Acrobat 9标准,并保存到另一个地方,它会撕得很好。

然后,我尝试了一堆gs-命令,发现如果我使用-dPDFSETTINGS=/screen或/ebook,它会撕开ok,但在使用/printer或/prepress时不会。出于质量原因,/screen和/ebook不太好。

我试着理解电子书和打印机的不同之处。

/ebook

代码语言:javascript
复制
gs   -q   -dNODISPLAY   -c ".distillersettings /ebook get {exch ==only ( ) print ===} forall quit" | sort

给予:

代码语言:javascript
复制
/AutoRotatePages /All
/CannotEmbedFontPolicy /Warning
/ColorACSImageDict << /Blend 1 /HSamples [2 1 1 2] /VSamples [2 1 1 2] /QFactor 0.76 /ColorTransform 1 >>
/ColorConversionStrategy /sRGB
/ColorImageDownsampleType /Average
/ColorImageResolution 150
/CompatibilityLevel 1.5
/CreateJobTicket false
/DoThumbnails false
/EmbedAllFonts true
/GrayACSImageDict << /Blend 1 /HSamples [2 1 1 2] /VSamples [2 1 1 2] /QFactor 0.76 /ColorTransform 1 >>
/GrayImageDownsampleType /Average
/GrayImageResolution 150
/MonoImageDownsampleType /Subsample
/MonoImageResolution 300
/NeverEmbed [/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats]
/PreserveEPSInfo false
/PreserveOPIComments false
/PreserveOverprintSettings false
/UCRandBGInfo /Remove

和/printer

代码语言:javascript
复制
gs   -q   -dNODISPLAY   -c ".distillersettings /ebook get {exch ==only ( ) print ===} forall quit" | sort

给予:

代码语言:javascript
复制
/AutoRotatePages /None
/CannotEmbedFontPolicy /Warning
/ColorACSImageDict << /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] /QFactor 0.4 /ColorTransform 1 >>
/ColorConversionStrategy /UseDeviceIndependentColor
/ColorImageDownsampleType /Average
/ColorImageResolution 300
/CompatibilityLevel 1.7
/CreateJobTicket true
/DoThumbnails false
/EmbedAllFonts true
/GrayACSImageDict << /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] /QFactor 0.4 /ColorTransform 1 >>
/GrayImageDownsampleType /Average
/GrayImageResolution 300
/MonoImageDownsampleType /Subsample
/MonoImageResolution 1200
/NeverEmbed []
/PreserveEPSInfo true
/PreserveOPIComments true
/PreserveOverprintSettings true
/UCRandBGInfo /Preserve

现在,我在想,如果我能把/ebook设置放入命令行参数中,然后逐个调整或删除,直到我找到了正确的命令,让pdf变得很好。正如我可以从web上的示例中看到的那样,-dAutoRotatePages=/None是一个正确的参数。添加"-d“和"=”看起来是正确的吗?此外,NeverEmbed、ColorACSImageDict和GrayACSImageDict必须从"-c“(13)中调用。

编辑:基于KenS准则的新命令:

代码语言:javascript
复制
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite
-dAutoRotatePages=/All \
-dCannotEmbedFontPolicy=/Warning \
-dColorConversionStrategy=/sRGB \
-dColorImageDownsampleType=/Average \
-dColorImageResolution=150 \
-dCompatibilityLevel=1.5 \
-dCreateJobTicket=false \
-dDoThumbnails=false \
-dEmbedAllFonts=true \
-dGrayImageDownsampleType=/Average \
-dGrayImageResolution=150 \
-dMonoImageDownsampleType=/Subsample \
-dMonoImageResolution=300 \
-dPreserveEPSInfo=false \
-dPreserveOPIComments=false \
-dPreserveOverprintSettings=false \
-dUCRandBGInfo=/Remove \
-sOutputFile=final_output.pdf \
-c '<</ColorACSImageDict << /Blend 1 /HSamples [2 1 1 2] /VSamples [2 1 1 2] /QFactor 0.76 /ColorTransform 1 >>  <</GrayACSImageDict << /Blend 1 /HSamples [2 1 1 2] /VSamples [2 1 1 2] /QFactor 0.76 /ColorTransform 1 >> <</NeverEmbed [/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats] >> setdistillerparams' \
-f outlined_output.pdf

此命令生成的pdf仍然被卡住。那么,我做错了什么,格式化有问题吗?这些参数应该如何看起来与/ebook完全一样?

有人对/ebook和/printer之间的区别有直接的建议,这会导致pdf卡在裂口上吗?

向妮可拉斯问好

EN

回答 1

Stack Overflow用户

发布于 2019-01-21 14:38:19

PDFSETTINGS包含在ghostpdl/Resource/Init/gs_pdfwr.ps中,因此您可以看到它们是如何设置的。

您不需要(也不应该)将每一块PostScript放在自己的-c/-f括号中。用-c打开-c,发送您想要的PostScript程序,然后用-f关闭它。

不要使用.setpdfwrite,或者如果必须的话,不要多次使用它,这是没有帮助的。

我的建议是使用最后一个命令行,然后每次删除一个命令,直到您的文件正常工作为止。然后你就会知道是哪种设置给你带来了麻烦。

我还建议,一旦你知道了这一点,你打开一个错误报告的样本文件和命令行显示一个问题,以便有人可以修复它.

不过,如果Acrobat愿意打开Ghostscript生成的文件,那么这听起来就像你的PDF用户的问题。你可以向制造商报告,这样他们也可以解决他们的问题。

编辑

如果我没听错的话,Ghostscript生成的PDF当你把PDF发送给其他PDF用户时会被“卡住”。

所以你真正需要做的是找出设备不喜欢的东西。

我假设,如果您使用没有参数的pdfwrite (例如gs -sDEVICE=pdfwrite -o out.pdf <input.pdf>),那么生成的PDF文件会像预期的那样工作吗?

假设是这样的,并且您有一个命令行(在上面的编辑中),它会导致一个不工作的文件,您可以一个一个地移除开关,直到您得到一个开始工作的文件。把最后一个移除的开关放回去,然后一个接一个地移除剩下的开关。理想情况下,您应该得到一个开关,这是一个问题,为您的另一个消费者。

此时,获取所需的PDFSETTINGS,或者单独应用每个开关,或者设置-dPDFSETTINGS,然后在设置PDFSETTINGS之后设置它,从而关闭关闭导致问题的控件

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54289570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档