Zum Inhalt springen
Thomas Karner
Menü

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
Alle Benchmarks und Methodik ↗

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.

main.go
result, err := gopdfrab.Verify("invoice.pdf", gopdfrab.PDFA1B)
if err != nil {
    log.Fatal(err)
}
fmt.Println(result.Valid)
fmt.Println(result.Summary())
shell
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
Details zur Lizenzierung ↗

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.