Was ist PDFKit?
PDFKit ist eine leistungsstarke Bibliothek zur Generierung von PDF-Dokumenten in JavaScript (Node.js). Sie ermöglicht die Erstellung komplexer mehrseitiger PDF-Dateien mit Text, Bildern, Tabellen, Vektorgrafiken und Anmerkungen. PDFKit implementiert die PDF 1.7-Spezifikation vollständig und benötigt keine externen Abhängigkeiten, was es zur idealen Wahl für serverseitige Anwendungen in Node.js macht.
Wozu dient die PDF-Generierung in JavaScript?
Die PDF-Generierung auf der Serverseite wird in verschiedenen Szenarien benötigt: Erstellung von Rechnungen und Quittungen, Erstellung von Berichten, Generierung von Zertifikaten, Export von Daten in ein portables Format. PDFKit ermöglicht die Automatisierung dieser Prozesse, indem es vollständig in der Node.js-Umgebung ohne Browser arbeitet. Sie können Dokumente dynamisch erstellen, Daten aus der Datenbank einfügen, Wasserzeichen und Signaturen hinzufügen.
Installation von PDFKit
Die Installation der Bibliothek ist einfach und erfolgt über npm:
npm install pdfkitEs wird auch empfohlen, pdfkit-table für die komfortable Arbeit mit Tabellen oder svg-to-pdfkit für das Einfügen von SVG-Grafiken zu installieren.
Hauptfunktionen von PDFKit
- Text und Schriftarten: Unterstützung von Unicode, Einbetten von Schriftarten, Ausrichtung, Zeilenumbruch, Kerning.
- Vektorgrafiken: Linien, Rechtecke, Kreise, Bézierkurven, Verläufe.
- Bilder: Einfügen von JPEG, PNG, SVG (über Plugin).
- Tabellen: Erstellung von Tabellen mit automatischer Spaltenbreite, Stilen und Überschriften.
- Anmerkungen: Links, Lesezeichen, Metadaten (Autor, Thema), Wasserzeichen.
- Seiten: Hinzufügen, Anpassen von Größe, Ausrichtung, Rändern, Nummerierung.
Codebeispiel in JavaScript (Node.js)
const PDFDocument = require('pdfkit');const fs = require('fs');
// Dokument erstellenconst doc = new PDFDocument();
// In Datei speichernconst stream = fs.createWriteStream('output.pdf');doc.pipe(stream);
// Überschrift hinzufügendoc.fontSize(25).text('Hallo, Welt!', 100, 100);
// Text mit Umbruch hinzufügendoc.fontSize(12).text('Dies ist ein Beispiel-PDF, erstellt mit PDFKit.', 100, 150);
// Linie zeichnendoc.moveTo(100, 200).lineTo(400, 200).stroke();
// Bild einfügen (falls vorhanden)// doc.image('path/to/image.png', 100, 250, {width: 200});
// Neue Seitedoc.addPage();doc.fontSize(20).text('Seite 2');
// Tabelle hinzufügen (über pdfkit-table)// doc.table({ headers: ['Name', 'Alter'], rows: [['Anna', 25], ['Ivan', 30]] });
// Dokument abschließendoc.end();
stream.on('finish', () => { console.log('PDF erfolgreich erstellt');});Wann sollte man PDFKit verwenden?
PDFKit eignet sich für Aufgaben, bei denen eine vollständige Kontrolle über den PDF-Inhalt erforderlich ist: von einfachen Textdokumenten bis hin zu komplexen Berichten mit Diagrammen, Tabellen und Wasserzeichen. Es ist schneller und leichter als Puppeteer, wenn kein HTML-Layout benötigt wird. Verwenden Sie PDFKit, wenn Sie Dokumente auf einem Node.js-Server erstellen und das Starten eines Browsers vermeiden möchten. Für einfache Aufgaben, bei denen HTML-to-PDF benötigt wird, ist Puppeteer besser geeignet.