Преобразование PDF в PDF / A?

11

Учитывая, PDF-файл случайного происхождения, как я, на Linux:

  • подтвердите, уже в формате PDF / A ?
  • если он не в формате PDF / A, преобразовать его в PDF / A с минимальной потерей точности?

Мне известно, что преобразование может привести к потере экзотических элементов документа, но давайте предположим, что возможность открывать документ вообще в относительно далеком будущем важнее, чем такие элегантные функции (которые могут быть недоступны / не читаемы при таких условиях). время в любом случае). Я предпочел бы визуально подтвердить точность преобразования, если бы я мог тривиально просматривать документы рядом, чем рискуя не открыть исходный файл.

CVn
источник

Ответы:

9

Идентификация

Я нашел этот инструмент, который, похоже, можно использовать для идентификации файлов PDF / A. Это называется DROID (цифровая запись и идентификация объекта) . Он основан на Java и может быть запущен из графического интерфейса или командной строки.

выдержка

DROID - это программный инструмент, разработанный Национальным архивом для автоматической пакетной идентификации форматов файлов. Разработанный его Департаментом цифрового сохранения в рамках его более широкой деятельности по сохранению цифрового контента, DROID предназначен для удовлетворения основных требований любого цифрового хранилища, чтобы иметь возможность идентифицировать точный формат всех хранимых цифровых объектов и связать эту идентификацию с центральным реестром. технической информации об этом формате и его зависимостях.

Учитывая, что он спонсируется Национальным архивом, я бы предположил, что это правильный инструмент для этого, учитывая предполагаемую цель формата PDF / A. Также проект с открытым исходным кодом, и код доступен на Github, а также упакован в двоичном виде с веб-сайта Национального архива .

Проверка и преобразование

Если вы ищете инструмент для проверки и преобразования, я думаю, что PDFBox может сделать это. PDFBox перечисляет проверки PDF / A прямо на первой странице своего сайта. Это другое Java-приложение 8-).

выдержка с сайта

Проверка PDF / A Проверка
PDF-файлов на соответствие стандарту PDF / A ISO.

В разделе инструментов командной строки слева от их главной страницы показано следующее использование инструмента:

$ java -jar pdfbox-app-x.y.z.jar org.apache.pdfbox.ConvertColorspace [OPTIONS] <inputfile> <outputfile>

veraPDF - еще один инструмент, способный проверять PDF / A; это часть набора инструментов Open Preservation Foundation. Это также Java-приложение.

преобразование

Для простого преобразования я нашел этот метод в посте блога под названием: Бесплатный способ преобразования существующего PDF в PDF / A , в котором используются следующие инструменты:

  • Только Ghostscript 8.64.
  • PDFBox 0.7.3
  • pdfmarks (файл для предоставления дополнительных метаданных)
  • PDFA_def.ps
  • USWebCoatedSWOP.icc

С учетом вышесказанного вы используете следующую команду:

$ gs -sDEVICE=pdfwrite -q -dNOPAUSE -dBATCH -dNOSAFER     \
-dPDFA -dUseCIEColor -sProcessColorModel=DeviceCMYK       \
-sOutputFile=Out_PDFA.pdf PDFA_def.ps pdfmarks IN_PDF.pdf

Не без бородавок. В статье обсуждается один из них, одним из которых является фиксация флагов печати на гиперссылках. Статья предоставляет приложение Java, которое вы можете использовать для исправления этих проблем:

$ java FixPrintFlag Out_PDFA.pdf New_verifiablePDFA.pdf

Это не красиво, но кажется работоспособным. Смотрите статью для более подробной информации.

Ссылки

SLM
источник
Я должен попробовать это - это выглядит очень многообещающе. Приложив немного усилий, можно даже интегрировать это в принтер CUPS-PDF; в /etc/cups/cups-pdf.conf есть настройки, которые выглядят многообещающими для этой цели. Спасибо, что нашли время! На самом деле не до тестирования, но я вернусь к этому (надеюсь, завтра).
CVn
@ MichaelKjörling - спасибо за вопрос. Я никогда раньше не слышал о формате PDF / A, и нам нужна именно эта штука на работе. Таким образом, вы помогли мне выглядеть как гений, зная об этом материале теперь 8-).
SLM
Что pdfmarks?
Андрей
1

Для идентификации файла команда fileчасто бывает полезна. Он будет искать в вашем файле магические числа, идентификаторы файлов, информацию о кодировке и т. Д., Чтобы получить любую полезную информацию, которая может.

В частном случае файлов PDF утилита pdfinfoособенно полезна. В моем случае это дистрибутив Gentoo, он поставляется с popplerбиблиотекой рендеринга PDF.

lgeorget
источник
1
pdfinfo -metaи глядя на xmpmeta/RDF/Description/conformanceкажется, говорит, является ли PDF PDF / A (этот узел A) или нет (узел не существует или имеет какое-то другое значение). Это начало!
CVn
0

Вот скрипт командной строки bash, который делает именно это:

#!/bin/bash

pdf_input=$1
ps_output=${pdf_input%.*}.ps
pdfa_output=${pdf_input%.*}_a.pdf
pdftops $input $ps_output

gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=$pdfa_output $ps_output

Сохраните его в файле с именем pdf2pdfa.sh, который находится на вашем пути, а затем назовите его так:

pdf2pdfa.sh input.pdf

Это создаст input_a.pdf.

Дарума
источник
1
(1) Пожалуйста, объясните, что это делает. (2) Что это input? Понятно pdf_input, а что есть input? (3) Вы должны всегда заключать в кавычки переменные оболочки, если у вас нет веских причин не делать этого, и вы уверены, что знаете, что делаете. Пожалуйста, не отвечайте в комментариях; отредактируйте  свой ответ, чтобы сделать его более понятным и полным.
G-Man говорит: «Восстановите Монику»