PDF in PDF / A konvertieren?

11

Wie kann ich unter Linux mit einem PDF zufälligen Ursprungs:

  • Bestätigen Sie, ob es bereits im PDF / A- Format vorliegt.
  • Wenn es nicht im PDF / A-Format vorliegt, konvertieren Sie es mit einem minimalen Verlust an Wiedergabetreue in PDF / A.

Ich bin mir bewusst, dass die Konvertierung zum Verlust exotischer Elemente des Dokuments führen kann, aber nehmen wir an, dass die Fähigkeit, das Dokument in relativ ferner Zukunft überhaupt zu öffnen, wichtiger ist als solche schicken Funktionen (die bei solchen möglicherweise nicht verfügbar / lesbar sind eine Zeit sowieso). Ich möchte die Richtigkeit der Konvertierung lieber visuell bestätigen, wenn ich die Dokumente trivial nebeneinander anzeigen kann, als das Risiko einzugehen, dass ich die Originaldatei nicht öffnen kann.

ein CVn
quelle

Antworten:

9

Identifizierung

Ich habe dieses Tool gefunden, mit dem Sie PDF / A-Dateien identifizieren können. Es heißt DROID (Digital Record and Object Identification) . Es basiert auf Java und kann über eine GUI oder die Befehlszeile ausgeführt werden.

Auszug

DROID ist ein Software-Tool, das von The National Archives entwickelt wurde, um die automatische Stapelidentifizierung von Dateiformaten durchzuführen. DROID wurde von der Abteilung für digitale Aufbewahrung im Rahmen seiner umfassenderen Aktivitäten zur digitalen Aufbewahrung entwickelt und wurde entwickelt, um die grundlegenden Anforderungen eines digitalen Repositorys zu erfüllen, um das genaue Format aller gespeicherten digitalen Objekte identifizieren und diese Identifikation mit einem zentralen Register verknüpfen zu können von technischen Informationen über dieses Format und seine Abhängigkeiten.

Da es vom Nationalarchiv gesponsert wird, würde ich annehmen, dass es das richtige Werkzeug dafür ist, angesichts des beabsichtigten Zwecks des PDF / A-Formats. Das Projekt ist auch Open Source und der Code ist auf Github verfügbar und in binärer Form auf der Website des National Archives verpackt .

Validierung & Konvertierung

Wenn Sie nach einem Tool suchen, mit dem Sie Validierung und Konvertierung durchführen können, kann PDFBox dies meiner Meinung nach . PDFBox listet die PDF / A-Validierung direkt auf der Startseite ihrer Website auf. Es ist eine andere Java-Anwendung 8-).

Auszug aus der Website

PDF / A-Validierung
Validieren Sie PDFs anhand des PDF / A-ISO-Standards.

Im Abschnitt Befehlszeilentools links auf der Hauptseite wird die folgende Verwendung für das Tool angezeigt:

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

veraPDF ist ein weiteres Tool zur Validierung von PDF / A; Es ist Teil des Referenz-Tool-Sets der Open Preservation Foundation. Es ist auch eine Java-Anwendung.

Umwandlung

Für die einfache Konvertierung habe ich diese Methode in einem Blog-Beitrag mit dem Titel " Kostenlose Möglichkeit zum Konvertieren einer vorhandenen PDF-Datei in PDF / A" gefunden , bei der die folgenden Tools verwendet werden:

  • Nur Ghostscript 8.64.
  • PDFBox 0.7.3
  • pdfmarks (Datei zur Bereitstellung zusätzlicher Metadaten)
  • PDFA_def.ps
  • USWebCoatedSWOP.icc

Mit den oben genannten Anweisungen verwenden Sie den folgenden Befehl:

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

Es ist nicht ohne Warzen. Der Artikel beschreibt einen von ihnen und korrigiert die Druckflags auf Hyperlinks, die einer von ihnen sind. Der Artikel enthält eine Java-Anwendung, mit der Sie folgende Probleme beheben können:

$ java FixPrintFlag Out_PDFA.pdf New_verifiablePDFA.pdf

Es ist nicht schön, scheint aber praktikabel zu sein. Weitere Informationen finden Sie im Artikel .

Verweise

slm
quelle
Ich muss es versuchen - es sieht furchtbar vielversprechend aus. Mit ein wenig Fummelei könnte es sogar möglich sein, dies in den CUPS-PDF-Drucker zu integrieren. In /etc/cups/cups-pdf.conf gibt es Einstellungen, die für diesen Zweck vielversprechend aussehen. Danke, dass du dir die Zeit genommen hast! Ich bin momentan nicht wirklich in der Lage, es zu testen, aber ich werde darauf zurückkommen (hoffentlich morgen).
Ein CVn
@ MichaelKjörling - danke für die Frage. Ich hatte noch nie von dem PDF / A-Format gehört und wir brauchen genau das bei der Arbeit. Du hast mir also geholfen, wie ein Genie auszusehen, weil ich jetzt über dieses Zeug Bescheid weiß 8-).
slm
Was ist pdfmarks?
Andrew
1

Zur Identifizierung von Dateien ist der Befehl filehäufig hilfreich. In Ihrer Datei wird nach magischen Zahlen, Dateikennungen, Codierungsinformationen usw. gesucht, um hilfreiche Informationen zu erhalten.

Im speziellen Fall von PDF-Dateien ist der Dienstprogramm pdfinfobesonders nützlich. In meinem Fall handelt es sich um eine Gentoo-Distribution, die mit popplereiner PDF-Rendering-Bibliothek ausgestattet ist.

lgeorget
quelle
1
pdfinfo -metaund das Betrachten xmpmeta/RDF/Description/conformancescheint zu sagen, ob das PDF PDF / A ist (dieser Knoten ist A) oder nicht (der Knoten existiert nicht oder hat einen anderen Wert). Es ist ein Anfang!
Ein Lebenslauf
0

Hier ist ein Bash-Befehlszeilenskript, das genau das tut:

#!/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

Speichern Sie es in einer Datei namens pdf2pdfa.sh, die sich in Ihrem Pfad befindet, und rufen Sie es dann folgendermaßen auf:

pdf2pdfa.sh input.pdf

Es wird input_a.pdf erstellt.

Daruma
quelle
1
(1) Bitte erläutern Sie, was dies bewirkt. (2) Was ist input? Ich verstehe pdf_input, aber was ist input? (3) Sie sollten Shell-Variablen immer zitieren, es sei denn, Sie haben einen guten Grund, dies nicht zu tun , und Sie sind sicher , dass Sie wissen, was Sie tun. Bitte antworten Sie nicht in Kommentaren; Bearbeiten Sie  Ihre Antwort, um sie klarer und vollständiger zu gestalten.
G-Man sagt 'Reinstate Monica'