ubuntuusers.de

Paperwork

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

./paperwork.png Paperwork 🇬🇧 ist ein in Python 3 verfasstes Programm zur Digitalisierung, Indexierung und Archivierung von Dokumenten aller Art. Die Vorlagen werden eingescannt (SANE-fähiger Scanner nötig) oder vorhandene Bilddateien importiert. Mittels tesseract-ocr werden sie mit einer durchsuchbaren Textebene versehen, die Seitenausrichtung wird dabei automatisch erkannt und die Seite ggf. aufrecht gedreht. Das Programm bietet ein automatisches Indexierungs- und Suchsystem, das alle erkannten Wörter beinhaltet, zusätzlich können die Dokumente mit weiteren "Labels" und Schlagwörtern versehen werden. Die Vorlagen werden als .jpeg-Dateien mit dazugehörigen hOCR-Dateien gespeichert. Schwerpunkt soll laut Entwickler die möglichst vollautomatische Verarbeitung sein ("scan and forget it"), daher sind für den Benutzer nur relativ wenig Auswahlmöglichkeiten vorgesehen. Das Programm befindet sich noch in einer Entwicklungsphase, etliche Verbesserungen sind bereits für zukünftige Versionen vorgesehen. Ab Version 0.1.2 ist die Oberfläche fast vollständig ins Deutsche übersetzt.

Installation

Aus den Quellen

