我正在为 RIP 引擎创建 pdf。 有时我必须将所有字体转换为轮廓,也许 1/1000 的 pdf 在翻录时会卡住。 为了转换为轮廓,我使用:
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dNoOutputFonts -sOutputFile outlined_output.pdf input.pdf
发生这种情况时,我之前只是在 Acrobat 中打开 pdf,然后使用 PitStop 转换为大纲,因为我认为问题出在 Ghostscript 的大纲方式上。
现在,我注意到,如果我只是打开在 Acrobat 9 Standard 中翻录时卡住的同一个 pdf 并将其保存到另一个位置,它就会正常翻录。
然后我尝试了一堆 gs 命令,发现如果我使用 -dPDFSETTINGS=/screen 或/ebook ,它会正常,但在使用/printer 或/prepress 时则不行。由于质量原因,/screen 和/ebook 不行。
我试图了解电子书和打印机的区别。
/电子书
gs -q -dNODISPLAY -c ".distillersettings /ebook get {exch ==only ( ) print ===} forall quit" | sort
给予:
/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
和/打印机
gs -q -dNODISPLAY -c ".distillersettings /ebook get {exch ==only ( ) print ===} forall quit" | sort
给予:
/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 rip 正常的正确命令。 正如我从网上的示例中看到的, -dAutoRotatePages=/None 是一个正确的参数。将“-d”与“=”一起添加看起来是正确的吗? 此外,NeverEmbed、ColorACSImageDict 和 GrayACSImageDict 必须从“-c”调用 ( https://www.ghostscript.com/doc/9.22/VectorDevices.htm#note_13 )
编辑:基于 KenS 指南的新命令:
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 卡在撕裂处的差异有直接建议吗?
致以诚挚的问候 尼古拉斯
最佳答案
PDFSETTINGS 包含在 Ghostpdl/Resource/Init/gs_pdfwr.ps 中,因此您可以看到它们是如何设置的。
您不需要(也不应该)将每段 PostScript 放入其自己的 -c/-f 括号中。用-c打开PostScript,发送你想要的PostScript程序,然后用-f关闭它。
不要使用 .setpdfwrite,或者如果必须的话,也不要多次使用它,那不会有任何帮助。
我的建议是使用最后一个命令行,然后每次删除命令,直到文件正常工作。然后您就会知道哪个设置给您带来了问题。
我还建议,一旦您知道这一点,您就可以打开一个错误报告,其中包含显示问题的样本文件和命令行,以便有人可以修复它....
就其值(value)而言,如果 Acrobat 能够毫无问题地打开 Ghostscript 生成的文件,这对我来说听起来像是 PDF 用户的问题。您可以向制造商报告该问题,以便他们也可以解决问题。
[编辑]
如果我理解正确的话,当您将该 PDF 发送给“其他 PDF 用户”时,由 Ghostscript 生成的 PDF 会“卡住”。
因此,您真正需要做的是确定设备到底不喜欢什么。
我假设如果您使用不带参数的 pdfwrite (例如 gs -sDEVICE=pdfwrite -o out.pdf <input.pdf>
),生成的 PDF 文件会按预期工作?
假设确实如此,并且您有一个命令行(在上面的编辑中)会生成一个不起作用的 PDF 文件,您可以一一删除这些开关,直到得到一个开始工作的文件。将最后拆下的开关放回原位,并将其余的一一拆下。理想情况下,您最终应该得到一个会给其他消费者带来问题的开关。
此时,采用您想要的 PDFSETTINGS 并单独应用每个开关,或设置 -dPDFSETTINGS
然后通过在设置 PDFSETTINGS 后进行设置来关闭导致问题的控件。
关于pdf - Ghostscript - 将 "pdfsettings=/ebook"放入各个参数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54289570/