Technical

Wie PDF-Bearbeitung im Browser funktioniert – und warum Datenschutz zählt

So verarbeitet LuraPDF PDFs komplett im Browser – mit pdf-lib, pdfjs-dist, Tesseract.js und WebAssembly. Ihre Dateien werden nie hochgeladen.

LuraPDF Team
LuraPDF Team

Redaktionelles & technisches Team · 6. Mai 2026 · 8 min Lesezeit

Jedes Mal, wenn Sie ein Dokument in ein cloudbasiertes PDF-Tool hochladen, liegt dieses Dokument auf Servern, die Sie nicht kontrollieren, wird von Software verarbeitet, die Sie nicht einsehen können, und wird von einem Unternehmen mit eigener Datenspeicherungs- und Sicherheitsrichtlinie gespeichert. Für kurze Zeit hält die Infrastruktur eines Dritten Ihre Verträge, Steuererklärungen, Krankenakten oder vertraulichen Geschäftsdokumente.

LuraPDF funktioniert anders. Alles geschieht in Ihrem Browser-Tab, auf Ihrer Hardware, mit dem Speichermanagement Ihres Betriebssystems. Dieser Artikel erklärt die technische Architektur, die dies möglich macht, und die dabei anfallenden technischen Kompromisse.

Der Browser als Dokumentenverarbeitungsplattform

Moderne Browser sind längst nicht mehr nur HTML-Renderer. Sie sind vollständige Anwendungsausführungsumgebungen mit:

  • JavaScript-Engine (V8 in Chrome, SpiderMonkey in Firefox): führt Code mit nahezu nativer Geschwindigkeit aus
  • WebAssembly (WASM): führt kompilierten C/C++-Code mit nahezu nativer Geschwindigkeit in einer abgeschotteten Umgebung aus
  • Canvas API: ermöglicht pixelgenaue Bildmanipulation
  • File System Access API: erlaubt das Lesen lokaler Dateien ohne Upload
  • Web Workers: führt Berechnungen in Hintergrund-Threads aus, ohne die UI einzufrieren
  • ArrayBuffer / Blob: verwaltet rohe Binärdaten (wie PDF-Bytes) im Arbeitsspeicher

Diese Fähigkeiten zusammen ermöglichen eine vollständig ausgestattete Dokumentenverarbeitungspipeline, die vor fünf Jahren noch einen Backend-Server erfordert hätte.

Die drei Kernbibliotheken

LuraPDF basiert auf drei grundlegenden Open-Source-Bibliotheken:

pdf-lib

pdf-lib ist eine TypeScript-Bibliothek zum Erstellen und Bearbeiten von PDF-Dokumenten in jeder JavaScript-Umgebung. Sie implementiert einen wesentlichen Teil der PDF-Spezifikation (ISO 32000), darunter:

  • Erstellung, Bearbeitung und Löschung von Seiten
  • Schrifteinbettung (sowohl Standard-14-Schriften als auch benutzerdefinierte TTF/OTF-Schriften)
  • Bildeinbettung (JPEG, PNG)
  • Platzierung von Textanmerkungen
  • Erstellung und Bearbeitung von Formularfeldern
  • Dokumentmetadaten (Titel, Autor, Erstellungsdatum usw.)
  • Dokumentkennwortschutz
  • Verwaltung der Querverweistabelle

Wenn LuraPDF PDFs zusammenführt, verwendet es pdf-lib, um den Seitenbaum jedes Dokuments zu lesen, gemeinsame Ressourcen zu normalisieren und ein neues PDF zusammenzustellen. Beim Komprimieren werden Bildobjekte mit niedrigeren Qualitätsfaktoren neu kodiert. Beim Kennwortschutz einer Datei wird ein Schlüssel aus Ihrem Kennwort abgeleitet und ein verschlüsseltes Dokument mit dem PDF Standard Security Handler erstellt, den jeder Reader versteht.

pdf-lib arbeitet ausschließlich mit ArrayBuffer-Objekten — rohen Binärdaten im Browser-Arbeitsspeicher. Es werden keine Netzwerkaufrufe durchgeführt.

