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
Cómo Convertir HTML A PDF en Python

- Instalar IronPDF for Python vía pip
- Importe la biblioteca con
from ironpdf import * - Instanciar
ChromePdfRenderer - Llame a
RenderHtmlAsPdf,RenderUrlAsPdf, oRenderHtmlFileAsPdf - Guarde el resultado con
pdf.SaveAs("output.pdf")
Tabla de contenido
- ¿Cómo se instala IronPDF for Python?
- ¿Cómo se configura IronPDF antes de convertir?
- ¿Cómo se convierte una cadena HTML a PDF?
- ¿Cómo se convierte un URL a PDF?
- ¿Cómo se convierte un archivo HTML a PDF?
- ¿Cómo se controlan las opciones de renderización PDF?
- ¿Cómo se añaden encabezados y pies de página personalizados?
- ¿Cuáles son los siguientes pasos?
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 ironpdfPara 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.xLa 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 *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"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.AllLogger.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")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")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")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")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")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")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")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")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}.
Encabezado Basado en HTML con Logo
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")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")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:
- Configuraciones de generación de PDF — Exploración profunda en
ChromePdfRenderOptions: DPI, renderizado de fondo, tipo de medio CSS, estrategias de espera de JavaScript, y modo de impresión vs. pantalla. - Encabezados y Pies HTML — Plantillas de encabezado y pie de página con logotipos, números de página, fechas y diseños de varias columnas.
- Márgenes personalizados y tamaño de papel — Ajuste fino de la geometría de la página para resultados listos para imprimir y formatos no estándar.
- Agregar marcas de agua a PDFs — Estampar texto o marcas de agua en imágenes sobre PDFs existentes o recién generados.
- Extraer texto de PDFs — Leer el contenido de texto de PDFs generados o existentes de manera programática.
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.










