OUTILS PDF

Comment créer des fichiers PDF en JavaScript

Publié juin 13, 2023
Partager:

Introduction

Dans le domaine du partage de documents, le Portable Document Format(PDF (EN ANGLAIS)), dont le pionnier est Adobe, joue un rôle crucial dans la préservation de l'intégrité des contenus riches en texte et visuellement attrayants. L'accès à un fichier PDF en ligne nécessite généralement un programme dédié. Dans le paysage numérique actuel, les fichiers PDF sont devenus indispensables pour diverses publications importantes. De nombreuses entreprises utilisent les fichiers PDF pour créer des documents et des factures professionnels. En outre, les développeurs s'appuient souvent sur des bibliothèques de création de PDF pour répondre aux besoins spécifiques de leurs clients. Le processus de génération de PDF a été rationalisé avec l'avènement des bibliothèques modernes. Lors de la sélection de la bibliothèque la plus appropriée pour un projet impliquant la génération de PDF, il est essentiel de prendre en compte des facteurs tels que les capacités de construction, de lecture et de conversion, afin de garantir une intégration transparente et des performances optimales.

Bibliothèques JavaScript

Prenons l'exemple d'un scénario dans lequel nous voulons que le client puisse télécharger et imprimer sans effort une copie de notre facture au format PDF. En outre, il est essentiel pour nous de conserver la mise en page précise de la facture et de garantir une qualité d'impression irréprochable.

Dans cette section, nous allons nous pencher sur une série de bibliothèques JavaScript très appréciées qui excellent dans la conversion et la création de documents HTML vers PDF, nous fournissant des outils polyvalents pour une génération et une conversion de documents efficaces et précises.

1. PDFKit

PDFKit est une bibliothèque PDF qui a été l'une des premières à être lancée dans le vaste écosystème des bibliothèques JavaScript. Sa popularité s'est considérablement accrue depuis son lancement en 2012 et, en 2021, il fait encore l'objet de mises à jour régulières.

Grâce à Webpack, PDFKit prend en charge à la fois la bibliothèque Node et les navigateurs web, les polices personnalisées et l'intégration d'images sont prises en charge.

Cependant, comme nous le verrons dans la comparaison, certaines bibliothèques PDF ne sont en fait que des enveloppes de PDFKit et sont peut-être un peu plus faciles à utiliser que PDFKit.

Il n'existe pas d'API de haut niveau pour PDFKit. La documentation est également souvent difficile. Il faut s'y habituer, comme on peut s'y attendre, et il se peut que la production de PDF à l'aide de JavaScript ne soit pas toujours la tâche la plus facile.

// including the file system module
const fs  = require('fs');

// create a document the same way as above
const Page = new PDFDocument;

// add your content to the document here, as usual
Page.text('Hello world!');

// get a blob when you're done
Page.pipe(fs.createWriteStream('Demo.pdf'));
Page.end();
JAVASCRIPT

2. pdfmake

Contrairement à PDFKit qui utilise la méthode impérative conventionnelle pour générer quelque chose, pdfmake utilise une approche déclarative. Par conséquent, l'utilisation de la bibliothèque pdfmake permet de se concentrer sur la fonctionnalité prévue de la production PDF plutôt que de perdre du temps à enseigner à la bibliothèque comment obtenir un certain résultat.

