Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
PDF (Formato de documento portátil) son un formato de archivo muy utilizado para conservar el diseño y el formato de la información de los documentos en distintas plataformas. Son muy populares en diversos sectores debido a su capacidad para mantener un aspecto uniforme independientemente del dispositivo o sistema operativo utilizado para abrirlos. Los PDF se utilizan habitualmente para compartir informes, facturas, formularios, libros electrónicos, datos personalizados y otros documentos importantes.
Trabajar con archivos PDF en Python se ha convertido en un aspecto crucial de muchos proyectos. Python ofrece varias bibliotecas que simplifican la manipulación de archivos PDF, facilitando la extracción de información, la creación de nuevos documentos, la fusión o división de los existentes y la realización de otras tareas relacionadas con PDF.
En este artículo, realizaremos una comparación exhaustiva de dos renombradas librerías Python diseñadas para manipular archivos PDF: PyPDF e IronPDF. Al evaluar las características y capacidades de ambas bibliotecas, pretendemos ofrecer a los desarrolladores información valiosa que les ayude a tomar una decisión consciente sobre cuál se adapta mejor a las necesidades específicas de su aplicación de software.
Estas bibliotecas ofrecen sólidas herramientas para agilizar el trabajo con archivos PDF, lo que permite a los desarrolladores manejar eficazmente documentos PDF en sus aplicaciones Python. Así pues, profundicemos en la comparación y exploremos los puntos fuertes de cada biblioteca para facilitar sus tareas relacionadas con PDF.
PyPDF es una biblioteca PDF puramente Python que proporciona funcionalidades básicas para leer, escribir, descifrar archivos PDF y manipular documentos PDF. Permite extraer texto e imágenes de archivos PDF, fusionar varios archivos PDF, dividir archivos PDF grandes en otros más pequeños y mucho más. PyPDF es conocido por su sencillez y facilidad de uso, lo que lo convierte en una opción adecuada para tareas sencillas con PDF.
Ofrece un completo conjunto de funciones para trabajar con documentos PDF, lo que lo convierte en una excelente opción para una amplia gama de tareas relacionadas con PDF.
PyPDF es una librería PDF de Python capaz de las siguientes características:
IronPDF es una completa biblioteca de manipulación de PDF para Python, construida sobre la biblioteca .NET de IronPDF. Ofrece una potente API con funciones avanzadas, como la conversión de HTML a PDF, la gestión de anotaciones PDF y campos de formulario, y la realización eficaz de operaciones PDF complejas. IronPDF es ideal para proyectos que requieren un procesamiento de PDF robusto, rendimiento y una amplia compatibilidad de funciones.
IronPDF es una biblioteca PDF de Python capaz de manejar tareas de procesamiento de PDF sin problemas. Proporciona una solución de manipulación de PDF fiable y repleta de funciones para los desarrolladores de Python. Con IronPDF, puede generar, modificar y extraer contenido de varias páginas de un PDF sin esfuerzo, lo que lo convierte en una excelente opción para diversas aplicaciones relacionadas con PDF.
Estas son algunas características destacadas de IronPDF:
Alto rendimiento: Construido sobre la librería .NET de IronPDF, IronPDF proporciona un alto rendimiento y eficiencia en el manejo de grandes archivos PDF y operaciones complejas.
El artículo dice ahora lo siguiente:
Utilizar un Entorno de Desarrollo Integrado (IDE) para proyectos en Python puede aumentar considerablemente la productividad. Entre las opciones más populares, voy a utilizar PyCharm, ya que destaca por su completado inteligente de código, su potente depuración y su perfecta integración con los sistemas de control de versiones. Si no lo tiene instalado, puede descargarlo del sitio web de JetBrains (https://www.jetbrains.com/pycharm/)o puede utilizar cualquier IDE/Editor de texto para programas Python como VS Code.
Para crear un proyecto Python en PyCharm:
Inicie PyCharm y haga clic en "Crear nuevo proyecto" en la pantalla de bienvenida de PyCharm, o vaya a Archivo > Nuevo proyecto en el menú.
Introduzca el nombre y la configuración del proyecto y haga clic en Crear.
PyPDF, biblioteca Python pura, puede instalarse de múltiples maneras. Podemos instalarlo usando tanto Command Prompt como PyCharm.
:ProductInstall
Espere a que finalice la instalación de PyPDF. Debería ver un mensaje de éxito indicando que PyPDF ha sido instalado.
Puede utilizar el mismo proceso para instalar PyPDF en PyCharm Terminal.
Nota: Python debe añadirse a la variable de entorno PATH del sistema.
En la ventana del intérprete de Python, haga clic en el icono "+" para añadir un nuevo paquete.
En la ventana "Paquetes disponibles", busque "PyPDF".
IronPDF Python aprovecha la potente tecnología .NET 6.0 como base. Por consiguiente, para utilizar IronPDF Python con eficacia, es esencial tener instalado en su sistema el tiempo de ejecución .NET 6.0. Es posible que los usuarios de Linux y Mac tengan que descargar e instalar .NET desde el sitio web oficial de Microsoft (https://dotnet.microsoft.com/en-us/download/dotnet/6.0) antes de proceder a trabajar con este paquete Python. Garantizar la presencia del tiempo de ejecución .NET 6.0 permitirá una integración perfecta y un rendimiento óptimo al utilizar IronPDF Python para tareas de procesamiento de PDF.
:PackageInstall
En la ventana "Paquetes disponibles", busca "ironpdf
".
ironpdf
" de la lista y haz clic en el botón "Instalar paquete".Espere a que IronPDF se descargue e instale. Aparecerá un mensaje de éxito indicando que IronPDF está instalado.
Ahora, ambas bibliotecas están instaladas y listas para ser utilizadas. Pasemos a la comparación propiamente dicha.
PyPDF proporciona capacidades básicas para crear nuevos archivos PDF. Sin embargo, no dispone de un método integrado para convertir directamente contenidos HTML a PDF. Para crear un nuevo PDF con PyPDF, tenemos que añadir contenido a un PDF existente o crear un nuevo PDF en blanco y luego añadirle texto o imágenes. El siguiente código ayuda a realizar esta tarea de crear archivos PDF:
from pypdf import PdfWriter, PdfReader
# Create a new PDF file
pdf_output = PdfWriter()
# Add a new blank page
page = pdf_output.add_blank_page(width=610, height=842) # Width and height are in points (1 inch = 72 points)
# Read content from an existing PDF
with open('input.pdf', 'rb') as existing_pdf:
existing_pdf_reader = PdfReader(existing_pdf)
# Merge content from the first page of the existing PDF
page.merge_page(existing_pdf_reader.pages [0])
# Save the new PDF to a file
with open('output.pdf', 'wb') as output_file:
pdf_output.write(output_file)
El archivo de entrada contiene 28 páginas y sólo se añade la primera página al nuevo archivo PDF. El resultado es el siguiente:
IronPDF ofrece funciones avanzadas para crear nuevos archivos PDF directamente a partir de contenido HTML. Esto permite generar informes y documentos dinámicos sin necesidad de pasos adicionales. Este es el código de ejemplo:
import ironpdf
ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This PDF is created using IronPDF for Python</p>")
# 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'>", "C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
En el código anterior, primero aplicamos la clave de licencia para utilizar toda la potencia de IronPDF. También puede utilizarlo sin clave de licencia, pero aparecerán marcas de agua en los archivos PDF creados. A continuación, creamos dos documentos PDF, el primero utilizando una cadena HTML como contenido y el segundo utilizando activos. El resultado es el siguiente:
PyPDF permite fusionar varias páginas/documentos en un único PDF añadiendo páginas de un PDF a otro. Añada las rutas de entrada de todos los archivos PDF de la lista y utilice el método append para combinar y generar un único archivo.
from pypdf import PdfWriter
merger = PdfWriter()
for pdf in ["file1.pdf", "file2.pdf", "file3.pdf"]:
merger.append(pdf)
merger.write("merged-pdf.pdf")
merger.close()
IronPDF también ofrece funciones similares para fusionar documentos en uno solo, lo que facilita la consolidación de contenidos de distintas fuentes de PDF.
import ironpdf
ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
html_a = """<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_A] 2nd Page</p>"""
html_b = """<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_B] 2nd Page</p>"""
renderer = ironpdf.ChromePdfRenderer()
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b)
merged.SaveAs("Merged.pdf")
PyPDF es una biblioteca de Python capaz de dividir un único PDF en varios PDF independientes, cada uno de los cuales contendrá una o más páginas PDF.
from pypdf import PdfReader, PdfWriter
# Open the PDF file
pdf_file = open('input.pdf', 'rb')
# Create a PdfFileReader object
pdf_reader = PdfReader(pdf_file)
# Split each page into separate PDFs
for page_num in range(len(pdf_reader.pages)):
pdf_writer = PdfWriter()
pdf_writer.add_page(pdf_reader.pages [page_num])
output_filename = f'page_{page_num + 1}_pypdf.pdf'
with open(output_filename, 'wb') as output_file:
pdf_writer.write(output_file)
# Close the PDF file
pdf_file.close()
El código anterior divide el documento PDF de 28 páginas para separarlo en páginas individuales y guardarlas como 28 nuevos archivos PDF.
IronPDF también proporciona capacidades similares para dividir PDFs, permitiendo a los usuarios dividir un único PDF en varios archivos PDF, cada uno con una única página PDF. Nos permite dividir una página específica de un PDF con varias páginas. El siguiente código ayuda a dividir documentos en varios archivos:
import ironpdf
ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
html = """<p> Hello Iron </p>
<p> This is 1st Page </p>
<div style='page-break-after: always;'></div>
<p> This is 2nd Page</p>
<div style='page-break-after: always;'></div>
<p> This is 3rd Page</p>"""
renderer = ironpdf.ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html)
# take the first page
page1doc = pdf.CopyPage(0)
page1doc.SaveAs("Split1.pdf")
# take the pages 2 & 3
page23doc = pdf.CopyPages(1, 2)
page23doc.SaveAs("Split2.pdf")
Para obtener información más detallada sobre IronPDF acerca de la lectura de archivos PDF, la rotación de páginas PDF, el recorte de páginas, la configuración de la contraseña de propietario/usuario y otras opciones de seguridad, visite este enlace Página de ejemplos de código Python de IronPDF.
PyPDF proporciona un método sencillo para extraer texto de los PDF. Ofrece la clase PdfReader
, que permite a los usuarios leer el contenido de texto del PDF.
from pypdf import PdfReader
reader = PdfReader("input.pdf")
page = reader.pages [0]
print(page.extract_text())
IronPDF también permite extraer texto de PDFs utilizando la clase PdfDocument
. Proporciona un método llamado ExtractAllText
para obtener el contenido de texto del PDF. Sin embargo, la versión gratuita de IronPDF sólo extrae unos pocos caracteres del documento PDF. Para extraer el texto completo de los PDF, IronPDF necesita una licencia. Aquí está el ejemplo de código para extraer contenido de archivos PDF:
import ironpdf
ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
# Load existing PDF document
pdf = ironpdf.PdfDocument.FromFile("input.pdf")
# Extract text from PDF document
all_text = pdf.ExtractAllText()
print(all_text)
Para obtener más información sobre la extracción de texto, visite este enlace Texto PDF a Python ejemplo.
PyPDF se distribuye bajo la licencia MIT, que es una licencia de software de código abierto conocida por sus términos permisivos. La licencia MIT permite a los usuarios utilizar, modificar, distribuir y sublicenciar libremente la biblioteca PyPDF sin ninguna restricción. Los usuarios no están obligados a revelar el código fuente de sus aplicaciones que utilicen PyPDF, por lo que resulta adecuado tanto para proyectos personales como comerciales.
El texto completo de la Licencia MIT se incluye normalmente en el código fuente de PyPDF, y los usuarios pueden encontrarlo en el archivo "LICENSE" dentro de la distribución de la biblioteca. Además, el repositorio GitHub de PyPDF (https://github.com/py-pdf/pypdf) sirve como fuente principal para acceder a la última versión de la biblioteca y a la información asociada sobre licencias.
IronPDF es una biblioteca comercial y no es de código abierto. Lo desarrolla y distribuye Iron Software LLC. El uso de IronPDF requiere una licencia válida de Iron Software. Hay diferentes tipos de licencias disponibles, incluidas versiones de prueba para fines de evaluación y licencias de pago para uso comercial.
Como IronPDF es un producto comercial, ofrece funciones y asistencia técnica adicionales en comparación con las alternativas de código abierto. Para obtener una licencia de IronPDF, los usuarios pueden visitar el sitio web oficial de Iron Software (https://ironpdf.com/python/licensing/) para explorar las opciones de licencia disponibles, precios y detalles de asistencia. Su paquete Lite parte de $749 y es una licencia perpetua.
PyPDF es una biblioteca Python potente y fácil de usar para trabajar con archivos PDF. Sus funciones de lectura, escritura, fusión y división de PDF lo convierten en una herramienta esencial para las tareas de manipulación de PDF. Tanto si necesita extraer texto de un PDF como crear nuevos PDF desde cero o combinar y dividir documentos existentes, PyPDF le ofrece una solución fiable y eficaz. Al aprovechar las capacidades de PyPDF, los desarrolladores de Python pueden agilizar sus flujos de trabajo relacionados con PDF y mejorar su productividad.
IronPDF es una completa y eficaz biblioteca de manipulación de PDF para Python, que proporciona una amplia gama de funciones para leer, crear, combinar y dividir archivos PDF. Tanto si necesita generar informes PDF dinámicos como extraer información de documentos PDF existentes o fusionar varios documentos, IronPDF le ofrece una solución fiable y fácil de usar. Al aprovechar las capacidades de IronPDF, los desarrolladores de Python pueden agilizar sus flujos de trabajo relacionados con PDF y mejorar su productividad.
En comparación general, PyPDF es una biblioteca ligera y fácil de usar adecuada para operaciones básicas con PDF. Es una buena opción para proyectos con requisitos de PDF sencillos. Por otro lado, IronPDF ofrece una API más amplia y un rendimiento sólido, lo que lo hace ideal para proyectos que exigen capacidades avanzadas de procesamiento de PDF, manejo de archivos PDF de gran tamaño y realización de tareas complejas.
Ambas bibliotecas ofrecen buenas posibilidades de codificación para las tareas habituales en PDF. PyPDF es adecuado para operaciones sencillas e implementaciones rápidas, mientras que IronPDF proporciona una API más amplia y versátil para manejar tareas complejas relacionadas con PDF.
En términos de rendimiento, es probable que IronPDF supere a PyPDF, especialmente cuando se trata de archivos PDF de gran tamaño o de tareas que requieren complejas manipulaciones de PDF.
La elección entre las dos bibliotecas depende de las necesidades específicas del proyecto y de la complejidad de las tareas relacionadas con PDF.
IronPDF también está disponible por un prueba gratuita para probar su funcionalidad completa en modo comercial. Descargue IronPDF for Python desde aquí.
9 productos API .NET para sus documentos de oficina