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
- PyPDF2:n käyttäminen PDF:n tekstin poimimiseen
- 1. Asenna paketti
- 2. Tuo PyPDF2
- 3. Avaa PDF-tiedosto lukubinääritilassa
- 4. Avaa PDF-tiedosto lukubinääritilassa. Käytä PyPDF2.PdfFileReader() metodia tekstin lukemiseen
- Täydellinen koodi PDF-tekstin lukemiseen PyPDF2:lla
- PDFplumberin käyttäminen tekstin poimimiseen
- 1. Asenna paketti
- 2. Tuodaan pdfplumber
- 3. Tuodaan PDFplumber. PDFplumberin käyttäminen pdf-tiedostojen lukemiseen
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
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
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 :