Я попробовал следующее в вашем PDF-файле, и, похоже, он извлекает много текста, я предполагаю, что он может быть не в лучшем макете, но я не могу сказать.
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
with open(path, 'rb') as fp:
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
caching = True
pagenos = set()
for page in PDFPage.get_pages(fp, pagenos, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
device.close()
retstr.close()
return text
print convert_pdf_to_txt("Electoral roll - Faizabad.pdf")
Он отображается как utf-8
, поэтому вы должны убедиться, что ваша консоль вывода способна отображать его.
Например:
भभग ससखखभककल मतदभतभ 11 1.रजजरभ आसशशकपपथममक ववददपलद रजजरप - सपमपनद779 420 359 0 779ननरभरचक नभमभरलल 2014 0S24उततर पददशवरधभन सभभ कदत कक ससखखभ ,नभम र आरकण सससनत:ललक सभभ कदत कक ससखखभ ,नभम र आरकण सससनत: 1 . पकनरलकण कभ वरररणपकनरलकण कभ ररर : 2014अहतभर कक नतथस: 01.01.2014पकनरलकण कभ सररप: ससककपत पकनरलकणपकभशन कक नतथस: 01.10.2013पकनरमकदण कक नतथस : 15.03.2014
Чтобы определить список используемых шрифтов, вы можете просто загрузить PDF-файл в программу чтения PDF-файлов, например Adobe Reader
или Foxit Reader
, и выбрать Properties
в меню «Файл». Отсюда вы сможете выбрать Fonts
. Когда я попробовал это с Foxit Reader
, он отобразил следующие шрифты:
Mangal-Bold
Arial
Mangal
Arial Bold
Times-New-Roman-Bold
person
Martin Evans
schedule
10.03.2016
pdfminer
дляpython2
илиpdfminer.six
для python3, как показано здесь: извлечение имени шрифта - person aspiring1   schedule 04.09.2019