COMPARACIóN DE PRODUCTOS

Comparación entre Jsreport y IronPDF

Chipego
Chipego Kalinda
12 de diciembre, 2023
Compartir:

1. Introducción

En la era digital, los PDF (Portable Document Formats) se han convertido en una necesidad cotidiana, crucial para almacenar y compartir información en un formato fiable y coherente. Ya sea para transformar propiedades de datos en un PDF con un formato impecable o para elaborar una factura profesional, los desarrolladores suelen recurrir a potentes bibliotecas cliente de C# como IronPDF y JSReport Studio locales en lugar de Phantom PDF para el desarrollo de servidores.

IronPDF ofrece el mejor rendimiento en la conversión de HTML a PDF en el framework .NET, mientras que JSReport SDK ofrece soluciones de informes dinámicos con un enfoque en la flexibilidad y personalización utilizando el servidor local JSReport y el archivo de configuración. Ambas bibliotecas ofrecen soluciones únicas, abordando las diferentes necesidades de los desarrolladores en el campo de la generación y manipulación de PDFs.

2. Uso de JSReport Server .NET

JSReport SDK .NET es una solución de informes avanzada para aplicaciones .NET, particularmente optimizada para entornos ASP.NET Core. Se distingue por permitir la transformación de las salidas de las vistas en diversos formatos, como PDF, Excel, DOCX y CSV, directamente desde HTML y JavaScript. Esta capacidad se facilita aprovechando motores ASP.NET MVC como Razor para la generación de informes utilizando un servidor de informes.

JSReport .NET proporciona un amplio conjunto de extensiones locales predeterminadas, como programación, versionado de plantillas, subinformes, gestión de usuarios, plantillas de importación/exportación y copias de seguridad, lo que aumenta su versatilidad y aplicabilidad en diversos escenarios empresariales. También es compatible con una amplia gama de API, incluidas las API REST, CLI o SDK, lo que permite generar informes prácticamente desde cualquier lugar.

2.1 Características principales

2.1.1 Integración de ASP.NET Core

JSReport SDK ofrece un paquete NuGet jsreport.AspNetCore específicamente para aplicaciones ASP.NET Core. Esto incluye filtros middleware capaces de transformar las salidas de las vistas MVC en los formatos deseados, utilizando las vistas como generadores HTML y el servidor JSReport como transformador de salida.

2.1.2 Configuración flexible

La configuración implica el uso de paquetes como jsreport.AspNetCore, jsreport.Local y jsreport.Binary. Estas clases auxiliares facilitan la conexión a una instancia local de JSReport o a una instancia remota a través de jsreport.Client.

2.1.3 Transformación de la salida

Los desarrolladores pueden especificar fácilmente recetas JSReport para la transformación de la salida. Por ejemplo, utilizando el MiddlewareFilter y la receta de ChromePdf, un filtro ASP.NET captura el resultado de la representación de una vista y lo convierte en formato PDF. Esta función es especialmente útil para las aplicaciones basadas en ASP.NET.

2.1.4 Compatibilidad con instancias remotas

JSReport .NET se integra perfectamente con instancias remotas de JSReport. Esto es particularmente ventajoso en entornos Docker orquestados donde JSReport se ejecuta en un contenedor separado en lugar de un contenedor. Esta integración facilita la orquestación de aplicaciones JSReport y .NET Core mediante herramientas como Docker-compose.

2.1.5 Gestión avanzada de respuestas

El gancho OnAfterRender permite la manipulación de los encabezados de respuesta y otros atributos. Este gancho también se puede utilizar para almacenar la salida en un archivo, ofreciendo flexibilidad en el manejo de la respuesta del proceso de generación de informes.

2.1.6 Cabeceras personalizadas

JSReport .NET permite especificar encabezados de PDF personalizados mediante vistas parciales. Estos encabezados se pueden mostrar en tiempo de ejecución junto con el contenido principal del PDF, lo que ofrece opciones de personalización adicionales para la generación de informes.

