Qu'est-ce que pdf-lib et pourquoi en avez-vous besoin ?
pdf-lib est une bibliothèque JavaScript puissante et légère pour créer et modifier des documents PDF côté serveur (Node.js) et dans le navigateur. Contrairement aux solutions lourdes comme Puppeteer, pdf-lib ne nécessite pas l'installation d'un navigateur ou de dépendances externes. Elle fonctionne directement avec la spécification PDF, ce qui en fait un choix idéal pour générer des documents simples et de complexité moyenne : rapports, factures, certificats, questionnaires et contrats.
Installation
Pour installer dans un projet Node.js, exécutez la commande :
npm install pdf-libLa bibliothèque n'a pas de dépendances natives et est compatible avec Node.js 10+.
Fonctionnalités principales
- Création de PDF à partir de zéro (pages vides, texte, images, incorporation de polices).
- Modification de PDF existants (extraction de pages, insertion, suppression, rotation).
- Travail avec des formulaires (remplissage de champs, création de cases à cocher et de boutons radio).
- Prise en charge d'Unicode et de polices personnalisées (TTF, OTF).
- Ajout de métadonnées (auteur, titre, date).
- Export vers ArrayBuffer, Uint8Array ou Blob.
Exemple de code en JavaScript (Node.js)
Ci-dessous un exemple simple de création d'un PDF avec du texte et une image :
const { PDFDocument, rgb } = require('pdf-lib');const fs = require('fs');
async function createPDF() { const doc = await PDFDocument.create(); const page = doc.addPage([600, 400]); // Ajout de texte page.drawText('Привет, мир!', { x: 50, y: 350, size: 30, color: rgb(0, 0.53, 0.71), }); // Incorporation d'une police (optionnelle) const fontBytes = fs.readFileSync('./fonts/roboto.ttf'); const font = await doc.embedFont(fontBytes); page.drawText('Кастомный шрифт', { x: 50, y: 300, size: 20, font: font, }); // Sauvegarde const pdfBytes = await doc.save(); fs.writeFileSync('output.pdf', pdfBytes); console.log('PDF créé !');}
createPDF().catch(console.error);Ce code crée un document avec deux lignes, dont une utilise une police intégrée. Pour travailler avec des images, utilisez doc.embedPng() ou doc.embedJpg().
Quand utiliser pdf-lib
- Vous devez générer rapidement un PDF sans lancer de navigateur.
- Le document ne contient pas de mise en page complexe (tableaux, colonnes) — pour cela, les moteurs de templates comme Puppeteer sont plus adaptés.
- Vous avez besoin d'une bibliothèque légère avec une taille minimale (~500 KB).
- Vous travaillez avec des formulaires ou modifiez des PDF existants.
Conclusion
pdf-lib est un excellent choix pour les projets nécessitant la génération de PDF sur Node.js sans dépendances superflues. Elle est simple à apprendre, bien documentée et prend en charge toutes les opérations de base. Pour des mises en page complexes, envisagez Puppeteer ou jsPDF, mais pour 80 % des tâches, pdf-lib sera plus que suffisant.
Aussi dans la bibliothèque
PhotosUI pour Swift : guide complet avec exemples
Bibliothèques GraphQL TypeScript : Guide complet pour choisir et utiliser
Authentification et autorisation en C++ : bibliothèques et exemples pratiques
Client HTTP pour C++ : top bibliothèques pour travailler avec le réseau
Génération de rapports PDF en Rust : bibliothèques et exemples pratiques