Как выполнить пакетное преобразование PDF-файлов CMYK в RGB?

У меня есть большая партия PDF-файлов (более 6000), которые необходимо преобразовать из цветового профиля CMYK в RGB. Существуют ли какие-либо сценарии, которые могут выполнить эту задачу, и в идеале без (слишком) видимого изменения цвета? PDF-файлы — это файлы книг, которые изначально были предназначены для печати и готовятся к загрузке в качестве электронных книг.

Я нашел несколько сценариев InDesign, которые могли бы это сделать, но на данный момент получение и повторный экспорт из исходных файлов дизайна будет занимать чрезвычайно много времени. Другой вариант, кажется, запускает действия через Adobe Acrobat, но я пока не добился успеха в этом.

Я также нашел этот кусочек Java, если кто-нибудь может за это поручиться: http://www.aspose.com/docs/display/pdfjava/Changing+Color+space+of+a+PDF+документ

Любые предложения или идеи?


person ke_w15c    schedule 07.07.2014    source источник


Ответы (3)


Вы можете использовать Ghostscript для этой работы. Однако убедитесь, что вы используете самую последнюю версию.

Вот команда, чтобы попробовать:

 gs                                      \
  -o rgb.pdf                             \
  -sDEVICE=pdfwrite                      \
  -sProcessColorModel=DeviceRGB          \
  -sColorConversionStrategy=RGB          \
  -sColorConversionStrategyForImages=RGB \
   cmyk.pdf

Обратите внимание, что ваша цель добиться конверсии 'идеально без (слишком) видимого изменения цвета' не всегда достижима. Это очень сильно зависит от того, использовал ли входной PDF-файл встроенный цветовой профиль и какой именно.

Это также зависит от используемого цветового профиля. Приведенная выше команда будет использовать профиль RGB по умолчанию, скомпилированный в Ghostscript. Чтобы использовать собственный профиль, вы можете добавить различные параметры командной строки. Чтобы использовать один профиль для всех типов содержимого PDF, используйте:

 -sDefaultRGBProfile=rgb-profile-filename

Это определяет исходные цвета, которые еще не определены колориметрически в исходном документе.

Если вы хотите переопределить профили, уже встроенные в документ PDF, добавьте следующее:

 -dOverrideICC=true

Помимо этих параметров, вы также можете управлять профилем ICC для устройства вывода, добавив:

 -sOutputICCProfile=output-profile-filename

При использовании профиля вывода часто требуется установить намерение рендеринга< /эм>. Для этого используйте:

 -dRenderIntent=intent

где intent является одним из

  • 0 : для Perceptual
  • 1 : для колориметрического
  • 2 : для Насыщенность
  • 3 : для целей Абсолютный колориметрический.

Ghostscript даже поддерживает использование разных профилей для разных типов содержимого PDF: графики, текста и изображений. Посмотреть здесь:

 -sGraphicICCProfile=graphicprofile-filename
 -sTextICCProfile=textprofile-filename
 -sImageICCProfile=imageprofile-filename

Подобно описанному выше универсальному параметру -dRenderIntent, вы можете указать разные намерения для разных типов контента:

 -dGraphicIntent=intent
 -dTextIntent=intent
 -dImageIntent=intent
person Kurt Pfeifle    schedule 13.12.2014
comment
Работает отлично. - person Dan Gayle; 08.04.2017
comment
Разработчики говорят (1,2,3,4), что нет переключателя -sColorConversionStrategyForImages. - person Igor; 20.03.2019

Я бы использовал Adobe Acrobat Pro. Перейдите в «Инструменты», «Предпечатная проверка» (может быть в другом месте, в зависимости от того, какая у вас версия).

введите здесь описание изображения

В разделе исправлений PDF найдите «Преобразовать в sRGB». Вы можете запустить эту команду вручную для одного PDF-файла, чтобы увидеть, работает ли она для вас. Если это так, перейдите в меню «Параметры» и выберите «Создать предварительную каплю».

введите здесь описание изображения

Вы получите несколько вариантов того, что делать в случае успеха и неудачи, но когда вы нажмете кнопку «Сохранить», вы получите настоящий EXE-файл для Windows, Mac вы должны получить файл приложения. В этот файл вы можете перетащить файл и, я думаю, только папки напрямую, и он запустит это действие, как Photoshop.

введите здесь описание изображения

person Chris Haas    schedule 08.07.2014
comment
Есть ли способ использовать это в пакетном процессе? - person Dan Gayle; 08.04.2017

Предпечатную проверку, созданную с помощью Adobe Acrobat Pro, можно использовать в пакетном процессе. В моем случае мне нужно преобразовать плашечные цвета в CMYK, не затрагивая другие цвета, поэтому я выбираю convert to CMYK only (SWOP) в PDF fixups section

Файл .exe создается после сохранения предварительной проверки. Это можно проверить с помощью приведенной ниже команды в командной строке.

"%location_of_file%\Convert to CMYK only (SWOP).exe" "" "%file_name%"

Я также подготовил сценарий, чтобы автоматизировать процесс, и могу дать его небольшой прототип.

d:
cd %dir% ::directory on which the batch process is to be run.
:cycle
set count_files=0
for %%x in (*.pdf) do set /a count_files+=1 ::PDF in my case so *.pdf
if %count_files%==0 ( GOTO :MISSING ) else (for /F %%a in ('dir /a-d /b /o-d *.pdf') do set oldest=%%a)
"%location_of_executable%\Convert to CMYK only (SWOP).exe" "" "%oldest%"
move %oldest%  %output_folder_with_location%\%oldest%
timeout 3 ::delay so that conversion process get completed
:MISSING
goto :cycle

Этот пакетный скрипт продолжает зацикливаться независимо от того, происходит ли сбой или он проходит успешно, и в случае, если есть PDF-файл, который нужно обработать, этот BATCH-скрипт сначала начинает преобразование самого старого файла.

person user9316834    schedule 05.02.2018