Есть ли способ использовать ghostscript для преобразования PDF в PDF/A или PDF/X? Я знаю, что его можно использовать для преобразования PDF в изображения, но я не знаю, можно ли его использовать для преобразования PDF/A. Какие параметры следует использовать?
Как использовать ghostscript для преобразования PDF в PDF/A или PDF/X?
Ответ 1
Это преобразование pdf-документа (не pdf/a) в pdf/a:
gs -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=output_filename.pdf input_filename.pdf
Надеюсь, это поможет кому-то!
Ответ 2
@danio, @imgen: Даже недавно выпущенные страницы документации по PDF/X (стандартизированные требования допечатной подготовки) и PDF/A (стандартизированные требования к архивированию) были довольно вводящими в заблуждение. (Ваша ссылка указана на версию v8.63.) В конце концов, было высказано предположение, что запуск командной строки примера с использованием примера PDF*_def.ps
уже сгенерировал бы действительные файлы PDF/A и PDF/X.
Но, они этого не делают!
Вот одна из примеров команд, которая сама по себе верна:
gs \
-dPDFA \
-dBATCH \
-dNOPAUSE \
-dNOOUTERSAVE \
-dUseCIEColor \
-sDEVICE=pdfwrite \
-sOutputFile=out-a.pdf \
PDFA_def.ps \
input.ps
Выходной файл объявит себя PDF/A (и большинство читателей в формате PDF с удовольствием согласуются с этим), но выходной файл не выполняет все настоящие тесты соответствия.
Исправить легко: вам нужно отредактировать свой образец PDFA_def.ps
(для файлов PDF/X: your PDFX_def.ps
) в соответствии с вашими условиями. Эти требуемые изменения не были четко изложены в более старых версиях документации, и предоставленная команда предложила, что это будет работать из коробки.
Особенно в случае PDF/X вы ДОЛЖНЫ указать действительный профиль ICC для использования.
См. также обновленную документацию (текущая версия соединительной линии SVN) об этом:
Ответ 3
Надеюсь, что этот ответ поможет другим, приходящим из Google, с той же проблемой:
Для преобразования из PDF в PDFA-1b или PDFA-2b вы можете использовать Ghostscript. Я предлагаю вам использовать последнюю версию (9.19 сегодня).
Установите его
В Mac OS вы можете предпочесть использовать доморощенный:
brew install ghostscript
В Linux некоторые дистрибутивы приносят гораздо более старую версию (rhel7 sports 9.07). Чтобы загрузить полностью независимый современный однопользовательский ghostscript, загрузите его прямо с сайта:
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs919/ghostscript-9.19-linux-x86_64.tgz
Если ссылка выше нарушена, когда вы пробуете ее через 20 лет, обратитесь к ghostscript.com и найдите раздел загрузки. Загрузите двоичную версию, не переходите к источнику, если вы не знаете, что делаете.
В Windows я не могу вам помочь, но если вам удастся установить его, будут работать и следующие команды, если вы замените местоположение файлов и исполняемый файл gs.
Командная строка
gs-919-linux_x86_64 -dPDFA=1 -dNOOUTERSAVE -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -o output_file.pdf /path/to/PDFA_def.ps -dPDFACompatibilityPolicy=1 input_file.pdf
Обратите внимание, что output_file.pdf
и input_file.pdf
должны быть изменены на имена выходного файла (преобразованного файла) и входного файла (файл, который нужно преобразовать). /path/to/PDFA_def.ps
- это ваша копия файла PDFA_def.ps
.
-dPDFA=1
для PDFA-1b.
-dPDFA=2
, если вы хотите PDFA-2b.
Что такое PDFA_def.ps
?
PDFA_def.ps
- это своего рода шаблон, используемый ghostscript для создания файла PDFA. Сложная часть состоит в том, что по какой-то причине ghostcript поставляется с нерабочим файлом.
Вам нужно будет отредактировать PDFA_def.ps
и включить путь к допустимому файлу ICC (цветной профиль). Загрузите хороший цветной профиль из Adobe:
wget http://download.adobe.com/pub/adobe/iccprofiles/win/AdobeICCProfilesWin_end-user.zip
Внутри этого zip найдите файл с именем AdobeRGB1998.icc
, поместите его где-нибудь и поместите путь к этому файлу в файл PDFA_def.ps.
Вот версия PDFA_def.ps, измените PATH_TO_YOUR_ICC_FILE
на путь к вашему AdobeRGB1998.icc.
Ответ 4
Если вы используете Windows и хотите явным образом создавать документы PDF/A-1b (PDFCreator имеет возможность вывода для PDF/A-2b, но не для PDF/A-1b), вы можете просто ввести параметры Artur, описанные выше, в Пользовательские настройки PDFCreator без параметров для имен документов. Запустите PDFCreator, выберите меню принтера, затем перейдите в настройки. Теперь выберите 'Ghostscript'
в списке настроек на левой стороне. В разделе 'additional ghostscript settings'
введите следующее:
-dPDFA|-dBATCH|-dNOPAUSE|-dUseCIEColor|-sProcessColorModel=DeviceCMYK|-sDEVICE=pdfwrite|-sPDFACompatibilityPolicy=1
Нажмите 'Save'
, затем распечатайте что-нибудь из MS Word или любого другого приложения, которое вы хотите, используя PDFCreator - оно будет создано в PDF/A-1b.
Привет, Фриц
Ответ 5
Обратите внимание, что текущие ответы не являются полностью правильными. Вы можете определить, какой уровень PDF/A вы хотите, что приводит к различным поведениям программы. Это правильно:
gs -dPDFA -dBATCH -dNOPAUSE -sColorConversionStrategy=UseDeviceIndependentColor -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=2 -sOutputFile=output_filename.pdf input_filename.pdf
Обратите внимание на мое изменение с dPDFACompatibilityPolicy на d PDFACompatibilityPolicy. Измените его на большее число, чтобы получить другие версии. 1 хорошо, если вам не нужен DOCINFO. Кроме того, мы используем опцию UseDeviceIndependentColor, чтобы избежать проблем с проверкой.
Если вы измените параметры здесь, вы, скорее всего, получите несоответствующий PDF/A (даже если он указан по-другому). Вы можете проверить свой pdf/a здесь: https://www.pdf-online.com/osa/validate.aspx