[PYTHON] Conversion de pdf en txt 1 [pdfminer]

introduction

J'ai dû traduire 20 fichiers pdf non copiables écrits en anglais comme ci-dessous, donc Je souhaite extraire le texte et l'appliquer à la traduction Google, etc.

1.PNG

Objectif

Extrayez le texte d'un fichier pdf.

Ce qui a été utilisé

Cette fois, pdfminer a été utilisé. https://github.com/pdfminer/pdfminer.six

J'ai également évoqué les articles suivants. https://qiita.com/mczkzk/items/894110558fb890c930b5

Flux de processus

1.Veuillez saisir le chemin du pdf: après, entrez le nom du fichier pdf 2. Modifiez l'extension du nom du fichier d'entrée en .txt et créez un fichier texte 3. Envoyez-y le résultat

C'est une opération simple telle que.

résultat

Le résultat de la spécification du fichier pdf plus tôt est le suivant.

2.PNG

Une seule flèche a été sortie. Étrange, Pour vérifier avec d'autres fichiers pdf, spécifiez le pdf suivant créé avec word.            3.PNG

Le résultat est le suivant.                4.PNG

De plus, la flèche ci-dessus est sortie, mais l'anglais et le japonais sont bien sortis. Le programme ne semble pas avoir d'importance. Je pensais que c'était un problème dû à la protection du pdf, alors j'ai essayé de supprimer la protection avec "Imprimer en pdf", mais De plus, une seule flèche a été sortie.

Considération

Puisqu'il a été confirmé que pdfminer lui-même fonctionne bien, le problème est considéré comme étant dans le fichier pdf. Je pense que la cause est que la qualité de l'image est mauvaise, probablement parce que le fichier PDF cible a été numérisé.

programme

pdfminer est si pratique qu'il s'agit d'un programme très court.

pdf2text.py


from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

input_path = input("Please input pdf path : ")
output_path,ext = input_path.split(".")
output_path += ".txt"

manager = PDFResourceManager()

with open(output_path, "wb") as output:
    with open(input_path, 'rb') as input:
        with TextConverter(manager, output, codec='utf-8', laparams=LAParams()) as conv:
            interpreter = PDFPageInterpreter(manager, conv)
            for page in PDFPage.get_pages(input):
                interpreter.process_page(page)

Recommended Posts

Conversion de pdf en txt 1 [pdfminer]
Conversion de pdf en txt 2 [pyocr]
Sélectionnez PDFMiner pour extraire les informations textuelles du PDF
Convertir de PDF en CSV avec pdfplumber
Conversion facile de l'heure UTC en heure locale
Extraire du texte japonais d'un PDF avec PDFMiner
Somme de 1 à 10
Les images créées avec matplotlib passent de dvi à pdf
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Transition de WSL1 à WSL2
[Python] Conversion de WGS84 en système de coordonnées orthogonales plan
Envisagez la conversion de Python récursif en non récursif
Comment (forcer) PDF les diapositives d'un notebook IPython
De l'édition à l'exécution
Conversion automatique du fichier MySQL Workbench mwb en fichier sql
Publier de Python vers Slack
Flirter de PHP à Python
Portage d'Argparse à Hydra
Transition de Chainer v1 à Chainer v2
OCR à partir de PDF en Python
Ajouter un numéro de page au PDF
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Migré de Flask-RESTPlus vers Flask-RESTX
Mettre à jour python-social-auth de 0.1.x à 0.2.x
Migrer de requirements.txt vers pipenv
Passer de python2.7 à python3.6 (centos7)
Connectez-vous à sqlite depuis python
Convertissez un grand nombre de fichiers PDF en fichiers texte à l'aide de pdfminer