J'essaie d'extraire du texte d'un fichier PDF en utilisant Python. Mon objectif principal est d'essayer de créer un programme qui lit un relevé bancaire et extrait son texte pour mettre à jour un fichier Excel pour enregistrer facilement En ce moment, je me concentre uniquement sur l'extraction du texte du fichier pdf, mais je ne sais pas comment le faire.
Quelle est actuellement la manière la meilleure et la plus simple d'extraire du texte d'un fichier PDF dans une chaîne? Quelle bibliothèque est la meilleure à utiliser aujourd'hui et comment puis-je la faire?
J'ai essayé d'utiliser PyPDF2 mais chaque fois que j'essaie d'extraire du texte de n'importe quelle page en utilisant extractText (), il renvoie des chaînes vides. J'ai essayé d'installer textract mais je reçois des erreurs car j'ai besoin de plus de bibliothèques je pense.
import PyPDF2
pdfFileObj = open("January2019.pdf", 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
Ceci imprime des chaînes vides quand il devrait imprimer le contenu de la page
PyPDF2 ne lit pas correctement le pdf entier. Vous devez utiliser ce code.
import pdftotext
pdfFileObj = open("January2019.pdf", 'rb')
pdf = pdftotext.PDF(pdfFileObj)
# Iterate over all the pages
for page in pdf:
print(page)
import PyPDF2
pdf-file = open('January2019.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdf-file)
count = pdfReader.numPages
for i in range(count):
page = pdfReader.getPage(i)
print(page.extractText())
Essayez pdfreader . Vous pouvez extraire du texte brut ou du texte décodé contenant "démarque pdf":
from pdfreader import SimplePDFViewer, PageDoesNotExist
fd = open(you_pdf_file_name, "rb")
viewer = SimplePDFViewer(fd)
plain_text = ""
pdf_markdown = ""
try:
while True:
viewer.render()
pdf_markdown += viewer.canvas.text_content
plain_text += "".join(viewer.canvas.strings)
viewer.next()
except PageDoesNotExist:
pass
import pdftables_api
import os
c = pdftables_api.Client('MY-API-KEY')
file_path = "C:\\Users\\MyName\\Documents\\PDFTablesCode\\"
for file in os.listdir(file_path):
if file.endswith(".pdf"):
c.xlsx(os.path.join(file_path,file), file+'.xlsx')
Allez sur https://pdftables.com pour obtenir une clé API.
CSV, format = csv
XML, format = xml
HTML, format = html
XLSX, format = xlsx-single, format = xlsx-multiple