import {PdfDocument} from "@ironsoftware/ironpdf";
(async () => {
// Create a PDF from an HTML string
const pdf = await PdfDocument.fromHtml("<h1>Hello World</h1>");
// Export the PDF to a file
await pdf.saveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external HTML assets: Images, CSS, and JavaScript.
const htmlContentWithAssets = "<img src='icons/iron.png'>";
const advancedPdf = await PdfDocument.fromHtml(htmlContentWithAssets);
// Save the PDF with loaded assets
await advancedPdf.saveAs("html-with-assets.pdf");
})();
faye NPM (Comment ça marche pour les développeurs)
Kannapat Udonpant
octobre 24, 2024
Partager:
Introduction
IronPDF et Faye jouent des rôles différents dans le développement web, mais leurs compétences fonctionnent bien ensemble. En utilisant WebSocket ou d'autres transports compatibles, les serveurs et les clients web peuvent communiquer en temps réel grâce au paquet NPM Faye. Il s'agit d'une méthode simple mais efficace de publication/souscriptionmessagerie node js est un système qui permet des applications web évolutives et instantanées de partage de données. 1.4.0 est la dernière version de Faye publiée il y a 4 ans. À l'inverse, un autre package npm appelé IronPDF permet aux développeurs de créer, modifier et convertir de manière programmatique des documents PDF dans des environnements Node.js.
Les développeurs peuvent améliorer les applications web avec des fonctionnalités de production de PDF en temps réel en intégrant Faye à IronPDF. Les applications nécessitant la génération instantanée de rapports PDF, la génération dynamique de documents en fonction des entrées de l'utilisateur ou des changements de données en temps réel, et les scénarios d'édition collaborative de documents peuvent trouver cette connexion très utile. Avec l'aide des outils de création de PDF d'IronPDF et des fonctionnalités de messagerie simple publication-abonnement en temps réel de Faye, les développeurs peuvent concevoir des applications web axées sur les données, interactives et adaptables qui répondent à une variété d'objectifs des utilisateurs et des entreprises.
Qu'est-ce que Faye ?
Un plugin Node.js appeléFaye le protocole WebSocket facilite la communication en temps réel entre les clients et les serveurs à l'aide de WebSocket ou d'un autre moyen de transport compatible et du protocole WebSocket. Il offre un mécanisme de messagerie pub/sub qui rend la communication des applications web évolutive et efficace. En gérant en douceur les connexions et l'acheminement des messages entre les clients et les serveurs, Faye entend rendre moins compliqué le déploiement de fonctionnalités en temps réel, telles que les mises à jour en direct, les notifications et les interactions collaboratives. Faye est fréquemment intégré par les développeurs pour améliorer leurs applications avec des fonctionnalités collaboratives, interactives et réactives qui nécessitent une transmission de données en temps réel entre les utilisateurs et les serveurs.
Caractéristiques de Faye
Le module NPM Faye est un outil utile pour intégrer la messagerie événementielle en temps réel dans les applications web, car il offre plusieurs fonctionnalités importantes :
Prise en charge de WebSocket et des protocoles de transport: Grâce à la prise en charge de WebSocket et des méthodes de repli vers des protocoles de transport alternatifs, tels que HTTP long-polling, Faye peut maintenir des canaux de communication en temps réel avec différents navigateurs et configurations de réseau.
**Avec l'aide du modèle de messagerie publish/subscribe de Faye, les utilisateurs peuvent s'abonner à des canaux particuliers(thèmes) et recevoir des mises à jour ou des messages dès qu'ils sont publiés.
**Il peut gérer efficacement un grand nombre de connexions et de messages simultanés grâce à son architecture évolutive, ce qui le rend approprié pour les applications qui exigent de grandes performances et une grande réactivité.
Intégration côté client et côté serveur: Faye facilite la communication entre les clients et les serveurs en intégrant à la fois le côté client et le côté serveur(navigateur) et côté serveur(Node.js).
**Pour réguler l'accès aux canaux et aux messages, il intègre des techniques de protection des connexions WebSocket ainsi que des procédures d'authentification et d'autorisation.
Facilité d'utilisation: Les développeurs peuvent créer des fonctionnalités telles que des mises à jour en direct, des notifications, des systèmes de chat, et plus encore avec peu de configuration en utilisant l'API simple de Faye pour la mise en place et la gestion des communications en temps réel.
**Faye maintient des canaux de communication robustes qui résistent aux pannes de réseau en gérant les reconnexions et en garantissant la fiabilité de la livraison des messages.
Personnalisation et extensibilité: Grâce à l'utilisation de plugins, d'extensions et d'adaptateurs uniques, les développeurs peuvent augmenter les capacités de Faye et fournir des solutions spécialisées pour répondre à certains besoins d'application.
Créer et configurer Faye
L'intégration côté client et l'instance Faye côté serveur doivent être mises en place pour construire et configurer Faye à l'aide de NPM dans un environnement Node.js. Voici un manuel pratique pour vous aider à démarrer :
Configuration côté serveur
Installer Faye
Installez d'abord le paquet Faye :
npm install faye
Créer un serveur Faye
Assurez-vous que le serveur Faye est configuré en créant un fichier server.js dans Node.js :
// server.js
const http = require('http');
const faye = require('faye');
// Create an HTTP server
const server = http.createServer();
// Mount the Faye server at '/faye'
const bayeux = new faye.NodeAdapter({ mount: '/faye', timeout: 45 });
// Attach Faye to the HTTP server
bayeux.attach(server);
// Start the HTTP server
const PORT = 8000;
server.listen(PORT, () => {
console.log(`Faye server listening on port ${PORT}`);
});
// server.js
const http = require('http');
const faye = require('faye');
// Create an HTTP server
const server = http.createServer();
// Mount the Faye server at '/faye'
const bayeux = new faye.NodeAdapter({ mount: '/faye', timeout: 45 });
// Attach Faye to the HTTP server
bayeux.attach(server);
// Start the HTTP server
const PORT = 8000;
server.listen(PORT, () => {
console.log(`Faye server listening on port ${PORT}`);
});
JAVASCRIPT
Dans cet exemple, un serveur HTTP écoutant sur le port 8000 a le serveur Faye monté sur /faye. Adaptez le portage et la route de montage aux besoins de la version de votre application.
Configuration côté client
Ajoutez la bibliothèque client Faye à votre page HTML ou utilisez un bundler de modules tel que Webpack ou Browserify pour le faire :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Faye Client Example</title>
</head>
<script
type="text/javascript"
src="http://localhost:8000/faye/client.js"
></script>
<body>
<!-- Your HTML content -->
Enter the Message :
<script>
// Initialize Faye client
const client = new Faye.Client('http://localhost:8000/faye');
// Subscribe to a channel
client.subscribe('/channel', function(message) {
console.log('Received message:', message);
// Handle received messages
});
// Publish a message
function publishMessage(message) {
client.publish('/channel', { text: message });
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Faye Client Example</title>
</head>
<script
type="text/javascript"
src="http://localhost:8000/faye/client.js"
></script>
<body>
<!-- Your HTML content -->
Enter the Message :
<script>
// Initialize Faye client
const client = new Faye.Client('http://localhost:8000/faye');
// Subscribe to a channel
client.subscribe('/channel', function(message) {
console.log('Received message:', message);
// Handle received messages
});
// Publish a message
function publishMessage(message) {
client.publish('/channel', { text: message });
}
</script>
</body>
</html>
HTML
Adapter l'URL du serveur Faye(http://localhost:8000/faye) et le code source et l'URL du script client Faye(browser.js) à votre configuration.
Vous pouvez ajouter efficacement des fonctions de messagerie en temps réel dans votre application web Node.js en configurant le paquet Faye en suivant ces instructions. Modifiez les exemples en fonction de l'architecture et des besoins de votre application.
Pour commencer
Vous devrez configurer un serveur Node.js pour gérer les connexions et les requêtes de génération de PDF avant de pouvoir utiliser IronPDF pour la génération dynamique de PDF et Faye pour les communications en temps réel. Voici un mode d'emploi détaillé :
Qu'est-ce qu'IronPDF ?
IronPDF for Node.js est un programme Node.js robuste conçu pour convertir des données HTML en fichiers PDF d'une incroyable qualité. Il accélère le processus de conversion des fichiers HTML, CSS et autres JavaScript en PDF correctement formatés sans compromettre le contenu en ligne original. C'est un outil très utile pour les applications web qui doivent produire des documents dynamiques et imprimables, tels que des factures, des certifications et des rapports.
IronPDF dispose de plusieurs fonctionnalités, notamment des paramètres de page personnalisables, des en-têtes, des pieds de page et la possibilité d'ajouter des polices et des images. Il peut gérer des styles et des mises en page complexes pour garantir que chaque sortie de test PDF répond aux spécifications. De plus, IronPDF contrôle l'exécution de JavaScript au sein de HTML, ce qui permet un rendu dynamique et interactif précis du contenu.
Caractéristiques d'IronPDF
1. Génération de PDF à partir de HTML
Convertissez HTML, CSS et JavaScript en PDF. Prend en charge deux normes web modernes : les requêtes multimédias et le responsive design. Pratique pour utiliser HTML et CSS afin de décorer dynamiquement des documents PDF, des factures et des rapports.
2. Edition PDF
Il est possible d'ajouter du texte, des images et d'autres éléments à des PDF déjà existants. Extraction de texte et d'images à partir de fichiers PDF. Fusionnez de nombreux fichiers PDF en un seul fichier. Divisez les fichiers PDF en plusieurs documents distincts. Ajouter des en-têtes, des pieds de page, des annotations et des filigranes.
3. Performance et fiabilité
Dans les contextes industriels, les performances élevées et la fiabilité sont des attributs souhaitables de la conception. Gère facilement de grands ensembles de documents.
Installer IronPDF
Pour obtenir les outils nécessaires pour travailler avec des PDF dans des projets Node.js, installez le package IronPDF. Ajoutez la ligne de code suivante à la ligne de commande.
npm install @ironsoftware/ironpdf
Combinez Faye avec IronPDF
Créer un serveur Node.js rudimentaire qui combine IronPDF pour la production de PDF avec Faye pour la messagerie en temps réel :
// server.js
const http = require('http');
const faye = require('faye');
const IronPdf = require('@ironsoftware/ironpdf');
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({
licenseKey:
"",
});
// Create an HTTP server
const server = http.createServer();
// Create a Faye server
const bayeux = new faye.NodeAdapter({ mount: '/faye', timeout: 45 });
// Attach the Faye server to the HTTP server
bayeux.attach(server);
// Handle Faye client connections
bayeux.on('handshake', function(clientId) {
console.log(`Client connected: ${clientId}`);
});
// Handle incoming messages for PDF generation
bayeux.on('publish', async function (clientId, channel, data) {
if (channel === '/generate_pdf') {
console.log(`Received PDF generation request from client ${clientId}: ${data.htmlContent}`);
// Generate PDF using IronPDF
let pdfData=await generatePdf(data.htmlContent)
var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(pdfData)));
bayeux.getClient().publish(`/pdf_result/${clientId}`, { pdfData: base64String });
}
});
// 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 faye = require('faye');
const IronPdf = require('@ironsoftware/ironpdf');
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({
licenseKey:
"",
});
// Create an HTTP server
const server = http.createServer();
// Create a Faye server
const bayeux = new faye.NodeAdapter({ mount: '/faye', timeout: 45 });
// Attach the Faye server to the HTTP server
bayeux.attach(server);
// Handle Faye client connections
bayeux.on('handshake', function(clientId) {
console.log(`Client connected: ${clientId}`);
});
// Handle incoming messages for PDF generation
bayeux.on('publish', async function (clientId, channel, data) {
if (channel === '/generate_pdf') {
console.log(`Received PDF generation request from client ${clientId}: ${data.htmlContent}`);
// Generate PDF using IronPDF
let pdfData=await generatePdf(data.htmlContent)
var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(pdfData)));
bayeux.getClient().publish(`/pdf_result/${clientId}`, { pdfData: base64String });
}
});
// 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}`);
});
JAVASCRIPT
Configuration côté client
Configurez Faye côté client pour interagir avec le serveur et soumettre des demandes de création de PDF :
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Faye + IronPDF Example</title>
</head>
<body>
<button onclick="generatePdf()">Generate PDF</button>
<script src="https://cdn.jsdelivr.net/npm/faye/browser/faye-browser.min.js"></script>
<script>
const client = new Faye.Client('http://localhost:3000/faye');
//simple publish subscribe messaging
client.subscribe('/pdf_result/*', function(message) {
console.log('PDF received:', message);
displayPdf(message.pdfData);
});
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
client.publish('/generate_pdf', { htmlContent: htmlContent });
}
function displayPdf(pdfData) {
// Example: Display or download PDF data received from server
const pdfBlob = new Blob([Uint8Array.from(atob(pdfData), c => c.charCodeAt(0))], { 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>Faye + IronPDF Example</title>
</head>
<body>
<button onclick="generatePdf()">Generate PDF</button>
<script src="https://cdn.jsdelivr.net/npm/faye/browser/faye-browser.min.js"></script>
<script>
const client = new Faye.Client('http://localhost:3000/faye');
//simple publish subscribe messaging
client.subscribe('/pdf_result/*', function(message) {
console.log('PDF received:', message);
displayPdf(message.pdfData);
});
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
client.publish('/generate_pdf', { htmlContent: htmlContent });
}
function displayPdf(pdfData) {
// Example: Display or download PDF data received from server
const pdfBlob = new Blob([Uint8Array.from(atob(pdfData), c => c.charCodeAt(0))], { type: 'application/pdf' });
const pdfUrl = URL.createObjectURL(pdfBlob);
window.open(pdfUrl, '_blank');
}
</script>
</body>
</html>
JAVASCRIPT
Côté serveur: Un serveur Faye(bayeux) est intégré par le serveur Node.js, qui configure également un serveur HTTP. Sur le canal /generate_pdf, il surveille les messages entrants et les connexions des clients. À la réception d'une demande deGénération PDFl'outil de traduction est un outil de gestion de contenu, il convertit les informations HTML fournies en PDF à l'aide d'IronPDF et renvoie les données PDF complétées, un message facile à utiliser pour le client.
Côté client: Pour obtenir les données PDF générées, le client du navigateur crée une connexion Faye(client) l'utilisateur se connecte au serveur et s'abonne au canal /pdf_result/*. Le bouton "Generate PDF" permet à l'utilisateur d'envoyer une requête de contenu HTML au serveur, que le serveur utilise ensuite pour générer un PDF à l'aide d'un client.release('/generate_pdf',{ htmlContent : htmlContent}). Il affiche ou télécharge le PDF après avoir reçu les données du PDF.
Conclusion
L'intégration de Faye à IronPDF permet de proposer une solution fiable pour les applications web contemporaines en combinant les avantages de la création dynamique de PDF et de la messagerie en temps réel. La communication instantanée client-serveur est rendue possible par le système de messagerie pub/sub de Faye, qui prend en charge les applications nécessitant des mises à jour en temps réel, telles que le suivi des bogues, les notifications et les capacités de travail en équipe. À l'inverse, IronPDF permet la création, la modification et la conversion programmatiques de documents PDF, ce qui permet la génération dynamique de rapports, de factures et d'autres documents en réponse à des entrées utilisateur ou à des données en temps réel.
Ces technologies peuvent être intégrées pour fournir du matériel créé dynamiquement et un retour d'information instantané, ce qui peut améliorer l'expérience de l'utilisateur. Par exemple, les consommateurs n'ont pas besoin d'attendre un traitement par lots ou d'actualiser le site web pour recevoir une demande de rapport PDF qui est traitée instantanément. Les applications web deviennent plus réactives et plus efficaces grâce à cette interaction fluide, ce qui accroît leur interactivité et leur convivialité.
En intégrant IronPDF etIron Softwareavec les outils de développement d'applications Node.js, nous pouvons ajouter la ROC, la lecture de codes-barres, la sortie PDF, l'interaction avec Excel et bien d'autres fonctionnalités à votre boîte à outils de développement d'applications Node.js, ce qui en accroît l'utilité. La vaste bibliothèque de plugins soutenus par la communauté et les technologies hautement configurables d'Iron Software permettent aux développeurs de créer des fonctionnalités et des applications web plus rapidement.
Avant de décider d'acheter, les développeurs peuvent profiter des nombreuses fonctionnalités d'IronPDF avec une licence d'essai gratuite et une variété d'échantillons de code source de l'entreprise. Consultez la page de licence pour obtenir des détails supplémentaires concernant la licence perpétuelle d'IronPDF. Rendez-vous sur la page de documentation du projet pour plus de détails sur la façon de commencer à utiliser IronPDF.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT react hook form NPM (Comment ça marche pour les développeurs)
SUIVANT > Koa node js (Comment ça marche pour les développeurs)
Vous avez une question ? Prendre contact avec notre équipe de développement.
Vous avez une question ? Contactez notre équipe de développement.
Commencez GRATUITEMENT
Aucune carte de crédit n'est requise
Test dans un environnement réel
Testez en production sans filigranes. Fonctionne là où vous en avez besoin.
Produit entièrement fonctionnel
Obtenez 30 jours de produit entièrement fonctionnel. Faites-le fonctionner en quelques minutes.
assistance technique 24/5
Accès complet à notre équipe d'ingénieurs pendant la période d'essai du produit
Obtenez votre clé d'essai de 30 jours gratuite instantanément.
Aucune carte de crédit ou création de compte n'est nécessaire
Le formulaire d'essai a été soumis avec succès.
Votre clé d'essai devrait être dans l'e-mail. Si ce n'est pas le cas, veuillez contacter support@ironsoftware.com
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier