Je dois convertir tout le PDF en texte. J'ai vu à de nombreux endroits convertir le PDF en texte mais en particulier. Comment convertir le fichier PDF entier en texte sans utiliser getpage () ?? p> p>
6 Réponses :
Vous voudrez peut-être utiliser Textract Comme cette réponse recommande pour obtenir le document complet si tout ce que vous voulez est le texte.
Si vous souhaitez utiliser PYPDF2, vous pouvez d'abord obtenir le nombre de pages, puis itérer sur chaque page, telle que: p> si vous voudrez peut-être me souvenir de quelle page le Le texte est venu d'auquel cas vous pourriez utiliser une liste: p>
PDF est un format axé sur la page et vous aurez donc besoin de traiter le concept de pages. P>
Qu'est-ce qui le rend peut-être encore plus difficile, vous n'êtes pas garanti que les extraits de texte que vous pouvez extraire sont extraits dans le même ordre em> comme ils sont présentés sur la page: PDF permet un Dire "Placez ce texte dans une boîte 4x3 située à 1" du haut, avec une marge gauche de 1 ".", puis je peux mettre le prochain ensemble de texte ailleurs sur la même page. P>
Votre fonction ExtractText () obtient simplement les blocs de texte extrait dans la commande de document, pas la commande de présentation. P>
Les tables sont notoirement difficiles à extraire de manière courante et significative ... vous les voyez comme des tables, pdf les voit comme des blocs de texte placés sur la page avec peu ou pas de relation. P>
Nature morte, getpage () et ExtractText () sont de bons points de départ et si vous avez simplement des pages formatées, elles peuvent fonctionner correctement. P>
Vous pouvez utiliser tika code> pour accomplir cette tâche, mais la sortie nécessite un peu de nettoyage. from PyPDF2 import PdfFileReader
def pdf_text_extractor(path):
with open(path, 'rb') as f:
pdf = PdfFileReader(f)
# Get total pdf page number.
totalPageNumber = pdf.numPages
currentPageNumber = 0
while (currentPageNumber < totalPageNumber):
page = pdf.getPage(currentPageNumber)
text = page.extractText()
# The encoding put each page on a single line.
# type is <class 'bytes'>
print(text.encode('utf-8'))
#################################
# This outputs the text to a list,
# but it doesn't keep paragraphs
# together
#################################
# output = text.encode('utf-8')
# split = str(output, 'utf-8').split('\n')
# print (split)
#################################
# Process next page.
currentPageNumber += 1
path = 'mypdf.pdf'
pdf_text_extractor(path)
J'ai découvert un moyen très simple de le faire.
Vous devez suivre ces étapes: p>
Si vous n'utilisez pas Anaconda, vous devez installer Pip et mettre son chemin
à votre cmd ou ton terminal. P>
blockQuote> code Python strong>: Ce code suivant montre comment convertir un fichier PDF très facilement: P>
PIP INSTALL PYPDF2 CODE> P> LI>
ol>
Essayez PDFreader . Vous pouvez extraire le texte brut ou le texte décodé contenant "pdf markdown":
Je viens d'utiliser le module pdftotext pour l'obtenir facilement.
import pdftotext
# Load your PDF
with open("test.pdf", "rb") as f:
pdf = pdftotext.PDF(f)
# creating a text file after iterating through all pages in the pdf
file = open("test.txt", "w")
for page in pdf:
file.write(page)
file.close()