Il est essentiel de garder à l'esprit que si certaines solutions peuvent sembler prometteuses, elles ne sont pas forcément sans faille. L'un de ces exemples est l'intégration de polices personnalisées avec pdfmake lors de l'utilisation de Webpack, ce qui peut potentiellement entraîner des problèmes. Malheureusement, il existe peu de documentation en ligne sur ce problème spécifique. Cependant, si vous n'utilisez pas Webpack, vous pouvez facilement cloner le dépôt Git et exécuter le script d'intégration des polices pour surmonter tous les obstacles potentiels associés à l'intégration des polices personnalisées.

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/pdfmake.min.js"></script>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/vfs_fonts.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            function CreatePdf() {
                var doc = {
                    content: [
                        {text:"Hello world"}
                    ],
                    defaultStyle: {
                    }
                };
                pdfMake.createPdf(doc).print();
            }
        </script>
        <button onclick="CreatePdf()">Print pdf</button>
    </body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/pdfmake.min.js"></script>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/vfs_fonts.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            function CreatePdf() {
                var doc = {
                    content: [
                        {text:"Hello world"}
                    ],
                    defaultStyle: {
                    }
                };
                pdfMake.createPdf(doc).print();
            }
        </script>
        <button onclick="CreatePdf()">Print pdf</button>
    </body>
</html>
HTML

Comment créer des fichiers PDF en JavaScript : Figure 1

3. IronPDF

IronPDF a été créé pour permettre aux développeurs de créer, de parcourir et de modifier plus facilement des documents PDF. Il fonctionne comme un puissant convertisseur PDF et offre une API de base pour la création, l'édition et le traitement des fichiers PDF.

IronPDF for Node.js simplifie le processus de création et de personnalisation de documents PDF de manière programmatique. Développé par Iron Software, fournisseur de confiance de bibliothèques de traitement de documents haute performance, IronPDF offre une solution robuste pour la génération de PDF dans les environnements Node.js. Il s'intègre de manière transparente aux projets Node.js, offrant aux développeurs des outils puissants pour générer, formater et éditer des PDF en toute simplicité.

La bibliothèque IronPDF offre un large éventail de fonctionnalités, notamment la possibilité de diviser et de combiner des pages dans des documents PDF nouveaux ou existants, de lire et de modifier des fichiers PDF existants, d'extraire des images de fichiers PDF, d'ajouter du texte, des graphiques, des signets, des filigranes, des en-têtes et des pieds de page à des fichiers PDF, le tout sans avoir besoin d'Acrobat Reader. Des documents PDF peuvent être produits à partir de fichiers CSS et CSS Media. IronPDF permet aux utilisateurs de créer, de télécharger et de mettre à jour des formulaires PDF nouveaux ou préexistants.

Principales caractéristiques d'IronPDF for Node.js :

  • Génération polyvalente de PDF : Avec IronPDF, les développeurs peuvent générer des PDF à partir de diverses sources, notamment HTML, CSS, JavaScript, images et autres types de fichiers. Cette souplesse permet de créer des documents PDF dynamiques et visuellement attrayants, adaptés à des besoins spécifiques.
  • Personnalisation avancée des documents : IronPDF permet aux développeurs d'améliorer les documents PDF grâce à des fonctions telles que les en-têtes, les pieds de page, les pièces jointes, les signatures numériques, les filigranes et les signets. Cela permet de créer des PDF de qualité professionnelle avec un contenu riche et des éléments interactifs.
  • Fonctions de sécurité : IronPDF offre de solides fonctions de sécurité pour protéger les PDF contre les accès non autorisés. Les développeurs peuvent mettre en œuvre des mesures de sécurité telles que des mots de passe, des signatures numériques, des métadonnées et d'autres paramètres de sécurité pour protéger les informations sensibles contenues dans les documents PDF.
  • Performance optimisée : IronPDF est conçu pour offrir des performances optimales, avec une prise en charge complète du multithreading et de l'asynchronisme. Cela garantit une génération efficace de PDF, ce qui le rend adapté aux applications critiques où les performances sont primordiales.
  • Ensemble complet de fonctions : Avec plus de 50 fonctions de création, de formatage et d'édition de documents PDF, IronPDF constitue une solution complète pour toutes les tâches liées aux PDF. De la génération de documents de base à la personnalisation avancée et à la sécurité, IronPDF offre un large éventail de possibilités pour répondre aux besoins des développeurs.

    Le code ci-dessous montre comment utiliserJavaScript pour rendre HTML la traduction doit être traduite en un fichier PDF parfait au pixel près :

