OCR-Verarbeitung im eigenen Netz

Scans. Sortiert. Durchsuchbar.

Scanworker ist lokale OCR-Software für Duplex-Scans, verbindet Vorder- und Rückseitenscans zu einem Dokument, richtet Seiten aus und liefert früh ein durchsuchbares PDF. Eine langsamere lokale VLM-Analyse läuft unabhängig im Hintergrund.

Unterstützung für Scanworker

Warum es Scanworker gibt

Ich nutze einen Brother MFC-J6710DW. Sein automatischer Dokumenteneinzug scannt nur einseitig: Für einen Papierstapel erfasse ich deshalb zuerst alle Vorderseiten und nach dem Wenden alle Rückseiten. Brother bietet für genau dieses Modell keine Funktion an, die diese beiden einseitigen Durchläufe nach diesem Verfahren automatisch zu einem korrekt sortierten, doppelseitigen Dokument verbindet. Um diese Lücke zu schließen, habe ich Scanworker entwickelt. Mehr zu mir und weiteren Projekten steht auf ralfhartmann.dev.

Aus einem konkreten Bedarf entstandenScanworker prüft die beiden Scanläufe, kehrt die Reihenfolge der Rückseiten um, verschachtelt Vorder- und Rückseiten und ergänzt anschließend die Texterkennung. Was als Lösung für meinen eigenen Scanner begann, funktioniert dadurch auch mit anderen Geräten, die nur einen einseitigen ADF besitzen.

Beidseitig scannen mit einem einseitigen ADF

Der Papierstapel wird zweimal durch den Scanner geführt. Nach dem ersten Durchlauf wird der komplette Stapel unverändert aus dem Ausgabefach genommen, flach in seiner Ebene um 180 Grad gedreht und erneut eingelegt. Dabei wird der Stapel nicht umgekippt, und einzelne Blätter werden nicht gewendet. Anschließend werden beide PDF-Dateien von Scanworker zum richtigen doppelseitigen Dokument geordnet.

  1. In der Seitenansicht wird ein Papierstapel von rechts in den oberen Eingabeschacht des ADF eingelegt.
    Einlegen der VorderseitenDer ausgerichtete Dokumentstapel wird in den einseitigen ADF eingelegt.
  2. In der Seitenansicht ragt der zuerst gescannte Papierstapel zur Hälfte aus der inneren Ausgabe; ein horizontaler Pfeil zeigt die Entnahme.
    Entnahme des StapelsNach dem ersten Scanlauf wird der gesamte Stapel aus dem Ausgabefach genommen. Seine Reihenfolge bleibt dabei unverändert.
  3. Oben ist der Papierstapel vor der Drehung mit einem orangefarbenen Punkt unten rechts dargestellt. Darunter zeigt ein 180-Grad-Pfeil zum Stapel nach der Drehung, dessen Punkt nun oben links liegt. Auch die angedeuteten Textzeilen sind um 180 Grad gedreht.
    Flache Drehung um 180°Der vollständige Stapel wird auf der Ablagefläche flach gedreht. Er wird weder umgekippt noch umsortiert; einzelne Blätter werden nicht gewendet. Durch die Drehung erhält bereits die schnelle kombinierte PDF die passende Ausrichtung. Bei der späteren Texterkennung können Seiten zusätzlich automatisch gedreht werden.
  4. In der Seitenansicht wird der flach um 180 Grad gedrehte Papierstapel von rechts erneut in den oberen Eingabeschacht gelegt.
    Einlegen der RückseitenDer gedrehte Stapel wird für den zweiten Scanlauf erneut in den ADF eingelegt.
  5. In der Seitenansicht ragt der vollständig gescannte Stapel nach dem zweiten Durchlauf zur Hälfte aus der inneren Ausgabe.
    Zweiter Lauf fertigNach dem zweiten Scanlauf liegt der Stapel wieder im Ausgabefach. Beide Scan-PDFs werden nun von Scanworker kombiniert.

Den passenden Eingang wählenDie beiden PDF-Dateien eines Simplex-Zweilaufs gehören in DUPLEX_INPUT_DIR; Scanworker paart und verschachtelt sie automatisch. Ein Duplex-ADF, der bereits eine vollständige PDF erzeugt, und ein gewöhnlicher einseitiger Scan gehören in SINGLE_INPUT_DIR. Dort beginnt die Texterkennung automatisch und ohne Zusammenführung.

Zwei Spuren, ein Dokument

