A PDF fájlok a szöveg megosztásának gyakori módja. A PDF a Portable Document Format (hordozható dokumentumformátum) rövidítése, és a .pdf fájlkiterjesztést használja. Az Adobe Systems hozta létre az 1990-es évek elején.
A PDF-dokumentumok python segítségével történő olvasása számos feladat automatizálását segítheti.
Ezzel a bemutatóval megtanuljuk, hogyan lehet szöveget kinyerni egy PDF-fájlból Pythonban.
Lássunk hozzá.
- Szöveg olvasása és kivonása egy PDF-fájlból Pythonban
- PyPDF2 használata PDF-szöveg kivonására
- 1. Telepítse a csomagot
- 2. Importáld a PyPDF2-t
- 3. Nyissuk meg a PDF-et read-binary módban
- 4. Nyissuk meg a PDF-et read-binary módban. A PyPDF2.PdfFileReader() segítségével olvassuk be a szöveget
- Teljes kód a PDF szöveg beolvasásához a PyPDF2 segítségével
- A PDFplumber használata a szöveg kivonására
- 1. Telepítsük a csomagot
- 2. Importáljuk a pdfplumber-t
- 3. Importáljuk a PDFplumber-t a következő kódsorral. PDFplumber használata pdf-ek olvasására
Szöveg olvasása és kivonása egy PDF-fájlból Pythonban
Ez oktatóanyag céljaira egy 2 oldalas minta PDF-et készítünk. Ezt bármelyik szövegszerkesztő programmal, például a Microsoft Word vagy a Google Dokumentumok segítségével megtehetjük, és a fájlt PDF-ként menthetjük el.
Text az 1. oldalon:
Hello World. This is a sample PDF with 2 pages. This is the first page.
Text a 2. oldalon:
This is the text on Page 2.
PyPDF2 használata PDF-szöveg kivonására
A PyPDF2 segítségével kivonhatunk szöveget egy PDF-ből. Lássuk, hogyan működik.
1. Telepítse a csomagot
A PyPDF2 telepítéséhez a rendszerére írja be a következő parancsot a terminálon. A pip csomagkezelőről bővebben olvashatsz.
pip install pypdf2
2. Importáld a PyPDF2-t
Nyiss egy új python notebookot és kezdd a PyPDF2 importálásával.
import PyPDF2
3. Nyissuk meg a PDF-et read-binary módban
Kezdjük a PDF megnyitását read-binary módban a következő kódsorral:
pdf = open('sample_pdf.pdf', 'rb')
Ezzel létrehozunk egy PdfFileReader objektumot a PDF-ünkhöz, és a ‘pdf’ változóban tároljuk.
4. Nyissuk meg a PDF-et read-binary módban. A PyPDF2.PdfFileReader() segítségével olvassuk be a szöveget
Most a PyPDF2 PdfFileReader() metódusát használhatjuk a fájl beolvasásához.
pdfReader = PyPDF2.PdfFileReader(pdf)
A szöveg kinyeréséhez a PDF első oldaláról a következő kódsorokat használjuk:
page_one = pdfReader.getPage(0)print(page_one.extractText())
A kimenetet így kapjuk:
Hello World. !This is a sample PDF with 2 pages. !This is the first page. !Process finished with exit code 0
Az oldal objektumként való tárolásához itt a getPage metódust használtuk. Ezután az extractText() metódust használtuk a szöveg kinyeréséhez az oldalobjektumból.
A kapott szöveg String típusú.
Hasonlóképpen a második oldal PDF-ből való kinyeréséhez használjuk:
page_one = pdfReader.getPage(1)print(page_one.extractText())
A kimenetként a :
This is the text on Page 2.
Teljes kód a PDF szöveg beolvasásához a PyPDF2 segítségével
A teljes kód ebből a szakaszból az alábbiakban található:
import PyPDF2pdf = open('sample_pdf.pdf', 'rb')pdfReader = PyPDF2.PdfFileReader(pdf)page_one = pdfReader.getPage(0)print(page_one.extractText())
Ha észreveszed, az első oldal formázása egy kicsit eltér a fenti kimeneten. Ez azért van, mert a PyPDF2 nem túl hatékony a PDF-ek olvasásában.
A Python szerencsére rendelkezik egy jobb alternatívával a PyPDF2 helyett. Ezt fogjuk megnézni a következőkben.
A PDFplumber használata a szöveg kivonására
A PDFplumber egy másik eszköz, amely képes szöveget kivonni egy PDF-ből. A PyPDF2-hez képest nagyobb teljesítményű.
1. Telepítsük a csomagot
Kezdjük el a PDFplumber telepítését.
pip install pdfplumber
2. Importáljuk a pdfplumber-t
Kezdjük a PDFplumber importálásával a következő kódsorral :
import pdfplumber
3. Importáljuk a PDFplumber-t a következő kódsorral. PDFplumber használata pdf-ek olvasására
A PDFplumber használatával a következő kódrészlettel kezdhetjük el a PDF-ek olvasását:
with pdfplumber.open("sample_pdf.pdf") as pdf: first_page = pdf.pages print(first_page.extract_text())
Ez a PDF-ünk első oldalának szövegét fogja megkapni. A kimenet így jön:
Hello World. This is a sample PDF with 2 pages. This is the first page. Process finished with exit code 0
Ezt összehasonlíthatjuk a PyPDF2 kimenetével, és láthatjuk, hogy a PDFplumber mennyivel jobb a formázás tekintetében.
A PDFplumber lehetőséget ad arra is, hogy más információkat is kinyerjünk a PDF-ből.
A .page_number segítségével például megkaphatja az oldalszámot.
print(first_page.page_number)
Kimenet :