pdfjs-dist

PDF.js ist Mozillas PDF-Rendering-Engine, die als pdfjs-dist auf npm verteilt wird. Sie ist die Engine, die Firefoxs integrierten PDF-Viewer antreibt und an Millionen von realen PDFs getestet wurde.

LuraPDF verwendet pdfjs-dist für:

  • Seitenrendering: Konvertierung von PDF-Seiten in Canvas ImageData zur Anzeige
  • Textextraktion: Lesen der Textstrom-Inhalte von PDF-Seiten
  • Seitenmetadaten: Ermittlung von Seitenabmessungen, Rotationswerten und Inhaltstyp

Wenn Sie Ihr PDF in der LuraPDF-Oberfläche gerendert sehen — die visuelle Vorschau der Seiten — rendert pdfjs-dist jede Seite auf ein HTML-Canvas-Element.

Tesseract.js

Tesseract.js ist die WebAssembly-kompilierte Version von Tesseract OCR. Tesseract ist eine quelloffene OCR-Engine, die ursprünglich von HP Labs (1985) entwickelt und derzeit von Google gepflegt wird. Sie verwendet ein LSTM-Neuronales-Netzwerk-Modell (Long Short-Term Memory) zur Zeichenerkennung.

Die Ausführung von Tesseract über WebAssembly im Browser bedeutet:

  • Das 22 MB große WASM-Binary wird einmalig geladen und vom Browser gecacht
  • Die OCR-Verarbeitung läuft über WebAssembly auf der CPU, nicht auf der GPU
  • Die Verarbeitung ist langsamer als Cloud-OCR (das GPU-Cluster nutzt), liefert aber dieselbe Qualität
  • Ihr Dokumentinhalt verlässt Ihr Gerät nie

Für einen 20-seitigen Scan: Browser-OCR dauert ungefähr 30–120 Sekunden. Ein Cloud-Dienst benötigt möglicherweise 2–5 Sekunden. Der Kompromiss lautet Datenschutz gegen Geschwindigkeit.

Die Architektur: Von der Datei zur Ausgabe

Folgendes geschieht, wenn Sie beispielsweise ein PDF in LuraPDF komprimieren:

  1. Dateiauswahl: Sie ziehen ein PDF auf die Dropzone. Die File API des Browsers liest die Datei in einen ArrayBuffer — rohe Bytes im Browser-Arbeitsspeicher. Es findet kein Upload statt.

  2. Validierung: Eine schnelle Prüfung, ob die Magic Bytes %PDF am Anfang des ArrayBuffer erscheinen.

  3. Laden: PDFDocument.load() von pdf-lib parst die Querverweistabelle, liest den Objektbaum und erstellt eine In-Memory-Darstellung des Dokuments.

  4. Bildenumeration: Die Bibliothek durchläuft die Seiteninhaltsströme, um Bild-XObjects (eingebettete Bilder) zu finden. Breite, Höhe, Komprimierungstyp und Byte-Daten jedes Bildes werden extrahiert.

  5. Neukodierung: Für jedes Bild werden die rohen Pixeldaten auf ein HTML-Canvas-Element gezeichnet und anschließend mit einem niedrigeren JPEG-Qualitätsfaktor über canvas.toBlob('image/jpeg', quality) neu exportiert. Das ursprüngliche Bildobjekt wird durch die kleinere kodierte Version ersetzt.

  6. Dokumentserialisierung: Die save()-Methode von pdf-lib serialisiert das geänderte Dokument zurück in Bytes. Objektströme werden DEFLATE-komprimiert.

  7. Download: Die Bytes werden in ein Blob-Objekt verpackt, eine temporäre Objekt-URL wird erstellt (URL.createObjectURL(blob)), und ein programmgesteuerter <a>-Klick löst den Download-Mechanismus des Browsers aus.

Gesamte an externe Server übertragene Daten: null Bytes.

Web Workers: Die UI reaktionsfähig halten

