HERRAMIENTAS PDF DE PYTHON

Cómo crear un archivo PDF en Python

Publicado en 3 de julio, 2023
Compartir:

PDF (Formato de documento portátil) es el formato de archivo digital más popular para enviar y recibir datos en línea. Se utiliza principalmente para conservar el formato de los datos y protegerlos con una contraseña cifrada. La extensión .pdf es independiente de la aplicación informática, el hardware o el sistema operativo.

En este artículo, vamos a crear un archivo PDF en el lenguaje de programación Python. Hay un montón de opciones en línea disponibles, pero aquí vamos a utilizar una biblioteca de Python para crear archivos PDF. A continuación se muestran dos famosas librerías para generar documentos PDF con una o múltiples páginas en Python:

  1. Laboratorio de informes

  2. PDFKit

    A partir de las bibliotecas PDF python mencionadas, podemos utilizar cualquiera para generar PDFs.

¿Cómo crear un archivo PDF en Python?

Veamos las dos bibliotecas una por una.

Creación de archivos PDF con la biblioteca Reportlab

Laboratorio de informes es un conjunto de herramientas PDF gratuitas y de código abierto con las que se pueden crear fácilmente archivos PDF. Proporciona un montón de herramientas de dibujo para añadir imágenes y texto en una posición determinada en varias páginas. También puede crear archivos PDF encriptados utilizando el método encryptCanvas.

Instalación

Para instalar Reportlab, es necesario el gestor de paquetes pip. Descarga e instala automáticamente el paquete de solicitud mediante el comando pip. Simplemente escriba el siguiente comando en Windows cmd o PowerShell:

pip3 install reportlab

Nota: Al instalar Python, debe añadirse a la variable de entorno path para poder ejecutar el comando anterior desde cualquier lugar en cmd o PowerShell. Se recomienda utilizar Pip3 para python 3+, ya que es la versión actualizada.

Abrir un nuevo archivo Python

Para utilizar la biblioteca Reportlab, tenemos que escribir el código en un archivo python y ejecutarlo para crear archivos PDF.

  1. Busque y abra el intérprete de comandos IDLE por defecto de Python en la barra de búsqueda de Windows y pulse Ctrl + N o seleccione "Nuevo archivo" en la pestaña Archivo. Esto abrirá el editor de texto para escribir el código.

  2. A continuación, guarde el archivo con el nombre adecuado. Lo voy a llamar "createpdf.py ". El archivo tiene este aspecto:

    Cómo crear un archivo PDF en Python: Figura 1

Código Python para leer y extraer texto

El siguiente código dibujará los elementos del documento y generará el PDF en cuestión de segundos:

# importing modules
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors

# initializing variables with values
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'

# creating a pdf object
pdf = canvas.Canvas(fileName)

# setting the title of the document
pdf.setTitle(documentTitle)

# creating the title by setting it's font
# and putting it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# creating the subtitle by setting it's font,
# colour and putting it on the canvas
pdf.setFillColorRGB(0, 0, 255)
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)

# saving the pdf
pdf.save()
PYTHON

El PDF generado es el siguiente:

Cómo crear un archivo PDF en Python: Figura 2

EXPLICACIÓN DEL CÓDIGO

Después de importar todos los módulos y paquetes, primero inicializamos todo el contenido que se escribirá en un archivo PDF.

fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
PYTHON

Ahora, establecemos el nombre del lienzo, el título del documento, un título centrado y un subtítulo con las fuentes y el tamaño adecuados.

# creating a pdf object
pdf = canvas.Canvas(fileName)

# setting the title of the document
pdf.setTitle(documentTitle)

# creating the title by setting it's font
# and putting it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# creating the subtitle by setting it's font,
# colour and putting it on the canvas
pdf.setFillColorRGB(0, 0, 255)
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
PYTHON

Por último, guardamos el archivo PDF cuando todo esté dibujado en el lienzo.

# saving the pdf
pdf.save()
PYTHON

También podemos usar los métodos drawString y drawText para crear un simple archivo PDF usando Reportlab en python.

Crear archivos PDF con la biblioteca PDFKit

PDFKit es uno de los mejores métodos para crear archivos PDF en python. Puede crear archivos PDF utilizando código HTML. Puede convertir archivos HTML simples y complejos o HTML de URL en una página PDF imprimible perfecta en píxeles. Sin embargo, PDFKit integra las funciones de wkhtmltopdf para convertir HTML a PDF. Para instalar wkhtmltopdf para Windows, Linux y mac, visite este enlace enlace.

Nota: En el sistema operativo Windows, wkhtmltopdf se instalará en los archivos de programa.

Instalación

Utilice el siguiente comando para instalar PDFKit:

pip3 install pdfkit

Creación de archivos PDF a partir de URL

Crear archivos PDF con PDFKit es muy sencillo y un proceso de una sola línea.

import pdfkit

pdfkit.from_url('http://google.com', 'out.pdf')
PYTHON

Creación de archivos PDF a partir de archivos HTML

import pdfkit

pdfkit.from_file('index.html', 'out.pdf')
PYTHON

Creación de archivos PDF a partir de plantillas HTML

Puede pasar plantillas HTML como cadena para convertirlas a PDF como archivo de salida.

html_string = """
    <html>
        <head>
        <meta name="pdfkit-page-size" content="Legal"/>
        <meta name="pdfkit-orientation" content="Landscape"/>
        </head>
        Hello World!
        </html>
    """

pdfkit.from_string(html_string, 'out.pdf')
PYTHON

PDFKit permite crear fácilmente archivos PDF en python utilizando plantillas HTML.

La biblioteca IronPDF

IronPDF es una herramienta útil para crear archivos PDF en proyectos .NET. Un uso común de esta biblioteca es el renderizado "HTML a PDF", en el que HTML se utiliza como lenguaje de diseño para renderizar un documento PDF.

IronPDF utiliza un motor .NET Chromium para convertir páginas HTML en archivos PDF. Con la conversión de HTML a PDF, no es necesario utilizar API complejas para posicionar o diseñar PDF. IronPDF también es compatible con todas las tecnologías estándar de páginas web: HTML, ASPX, JS, CSS e imágenes.

También permite crear una biblioteca PDF .NET utilizando HTML 5, CSS, JavaScript e imágenes. Puede editar, sellar y añadir encabezados y pies de página a un PDF sin esfuerzo. Además, facilita mucho la lectura de texto en PDF y la extracción de imágenes.

Para empezar a utilizar IronPDF, debe instalar el paquete NuGet:

 pip install ironpdf

El siguiente ejemplo le ayuda a crear PDF directamente desde una URL:

from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from a URL or local file path
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")

# Export to a file or Stream
pdf.SaveAs("url.pdf")
PYTHON

El siguiente código le ayudará a crear un archivo PDF a partir de código HTML junto con cualquier CSS o JavaScript:

from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

# Export to a file or Stream
pdf.SaveAs("output.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

Puedes ver en el código anterior que es bastante simple y limpio. Se necesitan muy pocas líneas de código para crear un archivo PDF a partir de código HTML. Es una solución rápida, fiable, que ahorra tiempo y ofrece resultados precisos.

Descargue IronPDF y pruébelo para gratis. Después del periodo de prueba, la licencia comienza en $749.

< ANTERIOR
Cómo utilizar PyCharm (Guía para desarrolladores)
SIGUIENTE >
Cómo leer archivos PDF en Python

¿Listo para empezar? Versión: 2024.9 acaba de salir

Instalación pip gratuita Ver licencias >