2.1.7 Renderizado sin vistas MVC

El framework permite generar informes a partir de HTML sin procesar, no sólo vistas MVC. Esta función permite una mayor flexibilidad en el proceso de generación de informes, permitiendo a los desarrolladores renderizar directamente el contenido HTML.

3. IronPDF

IronPDF es una útil biblioteca para aplicaciones .NET que facilita el trabajo con archivos PDF. Una de las principales funciones que realiza es convertir HTML a PDFs, lo cual es perfecto si necesitas generar informes o facturas a partir de páginas web. Además, es bastante rápida tanto si trabajas en el lado del servidor como en el lado del cliente, lo que la convierte en una gran biblioteca tanto para proyectos empresariales como para uso personal.

IronPDF se adapta a muchos entornos .NET diferentes, como ASP.NET, MVC, Windows Forms y WPF. Se integra sin problemas tanto con .NET Core como con Framework. También funciona con Azure y otros servicios en la nube, lo que es una gran ventaja para el desarrollo de aplicaciones basadas en la nube.

3.1 Características principales de IronPDF

3.1.1 Conversión de HTML a PDF

IronPDF es perfecto para convertir HTML en documentos PDF. Maneja HTML, CSS, JavaScript e imágenes a la perfección, garantizando que su contenido web tenga el aspecto adecuado en el PDF final. La conversión mantiene el diseño y el estilo del HTML original.

3.1.2 Integración de ASP.NET

La integración con ASP.NET es perfecta, lo que le permite convertir páginas ASPX en PDF sin necesidad de una gran cantidad de código. Es muy útil para crear PDF a partir de aplicaciones web existentes.

3.1.3 Edición y manipulación

IronPDF te permite editar archivos PDF existentes, como añadir texto, imágenes y páginas o fusionar varios PDFs. Las funciones de edición son fáciles de usar, por lo que no es necesario ser un experto en PDF para utilizarlas. También puede añadir anotaciones, adjuntos, esquemas y marcadores a su PDF.

3.1.4 Relleno y extracción de formularios

IronPDF admite el llenado y la extracción de datos de formularios PDF, lo cual es clave para las aplicaciones que manejan formularios. IronPDF facilita enormemente todo el proceso de gestión de datos de formularios. También puede gestionar distintos tipos de formularios PDF, lo que aumenta su flexibilidad.

3.1.5 Elementos de seguridad

IronPDF incluye funciones de seguridad como la protección por contraseña y el establecimiento de permisos en los documentos PDF, que son cruciales para mantener a salvo la información confidencial. También cuenta con funciones de cifrado y descifrado, añadiendo otra capa de seguridad para tus PDFs.

3.1.6 Renderizado personalizable

Tienes un gran control sobre cómo se renderizan tus PDFs, como configurar encabezados y pies de página personalizados, ajustar los márgenes de las páginas y elegir partes específicas de HTML para la conversión. Este nivel de personalización garantiza que sus PDF sean exactamente como usted desea.

3.1.7 Funciones PDF avanzadas

IronPDF admite la conformidad con PDF/A y firmas digitales. También tiene funciones de reconocimiento óptico de caracteres, lo que significa que puede convertir documentos e imágenes escaneados en archivos PDF que puedes buscar y editar. Estas funciones son ideales para proyectos más complejos.

3.1.8 Despliegue sencillo

La configuración de IronPDF es muy sencilla: no es necesario realizar instalaciones o dependencias adicionales. Es ligero, por lo que no reduce el rendimiento de la aplicación. Además, siempre se está actualizando para mantenerse al día con lo último en tecnología .NET, ofreciéndole una solución PDF que no se quedará anticuada.

4. Creación del proyecto .NET

4.1 Iniciar un nuevo proyecto

Abra Visual Studio e inicie un nuevo proyecto haciendo clic en el botón "Crear un nuevo proyecto".

Una Comparación entre Jsreport e IronPDF: Figura 1 - Crear un proyecto

