Convertir imagen a PDF con Python

2023-12-29 07:41:46

Convertir una imagen a PDF es una forma cómoda y eficaz de transformar un archivo visual en un formato portátil y de lectura universal. Ya sea que esté trabajando con un documento escaneado, una fotografía o una imagen digital, convertirlo a PDF ofrece numerosos beneficios. Mantiene la calidad original de la imagen y garantiza la compatibilidad entre diversos dispositivos y sistemas operativos. Además, convertir imágenes a PDF permite compartirlas, imprimirlas y archivarlas fácilmente, lo que la convierte en una solución versátil para diversos fines profesionales, educativos y personales. Este artículo proporciona varios ejemplos que le muestran cómo convertir imágenes a PDF usando Python.

API de conversión de PDF para Python

Si desea convertir archivos de imagen a formato PDF en una aplicación Python, Spire.PDF for Python puede ayudarle con esto. Le permite crear un documento PDF con configuraciones de página personalizadas (tamaño y márgenes), agregar una o más imágenes a cada página y guardar el documento final como un archivo PDF. Se admiten varios formatos de imágenes que incluyen imágenes PNG, JPEG, BMP y GIF.

Además de la conversión de imágenes a PDF, esta biblioteca admite la conversión de PDF a Word, PDF a Excel, PDF a HTML, PDF a PDF/A con alta calidad y precisión. Como biblioteca PDF de Python avanzada, también proporciona una API enriquecida para que los desarrolladores personalicen las opciones de conversión para cumplir con una variedad de requisitos de conversión.

Puede instalarlo ejecutando el siguiente comando pip.

pip install Spire.PDF

Pasos para convertir una imagen a PDF en Python

  • Inicialice la clase PdfDocument.
  • Cargue un archivo de imagen desde la ruta usando el método FromFile.
  • Agregue una página con el tamaño especificado al documento.
  • Dibuja la imagen en la página en la ubicación especificada usando el método DrawImage.
  • Guarde el documento en un archivo PDF utilizando el método SaveToFile.

Convertir una imagen en un documento PDF en Python

Este ejemplo de código convierte un archivo de imagen en un documento PDF usando la biblioteca Spire.PDF for Python creando un documento en blanco, agregando una página con las mismas dimensiones que la imagen y dibujando la imagen en la página.

  • 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

Convierta varias imágenes a un documento PDF en Python

Este ejemplo ilustra cómo convertir una colección de imágenes en un documento PDF usando Spire.PDF for Python. El siguiente fragmento de código lee imágenes de una carpeta específica, crea un documento PDF, agrega cada imagen a una página separada en el PDF y guarda el archivo PDF resultante.

  • 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

Cree un PDF a partir de varias imágenes personalizando los márgenes de página en Python

Este ejemplo de código crea un documento PDF y lo completa con imágenes de una carpeta específica, ajusta los márgenes de la página y guarda el documento resultante en un archivo.​

  • 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

Cree un PDF con varias imágenes por página en Python

Este código demuestra cómo utilizar la biblioteca Spire.PDF en Python para crear un documento PDF con dos imágenes por página. Las imágenes en este ejemplo tienen el mismo tamaño; si el tamaño de su imagen no es consistente, entonces deberá ajustar el código para lograr el resultado deseado. ​

  • 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

Conclusión

En esta publicación de blog, exploramos cómo usar Spire.PDF for Python para crear documentos PDF a partir de imágenes, que contienen una o más imágenes por página. Además, demostramos cómo personalizar el tamaño de la página PDF y los márgenes alrededor de las imágenes. Para obtener más tutoriales, consulte nuestra documentación en línea. Si tiene alguna pregunta, no dude en contactarnos por correo electrónico o en el foro.

Ver también