PDF-urile sunt o modalitate comună de a partaja text. PDF înseamnă Portable Document Format și utilizează extensia .pdf. A fost creat la începutul anilor 1990 de Adobe Systems.

Lectura documentelor PDF folosind python vă poate ajuta să automatizați o mare varietate de sarcini.

În acest tutorial vom învăța cum să extragem text dintr-un fișier PDF în Python.

Să începem.

Citirea și extragerea textului dintr-un fișier PDF în Python

În scopul acestui tutorial vom crea un exemplu de PDF cu 2 pagini. Puteți face acest lucru folosind orice procesor de text, cum ar fi Microsoft Word sau Google Docs și salvați fișierul ca PDF.

Text on page 1:

Hello World. This is a sample PDF with 2 pages. This is the first page. 

Text on page 2:

This is the text on Page 2. 

Utilizarea PyPDF2 pentru a extrage text din PDF

Puteți utiliza PyPDF2 pentru a extrage text dintr-un PDF. Să vedem cum funcționează.

1. Instalați pachetul

Pentru a instala PyPDF2 pe sistemul dvs. introduceți următoarea comandă în terminal. Puteți citi mai multe despre managerul de pachete pip.

pip install pypdf2
Pypdf
Pypdf

2. Importați PyPDF2

Deschideți un nou caiet python și începeți cu importul PyPDF2.

import PyPDF2

3. Deschideți PDF-ul în modul de citire binar

Începeți cu deschiderea PDF-ului în modul de citire binar folosind următoarea linie de cod:

pdf = open('sample_pdf.pdf', 'rb')

Aceasta va crea un obiect PdfFileReader pentru PDF-ul nostru și îl va stoca în variabila ‘pdf’.

4. Deschideți PDF-ul în modul de citire binar

. Utilizați PyPDF2.PdfFileReader() pentru a citi textul

Acum puteți utiliza metoda PdfFileReader() din PyPDF2 pentru a citi fișierul.

pdfReader = PyPDF2.PdfFileReader(pdf)

Pentru a obține textul de pe prima pagină a PDF-ului, folosiți următoarele linii de cod:

page_one = pdfReader.getPage(0)print(page_one.extractText())

Obținem ieșirea sub forma:

Hello World. !This is a sample PDF with 2 pages. !This is the first page. !Process finished with exit code 0

Aici am folosit metoda getPage pentru a stoca pagina sub forma unui obiect. Apoi am folosit metoda extractText() pentru a obține textul din obiectul pagină.

Textul pe care îl obținem este de tip String.

În mod similar, pentru a obține a doua pagină din PDF folosim:

page_one = pdfReader.getPage(1)print(page_one.extractText())

Am obținut rezultatul ca :

This is the text on Page 2. 

Cod complet pentru citirea textului din PDF folosind PyPDF2

Codul complet din această secțiune este prezentat mai jos:

import PyPDF2pdf = open('sample_pdf.pdf', 'rb')pdfReader = PyPDF2.PdfFileReader(pdf)page_one = pdfReader.getPage(0)print(page_one.extractText())

Dacă observați, formatarea primei pagini este un pic greșită în rezultatul de mai sus. Acest lucru se datorează faptului că PyPDF2 nu este foarte eficient la citirea PDF-urilor.

Din fericire, Python are o alternativă mai bună la PyPDF2. Ne vom uita la aceasta în continuare.

Utilizarea PDFplumber pentru a extrage text

PDFplumber este un alt instrument care poate extrage text dintr-un PDF. Este mai puternic în comparație cu PyPDF2.

1. Instalați pachetul

Să începem cu instalarea PDFplumber.

pip install pdfplumber
Pdfplumber
Pdfplumber

2. Importați pdfplumber

Începeți prin a importa PDFplumber folosind următoarea linie de cod :

import pdfplumber

3. Utilizarea PDFplumber pentru a citi pdf-uri

Puteți începe să citiți PDF-uri folosind PDFplumber cu următoarea bucată de cod:

with pdfplumber.open("sample_pdf.pdf") as pdf: first_page = pdf.pages print(first_page.extract_text())

Aceasta va obține textul de pe prima pagină a PDF-ului nostru. Ieșirea vine ca:

Hello World. This is a sample PDF with 2 pages. This is the first page. Process finished with exit code 0

Puteți compara acest lucru cu ieșirea lui PyPDF2 și să vedeți cum PDFplumber este mai bun atunci când vine vorba de formatare.

PDFplumber oferă, de asemenea, opțiuni pentru a obține alte informații din PDF.

De exemplu, puteți folosi .page_number pentru a obține numărul paginii.

print(first_page.page_number)

Scoaterea :

Lasă un răspuns

Adresa ta de email nu va fi publicată.