Cómo Convertir HTML A PDF usando IronPDF for Python

IronPDF proporciona a los desarrolladores de Python un camino directo desde el marcado HTML a archivos PDF listos para producción: sin herramientas intermedias de diseño, sin motores de diseño propietarios, sin canal de procesamiento separado. La clase ChromePdfRenderer de la biblioteca utiliza un motor basado en Chromium en el fondo, por lo que cualquier HTML que se visualice correctamente en Chrome se convertirá con precisión a PDF. Este tutorial recorre cada método de conversión compatible — cadenas HTML, archivos HTML locales y URLs en vivo — y luego cubre las opciones de renderización que le permiten controlar el tamaño de página, márgenes, encabezados, pies de página, y más.

Un tutorial complementario está disponible para convertir HTML a PDF en aplicaciones .NET si necesita el flujo de trabajo de C# o VB.NET.

Inicio rápido: Convertir HTML a PDF en Python


Tabla de contenido


Empezando

¿Cómo se instala IronPDF for Python?

IronPDF se distribuye a través de pip, el gestor de paquetes estándar de Python. Ejecute el siguiente comando en un terminal para instalar la última versión:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install.sh
pip install ironpdf
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install.sh
pip install ironpdf
SHELL

Para fijar una versión específica — útil en pipelines CI o entornos containerizados — agregue el número de versión:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install-versioned.sh
pip install ironpdf==2024.x.x
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/install-versioned.sh
pip install ironpdf==2024.x.x
SHELL

Por favor notaIronPDF for Python está construido sobre la biblioteca IronPDF .NET y requiere el SDK de .NET 6.0 o posterior. Instale el SDK antes de ejecutar cualquier código Python de IronPDF.

La primera vez que IronPDF se inicializa, descarga un binario de Chromium compatible. Esta descarga tarda un momento en una máquina nueva pero solo ocurre una vez por entorno. Las ejecuciones posteriores inician mucho más rápido porque el binario está almacenado en caché localmente.


Guía práctica y ejemplos de código

¿Cómo se configura IronPDF antes de convertir?

Dos tareas de configuración son recomendables antes de la primera llamada de conversión: establecer una clave de licencia y, opcionalmente, configurar la ubicación de un archivo de registro.

Importación del Paquete

Cada archivo Python que use IronPDF necesita esta única línea de importación. Colóquela en la parte superior del archivo:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/import.py
from ironpdf import *
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/import.py
from ironpdf import *
PYTHON

Todas las clases de IronPDF — ChromePdfRenderer, PdfDocument, License, Logger, y el resto — están disponibles a través de esta importación comodín.

Estableciendo una Clave de Licencia

Sin una clave de licencia, IronPDF añade una marca de agua mosaico a cada PDF generado. La marca de agua es adecuada para desarrollo y pruebas, pero despliegues en producción requieren una clave válida.

Los PDFs generados sin una clave de licencia incluyen una marca de agua mosaico. Visite la página de licencias para obtener una clave.

Establezca la clave antes de cualquier otra llamada a IronPDF:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/set-license.py
from ironpdf import *

# Set the license key before any PDF operations
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/set-license.py
from ironpdf import *

# Set the license key before any PDF operations
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PYTHON

Comience una prueba gratuita para recibir una clave temporal, o compre una licencia para uso de producción sin restricciones.

Configuración de Salida de Registro

IronPDF escribe la salida de diagnóstico en un archivo llamado Default.log en el directorio de trabajo del script. Para redirigir el registro a un camino diferente o capturar más detalles para depuración, establezca las propiedades Logger antes de la primera conversión:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/configure-logging.py
from ironpdf import *

# Configure logging before running any conversions
Logger.EnableDebugging = True
Logger.LogFilePath = "ironpdf-debug.log"
Logger.LoggingMode = Logger.LoggingModes.All
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/configure-logging.py
from ironpdf import *

# Configure logging before running any conversions
Logger.EnableDebugging = True
Logger.LogFilePath = "ironpdf-debug.log"
Logger.LoggingMode = Logger.LoggingModes.All
PYTHON

Por favor notaLogger.LogFilePath debe establecerse antes de la primera llamada de conversión a PDF. Los cambios realizados después no tienen efecto en la sesión actual.

Los registros detallados son más útiles al diagnosticar por qué una página HTML particular no se renderiza como se esperaba — capturan solicitudes de red, eventos de carga de CSS, y temporización de ejecución de JavaScript.

