Saltar al pie de página
COMPARACIONES DE PRODUCTOS

Una Comparación entre Jsreport e IronPDF

1. Introducción

En la era digital, los PDF, o formatos de documento portátil, se han convertido en una necesidad diaria, cruciales para almacenar y compartir información en un formato confiable y consistente. Ya sea para transformar propiedades de datos en un PDF ordenadamente formateado o para crear una factura profesional, los desarrolladores a menudo recurren a bibliotecas cliente potentes de C# como IronPDF y JSReport Studio local en lugar de Phantom PDF para el desarrollo en servidores.

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

2. Uso del Servidor JSReport .NET

JSReport SDK .NET es una solución avanzada de informes para aplicaciones .NET, particularmente optimizada para entornos ASP.NET Core. Se distingue por permitir la transformación de las salidas de vista en varios 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 mediante un servidor de informes.

JSReport .NET proporciona un conjunto integral de extensiones locales predeterminadas, incluyendo programación, versión de plantillas, subinformes, gestión de usuarios, plantillas de importación/exportación y copia de seguridad, mejorando su versatilidad y aplicabilidad en varios escenarios de negocio. También soporta una amplia gama de APIs, incluyendo API REST, CLI y SDKs, permitiendo la renderización de informes desde prácticamente cualquier ubicación.

2.1 Características Clave

2.1.1 Integración con ASP.NET Core

JSReport SDK ofrece un paquete NuGet jsreport.AspNetCore específicamente para aplicaciones ASP.NET Core. Esto incluye filtros de middleware capaces de transformar las salidas de vista MVC en los formatos deseados, usando vistas como generadores de 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 de ayuda facilitan la conexión con una instancia local de JSReport o una instancia remota a través de jsreport.Client.

2.1.3 Transformación de salida

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

2.1.4 Compatibilidad con instancias remotas

JSReport .NET se integra sin problemas con instancias remotas de JSReport. Esto es particularmente ventajoso en entornos orquestados de Docker, donde JSReport se ejecuta en un contenedor separado. Tal integración facilita la orquestación de aplicaciones JSReport y .NET Core usando herramientas como Docker-compose.

2.1.5 Manipulación avanzada de respuestas

El gancho OnAfterRender permite la manipulación de encabezados de respuesta y otros atributos. Este gancho también se puede usar 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 Encabezados personalizados

JSReport .NET permite la especificación de encabezados PDF personalizados a través de vistas parciales. Estos encabezados se pueden renderizar en tiempo de ejecución junto al contenido principal del PDF, proporcionando opciones de personalización adicionales para la generación de informes.

2.1.7 Renderización sin vistas MVC

El marco admite la renderización de informes desde HTML bruto, no solo vistas MVC. Esta característica permite una mayor flexibilidad en el proceso de generación de informes, permitiendo a los desarrolladores renderizar contenido HTML directamente.

3. IronPDF

IronPDF es una biblioteca útil para aplicaciones .NET, enfocándose en facilitar el trabajo con PDFs. Una de sus funciones principales es convertir HTML a PDFs, que es perfecto para generar informes o facturas desde páginas web. Es eficiente tanto en aplicaciones del lado del servidor como del lado del cliente, por lo que es adecuado para proyectos empresariales así como para uso personal.

IronPDF se integra en muchos entornos .NET diferentes como ASP.NET, MVC, Windows Forms y WPF, funcionando sin problemas tanto con .NET Core como con Framework. También admite 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 clave de IronPDF

3.1.1 Conversión de HTML a PDF

IronPDF es experto en convertir HTML en documentos PDF. Maneja HTML, CSS, JavaScript e imágenes sin problemas, asegurando que el contenido web luzca perfecto en el PDF final. La conversión preserva el diseño y el estilo del HTML original.

3.1.2 Integración con ASP.NET

La integración con ASP.NET es fluida, permitiendo la conversión de páginas ASPX a PDF sin necesidad de mucho código. Esto es especialmente útil para crear PDFs desde apps web existentes.

