Python Crear Archivos PDF

Cómo crear archivos PDF en Python

This article was translated from English: Does it need improvement?
Translated
View the article in English

Cree archivos PDF en Python usando IronPDF convirtiendo cadenas HTML, archivos HTML o URLs a documentos PDF con solo unas pocas líneas de código. IronPDF gestiona automáticamente las funciones de renderizado, formato y seguridad.

Inicio rápido: Crear un PDF en Python

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/quickstart.py
# 1. Install IronPDF: pip install ironpdf
# 2. Import the library
from ironpdf import *
# 3. Create renderer
renderer = ChromePdfRenderer()
# 4. Convert HTML to PDF
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
# 5. Save the PDF
pdf.SaveAs("output.pdf")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
# 1. Install IronPDF: pip install ironpdf
# 2. Import the library
from ironpdf import *
# 3. Create renderer
renderer = ChromePdfRenderer()
# 4. Convert HTML to PDF
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
# 5. Save the PDF
pdf.SaveAs("output.pdf")
PYTHON

Automatizar la creación de PDF en Python permite a los desarrolladores generar documentos programáticamente: facturas, informes, contratos y certificados, sin salir de la aplicación. Tradicionalmente, esto requería manejar motores de diseño y especificaciones de formato, pero el enfoque de HTML primero de IronPDF significa que cualquier documento HTML/CSS se convierte en un PDF exacto en píxeles con una sola llamada de método.

Esta Guía de Cómo Hacer cubre los cuatro flujos de trabajo principales de creación de PDF en IronPDF for Python: convertir una cadena HTML, convertir un archivo HTML local, convertir una URL y aplicar protección por contraseña antes de exportar.

¿Qué Biblioteca de Python Debería Usar para Crear PDF?

IronPDF es una biblioteca de Python desarrollada específicamente para crear documentos PDF a partir de HTML. Su API es sencilla: pasa un marcado HTML (o una ruta de archivo, o una URL) y recibe un objeto PdfDocument que puedes guardar, sellar, fusionar o encriptar.

La biblioteca envuelve el motor de renderizado .NET probado en batalla de IronPDF, el mismo motor utilizado en proyectos .NET, Java y Node.js, por lo que la salida HTML a PDF es consistente en todas las plataformas. Admite estándares web modernos que incluyen ejecución de CSS3, HTML5, JavaScript, fuentes web y diseños responsivos.

Más allá de la generación de PDF, IronPDF cubre todo el ciclo de vida del PDF:

Por favor notaIronPDF está disponible para .NET, Java, Python y Node.js. Esta guía cubre específicamente la implementación en Python.

¿Qué Prerrequisitos Necesito Antes de Crear PDFs?

Para usar IronPDF for Python, se debe instalar el siguiente software:

  1. .NET 6.0 SDK: IronPDF for Python se ejecuta sobre la biblioteca IronPDF .NET. Descárguelo desde la página oficial de descarga de Microsoft .NET 6.0.
  2. Python 3.x: Descarga e instala Python desde el sitio web oficial de Python. Seleccione la opción para añadir Python al PATH durante la instalación.
  3. pip: Incluido con Python 3.4+. Verifica la instalación ejecutando pip --version en tu terminal.
  4. IronPDF: Instala la biblioteca usando pip:
 pip install ironpdf

Posibles Problemas de Instalación En tales casos, usa pip3 en lugar de pip para instalar el paquete de Python 3. Si encuentra errores de instalación, consulte nuestra guía de solución de problemas para problemas OSError.)}]

¿Qué configuración de código se requiere antes de crear archivos PDF?

Agregue la siguiente declaración de importación a la parte superior de su script de Python:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/import.py
# Import statement for IronPDF for Python
from ironpdf import *
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
# Import statement for IronPDF for Python
from ironpdf import *
PYTHON

Antes de cualquier otra llamada a IronPDF, configura una clave de licencia válida asignándola al atributo LicenseKey de License. Esto elimina la marca de agua de prueba de los PDFs generados. Para obtener instrucciones detalladas sobre cómo implementar claves de licencia, visite la guía de configuración de claves de licencia.

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/license.py
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PYTHON