A continuación, elija 'Console App', ".NET Core App" o cualquier otra opción.

Una comparación entre Jsreport y IronPDF: Figura 2 - Proyecto separado - Aplicación de consola

4.2 Puesta en marcha del proyecto

Tendrás que dar un nombre a tu proyecto. Busque el cuadro de texto para el nombre del proyecto y escriba el nombre que desee. Además, elija una ubicación para el proyecto seleccionando la ruta en la que desea guardarlo. Una vez introducidos estos datos, pulse el botón "Crear" para seguir adelante.

Una Comparación entre Jsreport e IronPDF: Figura 3 - Configuración del Proyecto

4.3 Selección de .NET Framework

El siguiente paso es seleccionar el .NET Framework necesario para su proyecto. Esta elección depende de los requisitos y la compatibilidad de su proyecto. A continuación, pulse el botón Crear.

Una comparación entre Jsreport e IronPDF: Figura 4 - Seleccionar Framework

5. Instalar la biblioteca IronPDF

5.1 Uso del gestor de paquetes NuGet

Para instalar IronPDF mediante el gestor de paquetes NuGet de Visual Studio, siga estos pasos:

  • Abra su proyecto en Visual Studio.
  • Haga clic en el menú "Herramientas", elija "Gestor de paquetes NuGet" y, a continuación, seleccione "Gestionar paquetes NuGet para la solución".

    Una Comparación entre Jsreport e IronPDF: Figura 5 - Administrador de paquetes NuGet

  • En el Gestor de paquetes NuGet, haga clic en la pestaña "Examinar".
  • Busque "IronPDF".
  • Una vez que encuentre el paquete IronPDF, selecciónelo y haga clic en "Instalar".

    A Comparison of Between Jsreport and IronPDF: Figure 6 - Install IronPDF

  • Siga las instrucciones para completar la instalación.

5.2 Uso de la línea de comandos de Visual Studio

Si prefiere utilizar la línea de comandos, puede instalar IronPDF en Visual Studio de la siguiente manera:

  • Abre Visual Studio.
  • Vaya al menú "Herramientas", pase el ratón sobre "Gestor de paquetes NuGet" y, a continuación, seleccione "Consola del gestor de paquetes" en el menú lateral.
  • En la consola, escriba el siguiente comando:
    Install-Package IronPdf
  • Pulse Intro para ejecutar el comando y espere a que finalice la instalación.

    Una comparación entre Jsreport y IronPDF: Figura 7 - Instalación de IronPDF

5.3 Descarga directa desde la página web de NuGet

IronPDF también puede descargarse directamente del sitio web de NuGet:

  • Visite el sitio web oficial de NuGet.
  • Utilice la barra de búsqueda para encontrar el paquete IronPDF.

    Una comparación entre Jsreport e IronPDF: Figura 8 - Paquete IronPDF

  • En la página del paquete de IronPDF, verá opciones para descargar el paquete directamente.
  • Descargue el archivo .nupkg y añádalo a su proyecto manualmente.

    Una comparación entre Jsreport e IronPDF: Figura 9 - Descargar .nupkg

6. Instalar JSReport

6.1 Uso del gestor de paquetes NuGet en Visual Studio

Para ejecutar JSReport mediante el gestor de paquetes NuGet de Visual Studio, ve al menú "Herramientas" y selecciona "Gestionar paquetes NuGet". Se abrirá la interfaz del Gestor de paquetes NuGet. En el Administrador de paquetes de NuGet, puedes buscar jsreport.Local o jsreport.Binary, dependiendo de los requisitos de tu proyecto.

Una comparación entre Jsreport e IronPDF: Figura 10 - jsreport.Binary

Estos son los principales paquetes para integrar JSReport en una aplicación .NET. Una vez localizado el paquete adecuado, haz clic en "Instalar" para añadirlo a tu proyecto. Este proceso descargará y referenciará automáticamente el paquete en su proyecto, dejándolo listo para su uso.