3.1.3 Edición y manipulación

IronPDF permite editar archivos PDF existentes, como añadir texto, imágenes y páginas o combinar múltiples PDFs. Las características de edición son fáciles de usar, por lo que no se requiere tener conocimientos expertos en PDF para utilizarlas. You can also add annotations, attachments, outlines, and bookmarks to your PDFs.

3.1.4 Relleno y extracción de formularios

IronPDF soporta el relleno y la extracción de datos de formularios PDF, lo cual es esencial para aplicaciones que manejan formularios. IronPDF hace que todo el proceso de gestión de datos de formulario sea más fluido y puede manejar diferentes tipos de formularios PDF, mejorando su flexibilidad.

3.1.5 Características de seguridad

IronPDF incluye características de seguridad como protección con contraseña y configuración de permisos en documentos PDF, que son cruciales para proteger información sensible. Incluye capacidades de cifrado y descifrado, añadiendo otra capa de seguridad a tus PDFs.

3.1.6 Renderizado personalizable

You have extensive control over how your PDFs are rendered, such as setting up custom headers and footers, adjusting page margins, and selecting specific HTML parts for conversion. Esta personalización asegura que tus PDFs salgan exactamente como lo deseas.

3.1.7 Características avanzadas de PDF

IronPDF supports PDF/A compliance and digital signatures, as well as OCR capabilities, so it can convert scanned documents and images into searchable and editable PDFs. Estas características son ideales para proyectos más complejos.

3.1.8 Despliegue fácil

Configurar IronPDF es sencillo; no requiere instalaciones o dependencias adicionales. Es ligero, para asegurar que no impacte negativamente el rendimiento de tu aplicación. Además, se actualiza regularmente para mantenerse al día con lo más reciente en tecnología .NET, brindándote una solución PDF que permanece relevante.

4. Creación del Proyecto .NET

4.1 Comenzar un Nuevo Proyecto

Abre Visual Studio y comienza 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

Luego, elige 'Aplicación de Consola,' 'Aplicación .NET Core,' u otra opción que se ajuste a tus necesidades.

Una Comparación entre Jsreport e IronPDF: Figura 2 - Proyecto Separado- Aplicación de Consola

4.2 Configuración del Proyecto

Necesitarás dar un nombre a tu proyecto. Busca el cuadro de texto para el nombre del proyecto e introduce el nombre deseado. Elige una ubicación para tu proyecto seleccionando la ruta donde quieres que se guarde tu proyecto. Una vez que hayas ingresado estos detalles, haz clic en el botón 'Crear' para continuar.

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

4.3 Seleccionar .NET Framework

El siguiente paso es seleccionar el .NET framework requerido para tu proyecto. Esta elección depende de los requisitos de tu proyecto y compatibilidad. Después de esto, haz clic en el botón 'Crear'.

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

5. Instalar Biblioteca IronPDF

5.1 Usando el Administrador de Paquetes NuGet

Para instalar IronPDF usando el Administrador de Paquetes NuGet de Visual Studio, sigue estos pasos:

  • Abre tu proyecto en Visual Studio.
  • Haz clic en el menú "Herramientas," elige "Administrador de Paquetes NuGet," y luego selecciona "Gestionar Paquetes NuGet para la Solución."

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

  • En el Administrador de Paquetes NuGet, haz clic en la pestaña "Buscar".
  • Busca "IronPDF."
  • Una vez que encuentres el paquete de IronPDF, selecciónalo y haz clic en "Instalar."

    Una Comparación entre Jsreport e IronPDF: Figura 6 - Instalar IronPDF

  • Sigue las instrucciones para completar la instalación.

5.2 Usando la Línea de Comando de Visual Studio

