Bu, Mayıs 2020'de Python3'te PDFminer altı kullanılarak çalışır.
Paketi kurmak
$ pip install pdfminer.six
Paketi içe aktarma
from pdfminer.high_level import extract_text
Diske kaydedilmiş bir PDF'yi kullanma
text = extract_text('report.pdf')
Veya alternatif olarak:
with open('report.pdf','rb') as f:
text = extract_text(f)
Zaten bellekte bulunan PDF'yi kullanma
PDF zaten bellekteyse, örneğin istek kitaplığıyla web'den alınırsa, io
kitaplık kullanılarak bir akışa dönüştürülebilir :
import io
response = requests.get(url)
text = extract_text(io.BytesIO(response.content))
PyPDF2 ile karşılaştırıldığında Performans ve Güvenilirlik
PDFminer.six, PyPDF2'den (belirli PDF türlerinde başarısız olur), özellikle de PDF sürüm 1.7'den daha güvenilir çalışır
Bununla birlikte, PDFminer.six ile metin çıkarma, PyPDF2'den 6 kat daha yavaştır.
Metin çıkarma işlemini timeit
15 "MBP (2018) ile, 10 sayfalık bir PDF ile yalnızca çıkarma işlevini (dosya açma vb.) Zamanlayarak zamanladım ve aşağıdaki sonuçları aldım:
PDFminer.six: 2.88 sec
PyPDF2: 0.45 sec
pdfminer.six ayrıca, Alpine Linux üzerinde 80 MB'den 350 MB'a kadar minimum yükleme docker imajını iterek GCC ve kurulu diğer şeylere ihtiyaç duyan pycryptodome gerektiren büyük bir ayak izine sahiptir. PyPDF2'nin gözle görülür bir depolama etkisi yoktur.