2016-10-12 14 views
2

Я пытаюсь преобразовать PDF в PDF/A. На каждом проходе я получаю сообщение об ошибке «GPL Ghostscript 9.19: Annotation set to non-printing, not permitted in PDF/A, reverting to normal PDF output».Ghostscript не конвертирует PDF в PDF/A. Annotation Issue

PDF файл, созданный в прошлом месяце, был произведен с помощью HTML wkhtmltopdf. При довольно неопределенной ошибке я провел некоторое исследование вокруг аннотаций PDF. Я подтвердил, что в PDF нет аннотаций, сглаживание аннотаций (хотя их нет) не работает, я попробовал переключатель -dShowAnnots=false. Все безрезультатно. Я также пробовал его с помощью различных PDF-файлов, и я получаю одну и ту же ошибку на всех.

Команда Я использую, чтобы сделать преобразование является «gs -dPDFA=2 -dNOOUTERSAVE -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -o output.pdf /Users/work/Documents/Projects/pdf-generator-service-tests/PDFA_def.ps -dPDFACompatibilityPolicy=1 input.pdf»

Я попытался создать простую страницу PDF с домашней страницы Google, используя wkhtmltopdf https://google.com putput.pdf и снова, нет радости (это пример из PDF-файлов я пытался конвертировать, для людей, которые могут попытаться воспроизвести проблему).

+0

Таким образом, проблема была абсолютно в внешних ссылках. Когда я проверил PDF в нескольких разных битах программного обеспечения, он не указывал, что внешние ссылки были аннотациями. Я отключил их, и он проходит и преобразуется, как ожидалось. Я также заметил, что когда dPDFACompatibilityPolicy была установлена ​​в 1, она фактически создавала PDF/A, я просто просто имел туннельное представление и не замечал разницы в ошибке. Спасибо, парни! –

ответ

2

Как и KenS, трудно ничего не знать без PDF-документа, но поскольку у вас возникли проблемы с домашней страницей Google, конвертированной в PDF, я подозреваю, что это внешние ссылки, которые вызывают проблему. Ссылки - это аннотации, а в формате PDF/A внешние ссылки запрещены. Любая ссылка в HTML при преобразовании в PDF будет считаться внешней.

3

Я думал, что ошибка была довольно конкретной; PDF/A не позволяет устанавливать аннотации для непечатаемых. Вы не включили фактический пример типа файла, вызывающего у вас проблемы, поэтому я не могу комментировать наличие каких-либо аннотаций, но я заверяю вас, что невозможно получить это сообщение без аннотаций.

Поскольку вы уже установили PDFACompatibility в 1, я не могу сказать больше. Вы можете открыть отчет об ошибке и приложить туда файл или разместить ссылку на него здесь. Без этого я не могу сказать много.

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

Один пункт; Вы выполняете файл PDFA_def.ps перед установкой PDFACompatibility = 1, это, вероятно, не сработает, вы захотите переключить эти два. Вы должны установить элементы управления, прежде чем делать какие-либо входные данные, или что-то может пойти наперекосяк, попытка изменить средний поток - это не очень хорошая идея.

0

Я использовал gs (v9.21) для преобразования PDF-файла с аннотациями, установленными на непечатаемый (гиперреф), в файл, совместимый с PDF/A. Аннотации не будут присутствовать в выходном файле, но в моем случае это не было проблемой.

Команда я использовал:

gs -dPDFA=2 -dBATCH -dNOPAUSE -dPDFACompatibilityPolicy=1 -dUseCIEColor -sProcessColorModel=DeviceGray -sDEVICE=pdfwrite -sOutputFile=output_file.pdf input_file.pdf

Примечания:

  • -dPDFACompatibilityPolicy=1 вместо -sPDFACompatibilityPolicy=1. Последнее не заставляет gs избегать аннотации, в то время как первая делает.
  • Я использовал -dUseCIEColor, потому что проверка pdfa (https://www.pdf-online.com/osa/validate.aspx) не удалась с проблемой, связанной с цветовым пространством. Этот параметр устарел, но я не нашел другого способа решения этой проблемы.Для получения дополнительной информации см. Convert PS files to PDF/A via Ghostscript, color space problems