Si prefieres usar la línea de comandos, puedes instalar IronPDF en Visual Studio de la siguiente manera:

  • Abre Visual Studio.
  • Ve al menú "Herramientas," pasa el ratón sobre "Administrador de Paquetes NuGet," y luego selecciona "Consola del Administrador de Paquetes" en el menú lateral.
  • En la consola, introduce el siguiente comando:

    Install-Package IronPdf
  • Presiona Enter para ejecutar el comando y espera a que la instalación se complete.

    Una Comparación entre Jsreport e IronPDF: Figura 7 - Instalación de IronPDF

5.3 Descarga Directa desde la Página Web de NuGet

IronPDF también se puede descargar directamente desde el sitio web de NuGet:

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

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

  • En la página del paquete de IronPDF, verás opciones para descargar el paquete directamente.
  • Descarga el archivo .nupkg y añádelo manualmente a tu proyecto.

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

6. Instalar JSReport

6.1 Uso del Administrador de Paquetes NuGet en Visual Studio

Para ejecutar JSReport usando el Administrador de Paquetes NuGet de Visual Studio, ve al menú ‘Herramientas’ y elige ‘Gestionar Paquetes NuGet’. Esto abrirá la interfaz del Administrador de Paquetes NuGet. En el Administrador de Paquetes 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 paquetes principales para integrar JSReport en una aplicación .NET. Una vez que localices el paquete adecuado, haz clic en ‘Instalar’ para añadirlo a tu proyecto. Este proceso descargará y referenciará automáticamente el paquete en tu proyecto, dejándolo listo para su uso.

6.2 Uso de la Consola del Administrador de Paquetes NuGet

Alternativamente, puedes instalar JSReport usando la Consola del Administrador de Paquetes NuGet en Visual Studio. Abre la Consola del Administrador de Paquetes NuGet desde el menú ‘Herramientas’ seleccionando ‘Administrador de Paquetes NuGet’ y luego ‘Consola del Administrador de Paquetes’.

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

En la consola, necesitas ejecutar un comando específico para instalar el paquete JSReport. Si deseas instalar el paquete jsreport.Local, usarías el comando Install-Package jsreport.Local. Para el paquete jsreport.Binary, el comando sería Install-Package jsreport.Binary. Ejecutar estos comandos en la Consola del Administrador de Paquetes descargará y añadirá el respectivo paquete JSReport a tu 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 una biblioteca principal para la conversión de HTML a PDF, reconocida por su facilidad de uso y alto rendimiento. Soporta características avanzadas como renderizado CSS, ejecución de JavaScript, y encabezados y pies de página personalizados, mejorando su capacidad para producir PDFs superiores a partir de fuentes HTML. IronPDF ofrece tres métodos para convertir HTML a PDF:

  1. Cadena HTML a PDF
  2. Archivo HTML a PDF
  3. URL a PDF

Discutamos estos métodos individualmente.

7.1.1 Cadena HTML a PDF

Esta característica te permite convertir contenido HTML directamente desde una cadena, particularmente útil para contenido HTML generado o modificado dinámicamente dentro de tu aplicación. Al pasar la cadena HTML a IronPDF, se renderiza como un PDF.

using IronPdf;

// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";

// HTML string to be converted
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);

// Save the rendered PDF document
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
using IronPdf;

// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";

// HTML string to be converted
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);

// Save the rendered PDF document
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
Imports IronPdf

' Initialize the ChromePdfRenderer
Private renderer = New ChromePdfRenderer()

' License key setup
IronPdf.License.LicenseKey = "Your-License-Key"

' HTML string to be converted
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)

' Save the rendered PDF document
pdfDocument.SaveAs("HtmlStringToPdf.pdf")
$vbLabelText   $csharpLabel

7.1.2 Archivo HTML a PDF

Este método convierte un archivo HTML existente en un PDF, útil para archivos HTML estáticos que necesitan presentación o distribución como PDFs. Proporciona la ruta al archivo HTML, e IronPDF maneja la conversión.

using IronPdf;

// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";

// Convert HTML file to PDF
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");

// Save the PDF document
pdfDocument.SaveAs("Invoice.pdf");
using IronPdf;

// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";

// Convert HTML file to PDF
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");

