AYUDA PARA NODOS

sockjs NPM (Cómo funciona para desarrolladores)

Publicado en 24 de octubre, 2024
Compartir:

Introducción

SockJS y IronPDF desempeñan funciones diferentes pero complementarias en la creación de aplicaciones en línea. Un paquete de JavaScript llamado SockJS ofrece una conexión bidireccional entreHTTP API para la comunicación cliente-servidor que se asemeja a WebSockets. Hace posible que los navegadores web y los servidores se comuniquen en tiempo real y a través de eventos, permitiendo el uso de aplicaciones como salas de chat, noticias en directo y herramientas de trabajo en equipo. Sin embargo, en entornos Node.js, IronPDF es una potente biblioteca JavaScript que permite producir y modificar documentos PDF mediante programación.

Mientras que IronPDF permite crear y gestionar documentos PDF de forma dinámica, el cliente SockJS gestiona el intercambio de datos en tiempo real y las funciones de colaboración en aplicaciones en línea a través de un canal de comunicación entre dominios. Al integrar el homólogo del servidor SockJS con IronPDF, los desarrolladores pueden generar y servir fácilmente documentos PDF basados en datos dinámicos o interacciones del usuario, al tiempo que mejoran sus aplicaciones con cambios en tiempo real. Con esta combinación, los desarrolladores pueden diseñar sofisticadas aplicaciones en línea que admiten una variedad de casos de uso, incluidas aplicaciones de uso intensivo de documentos y plataformas de colaboración, utilizando tanto la comunicación en tiempo real como la creación dinámica de PDF.

¿Qué es SockJS NPM?

SockJS es una biblioteca JavaScript para navegadores que facilita la comunicación bidireccional en tiempo real entre clientes y servidores web. Abstrae WebSocket y ofrece un mecanismo alternativo a protocolos de transporte alternativos como HTTP long-polling y XHR streaming, garantizando la compatibilidad entre varios navegadores y entornos web. Proporciona una API JavaScript sencilla para establecer y gestionar conexiones y gestionar eventos como la apertura de conexiones, la recepción de mensajes y el cierre. Además, SockJS incluye un cliente de línea de comandos para pruebas y depuración, lo que lo hace versátil tanto para entornos de desarrollo como de producción. En general, el objeto JavaScript SockJS simplifica la implementación de funciones en tiempo real en aplicaciones web, soportando canales de comunicación escalables y con capacidad de respuesta.

sockjs NPM(Cómo funciona para desarrolladores): Figura 1 - SockJS

Características principales de SockJS

Compatibilidad entre navegadores

SockJS garantiza un comportamiento y una funcionalidad coherentes en muchos navegadores y entornos web.

Mecanismo de retroceso

Si las conexiones WebSocket no están disponibles o fallan, SockJS puede cambiar de forma transparente a otros protocolos de transporte, como HTTP long-polling, XHR streaming, o incluso JSONP polling.

Comunicación en tiempo real

Permite que las aplicaciones del lado del servidor(normalmente se utiliza Node.js u otras tecnologías de servidor) y aplicaciones JavaScript del lado del cliente(ejecución en navegadores web) para comunicarse en tiempo real y en función de los eventos.

Facilidad de uso

Dado que SockJS ofrece una API directa equivalente a WebSocket, los desarrolladores pueden incluirla y utilizarla fácilmente en sus proyectos.

Escalabilidad

SockJS facilita el desarrollo de aplicaciones escalables que pueden gestionar numerosas conexiones simultáneas y una amplia gama de situaciones de red mediante el apoyo a múltiples protocolos de transporte y técnicas de fallback.

Facilidad de integración

Facilita la implementación de funciones en tiempo real proporcionando una API sencilla que los desarrolladores pueden incorporar a sus aplicaciones web sin necesidad de una compleja programación de red de bajo nivel.

Abstracción de protocolos de transporte:

