Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum
Langzeitarchivierung - Teil 2: PDF/A-1B mit Ghostscript (Linux)
VorbemerkungPortable Document FormatLösungsansätzeLaTeXPandocPDF-EditorenPDF-DruckerSzenarienVorbereitungInstallationCUPS-PDF-Conf bearbeitenSzenario 1: Immer PDF/A erzeugenSzenario 2: PDF konvertierenSzenario 3: Mehrere PDF konvertierenBedingungenGhostscriptAlternative: Libre Office Client (soffice)VorbereitungKonvertierungValidierungSchlussbemerkungMindmap
Der Blogpost Einstieg in die Langzeitarchvierung vermittelt mit den Good Practice die Grundlagen, warum man sich privat überhaupt um dieses Thema kümmern sollte (Teil 1).
In diesem Teil 2 geht es um eine Langzeitarchivierung mit PDF. Unter Langzeitarchivierung wird hier verstanden, wichtige Dokumente 10 Jahre und länger aufzubewahren und verfügbar zu halten.
In manchen Situationen verlangen Einrichtungen die Übersendung bzw. Vorlage von .pdf im Format Archivierung (PDF/A) oder Austausch (PDF/X). Im Home-Office möchte man Dokumente unabhängig vom Format langfristig verfügbar halten.
Die gängigen Office-Formate sind nicht zur Langzeitarchivierung geeignet, da nicht sicher gestellt ist, dass noch in Jahrzehnten, diese Formate lesbar sind und verarbeitet werden können.
Grundsätzlich gilt: Die Rohform der Datei, also z.B. das verlustfreie .wav (Musik) oder .raw (Bilder), ist daher die erste Wahl. Für Texte sollte eine Form genutzt werden, mit der reiner Text gespeichert wird, z.B. .bib, .txt oder .md. Allerdings lassen sich in diesen Textformen grundsätzlich keine weiteren Inhalte speichern.
Für die originalgetreue Darstellung von Text und sonstigen Formen wie Bilder, Grafiken und Tabellen, wird deshalb das PDF-Format genutzt: Text und sonstige Inhalte lassen sich aus PDF extrahieren.
Die Firma Adobe hat Anfang der 1990iger Jahre das Portabe Document Format (PDF) entwickelt, von dem es zwischenzeitlich abgeleitete Standardformen gibt, wie eben PDF/A bzw. PDF/X. Dabei handelt es sich um ISO-Normen, die eine normgerechte Nutzung sicherstellen wollen. Hier: für die Archivierung und den Austausch (Druckereien, Printmedien, etc.).
Heute lassen sich alle Dokumente problemlos in das PDF-Format verwandeln. Das bedeutet jedoch nicht, das die Einhaltung dieser ISO-Normen damit gewährleistet wird.
Es sind weitere Qualitätsmerkmale erforderlich, die nur mit zusätzlicher Software erfüllt werden. Auf dem Markt finden sich Closed-Source wie Adobe Acrobat (macOS, WINDOWS) und Open-Source wie Ghostcript, (Linux, macOS, WINDOWS).
Und auch dann wird empfohlen, die erstellten .pdf zu prüfen (Validierung)
Die folgende Übersicht informiert über die ISO-konformen PDF/A-Formate:
Quelle: Metzger, Fabienne: Der PDF/A-Standard und seine verschiedenen Versionen, S. 3 [Stand: 2021-06-24], CC BY SA https://www.langzeitarchivierung.de/Webs/nestor/SharedDocs/Downloads/DE/praesentationen/2021nestor-virtuell_PDFA_Metzger.pdf?__blob=publicationFile&v=1
Es gibt für unterschiedliche Situationen verschiedene Ansätze, um ISO-konforme PDF für die Archivierung und den Austausch zu erzeugen.
Wer seine Texte mit LaTeX erstellt, hat die Möglichkeit PDF/A und PDF/X mit dem Paket pdfx zu erstellen. Eine Übersicht hilft:
Niemel̈a, Jarmo: How to create a PDF/A file with LATEX [Stand: 2022-08-18], Online-Ressource, URL.: https://webpages.tuni.fi/latex/pdfa-guide.pdf.
Hinweise auch unter http
Nur über den Umweg mit LaTeX-Kommandos lassen sich PDF/A und PDF/X erzeugen.
Für die drei gängigen Betriebssysteme gibt es PDF-Editoren, die auch die Möglichkeit bieten, ISO-konforme PDF zu generieren.
Unter Linux gibt es derzeit nur die Möglichkeit mit Ghostscript (gs) solche ISO-konformen Dokumente zu erzeugen. Für macOS und Windows gibt es eine Vielzahl von kostenpflichtigen Druckprogrammen, die zumindest PDF/A erzeugen können.
Hier wird anhand von zwei Szenarien dargestellt, wie eine Lösung unter Linux (debian-basiert) aussehen kann.
Um die Einrichtung vornehmen zu können, sind Programme zu installieren:
xxxxxxxxxx
test@geraet: $ sudo apt install ghostscript libcanberra-gtk-module printer-driver-cups-pdf
Hierdurch werden eingerichtet: Ghostscript (gs), Bibliothek für veraPDF, CUPS-PDF-Drucker.
Das Programm veraPDF wird für die Offline-Validierung der erzeugten PDF benötigt und kann herunter geladen werden unter http
Die unter http
xxxxxxxxxx
test@geraet: $ sudo nano /etc/cups/cups-pdf.conf
Allerdings reicht die Ergänzung mit -dPDFA nicht aus, um mit gs ISO-konforme PDF/A-1B zu erstellen. Mit den folgenden Einstellungen werden PDF/A-1B erzeugt, die auch bei der Überprüfung keine Fehler aufweisen:
xxxxxxxxxx
GSCall %s -q -dPDFA=1 -dCompatibilityLevel=%s -dUseCIEColor -sProcessColorModel=DeviceRGB -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c -f %s
Ab gs V 9 ist -dUseCIEColor eigentlich nicht mehr zu benutzen. In dieser Form erscheint bei gs V 10.0.0 (2022-09-21) keine Fehlermeldung. Bei der Validierung durch veraPDF sind diese PDF ISO-konform.
Tipp
Die zusätzliche Änderung auf Label 1 ist bei dauerhafter Nutzung von CUPS-PDF sinnvoll.
Wer sich den Aufwand einer nachträglichen Konvertierung ersparen möchte, sollte den PDF-Drucker CUPS-PDF entsprechend einrichten. Dieser Treiber verwendet Ghostscript um PDF zu erstellen. Wird der Printer-Driver-CUPS-PDF so als Standard für PDF genutzt, werden bei jedem Druckauftrag PDF/A-1B erzeugt.
Wer bereits erzeugte PDF nach PDF/A-1B umwandeln und darüber hinaus auch für das Internet aufbereiten will, sollte diese Lösung nutzen:
xxxxxxxxxx
test@geraet: $ gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dSAFER -sColorConversionStrategy=UseDeviceIndependentColor -dEmbedAllFonts=true -dPrinted=true -dPDFA -sProcessColorModel=DeviceRGB -dPDFACompatibilityPolicy=1 -dDetectDuplicateImages -r150 -dFastWebView=true -sOutputFile=output.pdf input.pdf
Quelle: http
In- und Output sind entsprechend den eigenen Verhältnissen anzupassen.
Hierdurch werden alle PDF zu PDF/A-1B konvertiert. In der Validierung durch veraPDF wird die Konformität bestätigt.
Mit Ghostscript lassen sich auch mehrere Dateien in ein separates Verzeichnis speichern: hier PDF-A.
Das Verzeichnis PDF-A muss vorher separat eingerichtet werden, da ansonsten eine Fehlermeldung erscheint. Im Beispiel handelt es sich um ein Unterverzeichnis des Ordners mit den zu konvertierenden PDF:
├── PDF-A │ ├── test-1.pdf │ ├── test-2.pdf │ └── test-3.pdf ├── test-1.pdf ├── test-2.pdf └── test-3.pdf
Der Erfolg der Konvertierung ist abhängig von der Qualität der normalen PDF. Je besser die Qualität, desto wahrscheinlicher ist die positive Validierung.
Dazu wird in das Verzeichnis mit den zu konvertierenden PDF gewechselt und in einem Terminal folgendes ausgeführt:
xxxxxxxxxx
test@geraet: $ for file in *.pdf; do gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dSAFER -sColorConversionStrategy=UseDeviceIndependentColor -dEmbedAllFonts=true -dPrinted=true -dPDFA -sProcessColorModel=DeviceRGB -dPDFACompatibilityPolicy=1 -dDetectDuplicateImages -r150 -dFastWebView=true -sOutputFile="PDF-A/$file" $file; done
Bezug: http
Und als pdf2pdfa.sh (bash):
xxxxxxxxxx
#!/bin/bash
for file in *.pdf; do
gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dSAFER -sColorConversionStrategy=UseDeviceIndependentColor -dEmbedAllFonts=true -dPrinted=true -dPDFA -sProcessColorModel=DeviceRGB -dPDFACompatibilityPolicy=1 -dDetectDuplicateImages -r150 -dFastWebView=true -sOutputFile="PDF-A/$file" $file;
done
Um eine Meldung Warning: failed to launch javaldx - java may not function correctly zu vermeiden, ist eine zusätzliche Installation erforderlich:
xxxxxxxxxx
test@geraet: $ sudo apt install default-jre libreoffice-java-common
Hinweis: http
Die Umwandlung erfolgt mit folgender Ausführung:
xxxxxxxxxx
test@geraet: $ soffice --headless --convert-to pdf:"writer_pdf_Export:SelectPdfVersion=1" --outdir ~/PDF-A *.pdf
Quelle: http
Das Ausgabeverzeichnis ~/PDF-A ist den eigenen Verhältnissen anzupassen. Soll eine PDF/A-2B erzeugt werden, so ist die 1 durch 2 zu ersetzen.
Es wird empfohlen, die erstellten PDF/A auf ISO-Konformität zu prüfen. Dies kann z.B. mit veraPDF als Anwendung auf dem eigenen Rechner erfolgen oder Online über https
Das folgende Bild veranschaulicht das Prüfergebnis der Datei test-2.pdf.
Die Einstellungen, um mit Ghostscript ISO-konforme PDF/A-1B zu erzeugen, sind zügig erledigt. Schon steht ein brauchbares Ergebnis für die Praxis zur Verfügung, das auch einer Validierung standhält.
Die Nutzung des CUPS-PDF-Drucker verläuft bei geänderter Einstellung problemlos. Vielleicht dauert die Erstellung der PDF einen Augenblick länger. Aber das ist kaum spürbar.
Der Umstieg auf jedes PDF ist PDF/A-1B lohnt sich auch für den privaten Anwender: Man erspart sich die nachträgliche Konvertierung, Wird PDF/A-1B nicht benötigt, lässt sich ein normales .pdf mit einem anderen Druckertreiber erzeugen.
Wolfgang Kirk
Veröffentlicht: 2023-07-07 aktualisiert: 2024-02-05, 18:30 Uhr