#python #pdf
Пытаюсь конвертировать кирилицу из 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 И другой вопрос: Если конвертировать стих, то после окончания строки на пустом месте выводится \n \n. Как избавиться от этих символов?
Ответы
Ответ 1
Можно воспользоваться 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 диапазоне.
Комментариев нет:
Отправить комментарий