Как отключить растеризацию изображений и путей в ghostscipt?

Мне нужно конвертировать PDF в другой цветовой профиль ICC. Благодаря различным поискам и тестам, я нашел способ сделать это:

  • Сначала я конвертирую свой PDF в файл PS с помощью:

    .\gswin64c.exe -dNOPAUSE -dBATCH -sDEVICE=ps2write -sOutputFile="test.ps" "test.pdf"
    
  • Затем я преобразую PS обратно в PDF со следующим (это для создания действительного файла PDF/X-3):

    .\gswin64c.exe -dPDFX -dNOPAUSE -dBATCH -sDEVICE=pdfwrite 
    -sColorConversionStrategy=/UseDeviceIndependentColor -sProcessColorModel=DeviceCMYK
    -dColorAccuracy=2 -dRenderIntent=0 -sOutputICCProfile="WebCoatedSWOP2006Grade5.icc"
    -dDeviceGrayToK=true -sOutputFile="final.pdf" test_PDFX_def.ps test.ps
    

Профиль ICC встроен и все работает отлично. Единственная проблема заключается в том, что весь окончательный PDF растеризован. Здесь я теряю все пути и другие качества векторных элементов, которые у меня есть в исходном файле. Мне нужно сохранить их в векторе, потому что этот PDF-файл будет иметь конкретное применение.

1 ответ

Первый шаг не конвертировать в PostScript!!!

Любые прозрачные операции маркировки должны будут отображаться, если вы это сделаете, потому что PostScript не поддерживает прозрачность. Другие функции также будут потеряны, так что на самом деле, не делайте этого. Входные и выходные концы Ghostscript более или менее независимы; устройство pdfwrite не знает, был ли ввод PDF или PostScript, и ему все равно. Поэтому вам не нужно конвертировать PDF-файл в PostScript перед отправкой в ​​качестве входных данных.

Вы можете передать исходный файл PDF во вторую командную строку вместо файла PostScript.

Пока вы создаете PDF/X-3 или более позднюю версию, прозрачность будет сохраняться. Убедитесь, что вы используете актуальную версию Ghostscript.

Другие вопросы по тегам