Как использовать ghostscript для преобразования PDF в PDF / A или PDF / X? - PullRequest
36 голосов
/ 02 ноября 2009

Есть ли способ использовать ghostscript для преобразования PDF в PDF / A или PDF / X? Я знаю, что его можно использовать для преобразования PDF в изображения, но я не знаю, можно ли его использовать для преобразования PDF / A. Какие параметры я должен использовать?

Ответы [ 5 ]

45 голосов
/ 18 февраля 2012

Это для преобразования документа PDF (не PDF / A) в PDF / A: gs -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=output_filename.pdf input_filename.pdf

Надеюсь, это кому-нибудь поможет!

14 голосов
/ 14 августа 2010

@ 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: ваши PDFX_def.ps), чтобы они соответствовали вашей среде. Эти обязательные изменения не были четко прописаны в более старых версиях документации, и предоставленная команда предложила, что они будут работать "из коробки".

Особенно в случае PDF / X вы ДОЛЖНЫ указать действительный профиль ICC для использования.

См. Также обновленную документацию (текущая версия соединительной линии SVN) об этом:

12 голосов
/ 10 сентября 2016

Надеюсь, что этот ответ поможет другим пользователям 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.

https://gist.githubusercontent.com/weltonrodrigo/19df77833f023fbe1572168982e4b515/raw/ea86e87379d14120d7ff26f6f235ac7eeb5f5dd5/PDFA_def.ps

0 голосов
/ 05 июня 2019

Обратите внимание, что текущие ответы не являются полностью правильными. Вы можете определить, какой уровень PDF / A вы хотите, что приводит к различным поведениям программы. Это правильно:

gs -dPDFA -dBATCH -dNOPAUSE -sColorConversionStrategy=UseDeviceIndependentColor -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=2 -sOutputFile=output_filename.pdf input_filename.pdf

Обратите внимание на мое изменение с s dPDFACompatibilityPolicy на d PDFACompatibilityPolicy. Измените его на большее число, чтобы получить другие версии. 1 хорошо, если вам не нужен DOCINFO. Кроме того, мы используем параметр UseDeviceIndependentColor , чтобы избежать проверки проблем.

Если вы измените параметры здесь, вы, скорее всего, получите несовместимый PDF / A (даже если он указан по-другому). Вы можете проверить свой pdf / a здесь: https://www.pdf -online.com / OSA / validate.aspx

0 голосов
/ 05 сентября 2018

Если вы используете Windows и хотите явно создавать документы PDF / A-1b (PDFCreator имеет возможность вывода для PDF / A-2b, но не для PDF / A-1b), вы можете просто ввести параметры, описанные Артуром выше в настройках пользовательского интерфейса PDFCreator без параметров для имен документов. Запустите PDFCreator, выберите меню принтера, затем перейдите в настройки. Теперь выберите 'Ghostscript' в списке настроек на левой стороне. Под 'additional ghostscript settings' введите следующее:

-dPDFA|-dBATCH|-dNOPAUSE|-dUseCIEColor|-sProcessColorModel=DeviceCMYK|-sDEVICE=pdfwrite|-sPDFACompatibilityPolicy=1

Нажмите 'Save', затем распечатайте что-нибудь из MS Word или любого другого приложения, которое вы хотите, используя PDFCreator - оно будет создано в PDF / A-1b.

Привет, Fritz

...