SockJS abstrae WebSocket, HTTP long-polling y otros protocolos de transporte subyacentes. Gracias a su adaptabilidad, se garantiza una comunicación fiable incluso en situaciones en las que las conexiones WebSocket están restringidas o no están disponibles.

Crear y configurar SockJS

Por lo general, es necesario configurar SockJS tanto en el lado del cliente como en el de la aplicación(en su navegador web) y el lado del servidor(utilizando incluso un navegador o un marco de servidor como Node.js) para construirlo y configurarlo para la comunicación en tiempo real en una aplicación en línea. A continuación se explica cómo crear y configurar SockJS:

Instalar SockJS

SockJS puede instalarse mediante NPM o incluirse directamente a través de una CDN:

npm install sockjs-client
npm install sockjs-client
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install sockjs-client
VB   C#

Incluya SockJS en su HTML

Incluya la biblioteca JavaScript SockJS en el archivo HTML que cree:

<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
VB   C#

Inicializar la conexión SockJS

Cree una instancia de SockJS en su archivo JavaScript(app.js o similar) y conectarse a su servidor:

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>SockJS + IronPDF Example</title>
  </head>
  <body>
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
      const sock = new SockJS("http://localhost:3000/socket");
      sock.onopen = function () {
        console.log("Connection opened");
      };
      sock.onmessage = function (e) {
        console.log("Message received:", e.data);
      };
      sock.onclose = function () {
        console.log("Connection closed");
      };
      // Example of sending a message
      function sendMessage(message) {
        sock.send(message);
      }
    </script>
    Enter the Message : 
  </body>
</html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>SockJS + IronPDF Example</title>
  </head>
  <body>
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
      const sock = new SockJS("http://localhost:3000/socket");
      sock.onopen = function () {
        console.log("Connection opened");
      };
      sock.onmessage = function (e) {
        console.log("Message received:", e.data);
      };
      sock.onclose = function () {
        console.log("Connection closed");
      };
      // Example of sending a message
      function sendMessage(message) {
        sock.send(message);
      }
    </script>
    Enter the Message : 
  </body>
</html>
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <html lang="en"> <head> <meta charset="UTF-8" /> <title> SockJS + IronPDF Example</title> </head> <body> <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script> <script> const sock = new SockJS("http://localhost:3000/socket");
"https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script> (Of script) const sock = New SockJS("http://localhost:3000/socket")
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private <html lang="en"> <head> <meta charset="UTF-8" /> <title> SockJS + IronPDF Example</title> </head> <body> <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script> <script> const sock
"UTF-8" /> (Of title) SockJS + IronPDF Example</title> </head> (Of body) <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script> (Of script) const sock
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private <html lang="en"> <head> <meta charset="UTF-8" /> <title> SockJS + IronPDF Example</title> </head> <body> <script src
"en"> (Of head) <meta charset="UTF-8" /> (Of title) SockJS + IronPDF Example</title> </head> (Of body) <script src
Private Private Private Private <html lang="en"> (Of head) <meta charset
	  sock.onopen = [function]()
	  If True Then
		console.log("Connection opened")
	  End If
	  sock.onmessage = [function](e)
	  If True Then
		console.log("Message received:", e.data)
	  End If
	  sock.onclose = [function]()
	  If True Then
		console.log("Connection closed")
	  End If
	  ' Example of sending a message
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	  @function sendMessage(message)
'	  {
'		sock.send(message);
'	  }
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	</script> Enter the Message : </body> </html>
VB   C#

La URL de tu punto final WebSocket del lado del servidor debe usarse en lugar de "http://localhost:3000/socket."

sockjs NPM(Cómo funciona para desarrolladores): Figura 2 - Salida de la conexión SockJS

Configuración del servidor

Instalar SockJS-Node

Para instalar el paquete SockJS-Node, utilice npm:

npm install sockjs
npm install sockjs
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install sockjs
VB   C#

Configurar SockJS Serve

En su servidor Node.js, configure SockJS:

