Convertir un PDF en Différents Formats d'Image en Python

Vue d’ensemble

Cet article explique comment convertir un PDF en différents formats d’image en utilisant Python. Il couvre les sujets suivants.

Format d’image: TIFF

Format d’image: BMP

Format d’image: EMF

Format d’image: JPG

Format d’image: PNG

Format d’image: GIF

Format d’image: SVG

Python Convertir PDF en Image

Aspose.PDF pour Python utilise plusieurs approches pour convertir PDF en image. Généralement parlant, nous utilisons deux approches : la conversion en utilisant l’approche Device et la conversion en utilisant SaveOption. Cette section vous montrera comment convertir des documents PDF en formats d’image tels que BMP, JPEG, GIF, PNG, EMF, TIFF et SVG en utilisant l’une de ces approches.

Il existe plusieurs classes dans la bibliothèque qui vous permettent d’utiliser un dispositif virtuel pour transformer des images. DocumentDevice est orienté pour la conversion de l’ensemble du document, mais ImageDevice - pour une page particulière.

Convertir un PDF en utilisant la classe DocumentDevice

Aspose.PDF pour Python rend possible la conversion de Pages PDF en images TIFF.

La classe TiffDevice (basée sur DocumentDevice) vous permet de convertir des pages PDF en images TIFF. Cette classe fournit une méthode nommée process qui vous permet de convertir toutes les pages d’un fichier PDF en une seule image TIFF.

Convertir les pages PDF en une image TIFF

Aspose.PDF pour Python explique comment convertir toutes les pages d’un fichier PDF en une seule image TIFF :

Étapes : Convertir PDF en TIFF en Python

  1. Créez un objet de la classe Document.

  2. Créez des objets TiffSettings et TiffDevice.

  3. Appelez la méthode process pour convertir le document PDF en TIFF.

  4. Pour définir les propriétés du fichier de sortie, utilisez la classe TiffSettings.

Le snippet de code suivant montre comment convertir toutes les pages PDF en une seule image TIFF.


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_tiff.tiff"
    # Ouvrir le document PDF
    document = ap.Document(input_pdf)

    # Créer un objet Resolution
    resolution = ap.devices.Resolution(300)

    # Créer un objet TiffSettings
    tiffSettings = ap.devices.TiffSettings()
    tiffSettings.compression = ap.devices.CompressionType.LZW
    tiffSettings.depth = ap.devices.ColorDepth.DEFAULT
    tiffSettings.skip_blank_pages = False

    # Créer un dispositif TIFF
    tiffDevice = ap.devices.TiffDevice(resolution, tiffSettings)

    # Convertir une page particulière et enregistrer l'image dans le flux
    tiffDevice.process(document, output_pdf)

Convertir un PDF en utilisant la classe ImageDevice

ImageDevice est l’ancêtre de BmpDevice, JpegDevice, GifDevice, PngDevice et EmfDevice.

  • La classe BmpDevice vous permet de convertir des pages PDF en images BMP.

  • La classe EmfDevice vous permet de convertir des pages PDF en images EMF.

  • La classe JpegDevice vous permet de convertir des pages PDF en images JPEG.

  • La classe PngDevice vous permet de convertir des pages PDF en images PNG.

  • La classe GifDevice vous permet de convertir des pages PDF en images GIF.

Prenons un moment pour examiner comment convertir une page PDF en image.

La classe BmpDevice fournit une méthode nommée process qui vous permet de convertir une page particulière du fichier PDF au format image BMP. Les autres classes ont la même méthode. Ainsi, si nous avons besoin de convertir une page PDF en image, il suffit d’instancier la classe requise.

Les étapes suivantes et l’extrait de code en Python montrent cette possibilité

Étapes : PDF en Image (BMP, EMF, JPG, PNG, GIF) en Python

  1. Chargez le fichier PDF en utilisant la classe Document.
  2. Créez une instance de la sous-classe de ImageDevice c’est-à-dire
  3. Appelez la méthode ImageDevice.Process() pour effectuer la conversion de PDF en Image.

