Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
PDF son las siglas de Portable Document Format (formato de documento portátil). La forma más fácil de resumir lo que esto significa es imaginar una carpeta que contiene una colección de archivos, desde gráficos hasta texto y más. Estos elementos conforman los PDF modernos, y son los componentes básicos a partir de los cuales se crean los PDF. Este formato de archivo se "descubrió/inventó" en los años 90 como forma de intercambiar información entre usuarios con distintas configuraciones informáticas.
En este artículo, compararemos dos populares bibliotecas PDF para componentes .NET. Estas dos bibliotecas son:
SautinSoft PDF Focus .Net
Tanto IronPDF como SautinSoft PDF Focus .Net se centran en la creación de archivos PDF que puedan leerse o editarse en sus aplicaciones Microsoft .NET, incluidas las aplicaciones web ASP.NET y las aplicaciones Windows tradicionales. Ahora podemos comparar estas dos bibliotecas para decidir cuál es la mejor para utilizar en nuestra aplicación. En primer lugar, compararemos las características de las dos bibliotecas y, a continuación, analizaremos su rendimiento a la hora de convertir y manipular archivos PDF.
Ambas bibliotecas son compatibles con el marco Microsoft .NET.
SautinSoft PDF Focus .Net está diseñado para ayudarle en el desarrollo de aplicaciones que requieran la conversión de archivos a documentos PDF. Si desea proporcionar una forma de convertir PDF a Word desde su aplicación WinForms o WPF/XAML, sólo tiene que añadir una referencia a "SautinSoft.PdfFocus.dll" y escribir 3-4 líneas de código C#.
A continuación se describen las características de SautinSoft PDF Focus .Net:
IronPDF es un producto de Iron Software para desarrolladores .NET. Proporciona un enfoque fácil e inteligente para transformar cualquier forma de página web HTML en formato PDF, sin los problemas que surgen al producir cualquier forma de documento PDF con sólo algunas cadenas de código.
Además, IronPDf ofrece la posibilidad de incluir mediante programación muchos tipos de elementos en un documento PDF, incluidos encabezados, pies de página, marcas de agua y marcadores.
A continuación se detallan las características de IronPDF:
IronPDF.dll puede descargarse directamente de la página sitio web oficial y se utiliza como referencia en los proyectos .NET. Se puede acceder a las clases IronPDF utilizando el espacio de nombres IronPdf.
Los paquetes SautinSoft.PdfFocus pueden descargarse directamente del sitio web oficial y utilizarse como referencia en proyectos .NET. Los objetos SautinSoft.PdfFocus pueden utilizarse para convertir documentos.
Siga los mismos pasos mencionados anteriormente, pero busque IronPDF en lugar de SautinSoft.PdfFocus.
Añada la biblioteca IronPDF como referencia del proyecto, como se muestra a continuación:
También hay disponibles versiones de prueba gratuitas con fines de licencia
Esta biblioteca ofrece a los desarrolladores una conversión de máxima calidad a precios asequibles. El principal punto de interés es que PDF Focus .Net es menos caro que todos sus homólogos de la competencia. Por ejemplo, una licencia de PDF Focus .Net - HTML Edition tiene un valor de $749(USD)y la Edición Total cuesta a partir de 778 dólares.
Si necesita una biblioteca .NET que pueda extraer datos de texto de documentos PDF, está en el lugar adecuado.
PDF Focus .Net le ayuda a extraer texto de cualquier documento PDF. El texto puede extraerse de un documento entero o de páginas individuales. La biblioteca extrae texto de alta calidad sin espacios innecesarios entre palabras, y también admite caracteres Unicode. Además, la disposición del texto es la misma que en RTF, con los saltos de línea y columnas correctos. También proporciona una API para convertir documentos PDF.
SautinSoft PDF Focus tiene su propio lector PDF y renderizador DOCX. Su aplicación .NET podrá convertir cualquier documento PDF a DOCX sobre la marcha, sin depender de Microsoft Office ni de Adobe Acrobat. Casi todas las funciones de ambas aplicaciones son compatibles. El documento DOCX resultante contendrá párrafos, columnas, tablas, hipervínculos, imágenes, saltos de página, etc.
Otro punto de interés es que PDF Focus .Net tiene una función de IA, y puede entender y recrear tablas reales con filas y celdas (Los documentos PDF no tienen tablas reales... si ves una tabla dentro de un PDF, en realidad es sólo un conjunto de líneas que sólo da la sensación de una tabla real).
// PM> Install-Package IronPdf
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Test HTML with images</h1>").SaveAs("test_image.pdf");
/****** Advanced ******/
// Carga activos html externos: imágenes, css y javascript.
// Una BasePath opcional 'C:\site\assets\' se establece como la ubicación del archivo para cargar los activos de
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf")
// PM> Install-Package IronPdf
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Test HTML with images</h1>").SaveAs("test_image.pdf");
/****** Advanced ******/
// Carga activos html externos: imágenes, css y javascript.
// Una BasePath opcional 'C:\site\assets\' se establece como la ubicación del archivo para cargar los activos de
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf")
' PM> Install-Package IronPdf
'
Imports IronPdf
'
Private Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Test HTML with images</h1>").SaveAs("test_image.pdf")
'
'''**** Advanced *****
'
' Carga activos html externos: imágenes, css y javascript.
' Una BasePath opcional 'C:\site\assets\' se establece como la ubicación del archivo para cargar los activos de
Dim PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'PDF.SaveAs("html-with-assets.pdf")
// PM> Install-Package IronPdf
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://www.google.com/");
Pdf.SaveAs("url.pdf");
// véase también Pdf.Stream
// PM> Install-Package IronPdf
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://www.google.com/");
Pdf.SaveAs("url.pdf");
// véase también Pdf.Stream
' PM> Install-Package IronPdf
'
Imports IronPdf
'
'
Private Renderer As New IronPdf.ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://www.google.com/")
'
Pdf.SaveAs("url.pdf")
' véase también Pdf.Stream
// PM> Install-Package IronPdf
using IronPdf;
using System.IO;
using System.Linq;
// Obtener todas las imágenes(.jpg) de la carpeta
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\test").Where(f => f.EndsWith(".jpg")
f.EndsWith(".jpeg"));
// Convierte las imágenes en un PDF y guárdalo.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\testing.pdf");
//Consulte también el método PdfDocument.RasterizeToImageFiles() para convertir un PDF en imágenes o miniaturas.
// PM> Install-Package IronPdf
using IronPdf;
using System.IO;
using System.Linq;
// Obtener todas las imágenes(.jpg) de la carpeta
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\test").Where(f => f.EndsWith(".jpg")
f.EndsWith(".jpeg"));
// Convierte las imágenes en un PDF y guárdalo.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\testing.pdf");
//Consulte también el método PdfDocument.RasterizeToImageFiles() para convertir un PDF en imágenes o miniaturas.
' PM> Install-Package IronPdf
Imports IronPdf
Imports System.IO
Imports System.Linq
'
' Obtener todas las imágenes(.jpg) de la carpeta
Private ImageFiles = System.IO.Directory.EnumerateFiles("C:\project\test").Where(Function(f) f.EndsWith(".jpg") f.EndsWith(".jpeg"))
'
' Convierte las imágenes en un PDF y guárdalo.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs("C:\project\testing.pdf")
'
'Consulte también el método PdfDocument.RasterizeToImageFiles() para convertir un PDF en imágenes o miniaturas.
string pdfFile = @"c:\test.pdf";
MemoryStream docxStream = new MemoryStream();
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
// Supongamos que ya tenemos un documento PDF como flujo.
using (FileStream pdfStream = new FileStream(pdfFile, FileMode.Open, FileAccess.Read))
{
f.OpenPdf(pdfStream);
if (f.PageCount > 0)
{
int res = f.ToWord(docxStream);
// Guarde docxStream en un archivo para fines de demostración.
if (res == 0)
{
string docxFile = Path.ChangeExtension(pdfFile, ".docx");
File.WriteAllBytes(docxFile, docxStream.ToArray());
System.Diagnostics.Process.Start(docxFile);
}
}
}
string pdfFile = @"c:\test.pdf";
MemoryStream docxStream = new MemoryStream();
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
// Supongamos que ya tenemos un documento PDF como flujo.
using (FileStream pdfStream = new FileStream(pdfFile, FileMode.Open, FileAccess.Read))
{
f.OpenPdf(pdfStream);
if (f.PageCount > 0)
{
int res = f.ToWord(docxStream);
// Guarde docxStream en un archivo para fines de demostración.
if (res == 0)
{
string docxFile = Path.ChangeExtension(pdfFile, ".docx");
File.WriteAllBytes(docxFile, docxStream.ToArray());
System.Diagnostics.Process.Start(docxFile);
}
}
}
Dim pdfFile As String = "c:\test.pdf"
Dim docxStream As New MemoryStream()
Dim f As New SautinSoft.PdfFocus()
' Supongamos que ya tenemos un documento PDF como flujo.
Using pdfStream As New FileStream(pdfFile, FileMode.Open, FileAccess.Read)
f.OpenPdf(pdfStream)
If f.PageCount > 0 Then
Dim res As Integer = f.ToWord(docxStream)
' Guarde docxStream en un archivo para fines de demostración.
If res = 0 Then
Dim docxFile As String = Path.ChangeExtension(pdfFile, ".docx")
File.WriteAllBytes(docxFile, docxStream.ToArray())
System.Diagnostics.Process.Start(docxFile)
End If
End If
End Using
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
f.OpenPdf(@"C:\Computer\testpdf");
if (f.PageCount > 0)
{
//Establezca las propiedades de la imagen: Jpeg, 200 dpi
f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
f.ImageOptions.Dpi = 200;
//Guardar todas las páginas PDF como página1.jpg, página2.jpg ... páginaN.jpg
f.ToImage(@"C:\Pictures\, "page");
}
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
f.OpenPdf(@"C:\Computer\testpdf");
if (f.PageCount > 0)
{
//Establezca las propiedades de la imagen: Jpeg, 200 dpi
f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
f.ImageOptions.Dpi = 200;
//Guardar todas las páginas PDF como página1.jpg, página2.jpg ... páginaN.jpg
f.ToImage(@"C:\Pictures\, "page");
}
Dim f As New SautinSoft.PdfFocus()
f.OpenPdf("C:\Computer\testpdf")
If f.PageCount > 0 Then
'Establezca las propiedades de la imagen: Jpeg, 200 dpi
f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg
f.ImageOptions.Dpi = 200
'Guardar todas las páginas PDF como página1.jpg, página2.jpg ... páginaN.jpg
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' f.ToImage("C:\Pictures\, "page"); }
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
f.OpenPdf(@"c:\test.pdf");
if (f.PageCount > 0)
{
int result = f.ToHtml(@"c:\output.html");
//Abrir documento HTML
if (result==0)
{
System.Diagnostics.Process.Start(@"c:\output.html");
}
}
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
f.OpenPdf(@"c:\test.pdf");
if (f.PageCount > 0)
{
int result = f.ToHtml(@"c:\output.html");
//Abrir documento HTML
if (result==0)
{
System.Diagnostics.Process.Start(@"c:\output.html");
}
}
Dim f As New SautinSoft.PdfFocus()
f.OpenPdf("c:\test.pdf")
If f.PageCount > 0 Then
Dim result As Integer = f.ToHtml("c:\output.html")
'Abrir documento HTML
If result=0 Then
System.Diagnostics.Process.Start("c:\output.html")
End If
End If
La principal desventaja de la biblioteca SautinSoft es que imprime el aviso de prueba "Creado por una versión sin licencia de PDF Focus .Net", y la adición aleatoria de la palabra "Prueba". Este no es el caso de IronPDF.
El precio básico de uso de IronPDF es casi la mitad que el de SautinSoft.
Cuando comparamos ambas bibliotecas, podemos ver claramente que IronPDF es más fiable y rentable, casi la mitad de precio que SautinSoft, y proporciona mejor soporte y funciones.
En este artículo, hemos comparado IronPDF y SautinSoft PDF Focus .Net. Hemos descubierto que IronPDF se utiliza para la conversión de formularios web, páginas HTML locales y otras páginas web a PDF con .NET, mientras que SautinSoft PDF Focus se utiliza para la conversión de PDF a cualquier formato como Docx, imágenes, HTML, etc. Con el trabajo de prueba, descubrimos que IronPDF ofrece funciones de prueba ilimitadas y no añade etiquetas de producto al producto de salida.
En conclusión, preferimos IronPDF por su mejor rendimiento y las numerosas funciones que ofrece a los desarrolladores que trabajan con el formato de documento portátil. También proporcionan un buen soporte y documentación para garantizar un uso óptimo de todas las impresionantes funciones.
9 productos API .NET para sus documentos de oficina