const http = require('http');
const sockjs = require('sockjs');
// Create a SockJS server
const sockjsServer = sockjs.createServer();
// Attach the server to an HTTP server instance
const server = http.createServer();
sockjsServer.installHandlers(server, { prefix: '/socket' });
// Define SockJS event handlers
sockjsServer.on('connection', function(conn) {
    console.log('Client connected');
    conn.on('data', function(message) {
        console.log('Received message:', message);
        // Handle incoming messages from client
    });
    conn.on('close', function() {
        console.log('Client disconnected');
    });
});
// Start the server
const PORT = 3000;
server.listen(PORT, function() {
    console.log(`Server listening on port ${PORT}`);
});
const http = require('http');
const sockjs = require('sockjs');
// Create a SockJS server
const sockjsServer = sockjs.createServer();
// Attach the server to an HTTP server instance
const server = http.createServer();
sockjsServer.installHandlers(server, { prefix: '/socket' });
// Define SockJS event handlers
sockjsServer.on('connection', function(conn) {
    console.log('Client connected');
    conn.on('data', function(message) {
        console.log('Received message:', message);
        // Handle incoming messages from client
    });
    conn.on('close', function() {
        console.log('Client disconnected');
    });
});
// Start the server
const PORT = 3000;
server.listen(PORT, function() {
    console.log(`Server listening on port ${PORT}`);
});
const http = require( 'http');
const sockjs = require( 'sockjs');
' Create a SockJS server
const sockjsServer = sockjs.createServer()
' Attach the server to an HTTP server instance
const server = http.createServer()
sockjsServer.installHandlers(server, { prefix: '/socket' });
' Define SockJS event handlers
sockjsServer.on( 'connection', @function(conn) { console.log('Client connected'); conn.on('data', @function(message) { console.log('Received message:', message); }); conn.on('close', @function() { console.log('Client disconnected'); }); });
' Start the server
const PORT = 3000
server.listen(PORT, [function]() { console.log(`Server listening on port ${PORT}`); })
VB   C#

Asegúrese de que el código del lado del servidor está personalizado para cumplir los requisitos de su aplicación y funciona con el marco o la configuración del servidor que ya tiene.

sockjs NPM(Cómo funciona para desarrolladores): Figura 3 - Salida de configuración de cumplimiento del servidor SockJS

Solicitudes cruzadas(CORS): Ocúpate de que el servidor de prueba gestione la configuración CORS de forma eficaz si tu servidor y tu cliente están en dominios separados.

Manejo de errores: Según las especificaciones de su aplicación, implemente el manejo de errores y las medidas de seguridad en el límite del navegador(como autenticación y autorización).

Despliegue: Configure HTTPS para conexiones seguras y configure SockJS y su servidor para entornos de despliegue.

Esta configuración ofrece una base fundamental para establecer una comunicación en tiempo real entre un cliente web y un servidor web, utilizando SockJS. Dependiendo de los requisitos y la arquitectura de su aplicación en particular, puede ser necesario realizar ajustes.

Para empezar

Configurar una aplicación web que utilice las capacidades de comunicación en tiempo real de SockJS e integre IronPDF para la creación dinámica de PDF es el primer paso para empezar a utilizar SockJS e IronPDF. Aquí tienes una guía para empezar:

¿Qué es IronPDF?

Una potente herramienta de Node.js llamadaIronPDF está hecho para transformar datos HTML en archivos PDF de extraordinaria calidad. Sin sacrificar el contenido original de la web, acelera el proceso de convertir archivos HTML, CSS y otros JavaScript en PDFs correctamente formateados. Para aplicaciones web que necesitan generar documentos dinámicos e imprimibles como informes, facturas y certificaciones, esta es una herramienta muy útil.

Configuraciones de página personalizables, encabezados, pies de página y la capacidad de añadir fuentes e imágenes son solo algunas de las capacidades de IronPDF. Puede manejar diseños y estilos intrincados para garantizar que cada archivo PDF de prueba cumpla con los requisitos. Además, IronPDF gestiona la ejecución de JavaScript dentro del HTML, permitiendo una renderización precisa de contenido dinámico e interactivo.