6.2 Uso de la consola del gestor de paquetes NuGet

También puedes instalar JSReport mediante la consola del gestor de paquetes NuGet en Visual Studio. Para ello, abre la Consola del Gestor de Paquetes NuGet desde el menú 'Herramientas seleccionando 'Gestor de Paquetes NuGet' y luego 'Consola del Gestor de Paquetes'.

Una Comparación entre Jsreport e IronPDF: Figura 11 - Consola del Administrador de Paquetes

En la consola, debe ejecutar un comando específico para instalar el paquete JSReport. Si quieres instalar el paquete jsreport.Local, usarías el comando Install-Package jsreport.Local. Para los paquetes de jsreport.Binary, el comando sería Install-Package jsreport.Binary. La ejecución de estos comandos en la consola del gestor de paquetes descargará y añadirá el paquete JSReport correspondiente a su proyecto.

Una comparación entre Jsreport e IronPDF: Figura 12 - Instalar jsreport.Local

7. Comparación de la función HTML a PDF en IronPDF y JSReport

7.1 Conversión de HTML a PDF de IronPDF

IronPDF es la mejor biblioteca para la conversión de HTML a PDF. Destaca por su facilidad de uso y su alto rendimiento, lo que la convierte en una de las mejores opciones entre los desarrolladores. Es compatible con funciones avanzadas como el renderizado de CSS, la ejecución de JavaScript y los encabezados y pies de página personalizados, lo que mejora aún más su capacidad para producir PDF de alta calidad a partir de fuentes HTML. IronPDF ofrece 3 formas de convertir HTML a PDF:

  1. Cadena HTML a PDF

  2. Archivo HTML a PDF

  3. URL a PDF

    Analicemos estas características una por una.

7.1.1 Cadena HTML a PDF

Esta función permite convertir contenido HTML directamente a partir de una cadena. Esto resulta especialmente útil cuando el contenido HTML se genera o modifica dinámicamente dentro de su aplicación. Puede pasar la cadena HTML a IronPDF, y éste la renderizará como PDF.

using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
string htmlString = @"
            <html>
                <head>
                    <title>Example HTML</title>
                </head>
                <body>
                    <h1>Hello, World!</h1>
                    <p>This is an HTML string converted to PDF using IronPDF.</p>
                </body>
            </html>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
string htmlString = @"
            <html>
                <head>
                    <title>Example HTML</title>
                </head>
                <body>
                    <h1>Hello, World!</h1>
                    <p>This is an HTML string converted to PDF using IronPDF.</p>
                </body>
            </html>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
IronPdf.License.LicenseKey = "Your-License-Key"
Dim htmlString As String = "
            <html>
                <head>
                    <title>Example HTML</title>
                </head>
                <body>
                    <h1>Hello, World!</h1>
                    <p>This is an HTML string converted to PDF using IronPDF.</p>
                </body>
            </html>"
' Convert HTML string to PDF
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlString)
pdfDocument.SaveAs("HtmlStringToPdf.pdf")
$vbLabelText   $csharpLabel

Este es el archivo PDF de salida:

Una Comparación entre Jsreport e IronPDF: Figura 13 - Salida

7.1.2 Archivo HTML a PDF

Con este método, puede convertir un archivo HTML existente en un PDF. Esto resulta útil cuando se tienen archivos HTML estáticos que deben presentarse o distribuirse como PDF. Es necesario proporcionar la ruta al archivo HTML, y IronPDF se encarga de la conversión.

