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/pdfkitimport 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/jspdfExemple 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 puppeteerExemple 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\ Aussi dans la bibliothèque
Travail avec les dates en Kotlin : bibliothèques et outils (Kotlinx-datetime, Joda-Time, java.time)
Client Elasticsearch pour C# (.NET) : NEST et Elastic.Clients.Elasticsearch
Génération Swagger/OpenAPI sur Kotlin : outils et exemples
Client HTTP pour Java : aperçu des meilleures bibliothèques (Java 11, Apache, OkHttp, Retrofit)
Générateur de QR codes en Rust : création et intégration dans les applications web