PDF-tiedostot ovat yleinen tapa jakaa tekstiä. PDF on lyhenne sanoista Portable Document Format ja siinä käytetään .pdf-tiedostopäätettä. Sen loi 1990-luvun alussa Adobe Systems.

PDF-dokumenttien lukeminen pythonilla voi auttaa sinua automatisoimaan monenlaisia tehtäviä.

Tässä opetusohjelmassa opimme poimimaan tekstiä PDF-tiedostosta Pythonilla.

Aloitetaan.

Tekstin lukeminen ja poimiminen PDF-tiedostosta Pythonilla

Tässä opetusohjelmassa luomme esimerkin PDF-tiedostosta, jossa on 2 sivua. Voit tehdä sen millä tahansa tekstinkäsittelyohjelmalla, kuten Microsoft Word tai Google Docs, ja tallentaa tiedoston PDF-tiedostona.

Teksti sivulla 1:

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

Teksti sivulla 2:

This is the text on Page 2. 

PyPDF2:n käyttäminen PDF:n tekstin poimimiseen

Tekstin poimimiseen PDF:stä voit käyttää PyPDF2:ta. Katsotaanpa miten se toimii.

1. Asenna paketti

Asenna PyPDF2 järjestelmääsi kirjoittamalla terminaaliin seuraava komento. Voit lukea lisää pip-paketinhallinnasta.

pip install pypdf2
Pypdf
Pypdf

2. Tuo PyPDF2

Avaa uusi python-vihko ja aloita PyPDF2:n tuonti.

import PyPDF2

3. Avaa PDF-tiedosto lukubinääritilassa

Aloita avaamalla PDF-tiedosto lukubinääritilassa seuraavalla koodirivillä:

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

Tämä luo PdfFileReader-olion PDF-tiedostollemme ja tallentaa sen muuttujaan ’pdf’.

4. Avaa PDF-tiedosto lukubinääritilassa. Käytä PyPDF2.PdfFileReader() metodia tekstin lukemiseen

Nyt voit käyttää PyPDF2:n PdfFileReader() metodia tiedoston lukemiseen.

pdfReader = PyPDF2.PdfFileReader(pdf)

Tekstin saamiseksi PDF-tiedoston ensimmäiseltä sivulta käytetään seuraavia koodirivejä:

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

Tulosteen saamme seuraavasti:

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

Tässä käytimme getPage-metodia sivun tallentamiseen objektina. Sitten käytimme extractText()-metodia saadaksemme tekstin sivuobjektista.

Hankkimamme teksti on tyyppiä String.

Toisella tavalla saadaksemme toisen sivun PDF:stä käytämme:

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

Tulosteen saamme muodossa :

This is the text on Page 2. 

Täydellinen koodi PDF-tekstin lukemiseen PyPDF2:lla

Kokonaiskoodi tästä osiosta on alla:

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

Jos huomaat, ensimmäisen sivun muotoilu on hieman pielessä yllä olevassa tulosteessa. Tämä johtuu siitä, että PyPDF2 ei ole kovin tehokas PDF-tiedostojen lukemisessa.

Onneksi Pythonilla on parempi vaihtoehto PyPDF2:lle. Katsomme sitä seuraavaksi.

PDFplumberin käyttäminen tekstin poimimiseen

PDFplumber on toinen työkalu, jolla voi poimia tekstiä PDF-tiedostosta. Se on tehokkaampi verrattuna PyPDF2:een.

1. Asenna paketti

Aloitetaan asentamalla PDFplumber.

pip install pdfplumber
Pdfplumber
Pdfplumber

2. Tuodaan pdfplumber

Aloitetaan PDFplumberin tuonti seuraavalla koodirivillä :

import pdfplumber

3. Tuodaan PDFplumber. PDFplumberin käyttäminen pdf-tiedostojen lukemiseen

Voit aloittaa PDF-tiedostojen lukemisen PDFplumberin avulla seuraavalla koodinpätkällä:

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

Tällöin saat tekstin PDF-tiedostomme ensimmäiseltä sivulta. Tulosteeksi tulee:

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

Voit verrata tätä PyPDF2:n tulosteeseen ja nähdä, miten PDFplumber on parempi muotoilun suhteen.

PDFplumber tarjoaa myös vaihtoehtoja muiden tietojen saamiseksi PDF-tiedostosta.

Voit esimerkiksi käyttää .page_number-tiedostoa sivunumeron saamiseksi.

print(first_page.page_number)

Tulostus :

Vastaa

Sähköpostiosoitettasi ei julkaista.