using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");
pdfDocument.SaveAs("Invoice.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");
pdfDocument.SaveAs("Invoice.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
IronPdf.License.LicenseKey = "Your-License-Key"
Dim pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html")
pdfDocument.SaveAs("Invoice.pdf")
$vbLabelText   $csharpLabel

Aquí está el archivo PDF de salida de una factura HTML:

1

7.1.2 URL a PDF

Esta función permite convertir una página web completa en un PDF utilizando su URL. Es muy útil para capturar el estado actual de una página web, incluidos el estilo, las imágenes y otros recursos. IronPDF cargará la página web desde la URL indicada y la convertirá en un documento PDF, reproduciendo el diseño y el contenido lo más fielmente posible.

using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;
//https url
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");
pdfDocument.SaveAs("UrlToPdf.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
IronPdf.License.LicenseKey = "Your-License-Key";
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;
//https url
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");
pdfDocument.SaveAs("UrlToPdf.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
IronPdf.License.LicenseKey = "Your-License-Key"
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2
'https url
Dim pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/")
pdfDocument.SaveAs("UrlToPdf.pdf")
$vbLabelText   $csharpLabel

Aquí está el PDF generado del sitio web de Microsoft .NET utilizando la lógica anterior.

Una comparación entre Jsreport e IronPDF: Figura 14 - Sitio web HTTP de Microsoft PDF

7.2 Conversión de HTML a PDF con JSReport C#

El proceso de conversión de HTML a PDF en JSReport implica varios pasos, que a menudo incluyen la configuración de un servidor JSReport o el uso de su API en línea. Una implementación típica en C# podría ser la siguiente

using JsReport.AspNetCore;
using JsReport.Types;
using System.Threading.Tasks;
public async Task<IActionResult> GeneratePdf()
{
    var report = new LocalReporting()
                 .UseBinary(JsReportBinary.GetBinary())
                 .AsUtility()
                 .Create();
    var reportResult = await report.RenderAsync(new RenderRequest()
    {
        Template = new Template()
        {
            Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
            Engine = Engine.None,
            Recipe = Recipe.ChromePdf
        },
        Options = new RenderOptions()
        {
            Debug = new DebugOptions() { Preview = true }
        }
    });
    var stream = new MemoryStream();
    reportResult.Content.CopyTo(stream);
    stream.Position = 0;
    return File(stream, "application/pdf", "Report.pdf");
}
using JsReport.AspNetCore;
using JsReport.Types;
using System.Threading.Tasks;
public async Task<IActionResult> GeneratePdf()
{
    var report = new LocalReporting()
                 .UseBinary(JsReportBinary.GetBinary())
                 .AsUtility()
                 .Create();
    var reportResult = await report.RenderAsync(new RenderRequest()
    {
        Template = new Template()
        {
            Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
            Engine = Engine.None,
            Recipe = Recipe.ChromePdf
        },
        Options = new RenderOptions()
        {
            Debug = new DebugOptions() { Preview = true }
        }
    });
    var stream = new MemoryStream();
    reportResult.Content.CopyTo(stream);
    stream.Position = 0;
    return File(stream, "application/pdf", "Report.pdf");
}
Imports JsReport.AspNetCore
Imports JsReport.Types
Imports System.Threading.Tasks
Public Async Function GeneratePdf() As Task(Of IActionResult)
	Dim report = (New LocalReporting()).UseBinary(JsReportBinary.GetBinary()).AsUtility().Create()
	Dim reportResult = Await report.RenderAsync(New RenderRequest() With {
		.Template = New Template() With {
			.Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
			.Engine = Engine.None,
			.Recipe = Recipe.ChromePdf
		},
		.Options = New RenderOptions() With {
			.Debug = New DebugOptions() With {.Preview = True}
		}
	})
	Dim stream = New MemoryStream()
	reportResult.Content.CopyTo(stream)
	stream.Position = 0
	Return File(stream, "application/pdf", "Report.pdf")
End Function
$vbLabelText   $csharpLabel

También puede encontrar ejemplos de JSReport .NET desde el siguiente enlace. A continuación se muestra un ejemplo del informe de facturas en PDF.

Una comparación entre Jsreport e IronPDF: Figura 15 - Salida de PDF de factura

8. Flexibilidad y funciones avanzadas

8.1 Funciones avanzadas y personalización de IronPDF

IronPDF destaca por sus funciones avanzadas y su alto grado de personalización, que satisfacen diversas necesidades de manipulación de PDF. Entre las principales funciones avanzadas se incluyen:

Cumplimiento con PDF/A: Admite el formato PDF/A, esencial para el archivo a largo plazo y cumplimiento con los estándares de la industria. Este cumplimiento es especialmente crucial para los sectores jurídico, financiero y gubernamental, donde la integridad de los documentos a lo largo del tiempo es primordial.

using IronPdf;
// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");
// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
using IronPdf;
// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");
// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
Imports IronPdf
' Create a PdfDocument object or open any PDF File
Private pdf As PdfDocument = PdfDocument.FromFile("wikipedia.pdf")
' Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3)
$vbLabelText   $csharpLabel

Edición, Fusión y División de PDFs: IronPDF permite editar PDFs existentes, fusionar múltiples PDFs en uno y dividir PDFs en documentos separados. Esta función es especialmente útil cuando hay que dividir documentos de gran tamaño para facilitar su distribución o cuando hay que combinar distintas secciones de varios documentos.

Características de Seguridad: Incluye características de seguridad robustas como protección con contraseña, encriptación y la capacidad de establecer permisos de usuario. IronPDF admite la encriptación de archivos PDF, lo que añade una capa adicional de seguridad y protege el contenido para que no pueda ser alterado ni copiado.

using IronPdf;
// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");
// The following code makes a PDF read only and will disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption();
pdfDoc.SecuritySettings.AllowUserAnnotations = false;
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = false;
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdfDoc.SecuritySettings.AllowUserFormData = false;
// Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen"; // password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare"; // password to open the pdf
pdfDoc.SaveAs("InvoiceProtected.pdf");
using IronPdf;
// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");
// The following code makes a PDF read only and will disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption();
pdfDoc.SecuritySettings.AllowUserAnnotations = false;
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = false;
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdfDoc.SecuritySettings.AllowUserFormData = false;
// Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen"; // password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare"; // password to open the pdf
pdfDoc.SaveAs("InvoiceProtected.pdf");
Imports IronPdf
' Open a PDF File
Private pdfDoc = PdfDocument.FromFile("invoice.pdf")
' The following code makes a PDF read only and will disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption()
pdfDoc.SecuritySettings.AllowUserAnnotations = False
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = False
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdfDoc.SecuritySettings.AllowUserFormData = False
' Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen" ' password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare" ' password to open the pdf
pdfDoc.SaveAs("InvoiceProtected.pdf")
$vbLabelText   $csharpLabel

Control de Encabezados y Pies de Página: Los desarrolladores pueden añadir fácilmente encabezados y pies de página personalizados a sus documentos PDF, una función esencial para informes, facturas y otros documentos empresariales de aspecto profesional. Esto incluye la posibilidad de añadir números de página, fechas y texto personalizado.

Conversión de PDF a Imagen: IronPDF permite convertir páginas PDF en imágenes. Esta función es especialmente útil cuando se necesita mostrar contenido PDF como imágenes en aplicaciones web o para generar miniaturas.

using IronPdf;
using IronSoftware.Drawing;
var pdf = PdfDocument.FromFile("Example.pdf");
// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");
// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);
// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
using IronPdf;
using IronSoftware.Drawing;
var pdf = PdfDocument.FromFile("Example.pdf");
// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");
// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);
// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
Imports IronPdf
Imports IronSoftware.Drawing
Private pdf = PdfDocument.FromFile("Example.pdf")
' Extract all pages to a folder as image files
pdf.RasterizeToImageFiles("C:\image\folder\*.png")
' Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles("C:\image\folder\example_pdf_image_*.jpg", 100, 80)
' Extract all pages as AnyBitmap objects
Dim pdfBitmaps() As AnyBitmap = pdf.ToBitmap()
$vbLabelText   $csharpLabel

8.2 Características avanzadas y extensibilidad de JSReport .NET

JSReport .NET es famoso por sus funciones avanzadas y su extensibilidad, que lo convierten en una herramienta versátil para la generación de informes. Sus principales características son:

Generación Dinámica de Informes: Soporta varios motores de plantillas, incluyendo Handlebars y EJS, facilitando diseños de informes intrincados y flexibles. Esta compatibilidad multimotor permite una amplia gama de posibilidades de diseño, adaptándose a diferentes requisitos y complejidades en la creación de informes.

var report = new LocalReporting()
    .UseBinary(JsReportBinary.GetBinary())
    .RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport"))
    .KillRunningJsReportProcesses()
    .Configure(cfg => cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory())
    .AsUtility()
    .Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
    Template = new Template()
    {
        Content = "{{{message}}}",
        Engine = Engine.Handlebars,
        Recipe = Recipe.ChromePdf
    },
    Data = new
    {
        message = "PDF Generation with JSReport .NET"
    }
});
var report = new LocalReporting()
    .UseBinary(JsReportBinary.GetBinary())
    .RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport"))
    .KillRunningJsReportProcesses()
    .Configure(cfg => cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory())
    .AsUtility()
    .Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
    Template = new Template()
    {
        Content = "{{{message}}}",
        Engine = Engine.Handlebars,
        Recipe = Recipe.ChromePdf
    },
    Data = new
    {
        message = "PDF Generation with JSReport .NET"
    }
});
Dim report = (New LocalReporting()).UseBinary(JsReportBinary.GetBinary()).RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport")).KillRunningJsReportProcesses().Configure(Function(cfg) cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory()).AsUtility().Create()
Dim reportResult = Await report.RenderAsync(New RenderRequest() With {
	.Template = New Template() With {
		.Content = "{{{message}}}",
		.Engine = Engine.Handlebars,
		.Recipe = Recipe.ChromePdf
	},
	.Data = New With {Key .message = "PDF Generation with JSReport .NET"}
})
$vbLabelText   $csharpLabel

