Ini berfungsi pada Mei 2020 menggunakan PDFminer enam dengan Python3.
Menginstal paket
$ pip install pdfminer.six
Mengimpor paket
from pdfminer.high_level import extract_text
Menggunakan PDF yang disimpan di disk
text = extract_text('report.pdf')
Atau sebagai alternatif:
with open('report.pdf','rb') as f:
text = extract_text(f)
Menggunakan PDF yang sudah ada di memori
Jika PDF sudah ada di memori, misalnya jika diambil dari web dengan pustaka permintaan, itu bisa diubah menjadi aliran menggunakan io
pustaka:
import io
response = requests.get(url)
text = extract_text(io.BytesIO(response.content))
Kinerja dan Keandalan dibandingkan dengan PyPDF2
PDFminer.six bekerja lebih andal daripada PyPDF2 (yang gagal dengan jenis PDF tertentu), khususnya PDF versi 1.7
Namun, ekstraksi teks dengan PDFminer.six secara signifikan lebih lambat daripada PyPDF2 dengan faktor 6.
Saya menghitung waktu ekstraksi teks dengan timeit
15 "MBP (2018), hanya mengatur waktu fungsi ekstraksi (tidak ada pembukaan file, dll.) Dengan PDF 10 halaman dan mendapatkan hasil sebagai berikut:
PDFminer.six: 2.88 sec
PyPDF2: 0.45 sec
pdfminer.six juga memiliki footprint yang sangat besar, membutuhkan pycryptodome yang membutuhkan GCC dan hal-hal lain yang diinstal mendorong gambar instal docker minimal di Alpine Linux dari 80 MB menjadi 350 MB. PyPDF2 tidak memiliki dampak penyimpanan yang nyata.