Das Programm ist ab Ubuntu 20.04 in den Paketquellen vorhanden. Folgende Pakete müssen installiert werden

  • paperwork-gtk (universe)

  • paperwork-backend (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install paperwork-gtk paperwork-backend 

Oder mit apturl installieren, Link: apt://paperwork-gtk,paperwork-backend

Außerdem das gewünschte Lokalisierungspaket paperwork-gtk-l10n-xx, es ist derzeit in deutsch, englisch, spanisch, französisch und ukrainisch verfügbar ( -de, -en, -es, -fr, -uk). Diese Version von paperwork ist voll mit der tesseract-ocr-Version kompatibel, die mit Focal ausgeliefert wird. Auch alle Python-Abhängigkeiten sind inzwischen in den Quellen vorhanden und werden direkt mitinstalliert. Ggf. müssen noch gewünschten tesseract-Sprachpakete installiert werden.

Manuelle Installation

Für ältere Ubuntuversionen kann man den Installationsanweisungen des Autors 🇬🇧 folgen. Da Probleme bestehen, die in Ubuntu 18.04 verwendete tesseract-ocr-Version aus den Quellen zu verwenden, empfiehlt der Entwickler entweder, auf tesseract-ocr 3.05 zurückzugehen, oder aber ein Flatpak zu verwenden, das intern tesseract-ocr 3.05 einsetzt. Für das flatpak ist allerdings eine funktionierende Installation eines Sane-Servers auf dem Rechner nötig, was ggf. nicht ganz einfach ist.

Es ist aber möglich, Paperwork unter 18.04 auch mit tesseract-4.00 zu verwenden, allerdings nicht mit der für 18.04 in den Quellen vorhandenen Version (eine git/beta-Version), sondern mit einem Build des finalen 4.00-Release, das in auf der GitHub-Seite ⮷ vorliegt. Dabei darauf achten, dass die SPRACHKÜRZEL.traineddata-Dateien im passenden Verzeichnis liegen oder verlinkt sind. Die offiziellen Pakete installieren diese nach /usr/share/tesseract-ocr/4.00/tessdata, für eine eigene tesseract-ocr-Installation mit checkinstall müssen sie in /usr/local/share/tessdata/ liegen.

Alternativ kann auch ein PPA für tesseract verwendet werden, in welchem die aktuellste Version vorliegt: tesseract-ocr 🇬🇧/⮷.

Abhängigkeiten

Benötigt werden zum Erstellen/Verwenden folgende Pakete[1]:

  • python3-setuptools

  • python3-dev

  • python3-pil

  • libenchant-dev

  • python3-whoosh

  • python3-all-dev

  • python3-pip

  • python3-enchant

  • python3-levenshtein

  • python3-natsort

  • python3-pycountry

  • python3-termcolor

Befehl zum Installieren der Pakete:

sudo apt-get install python3-setuptools python3-dev python3-pil libenchant-dev python3-whoosh python3-all-dev python3-pip python3-enchant python3-levenshtein python3-natsort python3-pycountry python3-termcolor 

Oder mit apturl installieren, Link: apt://python3-setuptools,python3-dev,python3-pil,libenchant-dev,python3-whoosh,python3-all-dev,python3-pip,python3-enchant,python3-levenshtein,python3-natsort,python3-pycountry,python3-termcolor

Außerdem werden tesseract-ocr-KÜRZEL-Pakete benötigt, für die .traineddata-Dateien den gewünschten Sprachen.

Um die benötigten weiteren Python3-Anwendungen nicht "an der Paketverwaltung vorbei" installieren zu müssen, empfiehlt es sich, mittels stdeb 🇬🇧 aus dem Python-Paketen jeweils einfache Debian-Pakete zu bauen, die automatisch aus dem Python Package Index (PyPI) geholt und mit den benötigten Abhängigkeiten erstellt und installiert werden. Damit ist auch die Garantie gegeben, dass die jeweils aktuellsten Versionen verwendet werden (z.B. Paperwork in Version 1.2.4, Stand April 2019).

Allerdings ist das benötigte Programm pypi-install für Python3 nicht im Paket python3-stdeb aus Quellen enthalten, es muss daher "händisch" via pip3 installiert werden:

sudo pip3 install stdeb 

Zudem ist eine aktuelle Version von pyocr (mindestens Version 0.6) nötig, sowie etliche Programme, die nicht aus den Quellen bezogen werden können. Dazu die folgenden Befehle in der angegebenen Reihenfolge im Terminal ausführen:

sudo /usr/local/bin/pypi-install --release 0.6 pyocr
sudo /usr/local/bin/pypi-install --release 1.3.7 nose
sudo /usr/local/bin/pypi-install pyinsane2
sudo /usr/local/bin/pypi-install pypillowfight
sudo /usr/local/bin/pypi-install simplebayes 

Die Paperwork-Pakete selbst werden dann mit

sudo /usr/local/bin/pypi-install paperwork-backend
sudo /usr/local/bin/pypi-install paperwork 

erstellt/installiert.

Schließlich sollte mit den Befehlen

paperwork-shell chkdeps paperwork_backend
paperwork-shell chkdeps paperwork 

überprüfen werden, ob alle benötigten Abhängigkeiten tatsächlich verfügbar sind; fehlende Pakete werden angezeigt (wenn sie denn in den Ubuntu-Quellen verfügbar sind; simplebayes ist z.B. nur über PyPI beziehbar).

Ein Menü-Eintrag (optional) kann mit

paperwork-shell install 

erstellt werden.

Benutzung

./paperwork-main.png Nach dem Start[4] erscheint ein Fenster mit einer allgemeine Dokumentenseitenleiste ("Dokumente") mit den zuletzt erstellten Dokumenten und oberhalb einer Suchfunktion sowie einem großen Darstellungsfenster, ggf. mit der aktuell gewählten Seite des Dokuments, darüber etliche Schaltflächen.

Hinweis:

Auf das Einstellungsmenü kann unter Unity nur zugegriffen werden, wenn auf dem Rechner in den "Systemeinstellungen → Darstellung → Verhalten" bei "Zeige Menüs für ein Fenster → In der Menüleiste" (oberes Panel) ausgewählt wird; in der Titelleiste des Fensters wird das Menü unter Unity nicht angezeigt. Mit einem linke Maustaste-Klick aus "Paperwork" liefert das Dropdownmenü die Einstellungen etc.

Konfiguration

Unter "Paperwork → Einstellungen" werden das "Arbeitsverzeichnis", der gewünschte Scanner samt die Auflösung eingestellt, außerdem die gewünschte Sprache für die Texterkennung, abhängig von den für tesseract-ocr installierten Sprachpaketen. Im Fenster rechts kann zudem der gewünschte Scanbereich festgelegt werden ("Scannerkalibrierung", dazu einen Scanvorgang starten, linke Maustaste-Klick auf die blauen Quadrate und dann ziehen). Die Einstellungen werden in der Datei ~/.config/paperwork.conf gespeichert.

Dokumente erfassen

Mit Paperwork können - ein SANE-fähiger Scanner vorausgesetzt - die Vorlagen direkt eingescannt werden ("Scannen"-Schaltfläche), es lassen sich dazu auch ADF-Scanner verwenden, wenn die Funktion erkannt wurde (Dropdown-Menü neben der Schaltfläche "Scannen-> Vom Dokumenteneinzug scannen"). An bestehende Dateien lassen sich Scans anhängen, indem man in der Dokumenten-Leiste das gewünschte Dokument auswählt und einen weiteren Scan-Vorgang startet. Auch bereits existierende Bilddateien lassen sich einbinden (Dropdown-Menü neben der Scannen-Schaltfläche → "Datei(en) importieren"). Verwendbar sind die von python-imaging bzw. Pillow unterstützten Formate 🇬🇧, derartige Dateien können auch an gescannte Dokumente angehängt werden. Mehrseitige Dokumente werden zusammengefasst abgespeichert.

Paperwork versieht die Scans sofort mit einer durchsuchbaren Textlage, die Seitenausrichtung wird dabei automatisch erkannt. Details/"bounding boxes" der erkannten Wörter können über die Schaltfläche neben dem Seitenzähler - > "Wörter hervorheben" eingeblendet werden. Die Ergebnisse werden sofort indexiert (Datenbank in ~/.local/share/paperwork/index/). Falls nötig (falsche Sprache gewählt o.ä.) kann sowohl die Texterkennung (für die aktuelle Seite Schaltfläche mit dem symbolisierten Stapel ganz links außen, dort "OCR erneut durchführen", für alle Seiten unter "Paperwork → Erweitert-> OCR für alle Dokumente wiederholen") als auch der Indexierungsvorgang wiederholt werden ("Paperwork-> Erweitert → Alle Dokumente erneut indizieren"). Das Programm erkennt beim Start, ob es Veränderungen an den archivierten Dateien gegeben hat, und indexiert diese ggf. neu.

Die Dokumente werden standardmäßig im Homeverzeichnis des Benutzers unter ~/papers/JJJJMMTT_UHRZEIT_SEKUNDE/ mit den Werten des ersten Scans abgelegt, für jede Seite wird eine paper.X.jpeg-Datei, eine Vorschau (paper.X.thumb.jpeg), sowie eine paper.X.words-Datei mit der Texterkennung erstellt (es handelt sich dabei um hOCR-HTML-Dateien).

Scans bearbeiten

In eingeschränktem Rahmen lassen sich die Scans auch bearbeiten, dazu die "Bearbeiten"-Schaltfläche wählen, die im Scan oben links erscheint, wenn man den Mauszeiger im Fenster stehen hat. Dort kann die Vorlage beschnitten und gedreht werden, dann mit "Anwenden" die Änderungen übernehmen. Als weitergehende Bearbeitung ist eine "Automatische Farbabgleichung" vorgesehen, die fade Farben etwas auffrischt. Unbenötigte Scans lassen sich im Darstellungsfenster über die Schaltfläche mit dem "x" auch wieder entfernen.

Dokumentenansicht verändern

Über den Schaltfläche neben dem Seitenzähler kann festgelegt werden, ob das Dokument seitenweise oder gesamt dargestellt werden soll, mit dem Schieberegler kann die Ansicht ein- oder ausgezoomt werden.

Labels und zusätzliche Schlagwörter erstellen

./paperwork-label.png Über das Werkzeug-Symbol, das zu der gerade ausgewählten Datei in der rechten Seitenleiste angezeigt wird, lässt sich das "Eigenschaften"-Menü öffnen. Im oberen Feld kann das Datum, nachdem die Dokumente sortiert werden, verändert werden (z.B. Datum eines Schreibens statt des Erstelldatums). Darunter lassen sich übergeordnete Label vergeben, die zudem noch mit farbigen Markierungen geordnet werden können. So kann man z.B. thematisch verwandte Kategorien mit ähnlichen Farben versehen. Die zugeordneten Labels erscheinen in der Dokumentenleiste jeweils neben dem Vorschaubild der Dateien. Paperwork versucht, anhand der indizierten Wörter aus den bereits bestehenden Labels passende zuzuordnen, das funktioniert halbwegs verlässlich allerdings erst bei einer größeren Anzahl vom eingespeicherten Dokumenten.

Hinweis:

Leider verschwinden erstellte Labels wieder, wenn sie nicht mindestens einem Dokument zugeordnet sind; man kann sie also nicht "auf Vorrat" erstellen, sondern muss sie sofort verwenden. Hintergrund ist die derzeitige Speichermethode für diese Labels; sie werden nicht zentral, sondern in der Datei labels im entsprechenden Dokumentverzeichnis gespeichert.

Außerdem können (z.B. wenn die Texterkennung bei handschriftlichen oder kontrastarmen Vorlagen versagt) zusätzliche Schlagwörter, "Weitere Schlüsselwörter" (thematische, Beurteilungen etc., die nicht im Dokument auftauchen) aufgenommen werden, unter denen das Dokument gefunden werden soll. Diese Angaben werden im Dokument-Verzeichnis als extra.txt abgelegt.

./paperwork-search.png

Dokumente durchsuchen

Alle Dokumente können dann über die Suchfunktion in der "Dokumente"-Leiste durchforstet werden. Nach Eingabe einiger Zeichen erscheint unterhalb des Fensters ein Dropdown-Menü mit ähnlich geschriebene Vorschlägen.

In der erweiterten Suchfunktion (Symbol neben dem Sucheingabefeld) lässt sich zusätzlich festlegen, dass nur Dateien mit bestimmten Schlagwörtern ("Label") oder Schlüsselwörter (aus dem Index sowie den zusätzliche erstellten) verwenden werden sollen, es sind "oder"-Verknüpfungen, Ausschlüsse von Schlagwörtern, oder die Suche nach einem bestimmtem Datum.

Hinweis:

Der Umgang mit Umlauten ist etwas gewöhnungsbedürftig. Die Indexier- und Suchfunktion entfernt alle diakritischen Zeichen (Akzente, Umlautpunkte etc.), weil OCR-Programme zum Teil Schwierigkeiten haben, diese verlässlich zu erkennen. Man kann in der Suche Wörter mit Umlauten verwenden, als Vorschläge aus dem Index erscheinen aber nur die "gestrippten" Versionen. In den Texterkennungsdateien selbst (paper.X.words) werden die Umlaute richtig dargestellt. Das führt dazu, dass für eine Suche mit Umlaut (z.B. "Häute") auch Dokumente auftauchen, die die Version ohne Umlaut beinhalten, und umgekehrt natürlich auch. Groß- oder Kleinschreibung spielt für die Suche kein Rolle, die Suchen nach "haute" und "Häute" liefern also identische Ergebnisse; das "ß" wird hingegen anstandslos akzeptiert.

Drucken und Export

Dokumente können über die Stapel-Schaltfläche → "Drucken" direkt ausgedruckt werden. Die einzelnen Seiten lassen sich als .jpeg oder .png-Dateien exportieren (via Stapel-Schaltfläche → "Exportieren"), das Gesamtdokument auch kann als PDF ausgegeben werden, mit der Texterkennung und in verschiedenen Qualitäten.

Hilfe

Über "Paperwork → Hilfe" lassen sich ausführliche Anleitungen, auch zum Übersetzen oder für Entwickler, aufrufen, die eine umfassende Darstellung aller Funktionen in englischer Sprache liefern.

Probleme und Lösungen

Neuerstellen des Indexes

Wenn es bei der Erstellung des Index (insbesondere nach Wechsel auf eine aktuellere Version) oder anderweitig Probleme gibt, kann ein Neuerstellen hilfreich sein. Dazu Paperwork erst beenden, und dann das Index-Verzeichnis entsorgen, ganz radikal geht das im Terminal[5] mit

rm -rf ~/.local/share/paperwork 

Wer etwas vorsichtiger ist, benennt das Verzeichnis erst einmal um. Paperwork erstellt dann beim Neustart einen neuen Index (das geht recht schnell).

Dokument oder Teile werden von großer Bounding-Box verdeckt

Leider kann es vorkommen, dass Paperwork sehr große Bounding-Boxes erstellt, die die gesamte oder zumindest große Teile der Seite überdecken, und so die darunter liegenden Inhalte unsichtbar machen. Ggf. kann man durch einen Neuzuschnitt (Kanten etwas nach innen ziehen) die großen Bounding Boxes eliminieren.

Scanner-Einstellung

Leider sind nur sehr wenige Scanner-Einstellungen möglich, es wird farbig oder in Graustufen kopiert, und bisher sind außer der Farbanpassung keine weiteren Einstellungen für Kontrast, Helligkeit etc. vorgesehen. Bei schwierigen Vorlagen muss man ggf. die die Scans mit einem leistungsfähigerem Scanprogramm erstellen, importieren und erst dann weiterverarbeiten.

Texterkennung erst nach dem Erfassen durchführen

Die Bearbeitung der Dokumente dauert auch auf leistungsstarken Rechnern ggf. recht lange, da für das Erkennen der Textrichtung jede einzelne Seite immer viermal einem OCR-Prozess unterworfen, und dann anhand der Resultate überprüft wird, welche Ausrichtung vorliegt. Diese Prozedur lässt sich umgehen, indem man bei der Sprachauswahl zunächst "Deaktiviere OCR" auswählt, und darauf achtet, dass die Scans gleich in der richtigen Richtung erfolgen. Dann kann man nach dem Einscannen der Vorlage die OCR-Funktion wieder aktivieren, und über die Stapel-Schltfläche die Auswahl "OCR erneut durchführen" wählen, sodass die Erkennung erst ganz am Ende erfolgt.

Korrekturen an der Texterkennung

Eine interne Korrektur der OCR-Ergebnisse ist nicht vorgesehen. Eine - wenn auch beschwerliche - Möglichkeit besteht aber darin, die paper.X.words-Dateien in einem Editor[6] zu bearbeiten; allerdings lassen sich die eigentlichen Textstrings nur mühsam finden. Die automatische Re-Indexierung funktioniert hingegen tadellos, die korrigierten Wörter werden nach kürzester Zeit gefunden. Ggf kann mit "Paperwork → Erweitert → Index optimieren" nachgeholfen werden. Dort kann auch der gesamte Index neuerstellt, oder die Texterkennung für alle Daten neu durchgeführt werden - bei einem Wechsel auf eine Leistungsfähigere Texterkennung (z.B. von tesseract 3.xx auf tesseract 4.xx) ggf. sinnvoll.

Alternativen

Eine direkte Alternative mit Index-Funktion ist in den Quellen nicht vorhanden. Einige Programme können aber aus Bildvorlagen Dokumente mit durchsuchbarer Textlage erstellen, z.B. gscan2pdf oder xsane2djvu. OCRFeeder verfolgt einen etwas anderen Ansatz: es versucht, aus den Vorlagen .odt-Dokumente zu erstellen. Eine Indexierung für die Suche muss aber über andere Programme erfolgen, z.B. Tracker und Catfish. Außerdem existiert mit Archivista 🇩🇪 🇨🇭 eine große kommerzielle Lösung für das "papierlose Büro".

Diese Revision wurde am 9. Mai 2021 08:47 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Büro, Scanner, Grafik, Kommunikation, OCR