0
votes

Comment convertir tout le PDF en texte en Python

Je dois convertir tout le PDF en texte. J'ai vu à de nombreux endroits convertir le PDF en texte mais en particulier. xxx

Comment convertir le fichier PDF entier en texte sans utiliser getpage () ??


0 commentaires

6 Réponses :


2
votes

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: xxx

si vous voudrez peut-être me souvenir de quelle page le Le texte est venu d'auquel cas vous pourriez utiliser une liste: xxx


0 commentaires

0
votes

PDF est un format axé sur la page et vous aurez donc besoin de traiter le concept de pages.

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 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.

Votre fonction ExtractText () obtient simplement les blocs de texte extrait dans la commande de document, pas la commande de présentation.

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.

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.


0 commentaires

1
votes

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)


0 commentaires

0
votes

J'ai découvert un moyen très simple de le faire.

Vous devez suivre ces étapes:

  1. Installez PYPDF2 : Pour faire cette étape Si vous utilisez Anaconda, recherchez une invite anaconda et chiffre la commande suivante, vous avez besoin de la permission d'administrateur pour le faire.

    PIP INSTALL PYPDF2

    Si vous n'utilisez pas Anaconda, vous devez installer Pip et mettre son chemin à votre cmd ou ton terminal.

    1. code Python : Ce code suivant montre comment convertir un fichier PDF très facilement: XXX


0 commentaires

1
votes

Essayez PDFreader . Vous pouvez extraire le texte brut ou le texte décodé contenant "pdf markdown": xxx


0 commentaires

0
votes

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()


0 commentaires