Own Product
PDFThor — Clientseitiger PDF-Editor
PDFThor ist ein vollständiger PDF-Editor, der direkt im Browser läuft. Die PDF-Datei bleibt dabei auf dem Rechner des Nutzers und wird nicht auf einen externen Server hochgeladen. Funktionen wie Signieren, Verschlüsseln, Schwärzen oder das Ausfüllen von Formularen laufen komplett lokal im Browser. PDFThor lässt sich als Web Component in React, Angular oder auch ganz klassisch in HTML einbinden. Das gleiche Prinzip gilt für KI-Funktionen: Der Kunde entscheidet selbst, welches Modell zum Einsatz kommt, wo es läuft und ob Dokumentinhalte überhaupt an ein Modell weitergegeben werden.

Die Herausforderung
Verträge, Personalakten, Patientendaten oder Behördenpost enthalten oft Informationen, die man nicht einfach an einen externen Dienst schicken möchte. Bisher bleiben dafür im Grunde zwei Möglichkeiten: Entweder läuft die PDF-Bearbeitung über einen gehosteten Anbieter. Dann stellen sich sofort Fragen zu Auftragsverarbeitung, Speicherort und Datenschutz. Bei besonders sensiblen Daten oder Berufsgeheimnissen kann das schnell zum Ausschlusskriterium werden. Oder man entwickelt den PDF-Editor selbst. Das gibt volle Kontrolle, kostet aber viel Zeit und bindet dauerhaft eigene Entwicklungsressourcen. PDFThor setzt dazwischen an: Der Editor läuft direkt im Browser des Nutzers und wird in die bestehende Anwendung integriert. Das Dokument muss dafür keinen zusätzlichen Dienst passieren.

Der Ansatz
PDFThor ist in zwei Pakete aufgeteilt. @pdfthor/core enthält die eigentliche PDF-Logik und arbeitet vollständig unabhängig vom Browser: Jede Operation nimmt Bytes entgegen und gibt wieder Bytes zurück. @pdfthor/ui baut darauf die Benutzeroberfläche als Web Components auf und lässt sich dadurch genauso in React oder Angular wie in eine einfache HTML-Anwendung integrieren. Für die Darstellung nutzt PDFThor pdf.js, für Änderungen am Dokument pdf-lib. Auch Signaturen, Verschlüsselung und Schwärzungen werden direkt im Browser verarbeitet. PKCS#12-Zertifikate können eingelesen, PAdES-B-B- und PAdES-B-T-Signaturen inklusive RFC-3161-Zeitstempel erzeugt und PDFs mit AES-256 verschlüsselt werden. Berechtigungen lassen sich dabei einzeln festlegen. Bei einer Schwärzung wird der eigentliche Content-Stream des PDFs neu geschrieben, der geschwärzte Inhalt wird also nicht nur optisch verdeckt. @pdfthor/ui bringt bereits den vollständigen Editor mit: Menü- und Werkzeugleisten, Seitenvorschau sowie den Ablauf zum Teilen eines Dokuments. Wer PDFThor integriert, muss diese Oberfläche nicht selbst zusammensetzen. Die PDF-Datei selbst bleibt dabei immer auf dem Rechner des Nutzers. Nach aussen können nur Daten gehen, die die einbettende Anwendung ausdrücklich freigibt: etwa ein exportierter DocumentState mit Formularwerten, Textfeldern und Notizen oder Dokumenttext für eine KI-Funktion. Das integrierte KI-Panel nutzt derzeit Gemini. Die Anfrage wird mit dem API-Schlüssel des Nutzers gestellt, sodass der Betreiber der Anwendung selbst kontrolliert, welcher KI-Dienst verwendet wird.
Die PDF-Datei bleibt beim Nutzer und wird nicht an einen externen Dienst übertragen.
Ergebnisse & Wirkung
Der Core deckt die wichtigsten PDF-Funktionen bereits vollständig ab: Signieren, Verschlüsseln, Schwärzen und Formulare inklusive XFDF-Import und -Export. Dazu kommen Seitenoperationen wie Teilen, Zusammenführen, Einfügen, Löschen, Drehen, Umsortieren und Duplizieren. Auch typische Bearbeitungsfunktionen sind enthalten, darunter Wasserzeichen, Kopf- und Fusszeilen, Lesezeichen, Suche, Textmarkierungen, Notizen, Stempel, Freihandzeichnungen, Formen und Bilder. Metadaten lassen sich ebenfalls aus einem Dokument entfernen. Beide Pakete sind mit Unit-Tests abgedeckt. Die End-to-End-Tests laufen zusätzlich in Chromium, Firefox und WebKit. Für die Demo gibt es einen achtseitigen Beispielvertrag mit Formular- und Signaturfeldern. Auch die Screenshots auf dieser Seite werden nicht von Hand erstellt, sondern automatisch mit Playwright gegen genau dieses Dokument erzeugt. So zeigen sie immer den aktuellen Stand des Editors. PDFThor befindet sich derzeit noch in Entwicklung und wird noch nicht produktiv von Kunden eingesetzt.

Meine Rolle
Alleinentwickler und Architekt. Verantwortlich für die Aufteilung in zwei Pakete und die Regel, die den Core frei von Browser-APIs hält, alle PDF-Operationen im Core, den Krypto-Pfad für Signaturen und Verschlüsselung, die Web-Component-Schicht mit ihrem Controller-Muster, die Demo-Anwendung, das Unit- und End-to-End-Test-Setup sowie die Screenshot-Pipeline hinter den Bildern auf dieser Seite.





Ähnliche Herausforderung?
Erzähl mir von deiner Herausforderung. Ich sage dir, wie ich sie angehen würde — und eine realistische Timeline.