Motores de Plantillas: JSReport .NET ofrece características de programación y automatización para la generación de informes, ideal para necesidades de informes regulares como resúmenes diarios o mensuales. Esta funcionalidad garantiza la entrega puntual de los informes y puede integrarse con los flujos de trabajo empresariales para la elaboración de informes activados por eventos.

Extensibilidad con Scripts Personalizados: JSReport C# permite la extensión de sus capacidades a través de scripts personalizados, mejorando funciones como el procesamiento de datos personalizados o el formato especializado. Esta extensibilidad es crucial para crear informes según requisitos específicos de lógica empresarial y manipulación de datos.

9. Soporte

9.1 Calidad y disponibilidad de la documentación de IronPDF

La documentación de IronPDF es completa y fácil de usar, y está dirigida tanto a principiantes como a desarrolladores experimentados. Incluye guías detalladas, referencias a la API y una gran cantidad de ejemplos de código, lo que facilita a los desarrolladores la comprensión e implementación de las funciones de la biblioteca en múltiples lenguajes, como C# y Node.

La documentación está bien estructurada y se actualiza periódicamente, reflejando las últimas funciones y las mejores prácticas. Además, el sitio web de IronPDF ofrece guías de inicio rápido y preguntas frecuentes, que resultan especialmente útiles para quienes se inician en la manipulación de PDF en un entorno .NET.

