Génération de PDF en TypeScript : bibliothèques et outils pour Node.js

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Génération de PDF en TypeScript : aperçu des bibliothèques et outils



La création de documents PDF est l'une des tâches courantes dans le développement web. TypeScript, grâce à son typage strict et à ses fonctionnalités modernes, permet d'écrire un code fiable pour la génération de PDF, aussi bien côté client que côté serveur. Dans cet article, nous examinerons les bibliothèques et outils populaires pour la génération de PDF en TypeScript, leurs caractéristiques et des exemples d'utilisation.



1. PDFKit — une puissante bibliothèque serveur



PDFKit est l'une des bibliothèques les plus populaires pour créer des PDF sur Node.js. Elle offre un contrôle total sur la structure du document, prend en charge les polices, les images, les annotations et les graphiques vectoriels. PDFKit fonctionne côté serveur et est idéal pour générer des rapports complexes, des factures ou des certificats.



Installation et exemple :



npm install pdfkit @types/pdfkit


import PDFDocument from 'pdfkit';import * as fs from 'fs';

const doc = new PDFDocument();

doc.pipe(fs.createWriteStream('output.pdf'));

doc.fontSize(25).text('Bonjour le monde !', 100, 100);doc.fontSize(12).text('Ceci est un PDF généré avec PDFKit et TypeScript.', 100, 150);

doc.end();


PDFKit est parfait pour :



  • Créer des PDF côté serveur (Express, NestJS)
  • Travailler avec des polices et encodages personnalisés (y compris le cyrillique)
  • Ajouter des images, des tableaux et des primitives graphiques


2. jsPDF — génération de PDF côté client



jsPDF est une bibliothèque client pour créer des PDF directement dans le navigateur. Elle est simple d'utilisation, prend en charge le texte, les images, les annotations et les formes de base. Les types TypeScript sont disponibles via DefinitelyTyped.



Installation :



npm install jspdf @types/jspdf


Exemple de génération de PDF dans le navigateur :



import { jsPDF } from 'jspdf';

const doc = new jsPDF();

doc.text('Bonjour TypeScript !', 10, 10);doc.text('Ceci est un PDF créé dans le navigateur.', 10, 20);

doc.save('document.pdf');


jsPDF convient pour :



  • Télécharger des PDF côté client (rapports, reçus)
  • Des documents simples sans mise en page complexe
  • Un prototypage rapide


3. Puppeteer — génération à partir de HTML



Puppeteer est une bibliothèque pour contrôler le navigateur Chrome/Chromium. Elle permet de convertir des pages HTML en PDF avec une conservation complète des styles, polices et mise en page. Idéale pour créer des documents complexes, des rapports et des cartes de visite.



Installation :



npm install puppeteer


Exemple de conversion HTML en PDF :



import puppeteer from 'puppeteer';

async function generatePDF(html: string, outputPath: string): Promise<void> { const browser = await puppeteer.launch(); const page = await browser.newPage();

await page.setContent(html, { waitUntil: 'networkidle0' }); await page.pdf({ path: outputPath, format: 'A4' });

await browser.close();}

// Utilisationconst htmlContent = `<h1 style="color: blue;">Titre</h1><p>Texte avec styles HTML</p>`;generatePDF(htmlContent, 'output.pdf');


Puppeteer est idéal pour :



  • Convertir des modèles HTML complexes en PDF
  • Créer des PDF avec des styles CSS, Flexbox, Grid
  • Générer des PDF côté serveur avec un contrôle total de l'apparence


4. pdf-lib — une bibliothèque légère et rapide



pdf-lib est une bibliothèque moderne pour créer et modifier des documents PDF sans dépendances externes. Fonctionne à la fois dans Node.js et dans le navigateur. Prend en charge les polices, les images, les formulaires et les annotations.



Installation :



npm install pdf-lib
\

Recommendations