PDF-Generierung in JavaScript: Bibliothek pdf-lib

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist pdf-lib und wofür wird es benötigt?

pdf-lib ist eine leistungsstarke und leichtgewichtige Bibliothek zum Erstellen und Bearbeiten von PDF-Dokumenten in JavaScript (Node.js und Browser). Im Gegensatz zu schwergewichtigen Lösungen wie Puppeteer oder jsPDF benötigt pdf-lib keine Installation einer Browserumgebung (Chromium) und arbeitet ausschließlich mit nativen PDF-Strukturen. Es ist ideal für die serverseitige Generierung von Berichten, Rechnungen, Zertifikaten und allen anderen Dokumenten, bei denen Sie die volle Kontrolle über den Inhalt benötigen: Text, Schriftarten (einschließlich Einbettung), Bilder, Formulare, Anmerkungen und Seiten.

Installation

Die Installation über npm ist einfach:

npm install pdf-lib

Importieren Sie es dann in Ihr Projekt:

const { PDFDocument, rgb, StandardFonts } = require('pdf-lib');

Hauptfunktionen

  • PDF von Grund auf neu erstellen — Hinzufügen von Seiten, Text, Bildern.
  • Vorhandene PDFs bearbeiten — Seiten kopieren, Text darüber einfügen, Dokumente zusammenführen.
  • Arbeit mit Schriftarten — Unterstützung für Standardschriftarten (Helvetica, TimesRoman) und Einbettung benutzerdefinierter TTF-Schriftarten.
  • Zeichnen von Formen — Linien, Rechtecke, Ellipsen mit einstellbarer Farbe und Transparenz.
  • Formulare und Anmerkungen — Erstellen von Textfeldern, Schaltflächen, Links.
  • Export als Uint8Array — Das Ergebnis kann in einer Datei gespeichert oder an den Client gesendet werden.

Beispielcode für Node.js

Erstellen wir ein einfaches PDF mit einer Überschrift und einem Bild:

const { PDFDocument, rgb } = require('pdf-lib');const fs = require('fs');

async function createPDF() { const doc = await PDFDocument.create(); const page = doc.addPage([600, 400]); // Text page.drawText('Hallo Welt!', { x: 50, y: 350, size: 30, color: rgb(0, 0.53, 0.71), }); // Rechteck page.drawRectangle({ x: 50, y: 200, width: 200, height: 100, color: rgb(0.9, 0.1, 0.1), borderColor: rgb(0, 0, 0), borderWidth: 2, }); // Bild einbetten (PNG) const imageBytes = fs.readFileSync('logo.png'); const image = await doc.embedPng(imageBytes); page.drawImage(image, { x: 300, y: 250, width: 100, height: 100, }); const pdfBytes = await doc.save(); fs.writeFileSync('output.pdf', pdfBytes);}

createPDF().catch(console.error);

Wann sollte man pdf-lib verwenden?

pdf-lib ist die beste Wahl, wenn Sie in einer Node.js-Umgebung (oder im Browser) arbeiten und Folgendes benötigen:
- Schnelles Generieren von PDFs ohne Browserstart (Speicher- und Zeitersparnis).
- Einbetten benutzerdefinierter Schriftarten (z. B. für Kyrillisch).
- Bearbeiten vorhandener PDFs (Wasserzeichen hinzufügen, Dokumente zusammenführen).
- Erstellen interaktiver Formulare.

Vermeiden Sie pdf-lib, wenn Sie komplexes HTML/CSS in PDF rendern müssen (hierfür ist Puppeteer besser geeignet) oder mit großen Datenmengen arbeiten (schwere PDFs können die Leistung verlangsamen).

Empfehlungen