sockjs NPM(Cómo funciona para desarrolladores): Figura 4 - IronPDF

Características de IronPDF

1. Generación de PDF desde HTML

Convierte JavaScript, HTML y CSS a PDF. Admite media queries y diseño responsivo, dos estándares web contemporáneos. útil para decorar dinámicamente informes, facturas y documentos PDF con HTML y CSS.

2. Edición PDF

A los PDF preexistentes se les puede añadir texto, fotos y otros contenidos. Extraiga texto e imágenes de archivos PDF. Combinar numerosos PDF en un solo archivo. Divida archivos PDF en varios documentos independientes. Incluye marcas de agua, anotaciones, encabezados y pies de página.

3. Rendimiento y Fiabilidad

El alto rendimiento y la fiabilidad son cualidades de diseño deseadas en los entornos industriales. Gestiona grandes conjuntos de documentos con facilidad.

Instalar IronPDF

Instale el paquete IronPDF para obtener las herramientas que necesita para trabajar con PDF en proyectos Node.js. En la línea de comandos, añada la siguiente línea de código.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install @ironsoftware/ironpdf
VB   C#

Combinar SockJS con IronPDF

Configure SockJS en su servidor Node.js para gestionar las solicitudes de generación de PDF y las conexiones de los clientes:

// server.js
const http = require("http");
const sockjs = require("sockjs");
const IronPdf = require("@ironsoftware/ironpdf");
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({
  licenseKey:
    "",
});
// Create a SockJS server
const sockjsServer = sockjs.createServer();
// Attach the server to an HTTP server instance
const server = http.createServer();
sockjsServer.installHandlers(server, { prefix: "/socket" });
// Handle SockJS connections and messages
sockjsServer.on("connection", function (conn) {
  console.log("Client connected");
  // Handle incoming messages (PDF generation requests)
  conn.on("data", async function(message) {
    console.log("Received message:", message);
    // Generate PDF using IronPDF
    let pdfdata = await generatePdf(message);
    // Send generated PDF data back to client
    conn.write(pdfdata);
  });
  conn.on("close", function () {
    console.log("Client disconnected");
  });
});
// Function to generate PDF using IronPDF
const generatePdf = async (htmlContent) => {
  const pdfDocument = IronPdf.PdfDocument;
  let result = (await pdfDocument.fromHtml(htmlContent));
  const pdfBuffer = await result.saveAsBuffer();
  return pdfBuffer;
};
// Start the HTTP server
const PORT = 3000;
server.listen(PORT, function () {
  console.log(`Server listening on port ${PORT}`);
});
// server.js
const http = require("http");
const sockjs = require("sockjs");
const IronPdf = require("@ironsoftware/ironpdf");
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({
  licenseKey:
    "",
});
// Create a SockJS server
const sockjsServer = sockjs.createServer();
// Attach the server to an HTTP server instance
const server = http.createServer();
sockjsServer.installHandlers(server, { prefix: "/socket" });
// Handle SockJS connections and messages
sockjsServer.on("connection", function (conn) {
  console.log("Client connected");
  // Handle incoming messages (PDF generation requests)
  conn.on("data", async function(message) {
    console.log("Received message:", message);
    // Generate PDF using IronPDF
    let pdfdata = await generatePdf(message);
    // Send generated PDF data back to client
    conn.write(pdfdata);
  });
  conn.on("close", function () {
    console.log("Client disconnected");
  });
});
// Function to generate PDF using IronPDF
const generatePdf = async (htmlContent) => {
  const pdfDocument = IronPdf.PdfDocument;
  let result = (await pdfDocument.fromHtml(htmlContent));
  const pdfBuffer = await result.saveAsBuffer();
  return pdfBuffer;
};
// Start the HTTP server
const PORT = 3000;
server.listen(PORT, function () {
  console.log(`Server listening on port ${PORT}`);
});
' server.js
const http = require("http")
const sockjs = require("sockjs")
const IronPdf = require("@ironsoftware/ironpdf")
Dim config = IronPdf.IronPdfGlobalConfig
config.setConfig({ licenseKey:= ""})
' Create a SockJS server
const sockjsServer = sockjs.createServer()
' Attach the server to an HTTP server instance
const server = http.createServer()
sockjsServer.installHandlers(server, { prefix:= "/socket" })
' Handle SockJS connections and messages
sockjsServer.on("connection", [function](conn) { console.log("Client connected"); conn.on("data", async [function](message) { console.log("Received message:", message); let pdfdata = Await generatePdf(message); conn.write(pdfdata); }); conn.on("close", [function]() { console.log("Client disconnected"); }); })
' Function to generate PDF using IronPDF
const generatePdf = Async Function(htmlContent)
  const pdfDocument = IronPdf.PdfDocument
  Dim result As let = (Await pdfDocument.fromHtml(htmlContent))
  const pdfBuffer = Await result.saveAsBuffer()
  Return pdfBuffer