Die schnelle Ausgabe wartet nicht auf die rechenintensive Analyse. Jeder Verarbeitungsschritt veröffentlicht ein eigenes, eindeutig bezeichnetes Ergebnis.

  1. Zusammenführung

    Zwei zusammengehörige Simplex-PDFs werden geprüft, die Rückseiten umgekehrt und anschließend korrekt ineinander verschachtelt. Schlägt die automatische Erkennung fehl, lassen sich genau zwei Eingangs-PDFs manuell erneut einreihen – gestartet wird nur bei gleicher Seitenzahl.

  2. Schnelle OCR

    OCRmyPDF und Tesseract erkennen Deutsch und Englisch, drehen falsch ausgerichtete Dokumente und führen mehrere unabhängige Seitenjobs parallel aus.

  3. VLM im Hintergrund

    PaddleOCR-VL analysiert Layout und Text seitenweise. Das normalisierte Ergebnis mit Layoutdaten bleibt als eigenes JSON-Artefakt erhalten.

Technologien der Texterkennung

Die drei lokalen OCR-Wege haben getrennte Aufgaben und veröffentlichen deshalb unterschiedliche Ergebnisse.

OCRmyPDF und Tesseract

OCRmyPDF steuert Tesseract für Deutsch und Englisch. Es richtet schiefe Seiten gerade, dreht falsch ausgerichtete Seiten und erzeugt den positionsgenauen Textlayer der schnell verfügbaren, durchsuchbaren PDF.

PaddleOCR-VL

Der lokale VLM-Dienst analysiert jede Seite und liefert Markdown, normalisierten Text, Layoutblöcke und Bounding Boxes als JSON. Der Textlayer der „enhanced PDF“ stammt derzeit weiterhin aus Tesseract.

Apple Vision

Optional rendert Poppler die PDF-Seiten mit 300 dpi; Tesseract erkennt geeignete Bereiche, Apple Vision Text und Positionen. pikepdf schreibt daraus einen unsichtbaren Textlayer in eine eigene Vision-PDF.

Ergebnisse, sobald sie fertig sind

Die Weboberfläche aktualisiert Queue, Seitennummer, Fortschritt, OCR-Dienst und geschätzte Restzeit live über WebSocket. Weitere Paare lassen sich bereits während eines laufenden Jobs einreihen. Aktuelle und wartende Jobs stehen getrennt von der Historie; wartende und historische Einträge können entfernt werden, ohne die zugehörigen PDFs zu löschen.

Kombiniertes PDF

Sofort nach dem sicheren Zusammenführen verfügbar, noch ohne Textlayer.

Durchsuchbares PDF

Positionsgenauer Tesseract-Textlayer, automatische Ausrichtung und inhaltsbasierter Dateiname.

VLM-Text und Layout

Paddle-Markdown, normalisierter Dokumenttext, Seitenbezug, Bounding-Box-Daten und geprüfte seitenübergreifende Wortverbindungen.

Bewusste technische GrenzeDer VLM-Text wird noch nicht als positionsgenauer PDF-Textlayer ausgegeben. Die Bounding Boxes bleiben für diese spätere Erweiterung erhalten; das „enhanced PDF“ verwendet derzeit weiterhin Tesseract für den Textlayer.

Für einen ruhigen Betrieb gebaut

Scanworker läuft als unprivilegierte systemd-Dienste. Zustände und Queue sind dauerhaft gespeichert, Veröffentlichungen atomar und unvollständige Jobs nach einem Neustart wieder aufnehmbar.

Debian und macOS

Reproduzierbares .deb sowie PKG/DMG-Builds, semantische Versionen und getrennte Entwicklungs- und Release-Artefakte.

Lokal zuerst

OCR und Dokumentanalyse bleiben im vertrauenswürdigen Netz. Remote-VLM-Ziele müssen ausdrücklich erlaubt werden.

PDF-Bibliothek im Blick

Seitenzahl und Vorschau stehen direkt in der Bibliothek. Ein Klick auf jeden Tabellenkopf sortiert auf- oder absteigend; ein kleiner Pfeil zeigt die Richtung, standardmäßig stehen die neuesten PDFs oben.

Freiwillige Unterstützung

Unterstützung für Scanworker

Scanworker ist freie Software und bleibt kostenlos. Die Weiterentwicklung kann freiwillig über PayPal unterstützt werden. Aus einer Zahlung entstehen keine zusätzlichen Rechte, Leistungen oder Vorteile.