Пытаюсь конвертировать кирилицу из pdf в txt c помощью PyPDF2 в Python
import PyPDF2
pdf_file = open('mail_cir.pdf', 'rb')
read_pdf = PyPDF2.PdfFileReader(pdf_file)
number_of_pages = read_pdf.getNumPages()
page = read_pdf.getPage(0)
page_content = page.extractText()
print (page_content.encode('utf-8'))
Ошибки не выдает, но и текст не видит.
Пыталась изменить:
pdf_file = codecs.open('mail_cir.pdf', 'rb', encoding='utf-8')
Тогда выдается ошибка:
TypeError: Can't convert 'bytes' object to str implicitly
И другой вопрос:
Если конвертировать стих, то после окончания строки на пустом месте выводится
. Как избавиться от этих символов?
Ответ
Можно воспользоваться PDFMiner, чтобы текст, включающий русские буквы, из pdf достать:
#!/usr/bin/env python
import sys
import pdfminer.high_level # $ pip install pdfminer.six
with open('mail_cir.pdf', 'rb') as file:
pdfminer.high_level.extract_text_to_fp(file, sys.stdout)
pdf2txt.py показывает как эта функция может быть использована—можно много опций передать.
Ввод (в pdf)
English 🇬🇧
На русском 🇷🇺
Smiley: ☺
non-BMP smiley: 😂
Вывод (текст в консоли)
English На русском Smiley: ☺non-BMP smiley:
Русский текст нормально извлёкся, но non-BMP смайлик 😂 (U+1F602) и флаги 🇬🇧 (U+1F1EC U+1F1E7), 🇷🇺 (U+1F1F7 U+1F1FA) потерялись при конвертации.
Код с PyPDF2, похожий на приведённый в вопросе, смог извлечь только символы в ASCII диапазоне.
Комментариев нет:
Отправить комментарий