ImportantePara crear PDFs sin marcas de agua, se requiere una clave de licencia válida. Purchase a license or obtain a free trial license key. Sin una clave de licencia, IronPDF agrega una marca de agua de prueba a cada PDF de salida.

¿Cómo Convertir una Cadena HTML en un Documento PDF?

El método RenderHtmlAsPdf convierte una cadena HTML directamente en un objeto PdfDocument. Pase cualquier marcado HTML válido como argumento del método y IronPDF lo renderiza usando su motor Chromium incorporado, ejecutando JavaScript y aplicando CSS antes de producir el PDF.

Este enfoque es el más flexible para contenido generado dinámicamente: construya la cadena HTML en Python (usando motores de plantillas como Jinja2 o formato de cadena simple), luego pásela directamente al renderizador. Generar una factura, por ejemplo, significa completar una plantilla HTML con datos de pedido y llamar a RenderHtmlAsPdf en un solo paso.

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/html-string-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the Chromium renderer
renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the Chromium renderer
renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
PYTHON

¿Cómo guardo el PDF generado?

Una vez que la cadena HTML se ha convertido en una instancia PdfDocument, llama a SaveAs con una ruta de archivo de destino:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/save-html-string.py
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
PYTHON

El archivo htmlstring_to_pdf.pdf se escribe en el directorio de trabajo actual, conservando el contenido HTML con estilo CSS completo. Para técnicas avanzadas de renderizado de HTML, incluyendo frameworks de CSS, frameworks de JavaScript y diseños complejos, consulte el tutorial de HTML a PDF for Python.

¿Cómo Generar un PDF a partir de un Archivo HTML Local?

Cuando el contenido HTML reside en un archivo en el sistema de archivos local, RenderHtmlFileAsPdf es el método adecuado. Proporcione la ruta del archivo como el argumento:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/html-file-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Create a PDF from a local HTML file
pdf = renderer.RenderHtmlFileAsPdf("example.html")

# Save the output PDF
pdf.SaveAs("htmlfile_to_pdf.pdf")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Create a PDF from a local HTML file
pdf = renderer.RenderHtmlFileAsPdf("example.html")

# Save the output PDF
pdf.SaveAs("htmlfile_to_pdf.pdf")
PYTHON

IronPDF resuelve rutas relativas para archivos CSS vinculados, imágenes y scripts en relación con la ubicación del archivo HTML. El renderizador carga todos los activos asociados antes de generar el PDF, por lo que el resultado coincide con lo que mostraría un navegador. Esto lo convierte en una opción confiable para documentos con plantillas donde el HTML y los activos se mantienen como archivos en disco.

ConsejosCuando trabaje con archivos HTML locales, asegúrese de que todos los activos vinculados (hojas de estilo, fuentes, imágenes) utilicen rutas relativas al archivo HTML. IronPDF resuelve estas rutas antes de renderizar, produciendo un PDF completo y autocontenido.

¿Cómo Crear un PDF desde una URL en Python?

Usa RenderUrlAsPdf para convertir una página web en vivo a PDF. Proporcione la URL completa como el argumento:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/url-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Convert a web page to PDF
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Save the output PDF
pdf.SaveAs("url.pdf")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Convert a web page to PDF
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Save the output PDF
pdf.SaveAs("url.pdf")
PYTHON

La función de renderización de URLs admite tecnologías web modernas, incluyendo contenido JavaScript dinámico, llamadas AJAX, y diseños responsivos. IronPDF espera que la página se cargue completamente, incluyendo la ejecución de JavaScript, antes de capturar el PDF, por lo que todo contenido dinámico se captura con precisión.

¿Dónde puedo encontrar más ejemplos de conversión de URL?

Hay ejemplos adicionales para convertir páginas web en PDF disponibles en la página de ejemplo de código de URL a PDF. Para páginas web que requieren autenticación, consulte la guía sobre inicios de sesión en sitios web y sistemas.

