Saltar al pie de página
USANDO IRONPDF FOR PYTHON

Cómo Crear Archivos PDF con Texto e Imágenes en Python

En este día y edad digital, la necesidad de generar documentos PDF con contenido dinámico, incluyendo texto e imágenes, es un requisito común. Python es un lenguaje de programación popular que facilita la automatización de procesos rutinarios para ahorrar tiempo y energía. Tener una biblioteca versátil para crear archivos PDF con texto e imágenes en Python puede ser muy útil para la generación automática de informes, recibos o facturas. IronPDF, una versátil biblioteca en Python, simplifica el proceso de crear PDFs con contenido enriquecido.

En este artículo, exploraremos cómo usar IronPDF para generar PDFs que incluyan tanto texto como imágenes en un proyecto de Python.

Cómo crear archivos PDF con texto e imágenes en Python

  1. Instala la biblioteca IronPDF for Python
  2. Instanciación de ChromePdfRenderer
  3. Añadir contenido de texto
  4. Agregar imagen como datos binarios
  5. Crear cadena HTML con texto e imágenes
  6. Renderizar HTML a PDF usando RenderHtmlAsPdf
  7. Guardar archivo PDF usando el método SaveAs

Introducción a IronPDF

IronPDF es una biblioteca rica en funciones for Python que proporciona a los desarrolladores herramientas poderosas para crear, manipular y procesar documentos PDF. Con IronPDF, puede incorporar fácilmente texto, imágenes, tablas y otros elementos en sus PDFs, lo que lo convierte en un activo valioso para una amplia gama de aplicaciones, desde la generación de informes hasta la creación de documentos.

Cómo crear archivos PDF con texto e imágenes en Python: Figura 1 - IronPDF for Python: la biblioteca PDF de Python

Características clave de IronPDF:

  • Integración sencilla: IronPDF se integra sin problemas con entornos de desarrollo populares de Python, lo que lo hace accesible para los desarrolladores que usan herramientas como PyCharm.
  • Soporte para texto enriquecido: Soporta el formato de texto enriquecido, permitiendo a los desarrolladores crear documentos PDF visualmente atractivos con facilidad.
  • Manejo de imágenes: IronPDF permite la inclusión de imágenes en PDFs, proporcionando flexibilidad en el diseño y personalización de documentos.
  • Compatibilidad multiplataforma: IronPDF funciona en diferentes plataformas, asegurando que los PDFs generados puedan ser visualizados e interactuados de manera consistente.

Requisitos previos

