PDF-Erstellung in JavaScript (Node.js): Bibliotheken und Werkzeuge

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

PDF-Erstellung in JavaScript (Node.js): Überblick über Bibliotheken und Werkzeuge



Das Erstellen von PDF-Dokumenten ist eine häufige Aufgabe in der Webentwicklung. Ob es um die Generierung von Rechnungen, Berichten, Zertifikaten oder einfach um den Export von Daten geht, Node.js bietet mehrere leistungsstarke Lösungen. In diesem Artikel betrachten wir die wichtigsten Bibliotheken für die Arbeit mit PDF auf der Serverseite von JavaScript, ihre Funktionen und Anwendungsbeispiele.



Warum PDF auf dem Server generieren?

Die PDF-Generierung auf dem Server (in Node.js) bietet eine Reihe von Vorteilen:

  • Einheitlichkeit — das Dokument sieht auf allen Geräten gleich aus
  • Sicherheit — Daten verlassen den Server nicht
  • Automatisierung — PDFs können nach Zeitplan oder bei bestimmten Ereignissen erstellt werden
  • Unterstützung komplexer Logik — Zugriff auf Datenbanken, Dateisysteme und andere Ressourcen


Wichtige Bibliotheken zur PDF-Erstellung in Node.js



1. PDFKit

PDFKit ist die beliebteste Bibliothek zum Erstellen von PDFs "von Grund auf". Sie benötigt keine externen Abhängigkeiten und ermöglicht die vollständige Kontrolle über den Dokumentinhalt.

Anwendungsbeispiel:

const PDFDocument = require('pdfkit');const fs = require('fs');

const doc = new PDFDocument();doc.pipe(fs.createWriteStream('output.pdf'));

// Inhalt hinzufügendoc.fontSize(25).text('Hallo, Welt!', 100, 100);doc.fontSize(12).text('Dies ist ein PDF, erstellt mit PDFKit.', 100, 150);

// Linie zeichnendoc.moveTo(100, 200).lineTo(500, 200).stroke();

// Dokument abschließendoc.end();

Funktionen:

  • Hinzufügen von Text mit verschiedenen Schriftarten und Größen
  • Einfügen von Bildern (JPEG, PNG)
  • Zeichnen von Linien, Rechtecken und Kreisen
  • Unterstützung von Links und Lesezeichen
  • Erstellung mehrseitiger Dokumente


2. Puppeteer

Puppeteer ist ein Werkzeug zur Steuerung des Chrome/Chromium-Browsers. Es ermöglicht die Generierung von PDFs aus HTML-Seiten, was für komplexe Layouts praktisch ist.

Anwendungsbeispiel:

const puppeteer = require('puppeteer');

async function generatePDF() { const browser = await puppeteer.launch(); const page = await browser.newPage();

await page.setContent('<h1>Überschrift</h1><p>Dokumenttext</p>'); await page.pdf({ path: 'page.pdf', format: 'A4' });

await browser.close();}

generatePDF();

Besonderheiten:

  • Unterstützung von CSS, JavaScript und allen modernen Webtechnologien
  • Ideal für die Konvertierung von HTML-Vorlagen in PDF
  • Möglichkeit des Druckens mit definierten Parametern (Format, Ränder, Skalierung)
  • Erfordert die Installation von Chromium (~300 MB)


3. jsPDF (mit Anpassung für Node.js)

jsPDF ist eine clientseitige Bibliothek, aber es gibt Wrapper für die Verwendung in Node.js (z. B. jspdf-autotable).

Beispiel (mit jspdf und html2canvas):

const { jsPDF } = require('jspdf');const fs = require('fs');

const doc = new jsPDF();doc.text('Hallo aus Node.js!', 10, 10);doc.save('output.pdf');

Einschränkungen: jsPDF unterstützt keine komplexen Layouts und erfordert zusätzliche Bibliotheken für die Arbeit mit HTML.



4. pdfmake

pdfmake ist eine Bibliothek, die auf der deklarativen Beschreibung des Dokuments im JSON-Format basiert.

Beispiel:

const pdfmake = require('pdfmake');const fs = require('fs');

const fonts = { Roboto: { normal: 'fonts/Roboto-Regular.ttf', bold: 'fonts/Roboto-Medium.ttf' }};

const printer = new pdfmake(fonts);

const docDefinition = { content: [ { text:

Empfehlungen