¿Cómo puedo personalizar las opciones de formato de un PDF?

La propiedad RenderingOptions de ChromePdfRenderer controla el formato y el diseño del PDF de salida. Las configuraciones comunes incluyen tamaño de página, orientación de página, tamaño de margen y nivel de zoom.

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/rendering-options.py
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()

# Configure rendering options
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25

# Render with custom formatting
pdf = renderer.RenderHtmlAsPdf("<h1>Custom Formatted PDF</h1><p>Content here.</p>")
pdf.SaveAs("formatted.pdf")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()

# Configure rendering options
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25

# Render with custom formatting
pdf = renderer.RenderHtmlAsPdf("<h1>Custom Formatted PDF</h1><p>Content here.</p>")
pdf.SaveAs("formatted.pdf")
PYTHON

¿Qué Configuraciones de Formato Están Disponibles?

La propiedad RenderingOptions expone configuraciones para tamaño de papel, orientación de página, márgenes y zoom. La tabla a continuación enumera las propiedades más utilizadas:

Propiedades de RenderingOptions comúnmente utilizadas para formato de PDF en Python
PropiedadEscriba aDescripción
TamañoDePapelTamañoDelPapelTamaños de página estándar (A4, Carta, Legal) o tamaños personalizados
Orientación del documentoOrientación del documento pdfOrientación de página en retrato o paisaje
MargenSuperior / MargenInferiorint (mm)Márgenes superior e inferior de página en milímetros
MargenIzquierdo / MargenDerechoint (mm)Márgenes izquierdo y derecho de página en milímetros
CabezeraHtml / PieHtmlHtmlHeaderFooterEncabezados y pies de página HTML en ejecución con soporte de numeración de páginas

Para una referencia completa con configuraciones adicionales, vea el ejemplo de código de configuraciones de generación de PDF.

ConsejosPara agregar cabezales y pies de página con números de página, usa las propiedades HtmlHeader y HtmlFooter en RenderingOptions. El ejemplo de encabezados y pies de página demuestra la sintaxis completa.

¿Cómo proteger archivos PDF con contraseñas?

Para proteger con contraseña un PDF, configura la propiedad UserPassword en el atributo SecuritySettings del objeto PdfDocument. También se puede establecer una contraseña de propietario para restringir permisos de edición separadamente del acceso de lectura.

Considere proteger el PDF creado en el ejemplo de URL:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/password-protect.py
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Set user password (required to open the PDF)
pdf.SecuritySettings.UserPassword = "sharable"

# Set owner password (controls permissions)
pdf.SecuritySettings.OwnerPassword = "admin123"

# Configure document permissions
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False

# Save the password-protected PDF
pdf.SaveAs("protected.pdf")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Set user password (required to open the PDF)
pdf.SecuritySettings.UserPassword = "sharable"

# Set owner password (controls permissions)
pdf.SecuritySettings.OwnerPassword = "admin123"

# Configure document permissions
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False

# Save the password-protected PDF
pdf.SaveAs("protected.pdf")
PYTHON

¿Cómo funciona en la práctica la protección por contraseña?

Abrir protected.pdf en cualquier visor PDF solicita la contraseña del usuario antes de mostrar el contenido del documento. La contraseña del propietario otorga acceso administrativo para modificar la configuración de seguridad. Configurar AllowUserCopyPasteContent = False impide que los lectores copien texto del PDF mientras aún permite la impresión.

Para un mayor control sobre los permisos de documentos, vea el ejemplo de configuración de seguridad y metadatos y la guía de cifrado y descifrado de PDF.

¿Qué es el código fuente completo?

El ejemplo combinado a continuación demuestra los cuatro flujos de trabajo de creación de PDF en un solo script de Python:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/complete-example.py
from ironpdf import *

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# --- HTML string to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
pdf.SaveAs("htmlstring_to_pdf.pdf")

# --- Local HTML file to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlFileAsPdf("example.html")
pdf.SaveAs("htmlfile_to_pdf.pdf")

# --- URL to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")
pdf.SaveAs("url.pdf")

