using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Konvertierung von HTML in PDF in Node.js mit Puppeteer
Kannapat Udonpant
16. Mai 2023
Teilen Sie:
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.
Einführung in den Puppenspieler
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.
Warum Puppenspieler?
Benutzerfreundlichkeit: Puppeteer bietet eine einfache und benutzerfreundliche API, die die Komplexität der Arbeit mit Headless Browsern eliminiert.
Mächtig: Puppeteer bietet umfangreiche Möglichkeiten zur Manipulation von Webseiten und zur Interaktion mit Browser-Elementen.
Skalierbar: Mit Puppeteer können Sie Ihren PDF-Generierungsprozess einfach skalieren, indem Sie mehrere Browser-Instanzen parallel ausführen.
Einrichten Ihres NodeJS-Projekts
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 den Text von derNodeJS-Website).
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.
HTML-Vorlage laden und in PDF-Datei konvertieren
Gehen Sie folgendermaßen vor, um HTML-Vorlagen mit Puppeteer in eine PDF-Datei zu konvertieren:
Erstellen Sie im Ordner eine Datei mit dem Namen "HTML To PDF.js".
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.
Definieren der Funktion exportWebsiteAsPdf
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;
}
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;
}
NODE.JS
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 aus:
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 `html'-Vorlagen 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.
Gibt die erstellte PDF-Datei zurück.
Verwendung der Funktion exportWebsiteAsPdf
// 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);
});
// 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);
});
NODE.JS
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 Vorlagedateien, um PDF aus HTML-Seiten 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.
Konvertierung von URLs in PDF-Dateien
Neben der Konvertierung von HTML-Vorlagen können Sie mit Puppeteer auch URLs direkt in PDF-Dateien umwandeln.
Puppeteer importieren
const puppeteer = require('puppeteer');
const puppeteer = require('puppeteer');
NODE.JS
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.
Definieren der Funktion exportWebsiteAsPdf
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;
}
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;
}
NODE.JS
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 aus:
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.
Gibt die erzeugte PDF-Datei zurück.
Verwendung der Funktion exportWebsiteAsPdf
// Usage example
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
// Usage example
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
NODE.JS
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 zur Behandlung von Fehlern, die während der Konvertierung der Website 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.
Beste HTML To PDF-Bibliothek für C#-Entwickler
IronPDF erkunden 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.
Hauptmerkmale von IronPDF
HTML zu PDF Konvertierung mit IronPDF: IronPDF ermöglicht 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.
Schlussfolgerung
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 einekostenloser Test damit Sie deren Möglichkeiten erkunden können.
Die Benutzer können auch von denIron Suite paket, eine Suite von fünf professionellen .NET-Bibliotheken, darunterIronXL, IronPDF, IronOCR und mehr.
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.