Невозможно прочитать данные изображения при преобразовании из PDF в изображение - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь преобразовать PDF в изображение, чтобы продолжить работу с Tesseract.Он работает, когда я конвертирую с использованием cmd:

magick convert a.pdf b.png

, но не работает, когда я пытаюсь сделать то же самое с помощью Python:

from wand.image import Image
with Image (filename='a.pdf') as img:
    img.save(filename = 'sample.png')`

Я получаю ошибку:

unable to read image data D:/Users/UserName/AppData/Local/Temp/magick-4908Cq41DDA5FxlX1 @ error/pnm.c/ReadPNMImage/1346

Я также установил ghostscipt, но ошибка все еще там.

РЕДАКТИРОВАТЬ:

Я взял код, указанный в ответе ниже, и изменил его, чтобы прочитать все страницы.Оригинальная проблема все еще там, и код ниже использует pdf2image:

from pdf2image import convert_from_path
import os
pdf_dir = "D:/Users/UserName/Desktop/scraping"
for pdf_file in os.listdir(pdf_dir):
    if pdf_file.endswith(".pdf"):
        pages = convert_from_path(pdf_file, 300)
        pdf_name = pdf_file[:-4]

        for page in pages:
            page.save("%s-page%d.jpg" % (pdf_name, pages.index(page)), "JPEG")

1 Ответ

0 голосов
/ 19 февраля 2019

Вместо использования wand.image вы можете использовать pdf2image.Установите его так:

pip install pdf2image

Вот код, который просматривает каждую страницу в PDF и, наконец, преобразует их в JPEG:

import os
import tempfile
from pdf2image import convert_from_path

filename = 'target.pdf'

with tempfile.TemporaryDirectory() as path:
     images_from_path = convert_from_path(filename, output_folder=path, last_page=1, first_page =0)

base_filename = os.path.splitext(os.path.basename(filename))[0] + '.jpg'     

save_dir = 'dir'

for page in images_from_path:
    page.save(os.path.join(save_dir, base_filename), 'JPEG')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...