я нашел и (немного) изменить этот сценарий в StackOverflow для того, чтобы работать на Python 3.3:предупреждения о pdfminer
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
def convert_pdf(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
fp = open(path, 'rb')
process_pdf(rsrcmgr, device, fp)
fp.close()
device.close()
string = retstr.getvalue()
retstr.close()
return string
print(convert_pdf('abc.pdf'))
Он отлично работает, но я, кажется, возникли 2 вопроса:
Во время работы скрипта я получаю тонны предупреждений:
ВНИМАНИЕ: корень не определено: PDFCIDFont: BASEFONT = 'LKOELN + Wingdings-Regular', cidcoding = 'Adobe-идентичность', 139
ВНИМАНИЕ: корень не определено: PDFCIDFont: BASEFONT = 'LKKPCF + Wingdings2', cidcoding = 'Adobe-идентичность', 132
Что в печатном тексте выглядит (cid:139)
, как я ловлю эти предупреждения и заменить этот текст с чем-то еще?
Обратите внимание, что у меня есть кодек линию, которая в оригинальном сценарии идет внутри
TextConverter(rsrcmgr, retstr, laparams=laparams)
, однако я получаю:Traceback (самый последний вызов последнего): Файл «C:/Users/Rodrigo /Desktop/csp_pdf/csp_pdf2.py ", строка 46, в convert_pdf ('abc.pdf') Файл« C: /Users/rodrigo/Desktop/csp_pdf/csp_pdf2.py », строка 33, в convert_pdf device = TextConverter (rsrcmgr, retstr, codec = 'utf-8', laparams = laparams) ТипError: init() получил неожиданное ключевое слово аргумент 'codec'
Это связано с первым выпуском?
Спасибо!