Страницы

Поиск по вопросам

суббота, 27 апреля 2019 г.

Конвертировать текст на русском из pdf в txt python

Пытаюсь конвертировать кирилицу из 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 диапазоне.

Комментариев нет:

Отправить комментарий