End Function
' Start the HTTP server
const PORT = 3000
server.listen(PORT, [function]() { console.log(`Server listening on port ${PORT}`); })
VB   C#

Configuración del lado del cliente

Configure SockJS en el lado del cliente para interactuar con el servidor y enviar solicitudes para generar archivos PDF.

<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>SockJS + IronPDF Example</title>
</head>
<body>
    <button onclick="generatePdf()">Generate PDF</button>
    // add SockJS browser JavaScript library
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
        const sock = new SockJS('http://localhost:3000/socket');
        sock.onopen = function() {
            console.log('Connection opened');
        };
        sock.onmessage = function(e) {
            console.log('PDF received');
            // Example: Display or download PDF received from server
            displayPdf(e.data);
        };
        sock.onclose = function() {
            console.log('Connection closed');
        };
        function generatePdf() {
            // Example: HTML content to generate PDF
            const htmlContent = '<html><body><h1>Hello, IronPDF!</h1></body></html>';
            // Send HTML content to server for PDF generation
            sock.send(htmlContent);
        }
        function displayPdf(pdfData) {
            // Example: Display or download PDF data received from server
            const pdfBlob = new Blob([atob(pdfData)], { type: 'application/pdf' });
            const pdfUrl = URL.createObjectURL(pdfBlob);
            window.open(pdfUrl, '_blank');
        }
    </script>
</body>
</html>
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>SockJS + IronPDF Example</title>
</head>
<body>
    <button onclick="generatePdf()">Generate PDF</button>
    // add SockJS browser JavaScript library
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
        const sock = new SockJS('http://localhost:3000/socket');
        sock.onopen = function() {
            console.log('Connection opened');
        };
        sock.onmessage = function(e) {
            console.log('PDF received');
            // Example: Display or download PDF received from server
            displayPdf(e.data);
        };
        sock.onclose = function() {
            console.log('Connection closed');
        };
        function generatePdf() {
            // Example: HTML content to generate PDF
            const htmlContent = '<html><body><h1>Hello, IronPDF!</h1></body></html>';
            // Send HTML content to server for PDF generation
            sock.send(htmlContent);
        }
        function displayPdf(pdfData) {
            // Example: Display or download PDF data received from server
            const pdfBlob = new Blob([atob(pdfData)], { type: 'application/pdf' });
            const pdfUrl = URL.createObjectURL(pdfBlob);
            window.open(pdfUrl, '_blank');
        }
    </script>
