Как добавить страницы PDF в PNG в Python с помощью imagemagick

Я хотел бы преобразовать многостраничный PDF в один PNG, что может быть достигнуто через CLI с convert in.pdf -append out%d.png per Конвертировать многостраничный PDF в одно изображение.

Могу ли я добиться того же в Python без выстрелов? В настоящее время у меня есть:

with Image(filename=pdf_file_path, resolution=150) as img:
    img.background_color = Color("white")
    img.alpha_channel = 'remove'
    img.save(filename=pdf_file_path[:-3] + "png")

1 ответ

Я не могу вспомнить, если MagickAppendImage был портирован на палочку, но вы должны быть в состоянии использовать wand.image.Image.composite,

from wand.image import Image

with Image(filename=pdf_file_path) as pdf:
    page_index = 0
    height = pdf.height
    with Image(width=pdf.width,
               height=len(pdf.sequence)*height) as png:
        for page in pdf.sequence:
            png.composite(page, 0, page_index * height)
            page_index += 1
        png.save(filename=pdf_file_path[:-3] + "png")
Другие вопросы по тегам