# --- Password-protected PDF ---
pdf.SecuritySettings.UserPassword = "sharable"
pdf.SecuritySettings.OwnerPassword = "admin123"
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
from ironpdf import *

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# --- HTML string to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
pdf.SaveAs("htmlstring_to_pdf.pdf")

# --- Local HTML file to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlFileAsPdf("example.html")
pdf.SaveAs("htmlfile_to_pdf.pdf")

# --- URL to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")
pdf.SaveAs("url.pdf")

# --- Password-protected PDF ---
pdf.SecuritySettings.UserPassword = "sharable"
pdf.SecuritySettings.OwnerPassword = "admin123"
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
PYTHON

IronPDF renderiza todas las imágenes y texto con precisión mientras preserva el formato. Los elementos interactivos como los botones permanecen funcionales y los cuadros de texto conservan su editabilidad dentro del PDF generado.

¿Cuáles son los Próximos Pasos para Crear PDFs en Python?

Esta guía cubrió los tres métodos principales de creación de PDF en IronPDF for Python: cadena HTML, archivo HTML local y URL, junto con la protección con contraseña para asegurar los archivos de salida. Cada método produce un objeto PdfDocument que puede ser procesado adicionalmente: sellado, fusionado, dividido o encriptado antes de guardarlo.

¿Listo para extender estos flujos de trabajo? Los siguientes recursos demuestran pasos prácticos siguientes:

IronPDF requiere una licencia válida para uso en producción. Las licencias comienzan desde $999. Start a free 30-day trial to evaluate the library without restrictions, or view licensing options for the full product suite.

Descargue el código fuente completo.

Preguntas Frecuentes

¿Cómo instalo IronPDF for Python?

Ejecuta pip install ironpdf en tu terminal. También necesitas tener instalado Python 3.x y el SDK de .NET 6.0, ya que IronPDF for Python se ejecuta sobre el motor IronPDF .NET.

¿Cuál es la forma más sencilla de convertir HTML a PDF en Python?

Crea una instancia de ChromePdfRenderer, luego llama a renderer.RenderHtmlAsPdf('

Hola

'). El método acepta cualquier cadena HTML válida y devuelve un objeto PdfDocument que puedes guardar con pdf.SaveAs('output.pdf').

¿Puedo generar un PDF desde un archivo HTML local?

Sí. Usa renderer.RenderHtmlFileAsPdf('path/to/file.html'). IronPDF resuelve el CSS enlazado, imágenes, y scripts relativos a la ubicación del archivo HTML antes de renderizar.

¿Cómo convierto una URL de página web en vivo a PDF?

Llama a renderer.RenderUrlAsPdf('https://example.com'). IronPDF espera que la página completa cargue, incluyendo la ejecución de JavaScript, antes de capturar el PDF.

¿Cómo protejo con contraseña un PDF generado?

Establece pdf.SecuritySettings.UserPassword para requerir una contraseña al abrir el archivo, y pdf.SecuritySettings.OwnerPassword para restringir los permisos de edición. Llama a pdf.SaveAs después para escribir el archivo protegido.

¿Puedo controlar el tamaño de página y los márgenes de los PDFs generados?

Sí. Configura renderer.RenderingOptions.PaperSize (por ejemplo, PdfPaperSize.A4) y establece MarginTop, MarginBottom, MarginLeft, y MarginRight en milímetros antes de llamar a un método de renderización.

¿Soporta IronPDF ejecución de JavaScript en la conversión de HTML a PDF?

Sí. IronPDF usa un motor de renderización basado en Chromium que ejecuta JavaScript, procesa llamadas AJAX, y aplica CSS antes de generar el PDF, por lo que el contenido dinámico se captura con precisión.

¿Puedo fusionar o comprimir PDFs después de crearlos?

Sí. IronPDF ofrece métodos separados para fusionar múltiples objetos PdfDocument en un archivo y comprimir PDFs existentes para reducir el tamaño del archivo. Ambas operaciones funcionan en el objeto PdfDocument devuelto por cualquier método de renderizado.

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
¿Listo para empezar?
Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida?
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.