Je sais comment utiliser l'outil pdf2txt.py de pdfminer.six en ligne de commande; cependant, j'ai beaucoup de fichiers PDF à convertir en fichiers txt et je ne peux pas le faire un par un en ligne de commande. Je n'ai pas trouvé comment utiliser cet outil dans la réalité python. Des idées?
La bonne nouvelle est que vous pouvez utiliser la bibliothèque PDFMiner pour recréer tous les attributs/commandes que vous pourriez exécuter avec pdf2text sur la ligne de commande. Voir ci-dessous pour un exemple de base que j'utilise:
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import BytesIO
def pdf_to_text(path):
manager = PDFResourceManager()
retstr = BytesIO()
layout = LAParams(all_texts=True)
device = TextConverter(manager, retstr, laparams=layout)
filepath = open(path, 'rb')
interpreter = PDFPageInterpreter(manager, device)
for page in PDFPage.get_pages(filepath, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
filepath.close()
device.close()
retstr.close()
return text
if __name__ == "__main__":
text = pdf_to_text("yourfile.pdf")
print(text)
Si vous devez appliquer des numéros de page ou des mots de passe, ce sont des paramètres facultatifs dans PDFPage.get_pages. De même, si vous devez effectuer des modifications de mise en page, telles que tous les textes ou la taille de la marge, il existe des attributs facultatifs pour l'initialiseur LAParams.