// Save the PDF document
pdfDocument.SaveAs("Invoice.pdf");
Imports IronPdf

' Initialize the ChromePdfRenderer
Private renderer = New ChromePdfRenderer()

' License key setup
IronPdf.License.LicenseKey = "Your-License-Key"

' Convert HTML file to PDF
Dim pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html")

' Save the PDF document
pdfDocument.SaveAs("Invoice.pdf")
$vbLabelText   $csharpLabel

7.1.3 URL a PDF

Esta función convierte una página web completa en un PDF usando su URL, útil para capturar el estado actual de una página web, incluyendo estilos, imágenes y otros recursos. IronPDF cargará la página web desde la URL dada y la convertirá en un documento PDF, replicando el diseño y contenido lo más cerca posible.

using IronPdf;

// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";

// Set the Paper Size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;

// Convert webpage to PDF
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");

// Save the PDF document
pdfDocument.SaveAs("UrlToPdf.pdf");
using IronPdf;

// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();

// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";

// Set the Paper Size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;

// Convert webpage to PDF
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");

// Save the PDF document
pdfDocument.SaveAs("UrlToPdf.pdf");
Imports IronPdf

' Initialize the ChromePdfRenderer
Private renderer = New ChromePdfRenderer()

' License key setup
IronPdf.License.LicenseKey = "Your-License-Key"

' Set the Paper Size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2

' Convert webpage to PDF
Dim pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/")

' Save the PDF document
pdfDocument.SaveAs("UrlToPdf.pdf")
$vbLabelText   $csharpLabel

7.2 Conversión de HTML a PDF en JSReport C

El proceso de conversión de HTML a PDF en JSReport implica varios pasos, a menudo incluyendo 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 verse así:

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

Para más ejemplos de JSReport .NET, visita el siguiente enlace.

7.3. Renderizado con Bootstrap y Modern CSS Framework

Las aplicaciones web modernas construidas con frameworks CSS como Bootstrap requieren herramientas de generación de PDF que preserven de manera precisa los diseños de los frameworks y los elementos de diseño responsivo.

IronPDF: Soporte Completo de Bootstrap y Marco

El motor de rendering Chromium de IronPDF proporciona soporte integral para todos los marcos CSS modernos:

  • Bootstrap 5: Full flexbox y CSS Grid con todas las utilidades responsivas
  • Bootstrap 4: Sistemas de tarjetas completos, navegación, componentes de formularios
  • Tailwind CSS: Todas las clases de utilidad y modificadores responsivos
  • Foundation: Sistemas completos de cuadrícula y componentes
  • CSS3 Moderno: Flexbox, Grid, propiedades personalizadas, animaciones, transformaciones

Validated with production examples: Bootstrap homepage and Bootstrap templates convert with pixel-perfect accuracy.

Ejemplo de código: Tabla de comparación de características con Bootstrap

