Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
In der heutigen digitalen Welt ist die Fähigkeit, Webseiten oder HTML-Dokumente in PDF-Dateien zu konvertieren, von entscheidender Bedeutung. Dies kann für die Erstellung von Berichten, Rechnungen oder einfach für die Weitergabe von Informationen in einem ansehnlicheren Format nützlich sein. In diesem Blog-Beitrag erfahren Sie, wie Sie HTML-Seiten mit Node.js und Puppeteer, einer von Google entwickelten Open-Source-Bibliothek, in PDF umwandeln können.
Puppeteer ist eine leistungsstarke Node.js-Bibliothek, die es Entwicklern ermöglicht, Headless-Browser, vor allem Google Chrome oder Chromium, zu steuern und verschiedene Aktionen wie Web-Scraping, die Erstellung von Screenshots und die Erzeugung von PDFs durchzuführen. Puppeteer bietet eine umfangreiche API für die Interaktion mit dem Browser und ist damit eine ausgezeichnete Wahl für die Konvertierung von HTML in PDF.
Bevor wir beginnen, müssen Sie ein neues NodeJS-Projekt einrichten. Befolgen Sie diese Schritte, um loszulegen:
Installieren Sie NodeJS, wenn Sie es nicht schon haben (sie können es herunterladen von *hier).
Erstellen Sie einen neuen Ordner für Ihr Projekt und öffnen Sie ihn in Visual Studio Code oder einem anderen Code-Editor.
Führen Sie npm init
aus, um eine neue package.json
-Datei für Ihr Projekt zu erstellen. Folgen Sie den Aufforderungen und geben Sie die erforderlichen Informationen ein.
Installieren Sie Puppeteer, indem Sie npm install puppeteer
ausführen.
Nachdem wir nun unser Projekt eingerichtet haben, können wir uns dem Code widmen.
Gehen Sie folgendermaßen vor, um eine HTML-Vorlage mit Puppeteer in eine PDF-Datei zu konvertieren:
Erstellen Sie im Ordner eine Datei mit dem Namen "HTML To PDF.js".
const puppeteer = require('puppeteer');
const fs = require('fs');
Der Code beginnt mit dem Import von zwei wichtigen Bibliotheken: puppeteer
, ein vielseitiges Tool zur Steuerung von Headless Browsern wie Chrome und Chromium, und fs
, ein eingebautes NodeJS-Modul zur Handhabung von Dateisystemoperationen. Mit Puppeteer können Sie eine Vielzahl von webbasierten Aufgaben automatisieren, z. B. das Rendern von HTML, die Erfassung von Screenshots und die Erstellung von PDF-Dateien.
async function exportWebsiteAsPdf(html, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
await page.setContent(html, { waitUntil: 'domcontentloaded' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
Die Funktion exportWebsiteAsPdf
dient als Kernstück unseres Codeschnipsels. Diese asynchrone Funktion akzeptiert einen html
-String und einen outputPath
als Eingabeparameter und gibt eine PDF-Datei zurück. Die Funktion führt die folgenden Schritte durch:
Startet eine neue Headless-Browser-Instanz mit Puppeteer.
Erzeugt eine neue Browserseite.
Setzt die angegebene Zeichenkette html
als Seiteninhalt und wartet darauf, dass der DOM-Inhalt geladen wird. Wir laden die Vorlage html
als HTML-String, um sie in das PDF-Format zu konvertieren.
Emuliert den Medientyp "screen", um das für Bildschirme verwendete CSS anstelle der druckspezifischen Stile anzuwenden.
Erzeugt eine PDF-Datei aus dem geladenen HTML-Inhalt, wobei Ränder, Hintergrunddruck und Format festgelegt werden (A4).
Schließt die Browserinstanz.
// Usage example
//Get HTML content from HTML file
const html = fs.readFileSync('test.html', 'utf-8');
exportWebsiteAsPdf(html, 'result.PDF').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
Der letzte Abschnitt des Codes veranschaulicht die Verwendung der Funktion "exportWebsiteAsPdf". Wir führen die folgenden Schritte durch:
Lesen Sie den HTML-Inhalt aus einer HTML-Datei mit der Methode "readFileSync" des Moduls "fs". Hier laden wir eine Vorlagendatei, um PDF aus einer HTML-Seite zu erzeugen.
Rufen Sie die Funktion exportWebsiteAsPdf
mit dem geladenen html
-String und dem gewünschten outputPath
auf.
Verwenden Sie einen .then
-Block, um die erfolgreiche PDF-Erstellung zu verarbeiten und eine Erfolgsmeldung auf der Konsole zu protokollieren.
Verwenden Sie einen "catch"-Block, um alle Fehler zu verwalten, die während der Konvertierung von HTML in PDF auftreten, und geben Sie eine Fehlermeldung auf der Konsole aus.
Dieses Code-Snippet bietet ein umfassendes Beispiel für die Konvertierung einer HTML-Vorlage in eine PDF-Datei mit NodeJS und Puppeteer. Mit dieser Lösung können Sie auf effiziente Weise qualitativ hochwertige PDF-Dateien erstellen, die den Anforderungen verschiedener Anwendungen und Benutzer gerecht werden.
Neben der Konvertierung von HTML-Vorlagen können Sie mit Puppeteer auch URLs direkt in PDF-Dateien umwandeln.
const puppeteer = require('puppeteer');
Der Code beginnt mit dem Import der Puppeteer-Bibliothek, einem leistungsstarken Tool zur Steuerung von Headless-Browsern wie Chrome und Chromium. Mit Puppeteer können Sie eine Vielzahl von webbasierten Aufgaben automatisieren, z. B. das Rendern Ihres HTML-Codes, das Erstellen von Screenshots und in unserem Fall das Generieren von PDF-Dateien.
async function exportWebsiteAsPdf(websiteUrl, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
// Open URL in current page
await page.goto(websiteUrl, { waitUntil: 'networkidle0' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
Die Funktion exportWebsiteAsPdf
ist das Herzstück unseres Codeschnipsels. Diese asynchrone Funktion akzeptiert eine websiteUrl
und einen outputPath
als Eingabeparameter und gibt eine PDF-Datei zurück. Die Funktion führt die folgenden Schritte durch:
Startet eine neue Headless-Browser-Instanz mit Puppeteer.
Erzeugt eine neue Browserseite.
Navigiert zu der angegebenen websiteUrl
und wartet darauf, dass das Netzwerk inaktiv wird, indem die Option waitUntil
auf networkidle0
gesetzt wird.
Emuliert den Medientyp "Bildschirm", um sicherzustellen, dass das für Bildschirme verwendete CSS anstelle der druckspezifischen Stile angewendet wird.
Konvertiert die geladene Webseite in eine PDF-Datei mit den angegebenen Rändern, Hintergrunddruck und Format (A4).
Schließt die Browserinstanz.
// Usage example
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
Der letzte Abschnitt des Codes demonstriert die Verwendung der Funktion "exportWebsiteAsPdf". Wir führen die folgenden Schritte durch:
Rufen Sie die Funktion exportWebsiteAsPdf
mit der gewünschten websiteUrl
und dem outputPath
auf.
Verwenden Sie einen then
-Block, um die erfolgreiche PDF-Erstellung zu behandeln. In diesem Block wird eine Erfolgsmeldung auf der Konsole ausgegeben.
Verwenden Sie einen "Catch-Block", um alle Fehler zu behandeln, die während der Konvertierung von Websites in PDF auftreten. Wenn ein Fehler auftritt, wird eine Fehlermeldung auf der Konsole ausgegeben.
Wenn Sie dieses Code-Snippet in Ihre Projekte integrieren, können Sie mit NodeJS und Puppeteer mühelos URLs in hochwertige PDF-Dateien umwandeln.
IronPDF ist eine weit verbreitete .NET-Bibliothek, die zum Erzeugen, Bearbeiten und Extrahieren von Inhalten aus PDF-Dateien verwendet wird. Es bietet eine einfache und effiziente Lösung für die Erstellung von PDFs aus HTML, Text, Bildern und bestehenden PDF-Dokumenten. IronPDF unterstützt .NET Core, .NET-Framework und .NET 5.0+ Projekte und ist damit eine vielseitige Wahl für verschiedene Anwendungen.
HTML zu PDF Konvertierung: IronPDF ermöglicht Ihnen die Konvertierung von HTML-Inhalten, einschließlich CSS, in PDF-Dateien. Mit dieser Funktion können Sie pixelgenaue PDF-Dokumente aus Webseiten oder HTML-Vorlagen erstellen.
URL-Rendering: IronPDF kann Webseiten über eine URL direkt von einem Server abrufen und in PDF-Dateien umwandeln, was die Archivierung von Webinhalten oder die Erstellung von Berichten aus dynamischen Webseiten erleichtert.
Zusammenführung von Text, Bildern und PDF-Dateien: Mit IronPDF können Sie Text, Bilder und vorhandene PDF-Dateien in einem einzigen PDF-Dokument zusammenführen. Diese Funktion ist besonders nützlich für die Erstellung komplexer Dokumente mit mehreren Inhaltsquellen.
PDF-Bearbeitung: IronPDF bietet Werkzeuge für die Bearbeitung vorhandener PDF-Dateien, wie das Hinzufügen oder Entfernen von Seiten, das Ändern von Metadaten oder sogar das Extrahieren von Text und Bildern aus PDF-Dokumenten.
Zusammenfassend lässt sich sagen, dass die Erstellung und Bearbeitung von PDF-Dateien eine häufige Anforderung in vielen Anwendungen ist und dass es entscheidend ist, die richtigen Werkzeuge zur Verfügung zu haben. Die in diesem Artikel vorgestellten Lösungen, wie die Verwendung von Puppeteer mit NodeJS oder IronPDF mit .NET, bieten leistungsstarke und effiziente Methoden zur Konvertierung von HTML-Inhalten und URLs in professionelle, hochwertige PDF-Dokumente.
IronPDF zeichnet sich insbesondere durch seinen umfangreichen Funktionsumfang aus, der es zu einer ersten Wahl für .NET-Entwickler macht. IronPDF bietet eine kostenloser Testund ermöglicht es Ihnen, seine Möglichkeiten zu erkunden.
Die Nutzer können auch profitieren von Iron Suiteeine Suite von 5 professionellen .NET-Bibliotheken, darunter IronXL, IronPDF, IronOCR und mehr.
9 .NET API-Produkte für Ihre Bürodokumente