""" Fabrique à documents Copyright (C) 2023 François Pelletier This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . """ import os from wand.color import Color from wand.image import Image def convert_pdf(filename, filetype, output_path, resolution=300): """ Convert a PDF into images. All the pages will give a single png file with format: {pdf_filename}-{page_number}.png The function removes the alpha channel from the image and replace it with a white background. """ all_pages = Image(filename=filename, resolution=resolution) for i, page in enumerate(all_pages.sequence): with Image(page) as img: img.format = filetype img.background_color = Color('white') img.alpha_channel = 'remove' image_filename = os.path.splitext(os.path.basename(filename))[0] image_filename = f'{image_filename}-{i:03}.{filetype}' image_filename = os.path.join(output_path, image_filename) img.save(filename=image_filename)