#python #pymupdf #text-decoding
#python #pymupdf #декодирование текста
Вопрос:
Я хочу извлечь текст PDF и использовать некоторые регулярные выражения для фильтрации информации.
Я пишу на Python 3.7.4, используя fitz для синтаксического анализа pdf. PDF-файл написан на немецком языке. Мой код выглядит следующим образом:
doc = fitz.open(pdfpath)
pagecount = doc.pageCount
page = 0
content = ""
while (page < pagecount):
p = doc.loadPage(page)
page = 1
content = content p.getText()
Распечатав содержимое, я понял, что первая (и важная) половина документа декодируется как странная смесь японских (?) знаков и других, вроде этого: ョ。オウキ・ゥエオョァ@ュ
.
Я пытался решить ее с помощью разных декодирований (latin-1, iso-8859-1), кодировка определенно в utf-8.
content= content p.getText().encode("utf-8").decode("utf-8")
Я также пытался получить текст с помощью minecart:
import minecart
file = open(pdfpath, 'rb')
document = minecart.Document(file)
for page in document.iter_pages():
for lettering in page.letterings :
print(lettering)
что приводит к той же проблеме.
При использовании textract первая половина является пустой строкой:
import textract
text = textract.process(pdfpath)
print(text.decode('utf-8'))
То же самое с PyPDF2:
import PyPDF2
pdfFileObj = open(pdfpath, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for index in range(0, pdfReader.numPages) :
pageObj = pdfReader.getPage(index)
print(pageObj.extractText())
Я не понимаю проблему, поскольку это выглядит как обычный PDF с обычным текстом. Также у некоторых PDF-файлов этой проблемы нет.
Комментарии:
1. можете ли вы включить ссылку на образец pdf.
2. К сожалению, мне не разрешено из-за правил защиты данных, но первая половина содержит текст в формате таблицы, вторая половина — изображения с описаниями