¿Cómo convertir una cadena HTML a PDF?

Convertir una cadena HTML en memoria es el enfoque más directo y funciona bien cuando el HTML es generado programáticamente — por ejemplo, a partir de una plantilla Jinja2 o un informe impulsado por base de datos.

Conversión de cadenas HTML básicas

Instancie ChromePdfRenderer, pase la cadena HTML a RenderHtmlAsPdf, y llame a SaveAs en el PdfDocument devuelto:

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

renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Python.</p>")

pdf.SaveAs("hello.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-basic.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Python.</p>")

pdf.SaveAs("hello.pdf")
PYTHON
PDF rendered from a simple HTML string showing a heading and paragraph

RenderHtmlAsPdf procesa HTML exactamente como lo haría Chrome, incluyendo CSS y JavaScript.

El ChromePdfRenderer procesa HTML, CSS y JavaScript de la misma manera que lo hace un navegador moderno. Cualquier contenido que se renderice correctamente en Chrome producirá un PDF preciso.

Cadena HTML con Recursos Externos

Cuando la cadena HTML hace referencia a activos locales — hojas de estilo, imágenes, scripts — pase la ruta del directorio como segundo argumento a RenderHtmlAsPdf. IronPDF utiliza esta ruta como URL base al resolver referencias relativas:

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

html_content = """
<html>
  <head>
    <title>Styled Report</title>
    <link rel='stylesheet' href='assets/style.css'>
  </head>
  <body>
    <h1>Monthly Report</h1>
    <img src='assets/logo.png' alt='Company logo'>
    <p>Data as of Q1 2024.</p>
  </body>
</html>
"""

renderer = ChromePdfRenderer()

# The second argument sets the base path for resolving relative asset URLs
pdf = renderer.RenderHtmlAsPdf(html_content, "./")