using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapComparison = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Feature Comparison</h1>

        <div class='table-responsive'>
            <table class='table table-bordered table-hover'>
                <thead class='table-primary'>
                    <tr>
                        <th style='width: 30%'>Feature</th>
                        <th style='width: 35%' class='text-center'>IronPDF</th>
                        <th style='width: 35%' class='text-center'>Alternative</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><strong>HTML5 Support</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>Modern web standards</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-warning fs-6'>Partial</span>
                            <p class='text-muted small mb-0 mt-2'>Basic HTML only</p>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>CSS3 & Flexbox</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>Chromium engine</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-danger fs-6'>Limited</span>
                            <p class='text-muted small mb-0 mt-2'>No flexbox/grid</p>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>JavaScript Execution</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>V8 engine</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-warning fs-6'>Partial</span>
                            <p class='text-muted small mb-0 mt-2'>Limited execution</p>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Bootstrap 5</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>All components</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-danger fs-6'>No Support</span>
                            <p class='text-muted small mb-0 mt-2'>Bootstrap 3 only</p>
                        </td>
                    </tr>
                    <tr class='table-secondary'>
                        <td><strong>Deployment</strong></td>
                        <td class='text-center'>
                            <div class='d-flex justify-content-center gap-2 flex-wrap'>
                                <span class='badge bg-primary'>On-Premises</span>
                                <span class='badge bg-primary'>Cloud</span>
                                <span class='badge bg-primary'>Offline</span>
                            </div>
                        </td>
                        <td class='text-center'>
                            <div class='d-flex justify-content-center gap-2 flex-wrap'>
                                <span class='badge bg-secondary'>Server Only</span>
                            </div>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class='alert alert-info mt-4 d-flex align-items-start'>
            <svg class='bi flex-shrink-0 me-2 mt-1' width='20' height='20'></svg>
            <div>
                <strong>Note:</strong> IronPDF's Chromium engine ensures that modern web applications convert to PDF with browser-accurate fidelity, preserving all CSS frameworks and responsive designs.
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapComparison);
pdf.SaveAs("feature-comparison.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapComparison = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Feature Comparison</h1>

        <div class='table-responsive'>
            <table class='table table-bordered table-hover'>
                <thead class='table-primary'>
                    <tr>
                        <th style='width: 30%'>Feature</th>
                        <th style='width: 35%' class='text-center'>IronPDF</th>
                        <th style='width: 35%' class='text-center'>Alternative</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><strong>HTML5 Support</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>Modern web standards</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-warning fs-6'>Partial</span>
                            <p class='text-muted small mb-0 mt-2'>Basic HTML only</p>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>CSS3 & Flexbox</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>Chromium engine</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-danger fs-6'>Limited</span>
                            <p class='text-muted small mb-0 mt-2'>No flexbox/grid</p>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>JavaScript Execution</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>V8 engine</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-warning fs-6'>Partial</span>
                            <p class='text-muted small mb-0 mt-2'>Limited execution</p>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Bootstrap 5</strong></td>
                        <td class='text-center'>
                            <span class='badge bg-success fs-6'>Full Support</span>
                            <p class='text-muted small mb-0 mt-2'>All components</p>
                        </td>
                        <td class='text-center'>
                            <span class='badge bg-danger fs-6'>No Support</span>
                            <p class='text-muted small mb-0 mt-2'>Bootstrap 3 only</p>
                        </td>
                    </tr>
                    <tr class='table-secondary'>
                        <td><strong>Deployment</strong></td>
                        <td class='text-center'>
                            <div class='d-flex justify-content-center gap-2 flex-wrap'>
                                <span class='badge bg-primary'>On-Premises</span>
                                <span class='badge bg-primary'>Cloud</span>
                                <span class='badge bg-primary'>Offline</span>
                            </div>
                        </td>
                        <td class='text-center'>
                            <div class='d-flex justify-content-center gap-2 flex-wrap'>
                                <span class='badge bg-secondary'>Server Only</span>
                            </div>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class='alert alert-info mt-4 d-flex align-items-start'>
            <svg class='bi flex-shrink-0 me-2 mt-1' width='20' height='20'></svg>
            <div>
                <strong>Note:</strong> IronPDF's Chromium engine ensures that modern web applications convert to PDF with browser-accurate fidelity, preserving all CSS frameworks and responsive designs.
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapComparison);
pdf.SaveAs("feature-comparison.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Salida: Una tabla de comparación de características profesional con estilos de tabla de Bootstrap, insignias, diseño responsivo y componentes de alerta, todo renderizado con precisión en PDF.

JSReport .NET: Basado en plantillas con soporte limitado para Bootstrap

JSReport utiliza un enfoque basado en plantillas con diferentes motores de renderizado dependiendo de la receta seleccionada:

  • Receta Chrome PDF: Utiliza Puppeteer/Chrome en modo sin cabeza, buen soporte para Bootstrap
  • Receta Phantom JS: Motor WebKit heredado con soporte limitado para CSS moderno
  • Receta wkhtmltopdf: Motor Qt WebKit (desactualizado, no flexbox/grid)
  • Complejidad de la plantilla: Requiere aprender la sintaxis de plantillas de JSReport
  • Dependencia del servidor: Requiere instalación y gestión del servidor JSReport

Consideraciones clave para JSReport con Bootstrap:

  • Selección de receta: El soporte para Bootstrap varía dramáticamente según la elección de la receta
  • Receta Chrome PDF: La mejor opción para Bootstrap pero añade complejidad y dependencias
  • Curva de aprendizaje de la plantilla: Debe aprender la sintaxis de plantillas Handlebars/JSRender
  • Gestión del servidor: Requiere mantener una instancia del servidor JSReport
  • Complejidad del flujo de trabajo: Proceso de plantilla -> datos -> renderizado multinivel

Impacto en el desarrollo: Aunque la receta Chrome PDF de JSReport puede manejar Bootstrap bien, la complejidad general es mayor:

  1. Flujo de trabajo basado en plantillas vs conversión directa de HTML
  2. Requerimiento de infraestructura del servidor vs biblioteca en proceso
  3. Curva de aprendizaje para la sintaxis de plantillas vs HTML estándar
  4. Complejidad de la configuración de la receta vs API sencilla

Para aplicaciones que necesitan conversión HTML-a-PDF simple con soporte para Bootstrap, el enfoque directo de IronPDF ofrece una integración más simple y con menos partes móviles.

Para mejores prácticas de marco de Bootstrap, consulta la Guía de Bootstrap & Flexbox CSS.

8. Flexibilidad y características avanzadas

8.1 Características avanzadas y personalización de IronPDF

IronPDF destaca por sus características avanzadas y un alto grado de personalización, atendiendo a varias necesidades de manipulación de PDF. Las características avanzadas clave incluyen:

Cumplimiento de PDF/A

IronPDF soporta el formato PDF/A, esencial para el archivo a largo plazo y el cumplimiento con estándares de la industria. Este cumplimiento es particularmente crucial para los sectores legal, financiero y gubernamental, donde la integridad del documento 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, combinación y división de PDFs

IronPDF permite editar PDFs existentes, combinar múltiples PDFs en uno, y dividir PDFs en documentos separados. Esta característica es particularmente útil en escenarios donde grandes documentos necesitan ser divididos para facilitar su distribución o cuando diferentes secciones de varios documentos necesitan ser combinadas.

Características de seguridad

IronPDF incluye características de seguridad robustas, como protección con contraseña, cifrado y la capacidad de establecer permisos de usuario. IronPDF soporta el cifrado de archivos PDF, añadiendo una capa extra de seguridad y protegiendo el contenido de ser alterado o copiado.

using IronPdf;

// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");

// Make a PDF read-only and 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

// Save the protected PDF
pdfDoc.SaveAs("InvoiceProtected.pdf");
using IronPdf;

// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");

// Make a PDF read-only and 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

// Save the protected PDF
pdfDoc.SaveAs("InvoiceProtected.pdf");
Imports IronPdf

' Open a PDF File
Private pdfDoc = PdfDocument.FromFile("invoice.pdf")

' Make a PDF read-only and 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

' Save the protected 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, lo cual es esencial para informes, facturas y otros documentos empresariales con apariencia profesional. Esto incluye la capacidad 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 característica es particularmente útil para escenarios donde necesitas mostrar contenido PDF como imágenes en aplicaciones web o para generar miniaturas.

using IronPdf;
using IronSoftware.Drawing;

// Load the PDF document
var pdf = PdfDocument.FromFile("Example.pdf");

// Extract all pages to a folder as PNG image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");

// Extract specific dimensions or page ranges
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;

// Load the PDF document
var pdf = PdfDocument.FromFile("Example.pdf");

// Extract all pages to a folder as PNG image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");

// Extract specific dimensions or page ranges
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

' Load the PDF document
Private pdf = PdfDocument.FromFile("Example.pdf")

' Extract all pages to a folder as PNG image files
pdf.RasterizeToImageFiles("C:\image\folder\*.png")

' Extract specific dimensions or page ranges
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 conocido por sus características avanzadas y extensibilidad, convirtiéndolo en una herramienta versátil para la generación de informes. Sus características clave incluyen:

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 con múltiples motores permite un amplio rango 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 incluye programación y automatización para la generación de informes, ideal para necesidades regulares de informes como resúmenes diarios o mensuales. Esta funcionalidad asegura la entrega oportuna de informes y puede integrarse con flujos de trabajo empresariales para informes activados por eventos.

Extensibilidad con scripts personalizados

JSReport C# permite la extensión de sus capacidades a través de scripts personalizados, mejorando la funcionalidad como el procesamiento de datos personalizado o el formato especializado. Esta extensibilidad es crucial para crear informes adaptados a la lógica empresarial específica y requisitos de 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, atendiendo tanto a principiantes como a desarrolladores experimentados. Incluye guías detalladas, referencias de API, y una riqueza de ejemplos de código, lo que facilita a los desarrolladores entender e implementar las características de la biblioteca en múltiples lenguajes como C# y Node.

La documentación está bien estructurada y se actualiza regularmente, reflejando las características más recientes y mejores prácticas. Además, el sitio web de IronPDF proporciona guías de inicio rápido y FAQs, que son particularmente útiles para aquellos nuevos en la manipulación de PDFs en un entorno .NET.

IronPDF también tiene un entorno de prueba en línea donde puedes probar la funcionalidad de IronPDF en línea sin descargar su código. Explóralo usando el siguiente enlace.

9.1.1 Opciones de soporte

IronPDF ofrece varias opciones de soporte, incluyendo un equipo de soporte dedicado para manejar consultas y problemas técnicos. Proporcionan soporte por correo electrónico y tienen una presencia activa en foros de desarrolladores, ofreciendo soluciones y asesoramiento. También puedes contactar al agente de Soporte en Vivo usando la opción de Soporte en Vivo en el sitio web.

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

JSReport .NET se enorgullece de su documentación extensa y bien mantenida. La documentación cubre una amplia gama de temas desde la configuración básica hasta escenarios de uso avanzado, completos con fragmentos de código y ejemplos de implementación. Está organizada lógicamente, lo que facilita navegar y encontrar información relevante. Los recursos en línea también incluyen una referencia de API completa, asegurando que los desarrolladores tengan acceso a información detallada sobre las capacidades de la herramienta.

9.2.1 Opciones de soporte

JSReport .NET ofrece una variedad de opciones de soporte. Tienen un equipo de soporte dedicado que se puede contactar por correo electrónico, y mantienen una presencia activa en GitHub, proporcionando una plataforma para reportar problemas y solicitudes de características.

10. Modelos de Licenciamiento

10.1 Licencia de IronPDF

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

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

Edición Lite: Con un precio de $799, esta es una tarifa única para despliegue en la nube. Está diseñada para proyectos más pequeños o equipos que recién comienzan con el procesamiento de PDFs.

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

Edición Ilimitada: El paquete más completo, con un precio de $2,399, es una tarifa única para despliegue en la nube. Es ideal para uso empresarial a gran escala, ofreciendo características extensas y sin limitaciones en el uso.

10.2 Licencia de JSReport .NET

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

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

Licencia gratuita: Esto ofrece una instancia completamente funcional limitada a un máximo de 5 plantillas de informes. No requiere clave de licencia y es adecuada para proyectos pequeños o propósitos de evaluación.

Suscripción empresarial: Con un precio de $395 al año, este plan proporciona una instancia única de JSReport completamente funcional sin limitaciones e incluye actualizaciones. Es ideal para empresas individuales que necesitan una solución de informes robusta.

Suscripción de Escala Empresarial: A $1,295 al año, este plan es mejor 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 es libre de regalías, haciéndolo adecuado para organizaciones que ejecutan múltiples instancias o desplegando como parte de otro producto a múltiples clientes.

11. Conclusión

En conclusión, mientras que tanto IronPDF como JSReport .NET son valiosos en sus respectivos dominios, IronPDF lleva una ligera ventaja debido a sus capacidades completas de manipulación de PDFs. Destaca en áreas como cumplimiento con PDF/A, edición avanzada y características de seguridad, lo que lo convierte en una herramienta más versátil para el manejo detallado de PDFs en entornos .NET. JSReport .NET, con sus fortalezas en generación dinámica de informes y plantillas, es altamente efectivo para tareas centradas en informes. Sin embargo, para la mayoría de los escenarios que requieren procesamiento y manipulación detallada y variada de PDFs, IronPDF emerge como la elección más ventajosa.

IronPDF ofrece una licencia de desarrollador gratuita y una prueba gratuita. Iron Software provides a comprehensive package known as the Iron Suite. This suite, which includes IronBarcode, IronXL, IronQR, IronOCR, IronPDF, and IronWebScraper, is offered at the price of 2 software, adding significant value for developers seeking a broad range of functionalities.

En última instancia, la elección entre los dos depende de las necesidades específicas y el entorno del proyecto o desarrollador.

Por favor notaJSReport SDK es una marca registrada de su respectivo propietario. Este sitio no está afiliado, respaldado ni patrocinado por JSReport SDK. Todos los nombres de producto, logotipos y marcas son propiedad de sus respectivos dueños. Las comparaciones son solo para fines informativos y reflejan información públicamente disponible en el momento de la redacción.

Preguntas Frecuentes

¿Cómo puedo convertir HTML a PDF en una aplicación .NET?

Puede usar el método RenderHtmlAsPdf de IronPDF para convertir cadenas HTML en documentos PDF. Además, IronPDF soporta convertir archivos HTML completos en PDF utilizando el método RenderHtmlFileAsPdf.

¿Cuáles son las ventajas de usar IronPDF para la integración con ASP.NET?

IronPDF se integra a la perfección con ASP.NET, permitiendo a los desarrolladores convertir páginas ASPX en PDFs con un mínimo de codificación. Esta integración es particularmente beneficiosa para generar informes PDF desde aplicaciones web existentes.

¿Puede IronPDF manejar características de seguridad de PDF?

Sí, IronPDF incluye características de seguridad robustas como protección con contraseña, encriptación y establecimiento de permisos en documentos PDF, las cuales son cruciales para proteger información sensible.

¿Qué características hacen a IronPDF adecuado para la conversión de HTML a PDF?

IronPDF es reconocido por su facilidad de uso y alto rendimiento en la conversión de HTML a PDF. Soporta características avanzadas como renderizado CSS, ejecución de JavaScript, y encabezados y pies de página personalizados.

¿Cuáles son las características clave del JSReport SDK para .NET Core?

JSReport SDK para .NET Core ofrece características como filtros de middleware para convertir salidas de vistas MVC, compatibilidad con instancias remotas, manejo avanzado de respuestas con el gancho OnAfterRender, y la capacidad de generar informes desde HTML bruto.

¿Cómo mejora JSReport la generación de informes con plantillas?

JSReport soporta diversos motores de plantillas, permitiendo diseños de informes complejos y flexibles. También proporciona características como programación y automatización para la generación regular de informes, mejorando la productividad.

¿Cuáles son los beneficios de usar JSReport en entornos Docker?

JSReport .NET se integra efectivamente con instancias remotas de JSReport, lo cual es beneficioso en entornos Docker donde JSReport se ejecuta en un contenedor separado. Esta configuración facilita una orquestación eficiente con aplicaciones .NET Core.

¿Qué opciones de licencia están disponibles para IronPDF?

IronPDF ofrece varias opciones de licencia: Edición Lite para proyectos pequeños, Edición Profesional para características avanzadas, y Edición Ilimitada para uso empresarial a gran escala, adaptándose a diferentes necesidades de proyectos.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más