Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Los PDF desempeñan un papel crucial en los flujos de trabajo digitales modernos, ya que sirven como formato estándar para almacenar y compartir documentos. En Python, los desarrolladores suelen recurrir a potentes bibliotecas como wkhtmltopdf y IronPDF para generar y manipular PDF. Ambas bibliotecas ofrecen funciones y capacidades distintas, que responden a necesidades diferentes en el ámbito de la generación de PDF. En esta comparación, exploraremos los puntos fuertes y los casos de uso de cada biblioteca para ayudar a los desarrolladores a tomar una decisión informada.
wkhtmltopdf es una herramienta de línea de comandos que utiliza el motor de renderizado WebKit para convertir HTML u otros lenguajes de marcado en PDF. Los desarrolladores de Python suelen utilizar la función pdfkit como un simple envoltorio de Python alrededor de wkhtmltopdf para integrarlo sin problemas en sus proyectos. Ahora, el python3-wkhtmltopdf también proporciona una envoltura de Python para la herramienta de línea de comandos wkhtmltopdf, haciendo más cómodo el uso de wkhtmltopdf dentro de los scripts de Python. El paquete wkhtmltopdf El paquete Python ya no se mantiene.
wkhtmltopdf destaca en la conversión de contenido HTML a PDF, conservando estilos, diseño e imágenes. Su sencillo enfoque lo hace adecuado para situaciones en las que la conversión de HTML a PDF es el requisito principal.
Al ser una herramienta de línea de comandos, wkhtmltopdf se puede programar fácilmente y se puede integrar en varios flujos de trabajo. Es especialmente útil para automatizar procesos de generación de PDF por lotes.
wkhtmltopdf admite estilos CSS avanzados y ejecuta JavaScript durante el proceso de conversión, lo que permite un contenido rico y dinámico en los PDF resultantes.
wkhtmltopdf ofrece flexibilidad en términos de tamaño de página, orientación y otros ajustes de diseño. Los desarrolladores pueden ajustar estos parámetros para conseguir el aspecto deseado en los PDF generados.
La herramienta es independiente de bibliotecas y dependencias externas, lo que simplifica la implantación. Sin embargo, los usuarios deben asegurarse de que el binario wkhtmltopdf está disponible en su entorno.
IronPDF es una versátil biblioteca de Python diseñada para facilitar la generación, edición y manipulación de PDF. Ofrece una serie de funciones para trabajar con archivos PDF, como generar PDF a partir de HTML, convertir HTML a PDF, añadir texto e imágenes a PDF existentes y extraer contenido de documentos PDF. Es especialmente popular en .NET Framework, y su versión para Python pretende aportar capacidades similares a los desarrolladores de Python.
Asegúrese de que Python está instalado en su sistema. Puede descargar Python de la página **Sitio web oficial de Python.
Para crear un proyecto Python, se puede utilizar cualquier IDE, aquí voy a utilizar PyCharm un IDE Python de renombre. Puedes usar cualquier IDE o incluso un editor de texto.
Pulse "Crear": Pulse el botón "Crear" para crear el proyecto.
Visite el wkhtmltopdf y descarga el instalador adecuado para tu sistema operativo.
Siga las instrucciones de instalación proporcionadas para su sistema operativo específico. Si estás en Windows, asegúrate de añadirlo a la variable de entorno PATH para poder acceder a él desde cualquier parte de la línea de comandos.
:InstallCmd brew install --cask wkhtmltopdf
:InstallCmd sudo apt-get install wkhtmltopdf
Abre un nuevo terminal o símbolo del sistema y escribe wkhtmltopdf para asegurarte de que la herramienta se ha instalado correctamente. Debería ver información sobre las opciones disponibles.
Una de estas populares bibliotecas de Python para interactuar con wkhtmltopdf se llama pdfkit. Utilice el siguiente comando para instalarlo en sus proyectos de producción:
pip install pdfkit
Instalar IronPDF mediante pip: Abra un terminal o símbolo del sistema en PyCharm, y ejecute el siguiente comando para instalar IronPDF mediante pip:
pip install ironpdf
También puede descargar el paquete Python específico para su plataforma desde la sección de descargas del sitio web de IronPDF en https://ironpdf.com/python/
En esta comparación, primero veremos cómo crear un documento PDF a partir de HTML utilizando tanto la librería wkhtmltopdf como la librería IronPDF. Veremos cómo generar un PDF a partir de lo siguiente:
URL a PDF
Además, exploraremos algunos argumentos y funciones opcionales que ofrecen ambas bibliotecas.
En primer lugar, veremos cómo IronPDF renderiza a la perfección Cadena HTML, archivoy URL a PDF, utilizando su motor ChromePdfRenderer
.
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
Este es el resultado de la cadena HTML convertida a PDF:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an existing HTML file using Python
pdf = renderer.RenderHtmlFileAsPdf("example.html")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
Este es el resultado del archivo HTML convertido a PDF:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a URL or local file path
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/python")
# Export to a file or Stream
pdf.SaveAs("url.pdf")
Ahora, veremos cómo convertir cadenas HTML, archivos y URL a PDF utilizando los paquetes wkhtmltopdf y Pdfkit
. En primer lugar, es necesario establecer el PATH a la instalación wkhtmltopdf lib o añadir manualmente la configuración antes de que el código:
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_string('<h1>Hello World!</h1>', 'out.pdf', configuration=config)
Aquí está la cadena HTML convertida a PDF:
import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_file('example.html', 'index.pdf', configuration=config)
Aquí está el archivo HTML convertido a PDF:
import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_url('https://google.com', 'example.pdf', configuration=config)
A modo de comparación general de los códigos anteriores y de las funcionalidades que ofrecen ambas bibliotecas, a continuación se ofrece una comparación detallada del código y las funcionalidades que ofrecen para la generación de PDF:
IronPDF proporciona una API concisa y pitónica, lo que facilita su uso para la conversión de HTML a PDF. El código es limpio y expresivo.
wkhtmltopdf es simple y fácil de usar, pero la sintaxis puede ser menos Pythonic en comparación con IronPDF. Además, es principalmente una herramienta de línea de comandos y depende de otro paquete de Python para ejecutar wkhtmltopdf correctamente en un entorno Python.
IronPDF ofrece un alto grado de flexibilidad con amplias opciones de personalización para renderizar, editar y proteger los PDF. He aquí un ejemplo de código en el que puede crear argumentos opcionales como Configuración de renderizado HTML:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Many rendering options to use to customize!
renderer.RenderingOptions.SetCustomPaperSizeInInches(12.5, 20)
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.Title = "My PDF Document Name"
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(50) # in milliseconds
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
renderer.RenderingOptions.FitToPaperMode = FitToPaperModes.Zoom
renderer.RenderingOptions.Zoom = 100
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Supports margin customization!
renderer.RenderingOptions.MarginTop = 40 # millimeters
renderer.RenderingOptions.MarginLeft = 20 # millimeters
renderer.RenderingOptions.MarginRight = 20 # millimeters
renderer.RenderingOptions.MarginBottom = 40 # millimeters
# Can set FirstPageNumber if you have a cover page
renderer.RenderingOptions.FirstPageNumber = 1 # use 2 if a cover page will be appended
# Settings have been set, we can render:
renderer.RenderUrlAsPdf("https://www.wikipedia.org/").SaveAs("my-content.pdf")
wkhtmltopdf es flexible para las tareas básicas de conversión, pero puede requerir herramientas adicionales para la manipulación más avanzada de PDF. Aquí PDFKit proporciona opciones de renderizado que sirven a este propósito:
import pdfkit
options = {
'page-size': 'Letter',
'orientation': 'Landscape',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': "UTF-8",
'custom-header': [
('Accept-Encoding', 'gzip')
],
'no-outline': None
}
pdfkit.from_file('index.html', 'index.pdf', options=options)
IronPDF ofrece funciones avanzadas como el cumplimiento de PDF/A, la edición, la fusión y la configuración de seguridad. Esta es una lista de Contraseñas, seguridad y metadatos opciones y funciones que ofrece IronPDF:
from ironpdf import *
# Open an Encrypted File, alternatively create a new PDF from Html
pdf = PdfDocument.FromFile("encrypted.pdf", "password")
# Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = Now()
# The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
# Change or set the document encryption password
pdf.SecuritySettings.OwnerPassword = "top-secret" # password to edit the pdf
pdf.SecuritySettings.UserPassword = "sharable" # password to open the pdf
pdf.SaveAs("secured.pdf")
wkhtmltopdf se centra más en la conversión de HTML a PDF y carece de algunas funciones avanzadas que ofrece IronPDF.
IronPDF se integra perfectamente en entornos Python, lo que facilita su implantación.
wkhtmltopdf requiere que el binario wkhtmltopdf esté disponible, lo que puede requerir consideraciones adicionales durante el despliegue.
IronPDF destaca por su facilidad de uso. documentaciónpara desarrolladores noveles y experimentados. La documentación incluye guías detalladas, referencias a la API y una gran cantidad de información. ejemplos de códigofacilitando una mejor comprensión e implementación de las funciones de la biblioteca en múltiples lenguajes, como Python, Java, C# y Node.js.
IronPDF ofrece un conjunto diverso de opciones de asistencia, lo que garantiza que los desarrolladores reciban ayuda con prontitud. Entre ellas se incluyen un equipo de asistencia dedicado y accesible por correo electrónico, la participación activa en foros de desarrolladores y una opción de asistencia en directo en el sitio web para obtener ayuda en tiempo real.
wkhtmltopdf, al ser un proyecto de código abierto, proporciona documentación disponible en su repositorio oficial de GitHub y en otras plataformas en línea. Aunque cubre los aspectos fundamentales de uso e instalación, la documentación puede no alcanzar la profundidad o la facilidad de uso para principiantes de algunas alternativas comerciales.
El apoyo a wkhtmltopdf está impulsado principalmente por la comunidad. Los usuarios pueden notificar problemas y solicitar ayuda a través de las incidencias de GitHub, apoyándose en los debates y foros de la comunidad para la resolución de problemas. La comunidad participa activamente en debates, compartiendo experiencias y soluciones.
wkhtmltopdf sigue un modelo de licencia de código abierto. Se distribuye bajo la Licencia Pública General Affero de GNU (AGPL)una licencia de software libre y de código abierto. La AGPL es una licencia copyleft, que exige que cualquier versión modificada del software se distribuya también bajo la AGPL. Estos son los puntos clave relativos a la licencia de wkhtmltopdf:
wkhtmltopdf está disponible gratuitamente y es de código abierto, lo que permite a los usuarios ver, modificar y distribuir el código fuente.
Distribuido bajo la licencia GNU AGPL, que exige que cualquier cambio realizado en el código se publique bajo la misma licencia.
Los usuarios pueden descargar, utilizar y modificar libremente el programa sin pagar licencias.
La disposición sobre copyleft de la AGPL garantiza que cualquier obra derivada sea también de código abierto.
IronPDF sigue un modelo de licencia comercial. Las licencias de IronPDF se basan en diferentes ediciones, cada una de las cuales responde a necesidades y escenarios de uso específicos. Las ediciones disponibles son:
Ideal para uso empresarial a gran escala, ofrece amplias funciones sin limitaciones de uso.
Las licencias de IronPDF son perpetuas, es decir, no caducan, y los desarrolladores reciben actualizaciones y asistencia en función de la edición elegida. El modelo de licencia ofrece flexibilidad a los desarrolladores para elegir la edición que se ajuste a los requisitos de su proyecto. Para más información sobre licencias y complementos, visite la página página de licencia.
En conclusión, tras una exhaustiva comparación entre wkhtmltopdf e IronPDF for Python, resulta evidente que IronPDF emerge como la opción superior para proyectos con requisitos avanzados de PDF. Aunque wkhtmltopdf es adecuado para tareas sencillas de conversión de HTML a PDF, aprovechando su simplicidad y su interfaz de línea de comandos, puede quedarse corto cuando se enfrenta a manipulaciones de PDF más intrincadas, necesitando a menudo herramientas adicionales.
Por el contrario, IronPDF demuestra ser una opción sobresaliente, sobre todo para proyectos que requieren un mayor grado de sofisticación. Destaca por ofrecer una API fácil de usar que viene equipada con amplias opciones de personalización. Esto convierte a IronPDF en una solución ideal para tareas que exigen una manipulación y edición exhaustivas de PDF y sólidas funciones de seguridad. Su flexibilidad va más allá de la mera configuración del diseño, lo que permite a los desarrolladores integrarlo sin problemas en diversos entornos Python.
La documentación de IronPDF destaca por su profundidad y accesibilidad, ofreciendo un recurso completo para los desarrolladores. Por el contrario, wkhtmltopdf, que se basa en el apoyo de la comunidad, puede adaptarse a los desarrolladores que se sienten cómodos con los foros de la comunidad y la resolución autodirigida de problemas.
IronPDF es gratuito para el desarrollo pero con una marca de agua en los PDF generados y ofrece un prueba gratuita para probar su funcionalidad completa sin marca de agua en modo comercial. Descargue el programa desde aquí.
9 productos API .NET para sus documentos de oficina