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
Chipego Kalinda
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äten der Arbeit mit headless Browsern abstrahiert.
Leistungsstark: Puppeteer bietet umfangreiche Möglichkeiten zur Manipulation von Webseiten und zur Interaktion mit Browserelementen.
Skalierbar: Mit Puppeteer können Sie Ihren PDF-Erstellungsprozess problemlos 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, falls Sie es noch nicht getan haben (Sie können es von der NodeJS-Website herunterladen).
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.
Der Code beginnt mit dem Import von zwei wesentlichen Bibliotheken: puppeteer, ein vielseitiges Tool zur Steuerung von kopflosen 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 exportWebsiteAsPdf-Funktion dient als Kern unseres Code-Snippets. Diese asynchrone Funktion nimmt einen html-String und einen outputPath als Eingabeparameter an 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 den bereitgestellten html-String als Seiteninhalt, während darauf gewartet wird, 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.
Erstellt eine PDF-Datei aus dem geladenen HTML-Inhalt, wobei Ränder, Hintergrunddruck und Format (A4) festgelegt werden.
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 zeigt, wie die Funktion exportWebsiteAsPdf verwendet wird. Wir führen die folgenden Schritte durch:
Lesen Sie den HTML-Inhalt aus einer HTML-Datei mit der Methode readFileSync des Moduls fs ein. 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 bearbeiten und eine Erfolgsmeldung in die Konsole zu protokollieren.
Verwenden Sie einen .catch-Block, um auftretende Fehler während des HTML-zu-PDF-Konvertierungsprozesses zu verwalten und eine Fehlermeldung in der Konsole zu protokollieren.
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 exportWebsiteAsPdf-Funktion ist das Kernstück unseres Codeausschnitts. 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 zur angegebenen websiteUrl und wartet darauf, dass das Netzwerk inaktiv wird, indem die waitUntil-Option 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 zeigt, wie die Funktion exportWebsiteAsPdf verwendet wird. Wir führen die folgenden Schritte durch:
Rufen Sie die Funktion exportWebsiteAsPdf mit der gewünschten websiteUrl und outputPath auf.
Verwenden Sie einen then-Block, um die erfolgreiche PDF-Erstellung zu verarbeiten. In diesem Block wird eine Erfolgsmeldung auf der Konsole ausgegeben.
Verwenden Sie einen catch-Block, um alle Fehler zu behandeln, die während des Prozesses der Umwandlung 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-zu-PDF-Bibliothek für C#-Entwickler
Erkunden Sie IronPDF ist eine beliebte .NET-Bibliothek, die zum Erstellen, 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 Ihnen die Umwandlung 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 direkt von einem Server über eine URL abrufen und in PDF-Dateien umwandeln, was es einfach macht, Webinhalte zu archivieren oder Berichte von dynamischen Webseiten zu erstellen.
Text-, Bild- und PDF-Zusammenführung: IronPDF ermöglicht es Ihnen, Text, Bilder und bestehende PDF-Dateien in ein einziges PDF-Dokument zusammenzuführen. Diese Funktion ist besonders nützlich für die Erstellung komplexer Dokumente mit mehreren Inhaltsquellen.
PDF-Bearbeitung: IronPDF bietet Werkzeuge zum Bearbeiten bestehender PDF-Dateien, wie zum Beispiel 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 eine kostenlose Testversion an, mit der Sie seine Fähigkeiten erkunden können.
Benutzer können auch vom Iron Suite-Paket profitieren, einem Paket aus fünf professionellen .NET-Bibliotheken, darunter IronXL, IronPDF, IronOCR und mehr.
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.