OCR aus PDF in Python

1. 1. Einführung

Ich ahmte die wunderbaren Vorfahren nach und schrieb den Code von PDF in Python in OCR. Und verwenden. Ich konvertiere das PDF mit poppler in jpg und transkribiere es dann mit Tesseract OCR in eine txt-Datei.

Ich bin ein Anfänger, daher würde ich mich freuen, wenn Sie auf etwas Seltsames im Code hinweisen könnten. Ich habe auch auf viele Websites verwiesen, die ich nicht zitiert habe. Vielen Dank.

2. Überblick

In Bezug auf diese Site lautet die Ordnerstruktur wie folgt. So konvertieren Sie PDF mit Python in eine Bilddatei (JPEG, PNG)

Übergeordneter Ordner Untergeordneter Ordner
\ Aktuell ¥image_file
¥pdf_file
¥poppler
¥txt_file
import os
import pathlib
from pathlib import Path
from pdf2image import convert_from_path
from PIL import Image
import sys
import pyocr
import pyocr.builders
import pathlib
import glob


def cleanup():
    #Verzeichnis mit der zu löschenden IMG-Datei
    image_dir = pathlib.Path('./image_file')
    #Holen Sie sich eine Liste der JPEG-Dateien in einem Verzeichnis mit glob
    jpg_path = list(image_dir.glob('**/*.jpeg'))

    #Verzeichnis mit der zu löschenden txt-Datei
    txt_dir = pathlib.Path('./txt_file')
    #Ruft eine Liste der txt-Dateien in einem Verzeichnis mit glob ab
    txt_path = list(txt_dir.glob('**/*.txt'))

    if jpg_path == []:  #Unterbrechen Sie, wenn die Liste leer ist
        pass
    else:
        for i in jpg_path:
            os.remove(i)

    if txt_path == []:  #Unterbrechen Sie, wenn die Liste leer ist
        pass
    else:
        for i in txt_path:
            os.remove(i)
def pdf_to_image():
    # poppler/Fügen Sie bin zur Umgebungsvariablen Path hinzu(Vorübergehend)
    # Path("__file__").parent.resolve()damit.Gibt den absoluten Pfad des übergeordneten Ordners der py-Datei zurück
    poppler_dir = pathlib.Path("__file__").parent.resolve() / "poppler/bin"
    #pathsep ist ein Trennzeichen beim Hinzufügen zu Umgebungsvariablen.
    os.environ["PATH"] += os.pathsep + str(poppler_dir)

    #PDF-Dateipfad
    pdf_dir = pathlib.Path('./pdf_file')
    #Holen Sie sich eine Liste der PDF-Dateien in einem Verzeichnis mit glob
    pdf_path = list(pdf_dir.glob('**/*.pdf'))

    # PDF ->In Bild konvertieren(200dpi)
    pages = convert_from_path(str(pdf_path[0]))

    #Speichern Sie Bilddateien Seite für Seite
    image_dir = pathlib.Path("./image_file")
    for i, page in enumerate(pages):  #Ermitteln Sie die Anzahl der Seiten von Seiten mit der Aufzählungsfunktion
        # .Zeigen Sie das Ende des Pfades mit Stiel (Pathlib)
        file_name = pdf_path[0].stem + "_{:02d}".format(i + 1) + ".jpeg "
        image_path = image_dir / file_name
        #Als JPEG speichern
        page.save(str(image_path), "JPEG")
def image_ocr():

    # tesseract-Übergeben Sie den OCR-Pfad
    tessera_path = "C:\***\Tesseract-OCR"
    #pathsep ist ein Trennzeichen beim Hinzufügen zu Umgebungsvariablen.
    os.environ["PATH"] += os.pathsep + str(tessera_path)

    tools = pyocr.get_available_tools()
    if len(tools) == 0:
        print("No OCR tool found")
        sys.exit(1)  #Argument 1 gibt 1 im Endstatus zurück

    tool = tools[0]

    #Verzeichnis mit OCR-Zieldateien
    image_dir = pathlib.Path('./image_file')
    #Holen Sie sich eine Liste der JPEG-Dateien in einem Verzeichnis mit glob
    jpg_path = list(image_dir.glob('**/*.jpeg'))

    for i in jpg_path:
        #Konvertieren Sie den ocr-Inhalt in die Variable txt
        txt = tool.image_to_string(
        Image.open(str(i)),
        lang="jpn",
        builder=pyocr.builders.TextBuilder(tesseract_layout=6)
        )
        #Variable txt txt_Als txt-Datei im Dateiverzeichnis speichern
        with open('./txt_file/' + str(i.stem) + '.txt', mode='wt') as t:
            t.write(txt)

Recommended Posts

OCR aus PDF in Python
PDF mit Python rastern
Konvertieren Sie Markdown in Python in PDF
Extrahieren Sie mit Python Text aus Bildern
Extrahieren Sie mit Python Zeichenfolgen aus Dateien
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Geokodierung in Python
SendKeys in Python
Erhalten Sie Wechselkurse von offenen Wechselkursen in Python
Metaanalyse in Python
Unittest in Python
Wiederbelebt von "kein Internetzugang" in Python
Verhindern Sie den doppelten Start von cron in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
SQL zu SQL
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
Laden Sie Bilder von der URL-Liste in Python herunter
Holen Sie sich den Batteriestand von SwitchBot mit Python
MeCab von Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
In Python von Markdown in HTML konvertieren
Holen Sie sich mit Python die Niederschlagswahrscheinlichkeit aus XML
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
Lesen von Zeichen in Bildern mit Python OCR
LiNGAM in Python
In Python reduzieren
Abrufen des Metrikverlaufs von MLflow in Python
In Python flach drücken
Holen Sie sich mit Python Zeitreihendaten von k-db.com