Convertir une image en PDF avec Python

2023-12-29 07:38:55

La conversion d'une image en PDF est un moyen pratique et efficace de transformer un fichier visuel en un format portable et universellement lisible. Que vous travailliez avec un document numérisé, une photo ou une image numérique, sa conversion en PDF offre de nombreux avantages. Il conserve la qualité originale de l'image et garantit la compatibilité entre divers appareils et systèmes d'exploitation. De plus, la conversion d'images au format PDF permet un partage, une impression et un archivage faciles, ce qui en fait une solution polyvalente à diverses fins professionnelles, éducatives et personnelles. Cet article fournit plusieurs exemples vous montrant comment convertir des images en PDF en utilisant Python.

API de conversion PDF pour Python

Si vous souhaitez transformer des fichiers image au format PDF dans une application Python, Spire.PDF for Python peut vous aider. Il vous permet de créer un document PDF avec des paramètres de page personnalisés (taille et marges), d'ajouter une ou plusieurs images à chaque page et d'enregistrer le document final sous forme de fichier PDF. Diverses formes d'images sont prises en charge, notamment les images PNG, JPEG, BMP et GIF.

En plus de la conversion d'images en PDF, cette bibliothèque prend en charge la conversion de PDF en Word, PDF en Excel, PDF en HTML, PDF en PDF/A avec une qualité et une précision élevées. En tant que bibliothèque Python PDF avancée, elle fournit également une API riche permettant aux développeurs de personnaliser les options de conversion afin de répondre à diverses exigences de conversion.

Vous pouvez l'installer en exécutant la commande pip suivante.

pip install Spire.PDF

Étapes pour convertir une image en PDF en Python

  • Initialisez la classe PdfDocument.
  • Chargez un fichier image à partir du chemin à l’aide de la méthode FromFile.
  • Ajoutez une page avec la taille spécifiée au document.
  • Dessinez l'image sur la page à l'emplacement spécifié à l'aide de la méthode DrawImage.
  • Enregistrez le document dans un fichier PDF à l'aide de la méthode SaveToFile.

Convertir une image en document PDF en Python

Cet exemple de code convertit un fichier image en document PDF à l'aide de la bibliothèque Spire.PDF for Python en créant un document vierge, en ajoutant une page avec les mêmes dimensions que l'image et en dessinant l'image sur la page.

  • Python
from spire.pdf.common import *
from spire.pdf import *

# Create a PdfDocument object
doc = PdfDocument()

# Set the page margins to 0
doc.PageSettings.SetMargins(0.0)

# Load a particular image
image = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\Images\\img-1.jpg")

# Get the image width and height
width = image.PhysicalDimension.Width
height = image.PhysicalDimension.Height

# Add a page that has the same size as the image
page = doc.Pages.Add(SizeF(width, height))

# Draw image at (0, 0) of the page
page.Canvas.DrawImage(image, 0.0, 0.0, width, height)

# Save to file
doc.SaveToFile("output/ImageToPdf.pdf")
doc.Dispose()

Convert Image to PDF with Python

Convertir plusieurs images en un document PDF en python

Cet exemple illustre comment convertir une collection d'images en un document PDF à l'aide de Spire.PDF for Python. L'extrait de code suivant lit les images d'un dossier spécifié, crée un document PDF, ajoute chaque image à une page distincte du PDF et enregistre le fichier PDF résultant.

  • Python
from spire.pdf.common import *
from spire.pdf import *
import os

# Create a PdfDocument object
doc = PdfDocument()

# Set the page margins to 0
doc.PageSettings.SetMargins(0.0)

# Get the folder where the images are stored
path = "C:\\Users\\Administrator\\Desktop\\Images\\"
files = os.listdir(path)

# Iterate through the files in the folder
for root, dirs, files in os.walk(path):
    for file in files:

        # Load a particular image
        image = PdfImage.FromFile(os.path.join(root, file))

        # Get the image width and height
        width = image.PhysicalDimension.Width
        height = image.PhysicalDimension.Height

        # Add a page that has the same size as the image
        page = doc.Pages.Add(SizeF(width, height))

        # Draw image at (0, 0) of the page
        page.Canvas.DrawImage(image, 0.0, 0.0, width, height)

