PDF-WERKZEUGE

Konvertierung von HTML in PDF in Node.js mit Puppeteer

Veröffentlicht 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:

  1. Installieren Sie NodeJS, wenn Sie es nicht schon haben (sie können es herunterladen von *hier).

  2. Erstellen Sie einen neuen Ordner für Ihr Projekt und öffnen Sie ihn in Visual Studio Code oder einem anderen Code-Editor.

  3. 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.

    Wie man HTML in Node.js in PDF konvertiert: Abbildung 1

  4. Installieren Sie Puppeteer, indem Sie npm install puppeteer ausführen.

    Wie man HTML in Node.js in PDF konvertiert: Abbildung 2

    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 eine HTML-Vorlage mit Puppeteer in eine PDF-Datei zu konvertieren:

Erstellen Sie im Ordner eine Datei mit dem Namen "HTML To PDF.js".

Puppeteer und fs importieren

    const puppeteer = require('puppeteer');
    const fs = require('fs');
NODE.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;
    }
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 durch:

  1. Startet eine neue Headless-Browser-Instanz mit Puppeteer.

  2. Erzeugt eine neue Browserseite.

  3. 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.

  4. Emuliert den Medientyp "screen", um das für Bildschirme verwendete CSS anstelle der druckspezifischen Stile anzuwenden.

  5. Erzeugt eine PDF-Datei aus dem geladenen HTML-Inhalt, wobei Ränder, Hintergrunddruck und Format festgelegt werden (A4).

  6. Schließt die Browserinstanz.

  7. 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);
    });
NODE.JS

Der letzte Abschnitt des Codes veranschaulicht die Verwendung der Funktion "exportWebsiteAsPdf". Wir führen die folgenden Schritte durch:

  1. 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.

  2. Rufen Sie die Funktion exportWebsiteAsPdf mit dem geladenen html-String und dem gewünschten outputPath auf.

  3. Verwenden Sie einen .then-Block, um die erfolgreiche PDF-Erstellung zu verarbeiten und eine Erfolgsmeldung auf der Konsole zu protokollieren.

  4. 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.

    Wie man HTML in Node.js in PDF konvertiert: Abbildung 3

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');
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;
    }
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 durch:

  1. Startet eine neue Headless-Browser-Instanz mit Puppeteer.

  2. Erzeugt eine neue Browserseite.

  3. Navigiert zu der angegebenen websiteUrl und wartet darauf, dass das Netzwerk inaktiv wird, indem die Option waitUntil auf networkidle0 gesetzt wird.

  4. Emuliert den Medientyp "Bildschirm", um sicherzustellen, dass das für Bildschirme verwendete CSS anstelle der druckspezifischen Stile angewendet wird.

  5. Konvertiert die geladene Webseite in eine PDF-Datei mit den angegebenen Rändern, Hintergrunddruck und Format (A4).

  6. Schließt die Browserinstanz.

  7. 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);
    });
NODE.JS

Der letzte Abschnitt des Codes demonstriert die Verwendung der Funktion "exportWebsiteAsPdf". Wir führen die folgenden Schritte durch:

  1. Rufen Sie die Funktion exportWebsiteAsPdf mit der gewünschten websiteUrl und dem outputPath auf.

  2. Verwenden Sie einen then-Block, um die erfolgreiche PDF-Erstellung zu behandeln. In diesem Block wird eine Erfolgsmeldung auf der Konsole ausgegeben.

  3. 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.

    Wie man HTML in Node.js in PDF konvertiert: Abbildung 4

Beste HTML To PDF-Bibliothek für C#-Entwickler

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.

Hauptmerkmale von IronPDF

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.

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 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.

< PREVIOUS
Konvertieren von HTML in PDF in C++
NÄCHSTES >
Open Source PDF-Editor (Aktualisierte Liste)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >