Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
¿Busca las herramientas PDF perfectas para .NET Framework?
En este artículo, veremos cómo trabajar con archivos PDF en C#.(uno de los lenguajes de programación más populares). Analizaremos dos herramientas PDF líderes del sector para C# en .NET Framework, utilizando ejemplos de código para compararlas en función de su rendimiento y sus funciones. Al final, examinaremos sus detalles de licencia y aprenderemos a obtener claves de licencia.
Las dos bibliotecas PDF son:
IronPDF es una biblioteca C# .NET desarrollada por Iron Software para resolver todos los problemas de PDF de los desarrolladores C# .NET utilizando una única biblioteca. IronPDF funciona con un motor de cromo y cuenta con una serie de funciones útiles y potentes, como la conversión de archivos HTML5, JavaScript, CSS e imágenes a PDF, la creación de encabezados y pies de página personalizados y la visualización de archivos PDF tal y como aparecen en un navegador. IronPDF le permite leer datos de archivos PDF e insertarlos automáticamente en sus aplicaciones .NET y sistemas de almacenamiento de datos. Puede importar, mover e indexar contenidos desde el antiguo almacenamiento de documentos PDF a sus aplicaciones empresariales y de gestión de documentos.
Esta funcionalidad le permite generar archivos PDF a partir de diversos formatos, como HTML, vistas MVC, formularios web, cadenas HTML y URL.
En muchas circunstancias, puede extraer fácilmente texto incrustado de los PDF. Sin embargo, si eso falla, lo más probable es que su texto esté incrustado en una imagen. Para escanear documentos en busca de texto visual, en lugar de texto sin formato, utilice la funciónIronOCR biblioteca.
Los encabezados y pies de página pueden añadirse al crear un PDF o a PDF existentes. Mediante la propiedad Opciones de impresión, puede crear un encabezado y un pie de página para cada página del documento. Estos parámetros están disponibles en el objeto ChromePdfRenderer. Este ejemplo se ejecuta dentro de una aplicación de consola .NET Core.
Permite a los usuarios generar fotos a partir de PDF, así como PDF a partir de fotografías. Admite la extracción de imágenes, varias extensiones de imagen y la impresión de PDF.
IronPDF también incluye cifrado de PDF de 128 bits, bloqueo de PDF protegido por contraseña y firma digital de PDF.
La herramienta IronPDF le permite añadir marcas de agua, añadir páginas, eliminar páginas, fondos, primeros planos y mucho más a sus PDF.
IronPDF es compatible con casi todos los sistemas operativos y marcos de trabajo compatibles con C#, como:
PDFNet .NET SDK de PDFTron lleva el procesamiento, la anotación, la edición y la creación precisos de PDF a cualquier marco o aplicación web, móvil, de escritorio o servidor. Gestiona todo el proceso de gestión de documentos e información con su infraestructura y elimina la necesidad de dependencias de servidores de terceros. La plataforma web de PDFTron incluye una versión JS con la plataforma compatible y una clave de licencia de demostración para todos los SDK de PDF.
Una de las ventajas más significativas de PDFNet es que es realmente multiplataforma, lo que permite a nuestros usuarios añadir de forma sencilla compatibilidad con PDF y funcionalidad empresarial relevante a sus flujos de trabajo y aplicaciones en muchos contextos distintos de móvil y escritorio, todo ello utilizando prácticamente la misma interfaz.
El SDK de PDFNet es compatible con muchas plataformas y marcos de trabajo. Para garantizar la coherencia de la plataforma, la API JavaScript se utiliza del mismo modo que la API PDFNet. También están disponibles las versiones Node.js y Electron del SDK. Este paquete requiere binarios adicionales no gestionados.
Aporta a los usuarios capacidades de lectura y edición de PDF seguras, escalables y de alta fidelidad en plataformas en línea, móviles y de escritorio.
Crear procedimientos de firma personalizados. Los documentos firmados digitalmente pueden certificarse, validarse y sellarse.
Elimine los datos confidenciales de los documentos, como información personal o sobre la salud de las personas, dejando el documento apto para las búsquedas.
Las páginas pueden añadirse, eliminarse o reordenarse. Los documentos pueden reunirse, fusionarse o dividirse en partes. Visualice varios documentos simultáneamente en el mismo lector o uno al lado del otro.
En este artículo, vamos a utilizar una aplicación de consola para generar documentos PDF.
Abra el software Visual Studio y vaya al menú Archivo. Seleccione "nuevo proyecto" y, a continuación, seleccione aplicación de consola.
Introduzca el nombre del proyecto y seleccione la ruta en el cuadro de texto correspondiente. A continuación, haz clic en el botón Crear. Seleccione el .NET Framework necesario, como en la siguiente captura de pantalla:
El proyecto de Visual Studio generará ahora la estructura para la aplicación de consola. Una vez terminado, se abrirá el archivo program.cs
, en el que podrás escribir y ejecutar el código fuente.
Ahora podemos añadir la biblioteca y probar el programa.
La biblioteca IronPDF puede descargarse e instalarse de cuatro formas diferentes. Estos son:
El software Visual Studio proporciona la opción NuGet Package Manager para instalar el paquete directamente en la solución. La siguiente captura de pantalla muestra cómo abrir el Gestor de paquetes NuGet.
Con la interfaz gráfica de usuario del Administrador de paquetes abierta, haga clic en la pestaña Examinar y busque "IronPDF:"
En la imagen anterior, podemos ver la lista de paquetes relacionados a partir de la búsqueda. Seleccione la opción IronPDF e instale el paquete en nuestra solución.
En el menú de Visual Studio, ve a Herramientas > Gestor de paquetes NuGet > Consola del gestor de paquetes.
Install-Package IronPdf
El paquete IronPDF se instalará ahora en el proyecto.
La tercera forma consiste en descargar el paquete NuGet directamente de la página webPaquete IronPDF de la Galería NuGet.
Descargue el último paquete directamente de la páginaPágina de descarga de IronPDF. Tras la descarga, siga los pasos que se indican a continuación para añadir el paquete al proyecto.
El SDK de PDFNet puede descargarse e instalarse de cuatro formas distintas.
Como se explicó anteriormente, vaya a herramientas en Visual Studio y abra el gestor de paquetes NuGet. Aparecerá una lista: haga clic en gestionar paquete NuGet para obtener soluciones.
Aparecerá una ventana con una barra de búsqueda. Busque PDFNet e instálelo en el proyecto.
Install-Package PDFNet ---Version 9.2.0
La tercera forma consiste en descargar el paquete NuGet directamente de la página webPaquete NuGet Gallery PDFNet.
También puede instalar la API PDFNet utilizando el archivo PDFNetLoader.dll. Descárguelo deGitHub Releases para PDFNetLoader.dll.
Descargue el paquete, colóquelo en el archivo bin del proyecto y ejecútelo. En su proyecto de Visual Studio, añada PDFNetLoader.dll como referencia.
Imprimir un archivo PDF es una función imprescindible para las aplicaciones modernas que trabajan con archivos PDF. A continuación, explicaremos cómo imprimir archivos PDF utilizando ambas herramientas.
IronPDF imprime un PDF enviándolo a la impresora predeterminada del ordenador. Esto abrirá la interfaz de impresión de Windows - sólo tienes que hacer clic en imprimir para hacerlo realidad.
using IronPdf;
// Create a new PDF and print it
var Renderer = new IronPdf.ChromePdfRenderer();
PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Send the PDF to the default printer to print
Pdf.Print(300, false);
using IronPdf;
// Create a new PDF and print it
var Renderer = new IronPdf.ChromePdfRenderer();
PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Send the PDF to the default printer to print
Pdf.Print(300, false);
Imports IronPdf
' Create a new PDF and print it
Private Renderer = New IronPdf.ChromePdfRenderer()
Private Pdf As PdfDocument = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
' Send the PDF to the default printer to print
Pdf.Print(300, False)
El SDK PDFNet de PDFTron también ofrece una función de impresión. A continuación se muestra el fragmento de código fuente para imprimir un archivo PDF en PDFNet.
using System;
using System.Drawing;
using System.Drawing.Printing;
using pdftron;
using pdftron.PDF;
using pdftron.Common;
using pdftron.Filters;
namespace PDFPrintTestCS
{
Console.WriteLine("Opening the input file...");
using (pdfdoc = new PDFDoc(input_path + "tiger.pdf"))
{
pdfdoc.InitSecurityHandler();
Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob...");
PrinterMode printerMode = new PrinterMode();
printerMode.SetAutoCenter(true);
printerMode.SetAutoRotate(true);
printerMode.SetCollation(true);
printerMode.SetCopyCount(1);
printerMode.SetDPI(300); // regardless of ordering, an explicit DPI setting overrides the OutputQuality setting
printerMode.SetDuplexing(PrinterMode.DuplexMode.e_Duplex_Auto);
printerMode.SetNUp(PrinterMode.NUp.e_NUp_1_1, PrinterMode.NUpPageOrder.e_PageOrder_LeftToRightThenTopToBottom);
printerMode.SetOrientation(PrinterMode.Orientation.e_Orientation_Portrait);
printerMode.SetOutputAnnot(PrinterMode.PrintContentTypes.e_PrintContent_DocumentAndAnnotations);
printerMode.SetOutputColor(PrinterMode.OutputColor.e_OutputColor_Grayscale);
printerMode.SetOutputPageBorder(false);
printerMode.SetOutputQuality(PrinterMode.OutputQuality.e_OutputQuality_Medium);
printerMode.SetPaperSize(new Rect(0, 0, 612, 792));
PageSet pagesToPrint = new PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all);
Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, null);
}
}
using System;
using System.Drawing;
using System.Drawing.Printing;
using pdftron;
using pdftron.PDF;
using pdftron.Common;
using pdftron.Filters;
namespace PDFPrintTestCS
{
Console.WriteLine("Opening the input file...");
using (pdfdoc = new PDFDoc(input_path + "tiger.pdf"))
{
pdfdoc.InitSecurityHandler();
Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob...");
PrinterMode printerMode = new PrinterMode();
printerMode.SetAutoCenter(true);
printerMode.SetAutoRotate(true);
printerMode.SetCollation(true);
printerMode.SetCopyCount(1);
printerMode.SetDPI(300); // regardless of ordering, an explicit DPI setting overrides the OutputQuality setting
printerMode.SetDuplexing(PrinterMode.DuplexMode.e_Duplex_Auto);
printerMode.SetNUp(PrinterMode.NUp.e_NUp_1_1, PrinterMode.NUpPageOrder.e_PageOrder_LeftToRightThenTopToBottom);
printerMode.SetOrientation(PrinterMode.Orientation.e_Orientation_Portrait);
printerMode.SetOutputAnnot(PrinterMode.PrintContentTypes.e_PrintContent_DocumentAndAnnotations);
printerMode.SetOutputColor(PrinterMode.OutputColor.e_OutputColor_Grayscale);
printerMode.SetOutputPageBorder(false);
printerMode.SetOutputQuality(PrinterMode.OutputQuality.e_OutputQuality_Medium);
printerMode.SetPaperSize(new Rect(0, 0, 612, 792));
PageSet pagesToPrint = new PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all);
Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, null);
}
}
Imports System
Imports System.Drawing
Imports System.Drawing.Printing
Imports pdftron
Imports pdftron.PDF
Imports pdftron.Common
Imports pdftron.Filters
Namespace PDFPrintTestCS
Console.WriteLine("Opening the input file...")
pdfdoc = New PDFDoc(input_path & "tiger.pdf")
Using pdfdoc
pdfdoc.InitSecurityHandler()
Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob...")
Dim printerMode As New PrinterMode()
printerMode.SetAutoCenter(True)
printerMode.SetAutoRotate(True)
printerMode.SetCollation(True)
printerMode.SetCopyCount(1)
printerMode.SetDPI(300) ' regardless of ordering, an explicit DPI setting overrides the OutputQuality setting
printerMode.SetDuplexing(PrinterMode.DuplexMode.e_Duplex_Auto)
printerMode.SetNUp(PrinterMode.NUp.e_NUp_1_1, PrinterMode.NUpPageOrder.e_PageOrder_LeftToRightThenTopToBottom)
printerMode.SetOrientation(PrinterMode.Orientation.e_Orientation_Portrait)
printerMode.SetOutputAnnot(PrinterMode.PrintContentTypes.e_PrintContent_DocumentAndAnnotations)
printerMode.SetOutputColor(PrinterMode.OutputColor.e_OutputColor_Grayscale)
printerMode.SetOutputPageBorder(False)
printerMode.SetOutputQuality(PrinterMode.OutputQuality.e_OutputQuality_Medium)
printerMode.SetPaperSize(New Rect(0, 0, 612, 792))
Dim pagesToPrint As New PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all)
Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, Nothing)
End Using
End Namespace
Ambas bibliotecas disponen de funciones de conversión de HTML a PDF, pero los métodos son ligeramente diferentes.
IronPDF no requiere el uso de JSON ni de mecanismos de cifrado. IronPDF admite una amplia gama de métodos. Por ejemplo:
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf")
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Imports IronPdf
Private Renderer As New IronPdf.ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
Pdf.SaveAs("url.pdf")
PDFNet también ofrece funciones de conversión de HTML a PDF mediante conversión de páginas y conversión de URL. Debido a lo extenso del código, aquí sólo le daremos un ejemplo.
class HTML2PDFSample
{
private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
static HTML2PDFSample() {}
static void Main(string [] args)
{
string output_path = "../../../../TestFiles/Output/html2pdf_example";
string host = "https://www.pdftron.com";
string page0 = "/";
string page1 = "/support";
string page2 = "/blog";
HTML2PDF.SetModulePath("../../../../../Lib");
if (!HTML2PDF.IsModuleAvailable())
{
Console.WriteLine();
Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.");
Console.WriteLine("-------------------------------");
Console.WriteLine("The HTML2PDF module is an optional add-on, available for download");
Console.WriteLine("at http://www.pdftron.com/. If you have already downloaded this");
Console.WriteLine("module, ensure that the SDK is able to find the required files");
Console.WriteLine("using the HTML2PDF.SetModulePath() function.");
Console.WriteLine();
return;
}
try
{
using (PDFDoc doc = new PDFDoc())
{
if ( HTML2PDF.Convert(doc, host + page0) )
doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized);
else
Console.WriteLine("Conversion failed.");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
}
}
}
class HTML2PDFSample
{
private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
static HTML2PDFSample() {}
static void Main(string [] args)
{
string output_path = "../../../../TestFiles/Output/html2pdf_example";
string host = "https://www.pdftron.com";
string page0 = "/";
string page1 = "/support";
string page2 = "/blog";
HTML2PDF.SetModulePath("../../../../../Lib");
if (!HTML2PDF.IsModuleAvailable())
{
Console.WriteLine();
Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.");
Console.WriteLine("-------------------------------");
Console.WriteLine("The HTML2PDF module is an optional add-on, available for download");
Console.WriteLine("at http://www.pdftron.com/. If you have already downloaded this");
Console.WriteLine("module, ensure that the SDK is able to find the required files");
Console.WriteLine("using the HTML2PDF.SetModulePath() function.");
Console.WriteLine();
return;
}
try
{
using (PDFDoc doc = new PDFDoc())
{
if ( HTML2PDF.Convert(doc, host + page0) )
doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized);
else
Console.WriteLine("Conversion failed.");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
}
}
}
Friend Class HTML2PDFSample
Private Shared pdfNetLoader As pdftron.PDFNetLoader = pdftron.PDFNetLoader.Instance()
Shared Sub New()
End Sub
Shared Sub Main(ByVal args() As String)
Dim output_path As String = "../../../../TestFiles/Output/html2pdf_example"
Dim host As String = "https://www.pdftron.com"
Dim page0 As String = "/"
Dim page1 As String = "/support"
Dim page2 As String = "/blog"
HTML2PDF.SetModulePath("../../../../../Lib")
If Not HTML2PDF.IsModuleAvailable() Then
Console.WriteLine()
Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.")
Console.WriteLine("-------------------------------")
Console.WriteLine("The HTML2PDF module is an optional add-on, available for download")
Console.WriteLine("at http://www.pdftron.com/. If you have already downloaded this")
Console.WriteLine("module, ensure that the SDK is able to find the required files")
Console.WriteLine("using the HTML2PDF.SetModulePath() function.")
Console.WriteLine()
Return
End If
Try
Using doc As New PDFDoc()
If HTML2PDF.Convert(doc, host & page0) Then
doc.Save(output_path & "_01.pdf", SDFDoc.SaveOptions.e_linearized)
Else
Console.WriteLine("Conversion failed.")
End If
End Using
Catch e As PDFNetException
Console.WriteLine(e.Message)
End Try
End Sub
End Class
IronPDF es una biblioteca que ofrece una licencia gratuita para desarrolladores. IronPDF también ofrece una estructura de precios especial: el paquete ligero comienza en $749 sin costes ocultos. También es posible redistribuir productos SaaS y OEM. Todas las licencias incluyen una garantía de devolución del dinero de 30 días, un año de soporte y actualizaciones del software, validez para desarrollo/pruebas/ejecución/producción y una licencia perpetua.(compra única). Las licencias IronPDF ofrecen el máximo rendimiento para las necesidades de los usuarios. Ir aPágina de licencias de IronPDF para ver toda la estructura de precios y licencias de IronPDF.
PDFTron PDFNet SDK ofrece varias opciones de licencia que se adaptan a las necesidades de su empresa. Las redistribuciones para empresas y OEM incluyen tres tipos de licencias. Las licencias de empresa son sólo para uso de la organización y no se pueden utilizar en la distribución de aplicaciones. Las licencias también incluyen API adicionales que requieren acceso al sistema de archivos. Todas las licencias incluyen una clave de licencia. Los tres tipos de licencias son
SDK central
Para más información sobre sus estructuras de licencias, visite este enlacePágina de información sobre licencias de PDFTron.
IronPDF ofrece muchas características y funciones para procesar archivos PDF y convertirlos a diferentes formatos. Las conversiones de HTML a PDF se producen en un formato vectorial adecuado para la impresión comercial de alta calidad. Como resultado, recibirá un PDF claro y de alta calidad. En el sitio web encontrará información sobre licencias y precios.
Al igual que IronPDF, PDFNet facilita la transición, anotación, firma, relleno, conversión y edición de archivos PDF. Es compatible con múltiples plataformas, como Windows, IOS, Android, WEB y Linux. Para su uso en producción, los SDK de PDFNet necesitan una clave de producto.
Las licencias de IronPDF están centradas en el desarrollador, lo que significa que hay que obtener una licencia en función del número de desarrolladores que vayan a utilizar el producto. Por otro lado, las licencias PDFNet no funcionan de la misma manera, sino que funcionan con una licencia basada en características. Esto significa que usted tiene que obtener la licencia que soporta las características que se requieren. Las licencias de IronPDF incluyen todas las funciones. Con PDFNet, algunas funciones, como la conversión de documentos, deben adquirirse como complementos.
La biblioteca IronPDF ofrece funciones de forma organizada, lo que facilita la escritura de código que realiza grandes tareas utilizando unas pocas líneas de código. Iron Software ofrece actualmente un paquete de cinco herramientas por el precio de sólo dos. Las herramientas incluidas en IronSuite son:
Visite esta páginaPágina de información de IronSuite para explorar IronSuite.
9 productos API .NET para sus documentos de oficina