IronPDF también dispone de una zona de juegos en línea en la que puede probar la funcionalidad de IronPDF en línea sin necesidad de descargar su código. Explóralo usando el siguiente enlace.

9.1.1 Opciones de asistencia

IronPDF ofrece varias opciones de asistencia, incluido un equipo de asistencia dedicado a la gestión de consultas y problemas técnicos. Proporcionan asistencia por correo electrónico y tienen una presencia activa en los foros de desarrolladores, ofreciendo soluciones y consejos. También puede ponerse en contacto con el agente de Live Support mediante la opción Live Support del sitio web.

9.2 Calidad y disponibilidad de la documentación de JSReport .NET

JSReport .NET se enorgullece de su extensa y bien mantenida documentación. La documentación abarca una amplia gama de temas, desde la configuración básica hasta escenarios de uso avanzados, con fragmentos de código y ejemplos de implementación. Está organizada de forma lógica, lo que facilita la navegación y la búsqueda de información relevante. Los recursos en línea también incluyen una completa referencia de la API, que garantiza a los desarrolladores el acceso a información detallada sobre las capacidades de la herramienta.

9.2.1 Opciones de asistencia

En términos de soporte, JSReport .NET ofrece una variedad de opciones. Cuentan con un equipo de asistencia especializado con el que se puede contactar por correo electrónico, y mantienen una presencia activa en GitHub, proporcionando una plataforma para informar de problemas y solicitudes de funciones.

