OUTILS PDF

Comment convertir HTML en PDF dans Node.js en utilisant Puppeteer

Publié mai 16, 2023
Partager:

Dans le monde numérique d'aujourd'hui, il est essentiel de pouvoir convertir des pages web ou des documents HTML en fichiers PDF. Cela peut être utile pour générer des rapports, créer des factures ou simplement partager des informations dans un format plus présentable. Dans cet article de blog, nous allons explorer comment convertir des pages HTML en PDF à l'aide de Node.js et de Puppeteer, une bibliothèque open-source développée par Google.

Introduction au marionnettiste

Puppeteer est une puissante bibliothèque Node.js qui permet aux développeurs de contrôler des navigateurs headless, principalement Google Chrome ou Chromium, et d'effectuer diverses actions comme le web scraping, la réalisation de captures d'écran et la génération de PDF. Puppeteer fournit une API étendue pour interagir avec le navigateur, ce qui en fait un excellent choix pour la conversion de HTML en PDF.

Pourquoi un marionnettiste ?

  • Facilité d'utilisation: Puppeteer offre une API simple et facile à utiliser qui fait abstraction des complexités du travail avec les navigateurs sans tête.
  • Puissant: Puppeteer offre des possibilités étendues de manipulation des pages web et d'interaction avec les éléments du navigateur.
  • Évolutif: Avec Puppeteer, vous pouvez facilement faire évoluer votre processus de génération de PDF en exécutant plusieurs instances de navigateur en parallèle.

Configuration de votre projet NodeJS

Avant de commencer, vous devez créer un nouveau projet NodeJS. Suivez les étapes suivantes pour commencer :

  1. Installer NodeJS si ce n'est pas déjà fait(vous pouvez le télécharger à partir du siteSite web de NodeJS).

  2. Créez un nouveau dossier pour votre projet et ouvrez-le dans Visual Studio Code ou tout autre éditeur de code spécifique.

  3. Lancez npm init pour créer un nouveau fichier package.json pour votre projet. Suivez les instructions et complétez les informations demandées.

    Comment convertir HTML en PDF dans Node.js : Figure 1

  4. Installez Puppeteer en lançant npm install puppeteer.

    Comment convertir HTML en PDF dans Node.js : Figure 2

    Maintenant que notre projet est en place, plongeons dans le code.

Chargement du modèle HTML et conversion en fichier PDF

Pour convertir des modèles HTML en fichier PDF à l'aide de Puppeteer, procédez comme suit :

Créez un fichier nommé "HTML To PDF.js" dans le dossier.

Importation de Puppeteer et de fs

    const puppeteer = require('puppeteer');
    const fs = require('fs');
NODE.JS

Le code commence par importer deux bibliothèques essentielles : puppeteer, un outil polyvalent pour contrôler les navigateurs sans tête comme Chrome et Chromium, et fs, un module NodeJS intégré pour gérer les opérations du système de fichiers. Puppeteer vous permet d'automatiser un large éventail de tâches basées sur le web, notamment le rendu HTML, la capture de captures d'écran et la génération de fichiers PDF.

Définition de la fonction exportWebsiteAsPdf

    async function exportWebsiteAsPdf(html, outputPath) {
      // Create a browser instance
      const browser = await puppeteer.launch({
        headless: 'new'
      });

      // Create a new page
      const page = await browser.newPage();

      await page.setContent(html, { waitUntil: 'domcontentloaded' });

      // To reflect CSS used for screens instead of print
      await page.emulateMediaType('screen');

      // Download the PDF
      const PDF = await page.pdf({
        path: outputPath,
        margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
        printBackground: true,
        format: 'A4',
      });

      // Close the browser instance
      await browser.close();

      return PDF;
    }
NODE.JS

