Pliki PDF są powszechnym sposobem udostępniania tekstu. PDF jest skrótem od Portable Document Format i używa rozszerzenia pliku .pdf. Został stworzony na początku lat 90. przez firmę Adobe Systems.

Odczytywanie dokumentów PDF za pomocą pythona może pomóc w zautomatyzowaniu wielu różnych zadań.

W tym poradniku dowiemy się, jak wyodrębnić tekst z pliku PDF w Pythonie.

Zacznijmy.

Czytanie i wyodrębnianie tekstu z pliku PDF w Pythonie

Na potrzeby tego samouczka utworzymy przykładowy plik PDF zawierający 2 strony. Możesz to zrobić używając dowolnego edytora tekstu, takiego jak Microsoft Word lub Google Docs i zapisać plik jako PDF.

Tekst na stronie 1:

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

Tekst na stronie 2:

This is the text on Page 2. 

Użycie PyPDF2 do wyodrębniania tekstu z PDF

Możesz użyć PyPDF2 do wyodrębnienia tekstu z PDF. Zobaczmy jak to działa.

1. Zainstaluj pakiet

Aby zainstalować PyPDF2 w swoim systemie, wprowadź następujące polecenie w terminalu. Możesz przeczytać więcej o menedżerze pakietów pip.

pip install pypdf2
Pypdf
Pypdf

2. Zaimportuj PyPDF2

Otwórz nowy notatnik Pythona i zacznij od zaimportowania PyPDF2.

import PyPDF2

3. Otwórz plik PDF w trybie read-binary

Zacznij od otwarcia pliku PDF w trybie read binary, używając następującej linii kodu:

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

Tworzy to obiekt PdfFileReader dla naszego pliku PDF i przechowuje go w zmiennej 'pdf’.

4. Użyj metody PyPDF2.PdfFileReader() do odczytania tekstu

Teraz możesz użyć metody PdfFileReader() z PyPDF2 do odczytania pliku.

pdfReader = PyPDF2.PdfFileReader(pdf)

Aby uzyskać tekst z pierwszej strony PDF, użyj następujących linii kodu:

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

Uzyskamy dane wyjściowe jako:

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

Użyliśmy tutaj metody getPage, aby zapisać stronę jako obiekt. Następnie użyliśmy metody extractText(), aby uzyskać tekst z obiektu strony.

Tekst, który otrzymaliśmy jest typu String.

Podobnie, aby uzyskać drugą stronę z pliku PDF użyj:

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

Uzyskamy dane wyjściowe jako :

This is the text on Page 2. 

Kompletny kod do odczytu tekstu PDF przy użyciu PyPDF2

Kompletny kod z tej sekcji jest podany poniżej:

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

Jeśli zauważysz, formatowanie pierwszej strony jest trochę wyłączone w powyższym wyjściu. Jest to spowodowane tym, że PyPDF2 nie jest zbyt wydajny w czytaniu plików PDF.

Na szczęście, Python ma lepszą alternatywę dla PyPDF2. Przyjrzymy się jej w następnej kolejności.

Użycie PDFplumber do wyodrębnienia tekstu

PDFplumber jest kolejnym narzędziem, które może wyodrębnić tekst z PDF. Jest ono bardziej wydajne w porównaniu do PyPDF2.

1. Zainstaluj pakiet

Zacznijmy od zainstalowania PDFplumber.

pip install pdfplumber
Pdfplumber
Pdfplumber

2. Import pdfplumber

Zacznijmy od importu PDFplumber używając następującej linii kodu :

import pdfplumber

3. Używanie PDFplumber do czytania plików PDF

Możesz rozpocząć czytanie plików PDF używając PDFplumber z następującym fragmentem kodu:

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

To pobierze tekst z pierwszej strony naszego PDF. Wyjście jest następujące:

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

Możesz porównać to z wyjściem PyPDF2 i zobaczyć jak PDFplumber jest lepszy jeśli chodzi o formatowanie.

PDFplumber zapewnia również opcje, aby uzyskać inne informacje z PDF.

Na przykład, możesz użyć .page_number, aby uzyskać numer strony.

print(first_page.page_number)

Output :

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.