</body>
</html>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<!-- index.html -- > <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> SockJS + IronPDF Example</title> </head> <body> <button onclick="generatePdf()"> Generate PDF</button> <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script> <script> const sock = New SockJS('http: sock.onopen = @function() { console.log('Connection opened'); }; sock.onmessage = @function(e) { console.log('PDF received'); displayPdf(e.data); }; sock.onclose = @function() { console.log('Connection closed'); }; @function generatePdf() { const htmlContent = '<html><body><h1> Hello, IronPDF!</h1></body></html>'; sock.send(htmlContent); } @function displayPdf(pdfData) { const pdfBlob = New Blob([atob(pdfData)], { type: 'application/pdf' }); const pdfUrl = URL.createObjectURL(pdfBlob); window.open(pdfUrl, '_blank'); } </script> </body> </html>
VB   C#

Lado del servidor: Un servidor SockJS(sockjsServidor) es configurado por el servidor Node.js, que busca conexiones en el puerto /socket. Utiliza IronPDF(IronPDF.DocumentoPdf) para invocar el generatePdf() función para gestionar los mensajes entrantes(Solicitudes de generación de PDF). Tras generar el PDF, utiliza la conexión SockJS para enviar los datos PDF codificados en base64 al cliente.

sockjs NPM(Cómo funciona para desarrolladores): Figura 5 - Salida del código fuente del cliente SockJS

**El cliente se conecta al servidor a través de una conexión SockJS(calcetín) y vigila eventos como onopen, onmessage y onclose. El usuario utiliza sock.send(htmlContenido) para enviar contenido HTML(htmlContenido) al hacer clic en el botón "Generar PDF", los desarrolladores envían los archivos PDF al servidor para su generación. Muestra o descarga el PDF a ambos clientes, tras obtener los datos del PDF del servidor(sock.onmessage).

sockjs NPM(Cómo funciona para desarrolladores): Figura 6 - Salida del lado del cliente

A continuación se muestra el resultado generado a partir del código.

sockjs NPM(Cómo funciona para desarrolladores): Figura 7 - Salida PDF

Conclusión

Se crea una fuerte sinergia en el desarrollo de aplicaciones web cuando se utiliza SockJS para la comunicación en tiempo real y IronPDF para la producción dinámica de PDF. SockJS facilita la comunicación bidireccional entre clientes y servidores, lo que permite funciones como la colaboración interactiva y las actualizaciones en tiempo real. Sin embargo, IronPDF ofrece a los programadores la posibilidad de crear y modificar documentos PDF mediante programación. Incluso puede convertir dinámicamente texto HTML en PDF.

La integración de estas tecnologías hace posible aplicaciones web complejas que pueden crear documentos PDF al instante en respuesta a las entradas del usuario o a actualizaciones de datos en tiempo real. Las aplicaciones que requieran la generación de documentos en tiempo real, la edición en grupo o la elaboración de informes interactivos encontrarán esta integración especialmente útil. Mediante la utilización de SockJS para actualizaciones instantáneas y IronPDF para la creación dinámica de PDF, los desarrolladores pueden optimizar la experiencia del usuario, optimizar los flujos de trabajo y proporcionar soluciones resistentes que satisfagan una serie de requisitos empresariales para cualquier usuario serio de SockJS.

Podemos aumentar la utilidad de su conjunto de herramientas de desarrollo de aplicaciones Node.js utilizandoIronPDF para añadir OCR, escaneado de códigos de barras, producción de PDF, interacción con Excel y muchas otras funciones. Los sistemas altamente configurables de Iron Software y una extensa biblioteca de plugins con soporte de la comunidad permiten a los desarrolladores construir características y aplicaciones web más rápidamente.

Los desarrolladores pueden utilizar las numerosas funciones de IronPDF con una versión gratuitalicencia de pruebay una variedad de ejemplos de código de la empresa antes de optar por comprar. Para obtener más información sobre las licencias perpetuas de IronPDF, visite la página de licencias. Para más instrucciones sobre cómo empezar a utilizar IronPDF, visite la página de documentación.

< ANTERIOR
browserify NPM (Cómo funciona para desarrolladores)
SIGUIENTE >
JsdomNPM (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.11 acaba de salir

Instalación gratuita de npm Ver licencias >