PDF-Verarbeitung ist CPU-intensiv. Die Ausführung auf dem JavaScript-Haupt-Thread würde den Browser-Tab einfrieren — Sie könnten während der Dateiverarbeitung weder scrollen noch klicken oder Fortschrittsaktualisierungen sehen.

LuraPDF führt alle aufwendigen Berechnungen (OCR, Parsing großer PDFs, Bildneukodierung) in Web Workers aus — separate JavaScript-Threads, die im Hintergrund laufen. Der Haupt-Thread verwaltet die UI, zeigt Fortschrittsbalken an und kommuniziert mit dem Worker über Message-Passing (postMessage / onmessage).

Während OCR läuft, wird nach der Verarbeitung jeder Seite ein Fortschrittsereignis ausgelöst. Der Worker sendet { page: 5, total: 20, confidence: 94 } an den Haupt-Thread, der den Fortschrittsbalken aktualisiert. Ihre UI bleibt während der gesamten Zeit interaktiv.

Speicherverwaltung

Der Browser-Arbeitsspeicher ist begrenzt. Ein in den Arbeitsspeicher geladenes, verarbeitetes und gespeichertes 200-MB-PDF kann 400–600 MB RAM erfordern (ursprüngliche Bytes + zwischenzeitliche Canvas-Daten + Ausgabe-Bytes). Auf Systemen mit begrenztem RAM kann dies Speicherdruck auslösen.

Verwendete Strategien:

  • Streaming-Seitenverarbeitung: Bei mehrseitigen Operationen werden Seiten verarbeitet und die zwischenzeitlichen Canvas-Elemente nach der Nutzung verworfen
  • URL.revokeObjectURL(): Temporäre Blob-URLs werden nach dem Download widerrufen, um GC zu ermöglichen
  • Worker-Beendigung: Web Workers werden nach Abschluss ihrer Aufgabe beendet, um den verwendeten Arbeitsspeicher freizugeben

Bei sehr großen Dateien (>100 MB) verarbeiten moderne Browser dies auf Systemen mit 8+ GB RAM problemlos. Ältere oder speicherbeschränkte Systeme können mit 100+ MB großen Quelldateien Schwierigkeiten haben.

Die Datenschutzarchitektur

Das Sicherheitsmodell wird durch die Same-Origin-Policy und die Isolationsarchitektur des Browsers durchgesetzt:

  • Keine HTTP-Anfragen: Keine externen API-Aufrufe, keine Telemetrie, keine Analyse-Aufrufe während der Dokumentverarbeitung
  • Abgeschottete Ausführung: Web Workers können keine Netzwerkaufrufe an externe Origins durchführen
  • Kein persistenter Speicher: Verarbeitete Dateien werden nicht in den Browser-Speicher geschrieben (localStorage, IndexedDB oder File System Access)
  • Tab-begrenzter Arbeitsspeicher: Wenn Sie den Tab schließen, werden alle damit verbundenen ArrayBuffers und Blob-Objekte vom Garbage Collector eingesammelt

Diese Architektur ist überprüfbar: Öffnen Sie den Network-Tab in den DevTools, während Sie eine Datei verarbeiten. Sie werden während des Verarbeitungsvorgangs null Anfragen sehen.

Open-Source-Bibliotheken: Einsehbar, keine Black Box

Alle drei Kernbibliotheken — pdf-lib, pdfjs-dist und Tesseract.js — sind Open Source mit öffentlichen Repositories auf GitHub. Die Implementierungen sind für jeden einsehbar. Der PDF-Verarbeitungscode, der in LuraPDF läuft, ist keine proprietäre Black Box; es ist öffentlicher Code mit echten Nutzern, Issues und Beiträgen.

Das ist entscheidend für das Vertrauen. Wenn ein Cloud-Dienst sagt „wir verarbeiten und löschen Ihre Dateien", nehmen Sie sein Wort dafür. Wenn LuraPDF Open-Source-Bibliotheken in einer Browser-Sandbox ohne Netzwerkaufrufe verwendet, können Sie die Aussage überprüfen, indem Sie den Network-Tab beobachten.

Kompromisse gegenüber Cloud-Verarbeitung

