Question

J'essaie d'utiliser Python pour convertir un fichier PDF de plusieurs pages en une série de fichiers JPEG. Je peux scinder le PDF en pages individuelles assez facilement avec les outils disponibles, mais je n’ai rien trouvé qui permette de convertir des PDF en images.

PIL ne fonctionne pas, car il ne peut pas lire les PDF. Les deux options que j'ai trouvées utilisent GhostScript ou ImageMagick via le shell. Ce n'est pas une option viable pour moi, car ce programme doit être multi-plateforme, et je ne peux pas être sûr que l'un ou l'autre de ces programmes sera disponible sur les machines sur lesquelles il sera installé et utilisé.

Existe-t-il des bibliothèques Python pouvant le faire?

Était-ce utile?

Autres conseils

Voici ce qui a fonctionné pour moi en utilisant le module python ghostscript (installé par '$ pip install ghostscript'):

import ghostscript

def pdf2jpeg(pdf_input_path, jpeg_output_path):
    args = ["pdf2jpeg", # actual value doesn't matter
            "-dNOPAUSE",
            "-sDEVICE=jpeg",
            "-r144",
            "-sOutputFile=" + jpeg_output_path,
            pdf_input_path]
    ghostscript.Ghostscript(*args)

J'ai également installé Ghostscript 9.18 sur mon ordinateur et cela n'aurait probablement pas fonctionné autrement.

Vous ne pouvez pas éviter la dépendance Ghostscript. Même Imagemagick s'appuie sur Ghostscript pour ses fonctions de lecture de PDF. La raison en est la complexité du format PDF: un fichier PDF ne contient pas seulement des informations bitmap, mais principalement des formes vectorielles, des transparences, etc. De plus, il est assez complexe de savoir lequel de ces objets apparaît sur quelle page.

Ainsi, le rendu correct d'une page PDF est clairement hors de portée pour une bibliothèque Python pure.

La bonne nouvelle est que Ghostscript est préinstallé sur de nombreux systèmes Windows et Linux, car il est également nécessaire pour toutes ces imprimantes PDF (à l'exception d'Adobe Acrobat).

Si vous utilisez Linux, certaines versions sont livrées avec un utilitaire de ligne de commande appelé "pdftopbm". Découvrez netpbm

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top