PDF-Generierung in JavaScript: Die 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
```html

Was ist pdf-lib und wozu wird es benötigt?

pdf-lib ist eine leistungsstarke und saubere JavaScript-Bibliothek zum Erstellen und Bearbeiten von PDF-Dokumenten auf der Serverseite (Node.js) und im Browser. Im Gegensatz zu schwergewichtigen Lösungen wie Puppeteer erfordert pdf-lib keine Installation eines Browsers oder externer Abhängigkeiten. Es arbeitet direkt mit der PDF-Spezifikation, was es zur idealen Wahl für die Generierung einfacher bis mittelschwerer Dokumente macht: Berichte, Rechnungen, Zertifikate, Fragebögen und Verträge.

Installation

Für die Installation in einem Node.js-Projekt führen Sie den folgenden Befehl aus:

npm install pdf-lib

Die Bibliothek hat keine nativen Abhängigkeiten und ist mit Node.js 10+ kompatibel.

Hauptfunktionen

  • Erstellung von PDFs von Grund auf (leere Seiten, Text, Bilder, Einbettung von Schriftarten).
  • Bearbeitung vorhandener PDFs (Seiten extrahieren, einfügen, löschen, drehen).
  • Arbeit mit Formularen (Ausfüllen von Feldern, Erstellen von Kontrollkästchen und Optionsfeldern).
  • Unterstützung für Unicode und benutzerdefinierte Schriftarten (TTF, OTF).
  • Hinzufügen von Metadaten (Autor, Titel, Datum).
  • Export als ArrayBuffer, Uint8Array oder Blob.

Codebeispiel in JavaScript (Node.js)

Nachfolgend sehen Sie ein einfaches Beispiel zum Erstellen eines PDFs mit Text und 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 hinzufügen page.drawText('Привет, мир!', { x: 50, y: 350, size: 30, color: rgb(0, 0.53, 0.71), }); // Schriftart einbetten (optional) const fontBytes = fs.readFileSync('./fonts/roboto.ttf'); const font = await doc.embedFont(fontBytes); page.drawText('Кастомный шрифт', { x: 50, y: 300, size: 20, font: font, }); // Speichern const pdfBytes = await doc.save(); fs.writeFileSync('output.pdf', pdfBytes); console.log('PDF erstellt!');}

createPDF().catch(console.error);

Dieser Code erstellt ein Dokument mit zwei Zeilen, wobei eine eine eingebettete Schriftart verwendet. Für die Arbeit mit Bildern verwenden Sie doc.embedPng() oder doc.embedJpg().

Wann sollte man pdf-lib verwenden

  • Sie müssen schnell ein PDF generieren, ohne einen Browser zu starten.
  • Das Dokument enthält kein komplexes Layout (Tabellen, Spalten) – hierfür eignen sich Templating-Engines wie Puppeteer besser.
  • Eine leichte Bibliothek mit minimaler Größe (~500 KB) ist erforderlich.
  • Sie arbeiten mit Formularen oder bearbeiten vorhandene PDFs.

Fazit

pdf-lib ist eine ausgezeichnete Wahl für Projekte, die PDF-Generierung unter Node.js ohne überflüssige Abhängigkeiten benötigen. Es ist einfach zu erlernen, gut dokumentiert und unterstützt alle grundlegenden Operationen. Für komplexe Layouts sollten Sie Puppeteer oder jsPDF in Betracht ziehen, aber für 80% der Aufgaben ist pdf-lib mehr als ausreichend.

```

Empfehlungen