Das browserbasierte Modell hat echte Kompromisse, die es wert sind, ehrlich benannt zu werden:

Geschwindigkeit: Cloud-Dienste verfügen über GPU-Cluster und dedizierte Infrastruktur. Browser-OCR bei einem umfangreichen Dokument dauert 2–10-mal länger als ein Cloud-Äquivalent. Komprimierung ist schnell, weil sie die Canvas API direkt verwendet.

Dateigrößenbeschränkungen: Browser-Arbeitsspeicher ist die Einschränkung. Sehr große Dateien (>300 MB) können auf manchen Systemen an Speichergrenzen stoßen. Cloud-Dienste haben keine solche Einschränkung.

Rechenleistung: WASM läuft mit 40–80 % der nativen C++-Geschwindigkeit. Cloud-Dienste führen optimierten nativen Code aus. Bei den meisten Dokumenten ist dieser Unterschied nicht wahrnehmbar; bei OCR-Aufträgen mit 100+ Seiten ist er spürbar.

Funktionen: Einige erweiterte PDF-Funktionen (PDF/X-Konformitätsprüfung, professionelles Farbmanagement, CMYK-Workflows) erfordern spezialisierte serverseitige Tools. Die browserbasierte Verarbeitung deckt 95 % der Anwendungsfälle ab.

Für die alltägliche Dokumentenverarbeitung — Komprimieren, Zusammenführen, Signieren, Konvertieren, Schwärzen — ist das browserbasierte Modell schnell genug, datenschutzkonform by Design und erfordert weder Konto noch Abonnement.

Häufig gestellte Fragen

Erfasst LuraPDF Telemetrie oder Nutzungsdaten? LuraPDF verwendet Google Analytics für aggregierte Seitenaufrufstatistiken. Dokumentverarbeitungsvorgänge erzeugen keine Analytics-Ereignisse. Der Inhalt Ihrer Dateien wird niemals übertragen.

Kann ich überprüfen, dass kein Upload stattfindet? Ja. Öffnen Sie die Entwicklertools (F12), klicken Sie auf den Network-Tab und filtern Sie nach „XHR" oder „Fetch". Verarbeiten Sie eine Datei. Beobachten Sie, dass während der Verarbeitung keine dokumentbezogenen Netzwerkanfragen auftreten.

Warum dauert OCR im Vergleich zu anderen Diensten so lange? Browserbasiertes Tesseract.js läuft über WebAssembly auf der CPU. Cloud-OCR-Dienste laufen auf GPU-Clustern, die Zeichen um Größenordnungen schneller verarbeiten. Der Kompromiss besteht darin, dass Ihr Dokument Ihren Browser nie verlässt.

Was passiert, wenn ich den Tab während der Verarbeitung schließe? Die Verarbeitung stoppt sofort. Der Arbeitsspeicher des Browser-Tabs wird vom Garbage Collector eingesammelt. Ihre Originaldatei auf der Festplatte bleibt unverändert.

Ist der Code Open Source? Die Kernverarbeitungsbibliotheken (pdf-lib, pdfjs-dist, Tesseract.js) sind Open Source. Der Interface-Code von LuraPDF ist derzeit nicht Open Source, aber die Verarbeitungspipeline verwendet ausschließlich Open-Source-Komponenten.

Der Wechsel zur browserbasierten Dokumentenverarbeitung ist kein Gimmick. Es ist eine echte architektonische Entscheidung mit messbaren Datenschutz- und Vertrauensvorteilen — auf Kosten der Geschwindigkeit bei rechenintensiven Vorgängen. Für Dokumente, die Sie lieber nicht auf dem Server eines Dritten sehen würden, ist es der richtige Kompromiss.

Über die Autorin

LuraPDF Team
LuraPDF Team

Redaktionelles & technisches Team · 6. Mai 2026 · 8 min Lesezeit

Das LuraPDF-Team besteht aus Experten für Dokumentenverarbeitung, Softwareentwicklern und technischen Redakteuren, die sich dafür einsetzen, PDF-Bearbeitung kostenlos, privat und zugänglich zu machen.