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
IronPDF y SautinSoft PDF Focus .NET se centran en la creación de archivos PDF que se pueden leer o editar 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 requieren 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 detallan las características de SautinSoft PDF Focus .NET:
Genera documentos en formato HTML5.
IronPDF de Iron Software es una potente herramienta diseñada 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, como 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 webPaquete NuGet IronPDF y utilizarse como referencia en 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:
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 competidores. Por ejemplo, una licencia de PDF Focus .NET - HTML Edition está valorada en $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 maquetación del texto debe ser 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).
Admite componentes multiplataforma y es totalmente compatible con plataformas y servicios en la nube como:
AWS
Docker
SharePoint
// PM> Install-Package IronPdf
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Test HTML with images</h1>").SaveAs("test_image.pdf");
/****** Advanced ******/
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
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 ******/
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf")
IRON VB CONVERTER ERROR developers@ironsoftware.com
// PM> Install-Package IronPdf
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://www.google.com/");
Pdf.SaveAs("url.pdf");
// see also 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");
// see also 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")
' see also Pdf.Stream
// PM> Install-Package IronPdf
using IronPdf;
using System.IO;
using System.Linq;
// Get all images(.jpg) from folder
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\test").Where(f => f.EndsWith(".jpg")
f.EndsWith(".jpeg"));
// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\testing.pdf");
//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
// PM> Install-Package IronPdf
using IronPdf;
using System.IO;
using System.Linq;
// Get all images(.jpg) from folder
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\test").Where(f => f.EndsWith(".jpg")
f.EndsWith(".jpeg"));
// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\testing.pdf");
//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
' PM> Install-Package IronPdf
Imports IronPdf
Imports System.IO
Imports System.Linq
' Get all images(.jpg) from folder
Private ImageFiles = System.IO.Directory.EnumerateFiles("C:\project\test").Where(Function(f) f.EndsWith(".jpg") f.EndsWith(".jpeg"))
' Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs("C:\project\testing.pdf")
'Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
string pdfFile = @"c:\test.pdf";
MemoryStream docxStream = new MemoryStream();
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
// Assume that we already have a PDF document as stream.
using (FileStream pdfStream = new FileStream(pdfFile, FileMode.Open, FileAccess.Read))
{
f.OpenPdf(pdfStream);
if (f.PageCount > 0)
{
int res = f.ToWord(docxStream);
// Save docxStream to a file for demonstration purposes.
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();
// Assume that we already have a PDF document as stream.
using (FileStream pdfStream = new FileStream(pdfFile, FileMode.Open, FileAccess.Read))
{
f.OpenPdf(pdfStream);
if (f.PageCount > 0)
{
int res = f.ToWord(docxStream);
// Save docxStream to a file for demonstration purposes.
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()
' Assume that we already have a PDF document as stream.
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)
' Save docxStream to a file for demonstration purposes.
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)
{
//Set image properties: Jpeg, 200 dpi
f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
f.ImageOptions.Dpi = 200;
//Save all PDF pages as page1.jpg, page2.jpg ... pageN.jpg
f.ToImage(@"C:\Pictures\, "page");
}
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
f.OpenPdf(@"C:\Computer\testpdf");
if (f.PageCount > 0)
{
//Set image properties: Jpeg, 200 dpi
f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
f.ImageOptions.Dpi = 200;
//Save all PDF pages as page1.jpg, page2.jpg ... pageN.jpg
f.ToImage(@"C:\Pictures\, "page");
}
Dim f As New SautinSoft.PdfFocus()
f.OpenPdf("C:\Computer\testpdf")
If f.PageCount > 0 Then
'Set image properties: Jpeg, 200 dpi
f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg
f.ImageOptions.Dpi = 200
'Save all PDF pages as page1.jpg, page2.jpg ... pageN.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");
//Open HTML document
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");
//Open HTML document
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")
'Open HTML document
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