Skip to main content

Tesseract-ocr

Tesseract-ocr ist ein Kommandozeilen Programm, welches zur Konvertierung von Bilddateien mit Text in PDF genutzt werden kann. Bei einer Konvertierung wird ebenfalls eine Texterkennung durchgeführt, sodass die PDF Dateien durchsucht werden können.

Nutzung unter Docker

Durch die Ausführung des Programms in einem Docker-Container vereinfacht sich die Handhabung. Das Programm muss nicht mehr installiert und konfiguriert werden.

Herunterladen des Images

docker pull jitesoft/terreract-ocr

Bild konvertieren nach PDF inklusive OCR


Das Konvertieren kann in einer Zeile ausgeführt werden. Dazu wird eine laufende Docker-Instanz benötigt.

/pfad/fuer/die/neue/pdf_datei:/tmp/neue_datei Der absolute Pfad zu einen lokalen Ordner auf dem Host-System, in den die fertige PDF-Datei abgelegt werden soll
(Achtung: ":/tmp/neue_datei" NICHT ändern, da dies intern im Container benötigt wird)
Anpassen des Zielordners
/pfad/zur/quelldatei/bild.jpg Der absolute Pfad des Quell-Bildes, welches konvertiert werden soll
(Achtung: ":/tmp/img.jpg" NICHT ändern, da dies intern im Container benötigt wird)
Anpassen der Quelldatei
/tmp/img.jpg Die zu konvertierende Quelldatei. Nicht ändern
/tmp/neue_datei/ZielDatei Die Zieldatei. Ändern des Dateinamens (ZielDatei) ist möglich, der Pfad /tmp/neue_datei muss bleiben, da der Pfad intern benutzt wird.
Die Erweiterung .pdf muss nicht angehängt werden.
Anpassen der Zieldatei
--rm Löscht den Docker-Container, nachdem die PDF-Datei erstellt wurde. Nicht ändern
jitesoft/tesseract-ocr Der Image-Name der Software Nicht ändern
pdf Zieltyp Nicht ändern
docker run \
  --rm \
  -v /pfad/fuer/die/neue/pdf_datei:/tmp/neue_datei \
  -v /pfad/zur/quelldatei/bild.jpg:/tmp/img.jpg \
  jitesoft/tesseract-ocr \
  /tmp/img.jpg \
  /tmp/neue_datei/ZielDatei \
  pdf

Beispiel


Test.jpg


PDF

doc.pdf

Scripte

PDF Scan in PDF mit OCR konvertieren


Liegt bereits ein PDF mit einem gescanten Dokument vor, welches OCR konvertiert werden soll, ist folgendes Shell script nützlich.
Zuerst konvertiert es das Original-OCR in eine mehrseitige TIFF-Datei und anschließend wieder in eine PDF-Datei.
Für die Umsetzung ist ein installiertes ImageMagick notwendig.

Der Aufruf des Programms muss mit dem absoluten Pfad zur Datei erfolgen.
(Achtung: Die Anführungszeichen sind notwendig, sofern der Pfad oder die Datei Leerzeichen enthält!)

./ocrscan.sh "/absoluter/pfad/zur/datei.pdf"

Script:

#!/bin/bash
 
FILE=$1
 
# Script abbrechen, sofern bereits einmal konvertiert wurde
if [ -f "${FILE}_orig" ]
then
        echo "Scheinbar wurde das pdf schon einmal konvertiert. Bitte ueberpruefen!"
        exit
fi
 
TMP_FILENAME=$(basename "$1")
TMP_DIRNAME=$(dirname "$1")
 
# Konvertieren des originalen PDF nach TIFF
convert -density 300 \
         "${FILE}" \
         -depth 8 \
         "/tmp/${TMP_FILENAME}.tiff"
 
# OCR Scan der TIFF-Datei
docker run --rm \
        -v "${TMP_DIRNAME}:/tmp/test" \
        -v "/tmp/${TMP_FILENAME}.tiff:/tmp/img.jpg" \
        jitesoft/tesseract-ocr \
        /tmp/img.jpg \
        "/tmp/test/${TMP_FILENAME}_ocr" \
        pdf
 
# TIFF Datei entfernen
rm "/tmp/${TMP_FILENAME}.tiff"
 
# Umbenennen der originalen Datei nach datei.pdf_orig
mv "${FILE}" "${FILE}_orig"
 
# Umbenennen der neuen PDF Datei nach datei.pdf
mv "${FILE}_ocr.pdf" "${FILE}"