La fonction exportWebsiteAsPdf est au cœur de notre extrait de code. Cette fonction asynchrone accepte une chaîne html et un outputPath comme paramètres d'entrée et renvoie un fichier PDF. La fonction effectue les étapes suivantes :

  1. Lance une nouvelle instance de navigateur sans tête en utilisant Puppeteer.

  2. Crée une nouvelle page de navigateur.

  3. Définit la chaîne html fournie comme contenu de la page, en attendant que le contenu du DOM soit chargé. Nous chargeons les modèles html en tant que chaîne HTML pour les convertir au format PDF.

  4. Emule le type de média "screen" pour appliquer le CSS utilisé pour les écrans au lieu des styles spécifiques à l'impression.

  5. Génère un fichier PDF à partir du contenu HTML chargé, en spécifiant les marges, l'impression en arrière-plan et le format(A4).

  6. Ferme l'instance du navigateur.

  7. Renvoie le fichier PDF créé.

Utilisation de la fonction exportWebsiteAsPdf


    // Usage example
    // Get HTML content from HTML file
    const html = fs.readFileSync('test.html', 'utf-8');

    exportWebsiteAsPdf(html, 'result.PDF').then(() => {
      console.log('PDF created successfully.');
    }).catch((error) => {
      console.error('Error creating PDF:', error);
    });
NODE.JS

La dernière section du code illustre l'utilisation de la fonction exportWebsiteAsPdf. Nous procédons aux étapes suivantes :

  1. Lire le contenu HTML d'un fichier HTML en utilisant la méthode readFileSync du module fs. Ici, nous chargeons des fichiers modèles pour générer des PDF à partir de pages HTML.

  2. Appelez la fonction exportWebsiteAsPdf avec la chaîne html chargée et le outputPath désiré.

  3. Utilisez un bloc .then pour gérer la création réussie du PDF, en enregistrant un message de succès dans la console.

  4. Utilisez un bloc .catch pour gérer toutes les erreurs qui se produisent pendant le processus de conversion HTML vers PDF, en enregistrant un message d'erreur dans la console.

    Cet extrait de code fournit un exemple complet de la façon de convertir un modèle HTML en un fichier PDF en utilisant NodeJS et Puppeteer. En mettant en œuvre cette solution, vous pouvez générer efficacement des PDF de haute qualité, répondant aux besoins de diverses applications et utilisateurs.

    Comment convertir HTML en PDF dans Node.js : Figure 3

Conversion d'URL en fichiers PDF

Outre la conversion de modèles HTML, Puppeteer vous permet également de convertir des URL directement en fichiers PDF.

Importation du marionnettiste


    const puppeteer = require('puppeteer');
NODE.JS

Le code commence par importer la bibliothèque Puppeteer, qui est un outil puissant pour contrôler les navigateurs sans tête comme Chrome et Chromium. Puppeteer vous permet d'automatiser toute une série de tâches basées sur le web, y compris le rendu de votre code HTML, la capture de captures d'écran et, dans notre cas, la génération de fichiers PDF.

Définition de la fonction exportWebsiteAsPdf


    async function exportWebsiteAsPdf(websiteUrl, outputPath) {
      // Create a browser instance
      const browser = await puppeteer.launch({
        headless: 'new'
      });

      // Create a new page
      const page = await browser.newPage();

      // Open URL in current page
      await page.goto(websiteUrl, { waitUntil: 'networkidle0' });

      // To reflect CSS used for screens instead of print
      await page.emulateMediaType('screen');

      // Download the PDF
      const PDF = await page.pdf({
        path: outputPath,
        margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
        printBackground: true,
        format: 'A4',
      });

      // Close the browser instance
      await browser.close();

      return PDF;
    }
NODE.JS

La fonction exportWebsiteAsPdf est le cœur de notre extrait de code. Cette fonction asynchrone accepte un websiteUrl et un outputPath comme paramètres d'entrée et renvoie un fichier PDF. La fonction exécute les étapes suivantes :

  1. Lance une nouvelle instance de navigateur sans tête en utilisant Puppeteer.

  2. Crée une nouvelle page de navigateur.

  3. Navigue vers le websiteUrl fourni et attend que le réseau devienne inactif en utilisant l'option waitUntil fixée à networkidle0.

  4. Emule le type de média "screen" pour garantir que le CSS utilisé pour les écrans est appliqué au lieu des styles spécifiques à l'impression.

  5. Convertit la page web chargée en un fichier PDF avec les marges, l'impression en arrière-plan et le format spécifiés(A4).

  6. Ferme l'instance du navigateur.

  7. Renvoie le fichier PDF généré.