# Save to file
doc.SaveToFile('output/ImagesToPdf.pdf')
doc.Dispose()

Convert Image to PDF with Python

Créer un PDF à partir de plusieurs images en personnalisant les marges de page en Python

Cet exemple de code crée un document PDF et le remplit avec des images d'un dossier spécifié, ajuste les marges de la page et enregistre le document résultant dans un fichier.

  • Python
from spire.pdf.common import *
from spire.pdf import *
import os

# Create a PdfDocument object
doc = PdfDocument()

# Set the left, top, right, bottom page margin
doc.PageSettings.SetMargins(30.0, 30.0, 30.0, 30.0)

# Get the folder where the images are stored
path = "C:\\Users\\Administrator\\Desktop\\Images\\"
files = os.listdir(path)

# Iterate through the files in the folder
for root, dirs, files in os.walk(path):
    for file in files:

        # Load a particular image
        image = PdfImage.FromFile(os.path.join(root, file))

        # Get the image width and height
        width = image.PhysicalDimension.Width
        height = image.PhysicalDimension.Height

        # Specify page size
        size = SizeF(width + doc.PageSettings.Margins.Left + doc.PageSettings.Margins.Right, height + doc.PageSettings.Margins.Top+ doc.PageSettings.Margins.Bottom)

        # Add a page with the specified size
        page = doc.Pages.Add(size)

        # Draw image on the page at (0, 0)
        page.Canvas.DrawImage(image, 0.0, 0.0, width, height)

# Save to file
doc.SaveToFile('output/CustomizeMargins.pdf')
doc.Dispose()

Convert Image to PDF with Python

Créer un PDF avec plusieurs images par page en Python

Ce code montre comment utiliser la bibliothèque Spire.PDF en Python pour créer un document PDF avec deux images par page. Les images de cet exemple ont la même taille, si la taille de votre image n'est pas cohérente, vous devez alors ajuster le code pour obtenir le résultat souhaité.

  • Python
from spire.pdf.common import *
from spire.pdf import *
import os

# Create a PdfDocument object
doc = PdfDocument()

# Set the left, top, right, bottom page margins
doc.PageSettings.SetMargins(15.0, 15.0, 15.0, 15.0)

# Get the folder where the images are stored
path = "C:\\Users\\Administrator\\Desktop\\Images\\"
files = os.listdir(path)

# Iterate through the files in the folder
for root, dirs, files in os.walk(path):

    for i in range(len(files)):

        # Load a particular image
        image = PdfImage.FromFile(os.path.join(root, files[i]))

        # Get the image width and height
        width = image.PhysicalDimension.Width
        height = image.PhysicalDimension.Height

        # Specify page size
        size = SizeF(width + doc.PageSettings.Margins.Left + doc.PageSettings.Margins.Right, height*2 + doc.PageSettings.Margins.Top+ doc.PageSettings.Margins.Bottom + 15.0)

        if i % 2 == 0:

            # Add a page with the specified size
            page = doc.Pages.Add(size)

            # Draw first image on the page at (0, 0)
            page.Canvas.DrawImage(image, 0.0, 0.0, width, height)
        else :

            # Draw second image on the page at (0, height + 15)
            page.Canvas.DrawImage(image, 0.0, height + 15.0, width, height)

# Save to file
doc.SaveToFile('output/SeveralImagesPerPage.pdf')
doc.Dispose()

Convert Image to PDF with Python

Conclusion

Dans cet article de blog, nous avons expliqué comment utiliser Spire.PDF for python pour créer des documents PDF à partir d'images, contenant une ou plusieurs images par page. De plus, nous avons montré comment personnaliser la taille de la page PDF et les marges autour des images. Pour plus de tutoriels, veuillez consulter notre documentation en ligne. Si vous avez des questions, n'hésitez pas à nous contacter par email ou sur le forum.

Voir également