Я создаю PDF для RIP-движка.Иногда мне приходится конвертировать все шрифты в контуры, и, возможно, 1/1000 этих PDF-файлов застрянет при копировании.Для преобразования в контуры я использую:
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dNoOutputFonts -sOutputFile outlined_output.pdf input.pdf
Когда это происходит, я ранее просто открывал PDF в Acrobat и использовал вместо этого PitStop для конвертации в контуры, поскольку я думал, что проблема заключалась в способе контурирования Ghostscript.
Теперь я заметил, что если я просто открою тот же самый PDF-файл, который застрял при копировании в Acrobat 9 Standard, и сохраню его в другом месте, он будет просто скопирован.
Затем я попробовал кучу gs-команд и обнаружил, что если я использую -dPDFSETTINGS = / screen или / ebook, то все будет нормально, но не при использовании / printer или / prepress.Из соображений качества / screen и / ebook не в порядке.
Я пытался понять, что отличается от ebook и принтера.
/ 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)
EDIT: новая команда, основанная на рекомендациях 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 и /принтер, который может привести к зависанию PDF-файла?
С наилучшими пожеланиями Niclas