Utilisation de la fonction exportWebsiteAsPdf


    // Usage example
    exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
      console.log('PDF created successfully.');
    }).catch((error) => {
      console.error('Error creating PDF:', error);
    });
NODE.JS

La dernière section du code montre comment utiliser la fonction exportWebsiteAsPdf. Nous exécutons les étapes suivantes :

  1. Appelez la fonction exportWebsiteAsPdf avec le websiteUrl et le outputPath souhaités.

  2. Utilisez un bloc then pour gérer la création réussie du PDF. Dans ce bloc, nous enregistrons un message de réussite dans la console.

  3. Utilisez un bloc "catch" pour gérer les erreurs qui surviennent au cours du processus de conversion du site web en PDF. En cas d'erreur, un message d'erreur est affiché dans la console.

    En intégrant cet extrait de code dans vos projets, vous pouvez convertir sans effort des URL en fichiers PDF de haute qualité à l'aide de NodeJS et de Puppeteer.

    Comment convertir HTML en PDF dans Node.js : Figure 4

Meilleure bibliothèque HTML vers PDF pour les développeurs C

Explorer IronPDF est une bibliothèque .NET populaire utilisée pour générer, éditer et extraire le contenu des fichiers PDF. Il offre une solution simple et efficace pour créer des PDF à partir de HTML, de texte, d'images et de documents PDF existants. IronPDF prend en charge les projets .NET Core, .NET Framework et .NET 5.0+, ce qui en fait un choix polyvalent pour diverses applications.

Principales caractéristiques d'IronPDF

Conversion de HTML en PDF avec IronPDF (en anglais): IronPDF permet de convertir du contenu HTML, y compris des feuilles de style CSS, en fichiers PDF. Cette fonction vous permet de créer des documents PDF au pixel près à partir de pages web ou de modèles HTML.

Rendu d'URL : IronPDF peut récupérer des pages web directement sur un serveur à l'aide d'une URL et les convertir en fichiers PDF, ce qui facilite l'archivage du contenu web ou la génération de rapports à partir de pages web dynamiques.

Fusion de textes, d'images et de fichiers PDF : IronPDF vous permet de fusionner du texte, des images et des fichiers PDF existants en un seul document PDF. Cette fonction est particulièrement utile pour créer des documents complexes avec plusieurs sources de contenu.

Manipulation de PDF : IronPDF fournit des outils permettant d'éditer des fichiers PDF existants, tels que l'ajout ou la suppression de pages, la modification de métadonnées ou même l'extraction de texte et d'images à partir de documents PDF.

Conclusion

En conclusion, la génération et la manipulation de fichiers PDF est une exigence courante dans de nombreuses applications, et il est essentiel de disposer des bons outils. Les solutions proposées dans cet article, telles que l'utilisation de Puppeteer avec NodeJS ou d'IronPDF avec .NET, offrent des méthodes puissantes et efficaces pour convertir le contenu HTML et les URL en documents PDF professionnels de haute qualité.

IronPDF, en particulier, se distingue par ses nombreuses fonctionnalités, ce qui en fait un choix de premier ordre pour les développeurs .NET. IronPDF offre un service deessai gratuit la traduction doit rester professionnelle et préserver l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement.

Les utilisateurs peuvent également bénéficier de laIron Suite le paquet .NET, une suite de cinq bibliothèques .NET professionnelles comprenantIronXL, IronPDF, IronOCR et plus encore.

< PRÉCÉDENT
Comment convertir HTML en PDF en C#
SUIVANT >
Éditeur PDF Open Source (liste mise à jour)