pdf.SaveAs("styled-report.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-assets.py
from ironpdf import *

html_content = """
<html>
  <head>
    <title>Styled Report</title>
    <link rel='stylesheet' href='assets/style.css'>
  </head>
  <body>
    <h1>Monthly Report</h1>
    <img src='assets/logo.png' alt='Company logo'>
    <p>Data as of Q1 2024.</p>
  </body>
</html>
"""

renderer = ChromePdfRenderer()

# The second argument sets the base path for resolving relative asset URLs
pdf = renderer.RenderHtmlAsPdf(html_content, "./")

pdf.SaveAs("styled-report.pdf")
PYTHON
PDF output from an HTML string that references external CSS and image assets

CSS e imágenes externas se cargan correctamente cuando se proporciona una ruta base a RenderHtmlAsPdf.

La ruta base puede apuntar a cualquier directorio local o un recurso compartido de red. Los recursos en subdirectorios se resuelven en relación a ella. Para ver más patrones que involucran cadenas HTML complejas, consulte el ejemplo de código de cadena HTML a PDF.

¿Cómo convertir una URL a PDF?

El método RenderUrlAsPdf recupera una URL en vivo, espera a que la página se cargue completamente — incluyendo cualquier contenido impulsado por JavaScript — y convierte el resultado procesado en PDF. Esto lo hace adecuado para capturar tableros de control, informes, o cualquier página donde el estado visual final dependa de la ejecución de JavaScript.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/url-to-pdf.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Fetch and convert a live web page to PDF
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")

pdf.SaveAs("wikipedia-pdf.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/url-to-pdf.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Fetch and convert a live web page to PDF
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")

pdf.SaveAs("wikipedia-pdf.pdf")
PYTHON
PDF generated from a Wikipedia article URL using IronPDF's RenderUrlAsPdf method

IronPDF recupera el URL en vivo y renderiza la página completa — JavaScript incluido — antes de generar el PDF.

ConsejosPara páginas que requieren autenticación, establezca cookies o encabezados de petición HTTP en la instancia ChromePdfRenderer antes de llamar a RenderUrlAsPdf. Consulte la guía de credenciales de inicio de sesión HTTP para más detalles.

Cuando la página de destino carga contenido asíncrono, IronPDF espera que el motor de renderización Chromium señale que el documento está completamente pintado. Para páginas con JavaScript intensivo o peticiones de red retrasadas, considere ajustar las propiedades WaitFor en ChromePdfRenderOptions (cubierto en la sección de opciones de renderizado a continuación). El ejemplo de código URL a PDF muestra patrones de configuración adicionales.

¿Cómo se convierte un archivo HTML a PDF?

--CODE-6180--@@ acepta una ruta a un archivo HTML local y lo convierte directamente. Rutas relativas dentro del HTML — a archivos CSS, imágenes o JavaScript — se resuelven automáticamente contra el directorio propio del archivo HTML, por lo que no se necesita argumento de ruta base.

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

renderer = ChromePdfRenderer()

# Convert a local HTML file (and its linked CSS/JS) to PDF
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")

pdf.SaveAs("invoice.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Convert a local HTML file (and its linked CSS/JS) to PDF
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")

pdf.SaveAs("invoice.pdf")
PYTHON

Este método es particularmente útil para la generación de documentos del lado del servidor donde una plantilla HTML ya ha sido escrita en disco — un patrón común al usar Django o Flask para renderizar plantillas Jinja2 a archivos antes de convertirlos a PDF para descarga.

IronPDF resuelve cualquier etiqueta <link>, <script>, y <img> en relación a la ubicación del archivo HTML, por lo que las hojas de estilo vinculadas, fuentes incrustadas e imágenes aparecen en el PDF exactamente como lo hacen en un navegador. El proceso refleja cómo RenderHtmlAsPdf maneja activos en línea, con la diferencia de que no se necesita suministrar una ruta base explícita.

¿Cómo se controlan las opciones de renderización PDF?

ChromePdfRenderOptions es el objeto de configuración pasado a ChromePdfRenderer (o directamente a cualquiera de los métodos de renderizado) para controlar el diseño de la página, márgenes, tamaño del papel y otras características de salida. Configurar opciones antes de la conversión es la manera estándar de adaptar la salida de PDF.

Tamaño de Papel y Orientación

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-paper.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Configure page layout before rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
renderer.RenderingOptions.MarginRight = 15

pdf = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Content here.</p>")
pdf.SaveAs("landscape-a4.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-paper.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Configure page layout before rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
renderer.RenderingOptions.MarginRight = 15

pdf = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Content here.</p>")
pdf.SaveAs("landscape-a4.pdf")
PYTHON

Los márgenes se expresan en milímetros. PdfPaperSize soporta todos los tamaños ISO estándar — A0 a A10, Carta, Legal, Tabloide — así como Custom para dimensiones arbitrarias definidas por CustomPaperWidth y CustomPaperHeight.

Dimensiones de Papel Personalizadas

Cuando los tamaños estándar de papel no coinciden con el requisito de salida — por ejemplo, un formato de impresora de recibo o etiqueta — defina el ancho y la altura explícitamente:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-custom-size.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Set a custom paper size (in millimetres)
renderer.RenderingOptions.PaperSize = PdfPaperSize.Custom
renderer.RenderingOptions.CustomPaperWidth = 80   # 80 mm receipt roll width
renderer.RenderingOptions.CustomPaperHeight = 200

pdf = renderer.RenderHtmlAsPdf("<h2>Receipt</h2><p>Total: $12.50</p>")
pdf.SaveAs("receipt.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-custom-size.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Set a custom paper size (in millimetres)
renderer.RenderingOptions.PaperSize = PdfPaperSize.Custom
renderer.RenderingOptions.CustomPaperWidth = 80   # 80 mm receipt roll width
renderer.RenderingOptions.CustomPaperHeight = 200

pdf = renderer.RenderHtmlAsPdf("<h2>Receipt</h2><p>Total: $12.50</p>")
pdf.SaveAs("receipt.pdf")
PYTHON

ImportanteLos tamaños de papel personalizados son especialmente útiles para impresoras de recibos térmicos y formatos de etiquetas como etiquetas de envío de 4×6 pulgadas.

Habilitar la Ejecución de JavaScript

Por defecto, IronPDF ejecuta JavaScript durante la renderización. Si una página depende de JavaScript para generar contenido visible — gráficos, tablas de datos, valores de formularios dinámicos — este comportamiento significa que el PDF renderizado refleja el estado DOM final. Para deshabilitar JavaScript en páginas donde no es necesario:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-javascript.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Disable JavaScript for static HTML pages
renderer.RenderingOptions.EnableJavaScript = False

pdf = renderer.RenderHtmlAsPdf("<p>Static content only.</p>")
pdf.SaveAs("static.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options-javascript.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Disable JavaScript for static HTML pages
renderer.RenderingOptions.EnableJavaScript = False

pdf = renderer.RenderHtmlAsPdf("<p>Static content only.</p>")
pdf.SaveAs("static.pdf")
PYTHON

Deshabilitar JavaScript reduce el tiempo de renderización para documentos HTML simples y estáticos.

Para obtener más detalles de configuración de renderización, consulte configuraciones de generación de PDF y el ejemplo de tamaño de papel personalizado.

¿Cómo se añaden encabezados y pies de página personalizados?

Los encabezados y pies de página en IronPDF se aplican a través de objetos HtmlHeaderFooter o TextHeaderFooter adjuntos a RenderingOptions del renderizador. HtmlHeaderFooter te da control total sobre HTML y CSS — ideal para membretes con logotipos. TextHeaderFooter es más simple y abarca la mayoría de los requisitos basados en texto, incluyendo números de página dinámicos.

Encabezado y Pie de Página Basados en Texto

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-text.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Add a text header with the document title
renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Quarterly Report — Q1 2024"
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.FontSize = 10

# Add a footer with page numbers
renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
renderer.RenderingOptions.TextFooter.FontSize = 9
renderer.RenderingOptions.TextFooter.DrawDividerLine = True

html = "<h1>Executive Summary</h1><p>Revenue increased 12% year-over-year.</p>"
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report-with-footer.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-text.py
from ironpdf import *

renderer = ChromePdfRenderer()

# Add a text header with the document title
renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Quarterly Report — Q1 2024"
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.FontSize = 10

# Add a footer with page numbers
renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
renderer.RenderingOptions.TextFooter.FontSize = 9
renderer.RenderingOptions.TextFooter.DrawDividerLine = True

html = "<h1>Executive Summary</h1><p>Revenue increased 12% year-over-year.</p>"
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report-with-footer.pdf")
PYTHON

Los marcadores de posición {page} y {total-pages} se reemplazan en tiempo de renderizado con los valores correctos. Otros marcadores de posición disponibles incluyen {date}, {time}, y {url}.

Cuando se requiere un encabezado con marca — un logotipo de la empresa, una banda de color, o un bloque de dirección formateada — use HtmlHeaderFooter en su lugar:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-html.py
from ironpdf import *

renderer = ChromePdfRenderer()

header_html = """
<div style="font-family: Arial, sans-serif; border-bottom: 2px solid #003366; padding: 8px 0;">
  <img src='assets/logo.png' style='height: 40px; float: left;' alt='Company logo'>
  <span style='float: right; font-size: 11px; color: #666;'>Confidential</span>
  <div style='clear:both;'></div>
</div>
"""

renderer.RenderingOptions.HtmlHeader = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlHeader.HtmlFragment = header_html
renderer.RenderingOptions.HtmlHeader.BaseUrl = "./"

html_body = "<h1>Project Status Update</h1><p>All milestones on track.</p>"
pdf = renderer.RenderHtmlAsPdf(html_body, "./")
pdf.SaveAs("branded-report.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-html.py
from ironpdf import *

renderer = ChromePdfRenderer()

header_html = """
<div style="font-family: Arial, sans-serif; border-bottom: 2px solid #003366; padding: 8px 0;">
  <img src='assets/logo.png' style='height: 40px; float: left;' alt='Company logo'>
  <span style='float: right; font-size: 11px; color: #666;'>Confidential</span>
  <div style='clear:both;'></div>
</div>
"""

renderer.RenderingOptions.HtmlHeader = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlHeader.HtmlFragment = header_html
renderer.RenderingOptions.HtmlHeader.BaseUrl = "./"

html_body = "<h1>Project Status Update</h1><p>All milestones on track.</p>"
pdf = renderer.RenderHtmlAsPdf(html_body, "./")
pdf.SaveAs("branded-report.pdf")
PYTHON

Por favor notaEstablezca BaseUrl en HtmlHeaderFooter a la misma ruta base usada para el cuerpo del documento. Esto asegura que imágenes y hojas de estilo referenciadas dentro del HTML del encabezado se resuelvan correctamente.

El encabezado y pie de página aparecen en cada página del PDF generado, incluyendo documentos de varias páginas. Para un ejemplo de trabajo con metadatos a nivel de página en el pie de página, consulte el ejemplo de código de encabezados y pies de página HTML.

Ajustes de margen para encabezados y pies de página

Al agregar un encabezado o pie de página, aumente el margen correspondiente para que el contenido no se superponga al cuerpo de la página:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-margins.py
from ironpdf import *

renderer = ChromePdfRenderer()

renderer.RenderingOptions.MarginTop = 30     # Make room for header
renderer.RenderingOptions.MarginBottom = 20  # Make room for footer

renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Internal Use Only"

renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"

pdf = renderer.RenderHtmlAsPdf("<h1>Internal Document</h1><p>Body content.</p>")
pdf.SaveAs("margined-report.pdf")
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers-margins.py
from ironpdf import *

renderer = ChromePdfRenderer()

renderer.RenderingOptions.MarginTop = 30     # Make room for header
renderer.RenderingOptions.MarginBottom = 20  # Make room for footer

renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Internal Use Only"

renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"

pdf = renderer.RenderHtmlAsPdf("<h1>Internal Document</h1><p>Body content.</p>")
pdf.SaveAs("margined-report.pdf")
PYTHON

Para documentos críticos de diseño, combine ajustes de margen con configuraciones PaperSize para ajustar exactamente la salida a una especificación de impresión. Controles de diseño adicionales — como los fondos IronSoftwareSystemDrawingColor y las reglas CSS @page — se detallan en el ejemplo de márgenes personalizados.


¿Cuáles son los próximos pasos?

Este tutorial cubrió los tres métodos principales de conversión de HTML a PDF y las opciones de renderizado que controlan su salida. Las siguientes guías se basan en esta base y cubren tareas más especializadas:

Comience una prueba gratuita de 30 días para generar PDFs ilimitados y sin marcas de agua durante la evaluación. Cuando esté listo para la producción, consulte las opciones de licencia para implementaciones en equipos y enterprise.

Preguntas Frecuentes

¿Cómo convierto una cadena HTML a PDF en Python?

Instancia ChromePdfRenderer, luego llama a renderer.RenderHtmlAsPdf(html_string). El método acepta cualquier HTML válido, incluyendo CSS y JavaScript en línea. Guarda el PdfDocument devuelto con pdf.SaveAs('output.pdf').

¿Cómo instalo IronPDF for Python?

Ejecuta pip install ironpdf desde una terminal. IronPDF for Python requiere el SDK .NET 6.0 o posterior, que debe instalarse por separado antes del primer uso.

¿Puede IronPDF convertir una URL en vivo a PDF en Python?

Sí. Usa renderer.RenderUrlAsPdf('https://example.com'). IronPDF obtiene la página usando un motor Chromium, espera a que el JavaScript termine de ejecutarse y luego genera el PDF del DOM completamente renderizado.

¿Cómo convierto un archivo HTML local a PDF?

Llama a renderer.RenderHtmlFileAsPdf('path/to/file.html'). IronPDF resuelve todas las rutas relativas de recursos — hojas de estilo, imágenes, scripts — relativas al directorio del archivo HTML automáticamente.

¿Cómo elimino la marca de agua de los PDFs generados por IronPDF?

Establece una clave de licencia válida con License.LicenseKey = 'YOUR-KEY' antes de cualquier operación PDF. Sin una clave, IronPDF agrega una marca de agua adecuada para el desarrollo pero no para uso en producción.

¿Qué opciones de renderizado expone IronPDF for Python?

Las propiedades en renderer.RenderingOptions controlan el tamaño del papel (PaperSize), orientación (PaperOrientation), márgenes (MarginTop, MarginLeft, etc.), dimensiones personalizadas (CustomPaperWidth, CustomPaperHeight), ejecución de JavaScript (EnableJavaScript) y más.

¿Cómo agrego números de página a un PDF con IronPDF en Python?

Asigna un TextHeaderFooter a renderer.RenderingOptions.TextFooter e incluye el marcador de posición {page} o {total-pages} en una de las propiedades de texto como RightText o CenterText.

¿Puedo agregar un encabezado con logotipo de marca a cada página de un PDF generado?

Sí. Usa HtmlHeaderFooter con un fragmento de HTML que incluya una etiqueta . Asígalo a renderer.RenderingOptions.HtmlHeader y establece BaseUrl para que la ruta de la imagen se resuelva correctamente.

¿IronPDF admite tamaños de papel personalizados en Python?

Sí. Establece renderer.RenderingOptions.PaperSize en PdfPaperSize.Custom, luego asigna CustomPaperWidth y CustomPaperHeight en milímetros para definir cualquier dimensión de página arbitraria.

¿Qué versión del .NET requiere IronPDF for Python?

IronPDF for Python requiere el SDK .NET 6.0 o posterior. El SDK está disponible sin costo desde la página de descargas de Microsoft .NET y debe ser instalado antes de instalar mediante pip o ejecutar IronPDF.

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.