import {PdfDocument} from "@ironsoftware/ironpdf";

(async () => {
   // Define the JavaScript code to change text color to red
   const htmlWithJavaScript = `<h1>This is HTML</h1>
   <script>
       document.write('<h1>This is JavaScript</h1>');
       window.ironpdf.notifyRender();
   </script>`;

   // Create rendering options object
   const renderOptions = {
       enableJavaScript: true,
   };

   // Render HTML content to a PDF
   const pdf = await PdfDocument.fromHtml(htmlWithJavaScript, { renderOptions });

   // Save the PDF with the executed JavaScript
   await pdf.saveAs("javascript-in-html.pdf");
})();
JAVASCRIPT

Vous pouvez également exécuterjavaScript personnalisé qui modifie sans effort l'apparence du contenu HTML :

import {PdfDocument} from "@ironsoftware/ironpdf";

(async () => {
   // Define the JavaScript code to change text color to red
   const javascriptCode = "document.querySelectorAll('h1').forEach(function(el){el.style.color='red';})";

   // Create rendering options object
   const renderOptions = {
       enableJavaScript: true,
       javascript: javascriptCode,
   };

   // HTML content to be rendered
   const htmlContent = "<h1>Happy New Year!</h1>";

   // Render HTML content to a PDF
   const pdf = await PdfDocument.fromHtml(htmlContent, { renderOptions: renderOptions });

   // Save the PDF with the executed JavaScript
   await pdf.saveAs("executed_js.pdf");
})();
JAVASCRIPT

Comment créer des fichiers PDF en JavaScript : Figure 2

Lorsque nous cliquons sur le bouton de téléchargement, le fichier PDF est téléchargé comme indiqué sur la page PDF de l'image ci-dessus. Le fichier PDF créé ressemblera à l'image ci-dessous.

Comment créer des fichiers PDF en JavaScript : Figure 3

Des tutoriels plus détaillés sont disponibles dansDidacticiel de création de PDF en C# d'IronPDF.

Conclusion

Il convient de préciser que, lorsqu'il est utilisé par d'autres personnes, le code JavaScript présenté ci-dessus peut faire l'objet d'une utilisation abusive et poser des problèmes de sécurité. Il est essentiel de prendre en compte les risques tels que l'accès non autorisé et les vulnérabilités en matière de sécurité des données lorsque l'on place un tel code sur une page web ou un site web. En outre, il est également important de tenir compte de la nécessité de prendre en charge des navigateurs obsolètes qui peuvent ne pas disposer de toutes les fonctionnalités nécessaires et des problèmes de compatibilité avec divers systèmes et navigateurs.

IronPDF n'est pas seulement disponible pour Node.js mais aussi pour d'autres plateformes populaires, notamment .NET, JavaetPython. Cette disponibilité multiplateforme garantit la cohérence et la flexibilité pour les développeurs qui travaillent sur différentes piles technologiques. Avec son riche ensemble de fonctionnalités, son intégration transparente et ses performances robustes, IronPDF est un outil précieux pour les développeurs qui cherchent à rationaliser la génération de PDF au sein de leurs projets Node.js.

Pour répondre aux différentes demandes des développeurs, la bibliothèque offre une variété d'options de licence, y compris une licence d'utilisation de l'Internetessai gratuit licence et développeur supplémentairelicences qui sont disponibles à l'achat. Le package $749 Lite est livré avec une licence permanente, une garantie de remboursement de 30 jours, un an d'assistance logicielle et des options de mise à niveau. Il n'y a pas d'autres frais que l'achat initial.

< PRÉCÉDENT
Comment créer un fichier PDF avec React
SUIVANT >
Comment afficher des fichiers PDF en JavaScript

Prêt à commencer ? Version : 2024.11 vient de paraître

Installation gratuite de npm Voir les licences > ;