Convertir PDF en BMP


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_bmp"
    # Ouvrir le document PDF
    document = ap.Document(input_pdf)

    # Créer un objet Résolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.BmpDevice(resolution)

    for i in range(0, len(document.pages)):
        # Créer un fichier pour enregistrer
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.bmp", 'x'
        )
        # Convertir une page particulière et enregistrer l'image dans le flux
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Convertir PDF en EMF


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_emf"
    # Ouvrir le document PDF
    document = ap.Document(input_pdf)

    # Créer un objet Résolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.EmfDevice(resolution)

    for i in range(0, len(document.pages)):
        # Créer un fichier pour enregistrer
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.emf", 'x'
        )
        # Convertir une page particulière et enregistrer l'image dans le flux
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Convertir PDF en JPEG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_jpeg"
    # Ouvrir le document PDF
    document = ap.Document(input_pdf)

    # Créer un objet Résolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.JpegDevice(resolution)

    for i in range(0, len(document.pages)):
        # Créer un fichier pour enregistrer
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.jpeg", "x"
        )
        # Convertir une page particulière et enregistrer l'image dans le flux
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()  

Convertir PDF en PNG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_png"
    # Ouvrir le document PDF
    document = ap.Document(input_pdf)

    # Créer un objet Resolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.PngDevice(resolution)

    for i in range(0, len(document.pages)):
        # Créer un fichier pour enregistrer
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.png", 'x'
        )
        # Convertir une page particulière et enregistrer l'image dans le flux
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Convertir PDF en GIF


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_gif"
    # Ouvrir le document PDF
    document = ap.Document(input_pdf)

    # Créer un objet Resolution
    resolution = ap.devices.Resolution(300)

    device = ap.devices.GifDevice(resolution)

    for i in range(0, len(document.pages)):
        # Créer un fichier pour enregistrer
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.gif", 'x'
        )
        # Convertir une page particulière et enregistrer l'image dans le flux
        device.process(document.pages[i + 1], imageStream)
        # Fermer le flux
        imageStream.close()  

Convertir PDF en utilisant la classe SaveOptions

Cette partie de l’article vous montre comment convertir un PDF en SVG en utilisant Python et la classe SaveOptions.

Scalable Vector Graphics (SVG) est une famille de spécifications d’un format de fichier basé sur XML pour les graphiques vectoriels bidimensionnels, à la fois statiques et dynamiques (interactifs ou animés). La spécification SVG est une norme ouverte qui est en développement par le World Wide Web Consortium (W3C) depuis 1999.

Les images SVG et leurs comportements sont définis dans des fichiers texte XML. Cela signifie qu’ils peuvent être recherchés, indexés, scriptés et, si nécessaire, compressés. En tant que fichiers XML, les images SVG peuvent être créées et éditées avec n’importe quel éditeur de texte, mais il est souvent plus pratique de les créer avec des programmes de dessin tels qu’Inkscape.

Aspose.PDF pour Python prend en charge la fonctionnalité de conversion d’image SVG en format PDF et offre également la capacité de convertir des fichiers PDF en format SVG. Pour accomplir cette exigence, la classe SvgSaveOptions a été introduite dans l’espace de noms Aspose.PDF. Instanciez un objet SvgSaveOptions et passez-le comme deuxième argument à la méthode Document.Save().

Le fragment de code suivant montre les étapes pour convertir un fichier PDF en format SVG avec Python.

Étapes : Convertir un PDF en SVG en Python

  1. Créez un objet de la classe Document.
  2. Créez un objet SvgSaveOptions avec les paramètres nécessaires.
  3. Appelez la méthode Document.Save() et passez l’objet SvgSaveOptions pour convertir le document PDF en SVG.

Convertir PDF en SVG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_svg.svg"
    # Ouvrir le document PDF
    document = ap.Document(input_pdf)

    # Instancier un objet de SvgSaveOptions
    saveOptions = ap.SvgSaveOptions()

    # Ne pas compresser l'image SVG dans une archive Zip
    saveOptions.compress_output_to_zip_archive = False
    saveOptions.treat_target_file_name_as_directory = True

    # Enregistrer la sortie dans des fichiers SVG
    document.save(output_pdf, saveOptions)