10. Modelos de licencia

10.1 Licencia de IronPDF

Una Comparación entre Jsreport e IronPDF: Figura 16 - Licencias

IronPDF ofrece tres opciones de precios distintas, adaptándose a diferentes escalas de uso y requisitos presupuestarios:

Edición Lite: Con un precio de $749, es una tarifa única para el despliegue en la nube. Está diseñado para proyectos pequeños o equipos que se inician en el procesamiento de PDF.

Edición Profesional: A $1,499, también una tarifa única para uso en la nube, esta edición es adecuada para desarrolladores profesionales que requieren características y capacidades más avanzadas.

Unlimited Edition: El paquete más completo, con un precio de $2,999, es una tarifa única para la implementación en la nube. Es ideal para su uso en grandes empresas, ya que ofrece amplias funciones y no tiene limitaciones de uso.

10.2 Licencia de JSReport .NET

Una comparación entre Jsreport e IronPDF: Figura 17 - Licenciamiento de JSReport

JSReport .NET ofrece opciones de licencia flexibles, incluyendo licencias tanto basadas en suscripción como perpetuas:

Licencia Gratuita: Ofrece una instancia con todas las funciones limitada a un máximo de 5 plantillas de informes. No requiere clave de licencia y es adecuado para pequeños proyectos o fines de evaluación.

Suscripción Empresarial: Con un precio de $395 por año, este plan proporciona una instancia de JSReport completamente equipada y sin limitaciones, e incluye actualizaciones. Es ideal para empresas individuales que necesitan una solución de informes sólida.

Suscripción a escala empresarial: A $1,295 al año, este plan es ideal para despliegues a gran escala, ofreciendo una clave de licencia única válida para un número infinito de instancias. Este plan incluye actualizaciones y no está sujeto a derechos de autor, por lo que es adecuado para organizaciones que ejecutan varias instancias o que lo implantan como parte de otro producto a varios clientes.

11. Conclusión

En conclusión, aunque tanto IronPDF como JSReport .NET son valiosos en sus respectivos campos, IronPDF tiene una ligera ventaja debido a sus completas capacidades de manipulación de PDF. Destaca en áreas como el cumplimiento de PDF/A, la edición avanzada y las funciones de seguridad, lo que la convierte en una herramienta más versátil para el manejo detallado de PDF en entornos .NET. JSReport .NET, con sus puntos fuertes en generación dinámica de informes y plantillas, es muy eficaz para tareas centradas en informes. Sin embargo, para la mayoría de los escenarios que requieren un procesamiento y manipulación de PDF detallados y variados, IronPDF se perfila como la opción más ventajosa.

IronPDF ofrece una licencia de desarrollador gratuita y prueba gratuita. Iron Software ofrece un paquete integral conocido como el Iron Suite. Esta suite, que incluye IronBarcode, IronXL, IronQR, IronOCR, IronPDF y IronWebScraper, se ofrece al precio de 2 software, agregando un valor significativo para los desarrolladores que buscan una amplia gama de funcionalidades.

Por último, la elección entre uno y otro dependería de las necesidades específicas y del entorno del proyecto o desarrollador.

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
Comparación entre IronPDF y DinktoPdf
SIGUIENTE >
Comparación de la creación de PDF en C# entre ITextSharp e IronPDF