Antes de sumergirse en el proceso de creación de documentos PDF usando IronPDF, asegúrese de tener los siguientes requisitos previos:

  1. Python instalado: Python necesita estar instalado en su computadora. Puedes descargar e instalar la última versión desde el sitio web oficial de Python (https://www.python.org/]).
  2. IDE PyCharm: Use PyCharm o cualquier otro IDE de Python de su elección. PyCharm es un entorno de desarrollo integrado popular que proporciona un espacio de trabajo cómodo para el desarrollo en Python.
  3. IronPDF: Biblioteca IronPDF descargada de aquí o instalada usando PIP (Gestor de Paquetes de Python). También se requiere el runtime de Microsoft .NET para usar funcionalidad IronPDF exitosamente. Los usuarios de Linux, Mac y Windows pueden descargar la versión .NET 6.0 usando este enlace de descarga.

Crear un proyecto de Python en PyCharm

Una vez que se cumplen los requisitos previos, abra PyCharm y cree un nuevo proyecto de Python. Configure un entorno virtual para su proyecto para gestionar dependencias de manera efectiva.

  1. Haga clic en Archivo > Nuevo Proyecto.
  2. En la ventana "Nuevo Proyecto":
    • Ingrese un nombre para su proyecto en el campo "Ubicación".
    • Elija la ubicación donde desea guardar los archivos de su proyecto.
  3. Bajo "Interprete del Proyecto", seleccione el intérprete de Python. Detectará automáticamente el intérprete de Python si ha instalado Python.
  4. Elija el tipo de proyecto. Para un proyecto simple en Python, puede quedarse con la configuración predeterminada.

    Cómo Crear Archivos PDF con Texto e Imágenes en Python: Figura 2 - Abrir el IDE PyCharm. Ir al menú Archivo - haga clic en Nuevo Proyecto. Ingrese el nombre y la ubicación para su proyecto Python. Luego, seleccione el intérprete Python bajo Interprete del Proyecto. Haga clic en el botón Crear para crear el proyecto. Una vez creado el proyecto Python, abra un nuevo archivo python y úselo para escribir código para generar archivos PDF usando IronPDF.

  5. Haga clic en Crear para crear el proyecto.
  6. Abra un nuevo archivo python y guárdelo para escribir código para generar archivos PDF usando la biblioteca Python - IronPDF.

Instalar IronPDF for Python usando PIP

Para instalar IronPDF, use el siguiente comando de PIP en el terminal de su proyecto o en el símbolo del sistema:

 pip install ironpdf

Este comando descargará e instalará automáticamente la biblioteca IronPDF junto con sus dependencias.

Cómo crear archivos PDF con texto e imágenes en Python: Figura 3 - Para instalar IronPDF, utilice el siguiente comando en la terminal o en el símbolo del sistema de su proyecto: pip install IronPDF

Creación de un PDF sencillo con texto e imágenes

Recorramos los pasos para crear un documento de página única en PDF que incluya tanto texto como imágenes usando IronPDF:

Paso 1: Importar IronPDF

En este paso, importamos todos los módulos necesarios de IronPDF. Importamos ChromePdfRenderer para renderizar PDFs y base64 para la codificación de datos de imagen.

from ironpdf import ChromePdfRenderer
import base64
from ironpdf import ChromePdfRenderer
import base64
PYTHON

Paso 2: Instanciar ChromePdfRenderer

Aquí crearemos una instancia de ChromePdfRenderer, que se usará para renderizar el contenido HTML en un PDF.

# Instantiate Renderer
renderer = ChromePdfRenderer()
# Instantiate Renderer
renderer = ChromePdfRenderer()
PYTHON

Paso 3: Añadir contenido de texto

En este paso, definiremos una cadena HTML (html_content) que incluye la estructura del documento HTML, incluyendo el encabezado, cuerpo y una sección con contenido de texto que luego se convierten en un único archivo PDF. Se usa el estilo CSS para posicionar el texto y la imagen.

# HTML String with Text 
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PDF Generation Example</title>
    <style>
        body {
            margin: 0; /* Remove default margin */
            padding: 20px; /* Add padding for better visibility */
            position: relative; /* Set the body as a relative position */
        }
        header {
            text-align: center;
        }
        section {
            margin-top: 20px; /* Add margin to separate sections */
        }
        img {
            position: absolute;
            top: 20px; /* Adjust the top position */
            right: 20px; /* Adjust the right position */
        }
    </style>
</head>
<body>
    <header>
        <h1>PDF Generation Example</h1>
    </header>
    <section id="contentSection">
        <h2>Text and Image in PDF</h2>
        <p>This PDF includes both text and an embedded image:</p>
        <p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
# HTML String with Text 
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PDF Generation Example</title>
    <style>
        body {
            margin: 0; /* Remove default margin */
            padding: 20px; /* Add padding for better visibility */
            position: relative; /* Set the body as a relative position */
        }
        header {
            text-align: center;
        }
        section {
            margin-top: 20px; /* Add margin to separate sections */
        }
        img {
            position: absolute;
            top: 20px; /* Adjust the top position */
            right: 20px; /* Adjust the right position */
        }
    </style>
</head>
<body>
    <header>
        <h1>PDF Generation Example</h1>
    </header>
    <section id="contentSection">
        <h2>Text and Image in PDF</h2>
        <p>This PDF includes both text and an embedded image:</p>
        <p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
PYTHON

Paso 4: Añadir imagen

Aquí, abriremos y leeremos un archivo de imagen (IronPDF-logo.png) en modo binario, lo convertiremos a un URI de datos codificado en base64 y lo incrustaremos en la cadena HTML. La imagen se posiciona luego usando estilos CSS para aparecer en la esquina superior derecha.

# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
    pngBinaryData = f.read()
    imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
    imgHtml = f"""
        <img src='{imgDataUri}' width=100px height=100px
            alt="IronPDF Logo">
    </section>
</body>
</html>
"""
# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
    pngBinaryData = f.read()
    imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
    imgHtml = f"""
        <img src='{imgDataUri}' width=100px height=100px
            alt="IronPDF Logo">
    </section>
</body>
</html>
"""
PYTHON

Paso 5: Unir cadena HTML de texto e imagen

Este paso concatena las cadenas HTML de texto e imagen para crear el contenido HTML completo (full_html_content) que se renderizará en un archivo de salida PDF.

full_html_content = html_content + imgHtml
full_html_content = html_content + imgHtml
PYTHON

Paso 6: Convertir el contenido HTML en un archivo PDF

Aquí, el método RenderHtmlAsPdf se utiliza para convertir el HTML en PDF usando el ChromePdfRenderer.

# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
PYTHON

Paso 7: Guardar archivo PDF

Finalmente, el PDF resultante se guarda como "output_with_text_and_image_top_right.pdf". Este archivo contendrá el texto formateado y la imagen incorporada posicionada en la esquina superior derecha.

# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
PYTHON

Documento PDF de salida

Ahora después de ejecutar el programa, el archivo PDF de salida es el siguiente:

Cómo crear archivos PDF con texto e imágenes en Python: Figura 4 - RESULTADO: output_with_text_and_image_top_right.pdf

De manera similar, se pueden agregar múltiples páginas PDF a un archivo PDF con facilidad.

Uso avanzado: Personalización de la colocación de texto e imágenes

IronPDF proporciona características adicionales para afinar la colocación y el estilo de texto e imágenes dentro del PDF usando un archivo CSS/JavaScript externo. La ruta base se puede enviar como un argumento opcional al método RenderHtmlAsPdf como se demuestra en el siguiente código:

# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from.
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from.
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
PYTHON

En este ejemplo de código avanzado, estamos llevando el concepto de incrustar una imagen más allá a través de fuentes externas. El contenido HTML dentro del método RenderHtmlAsPdf incluye una etiqueta  related to Uso avanzado: Personalización de la colocación de texto e imágenesseñalando un archivo de imagen (iron.png) ubicado en el directorio de activos especificado (C:\site\assets\). Además, este directorio se establece como el parámetro BasePath.

En RenderHtmlAsPdf puede enviar una página web HTML completa como se muestra en los pasos anteriores. El archivo CSS puede ser referenciado usando la ruta base como segundo parámetro opcional. Para obtener información más detallada sobre otras formas de generar formato PDF o modificar un archivo PDF existente, por favor visite los ejemplos de código y la página de documentación.

Conclusión

En este artículo, exploramos cómo usar IronPDF para crear archivos PDF con texto e imágenes en un proyecto Python. Con su API intuitiva y características poderosas, IronPDF empodera a los desarrolladores para generar documentos PDF dinámicos y visualmente atractivos sin esfuerzo. Ya sea que esté creando informes, documentación u otro tipo de contenido, IronPDF proporciona una solución confiable y flexible para la generación de PDF en Python. Experimente con las opciones de personalización para adaptar sus PDFs a requisitos de diseño específicos, convirtiendo a IronPDF en una herramienta valiosa para sus necesidades de generación de documentos.

Licencia de IronPDF license o puede contactar soporte para consultas adicionales.

Cómo crear archivos PDF con texto e imágenes en Python: Figura 5 - Información sobre la licencia de IronPDF for Python

Puede descargar e instalar la biblioteca desde el sitio web de IronPDF.

Preguntas Frecuentes

¿Cómo puedo crear un PDF con texto e imágenes utilizando Python?

Puedes utilizar IronPDF ChromePdfRenderer para crear un PDF con texto e imágenes en Python. En primer lugar, instala la biblioteca IronPDF y, a continuación, crea una cadena HTML con el contenido deseado. Utiliza el RenderHtmlAsPdf para convertir el HTML en un PDF y, por último, guarda el PDF utilizando el SaveAs método.

¿Cuáles son los pasos para instalar la biblioteca PDF para su uso en Python?

Para instalar la biblioteca IronPDF for Python, puedes utilizar el gestor de paquetes PIP. Ejecuta el comando pip install ironpdf en la línea de comandos o en el terminal para descargar e instalar la biblioteca junto con sus dependencias.

¿Qué requisitos previos se necesitan para utilizar una biblioteca de creación de PDF en Python?

Necesitarás tener Python instalado en tu equipo, un IDE como PyCharm para el desarrollo y la biblioteca IronPDF. Además, IronPDF requiere el entorno de ejecución Microsoft .NET para funcionar.

¿Es posible personalizar archivos PDF utilizando CSS o JavaScript externos con bibliotecas de Python?

Sí, IronPdf te permite utilizar archivos CSS y JavaScript externos para personalizar el diseño y la maquetación de tus archivos PDF. Esta función ofrece opciones avanzadas de personalización para la colocación de texto e imágenes.

¿Es compatible la biblioteca PDF Python con diferentes plataformas?

IronPDF está diseñado para ser compatible con múltiples plataformas, lo que garantiza que los archivos PDF que generes se puedan ver y manejar de forma coherente en diferentes sistemas operativos.

¿Por qué se utiliza la codificación base64 para las imágenes en la generación de PDF con Python?

La codificación Base64 se utiliza para convertir los datos binarios de las imágenes a un formato de cadena que se puede incrustar directamente en HTML. Esto permite incluir imágenes en el PDF sin tener que hacer referencia a archivos externos.

¿Cuáles son las características principales de IronPDF for Python?

IronPDF ofrece características como una fácil integración con entornos Python, compatibilidad con texto enriquecido e imágenes, y compatibilidad multiplataforma. Estas características lo convierten en una herramienta versátil para generar archivos PDF con contenido dinámico.

¿Cómo puede IronPDF ayudar a generar documentos PDF dinámicos?

IronPDF ofrece una potente API que permite a los desarrolladores generar archivos PDF con contenido dinámico, como texto e imágenes. Admite HTML y CSS para el formato, lo que facilita la creación de documentos visualmente atractivos en Python.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame