Fallstudie · Open Source
gopdfrab: PDF/A-Konformität für Go
Eine schlanke, schnelle Bibliothek zur Prüfung und Umwandlung von PDF-Dokumenten nach PDF/A-1b – als Go-Paket, Kommandozeilenwerkzeug und WebAssembly-Build.
204/204
Isartor-Testsuite bestanden
569/569
veraPDF-Korpus bestanden
159
Prüfungen in 11 Gruppen
0,27 s
für den gesamten Korpus mit 773 Dateien
Das Problem
PDF/A ist der Standard für die Langzeitarchivierung von Dokumenten – etwa in Verwaltung, Notariat, Justiz und Buchhaltung. Wer Dokumente automatisiert prüfen oder umwandeln will, landet meist bei Java-Werkzeugen.
Diese benötigen eine Java-Laufzeitumgebung, starten langsam und lassen sich nur umständlich in Go-Services, Container oder den Browser integrieren.
Die Lösung
gopdfrab ist in reinem Go geschrieben und hat keine Laufzeitabhängigkeiten. Ein einzelnes statisches Binary enthält alles, inklusive Schriften und Farbräumen für die Konvertierung.
Die Bibliothek prüft die strukturelle Integrität nach dem Arlington-Modell, validiert gegen PDF/A-1b und konvertiert Dokumente – mit einem Rasterisierungs-Fallback für Seiten, die sich nicht direkt reparieren lassen. Auch verschlüsselte PDFs (RC4, AES-128, AES-256) werden unterstützt.
Schneller als JVM-Validatoren
Ein statisches Go-Binary im Vergleich mit zwei JVM-Validatoren, auf demselben Korpus mit 773 Dateien. Die JVM-Werkzeuge benötigen zusätzlich eine Java-Laufzeitumgebung mit 40–200 MB.
Durchsatz (Batch)
Dateien/s · höher ist besser
- gopdfrab
- 2.939
- PDFBox Preflight
- 155
- veraPDF
- 130
Kaltstart pro Datei
ms · niedriger ist besser
- gopdfrab
- 9,5
- PDFBox Preflight
- 295
- veraPDF
- 991
Spitzen-Speicherbedarf
MB · niedriger ist besser
- gopdfrab
- 80
- PDFBox Preflight
- 945
- veraPDF
- 728
Einsatzmöglichkeiten
Go-Bibliothek
Direkt in Services und Batch-Jobs einbinden – mit typisierten Fehlern und stabilem JSON-Format.
CLI
gopdfrab verify und convert, mit Exit-Codes für Skripte und CI-Pipelines.
WebAssembly
Prüfung und Konvertierung direkt im Browser – kein Dokument verlässt das Gerät.
So einfach geht's
Getestet gegen die vollständigen Isartor- und veraPDF-Konformitätssuiten. Die API ist seit Version 1.0 stabil.
result, err := gopdfrab.Verify("invoice.pdf", gopdfrab.PDFA1B)
if err != nil {
log.Fatal(err)
}
fmt.Println(result.Valid)
fmt.Println(result.Summary()) go install github.com/voidrab/gopdfrab/cmd/gopdfrab@latest
gopdfrab verify docs/ # verify every PDF in a directory
gopdfrab verify --json report.pdf # machine-readable output
gopdfrab convert in.pdf out.pdf # rewrite towards PDF/A-1b PDF/A-1b ist vollständig umgesetzt. Als Nächstes folgen PDF/A-2, -3 und -4.
Direkt im Browser ausprobieren
Validator und Konverter laufen als WebAssembly lokal auf Ihrem Gerät – Ihre Dateien verlassen es nie.
Lizenzierung
Dual lizenziert: Open Source oder kommerziell
Wählen Sie die Lizenz, die zu Ihrem Projekt passt.
AGPL 3.0
Frei und quelloffen
- Kostenlose Lizenz
- Offenlegung des gesamten Quellcodes erforderlich
- Kein Support
Kommerzielle Lizenz
Für Closed-Source- und kommerziellen Einsatz
- Kostenpflichtige Lizenz
- Keine Offenlegung des Quellcodes erforderlich
- Support verfügbar
gopdfrab in Ihrem Produkt einsetzen?
Ich stelle kommerzielle Lizenzen aus und unterstütze Sie bei Integration, Anpassung und Betrieb – oder bei der Analyse problematischer Dokumentbestände.