Перетворення PDF у PDF / A?


11

Як я отримав PDF випадкового походження в Linux:

  • підтвердити, чи він вже є у форматі PDF / A ?
  • якщо його немає у форматі PDF / A, перетворіть його у PDF / A з мінімальною втратою вірності?

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

Відповіді:


9

Ідентифікація

Я знайшов цей інструмент, який виглядає як те, що ви можете використовувати для ідентифікації файлів PDF / A. Це називається DROID (цифровий запис та ідентифікація об'єкта) . Це на основі Java і може запускатися з графічного інтерфейсу або командного рядка.

витяг

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

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

Перевірка та конверсія

Якщо ви шукаєте інструмент для перевірки та перетворення, я вважаю, що PDFBox може це зробити. PDFBox перелічує PDF / Право на підтвердження на першій сторінці свого веб-сайту. Це ще одна програма Java 8-).

витяг з веб-сайту

PDF / A Validation Валідація
PDF-файлів відповідно до стандарту PDF / A ISO.

У розділі інструментів командного рядка зліва на їх головній сторінці показано таке використання інструменту:

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

veraPDF - ще один інструмент, здатний перевірити PDF / A; він є частиною довідкового інструментарію Фонду відкритого збереження. Це також програма Java.

Перетворення

Я просто знайшов цей метод із публікації в блозі під назвою: Безкоштовний спосіб конвертувати існуючий PDF в PDF / A , який використовує такі інструменти:

  • Ghostscript 8.64 Тільки
  • PDFBox 0.7.3
  • pdfmark (файл для подачі додаткових метаданих)
  • 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

Це не дуже, але, здається, працює. Докладніше див. У статті .

Список літератури


Мені доведеться спробувати це - це виглядає жахливо перспективно. З невеликим підказом можливо навіть інтегрувати це в принтер CUPS-PDF; є параметри в /etc/cups/cups-pdf.conf, які виглядають перспективно для цієї мети. Дякуємо, що знайшли час! Насправді не тестувати його зараз, але я повернусь до цього (сподіваюсь, завтра).
CVn

@ MichaelKjörling - дякую за запитання. Я ніколи не чув про формат PDF / A раніше, і у нас є потреба в цій точній справі на роботі. Тож ви допомогли мені виглядати генієм, коли зараз знаю про цей матеріал 8-).
slm

Що pdfmarks?
Андрій


1

Для ідентифікації файлів fileчасто допомагає команда . Він шукатиме у вашому файлі магічні номери, ідентифікатори файлів, інформацію про кодування тощо, щоб дати будь-яку корисну інформацію, яку він може.

У конкретному випадку з файлами PDF, утиліта pdfinfoє особливо корисною. У моєму випадку дистрибутив Gentoo, який постачається, має popplerбібліотеку візуалізації у форматі PDF.


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.


2
(1) Будь ласка, поясніть, що це робить. (2) Що таке input? Я бачу pdf_input, але що таке input? (3) Ви завжди повинні цитувати змінні оболонки, якщо у вас немає вагомих причин цього не робити, і ви впевнені, що знаєте, що робите. Будь ласка, не відповідайте на коментарі; відредагуйте  свою відповідь, щоб зробити її більш зрозумілою та повною.
G-Man каже: "Відновіть Моніку"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.