Zum Fußzeileninhalt springen
.NET HILFE

C# Namenskonventionen (Wie es für Entwickler funktioniert)

In der heutigen digitalen Welt ist es entscheidend, die Fähigkeit zu haben, Webseiten oder HTML-Dokumente in PDF-Dateien zu konvertieren. Dies kann nützlich sein, um Berichte zu erstellen, Rechnungen zu generieren oder einfach Informationen in einem präsentableren Format zu teilen. In diesem Blogbeitrag werden wir erkunden, wie man mit Hilfe von Node.js und Puppeteer, einer von Google entwickelten Open-Source-Bibliothek, HTML-Seiten in PDFs umwandeln kann.

Einführung in Puppeteer

Puppeteer ist eine leistungsstarke Node.js-Bibliothek, die Entwicklern ermöglicht, Headless-Browser, hauptsächlich Google Chrome oder Chromium, zu steuern und verschiedene Aktionen wie Web-Scraping, Screenshot-Erstellung und PDF-Generierung durchzuführen. Puppeteer bietet eine umfassende API zur Interaktion mit dem Browser, was es zu einer ausgezeichneten Wahl für die Konvertierung von HTML in PDF macht.

Warum Puppeteer?

  • Einfache Handhabung: Puppeteer bietet eine einfache und benutzerfreundliche API, die die Komplexitäten der Arbeit mit Headless-Browsern abstrahiert.
  • Leistungsfähig: Puppeteer bietet umfangreiche Möglichkeiten zur Manipulation von Webseiten und zur Interaktion mit Browser-Elementen.
  • Skalierbar: Mit Puppeteer können Sie den PDF-Generierungsprozess problemlos skalieren, indem Sie mehrere Browser-Instanzen parallel ausführen.

Einrichten Ihres Node.js-Projekts

Bevor wir beginnen, müssen Sie ein neues Node.js-Projekt einrichten. Folgen Sie diesen Schritten, um zu beginnen:

  1. Installieren Sie Node.js, wenn Sie es noch nicht getan haben (Sie können es von der Node.js-Website herunterladen).
  2. Erstellen Sie einen neuen Ordner für Ihr Projekt und öffnen Sie ihn in Visual Studio Code oder einem beliebigen Code-Editor.
  3. Führen Sie npm init aus, um eine neue package.json-Datei für Ihr Projekt zu erstellen. Folgen Sie den Anweisungen und füllen Sie die erforderlichen Informationen aus.

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

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

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

Nachdem wir unser Projekt eingerichtet haben, lassen Sie uns in den Code eintauchen.

HTML-Vorlage laden und in PDF-Datei konvertieren

Um HTML-Vorlagen mithilfe von Puppeteer in eine PDF-Datei zu konvertieren, folgen Sie diesen Schritten:

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

Importieren von Puppeteer und fs

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

Der Code beginnt mit dem Importieren zweier wichtiger Bibliotheken: puppeteer, ein vielseitiges Werkzeug zur Steuerung von Headless-Browsern wie Chrome und Chromium, und fs, ein in Node.js integriertes Modul zur Bearbeitung von Dateisystemoperationen. Puppeteer ermöglicht es, eine Vielzahl von webbasierten Aufgaben zu automatisieren, einschließlich Rendering von HTML, Screenshot-Erstellung und PDF-Generierung.

Definieren der Funktion exportWebsiteAsPdf

async function exportWebsiteAsPdf(html, outputPath) {
  // Create a browser instance
  const browser = await puppeteer.launch({
    headless: true // Launches the browser in headless mode
  });

  // Create a new page
  const page = await browser.newPage();

  // Set the HTML content for the page, waiting for DOM content to load
  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 exportWebsiteAsPdf-Funktion dient als Kern unseres Codebeispiels. Diese asynchrone Funktion akzeptiert eine html-Zeichenkette und ein outputPath als Eingabeparameter und gibt eine PDF-Datei zurück. Die Funktion führt folgende Schritte aus:

  1. Startet eine neue Headless-Browserinstanz mit Puppeteer.
  2. Erstellt eine neue Browserseite.
  3. Setzt die bereitgestellte html-Zeichenkette als Seiteninhalt und wartet darauf, dass der DOM-Inhalt geladen wird.
  4. Emuliert den Medientyp 'Bildschirm', um das für Bildschirme verwendete CSS anzuwenden, anstatt druckspezifische Stile.
  5. Generiert eine PDF-Datei aus dem geladenen HTML-Inhalt, wobei Ränder, Hintergrunddrucke und das Format (A4) angegeben werden.
  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');

// Convert the HTML content into a PDF and save it to the specified path
exportWebsiteAsPdf(html, 'result.pdf').then(() => {
  console.log('PDF created successfully.');
}).catch((error) => {
  console.error('Error creating PDF:', error);
});

Der letzte Abschnitt des Codes zeigt, wie die exportWebsiteAsPdf-Funktion verwendet wird. Wir führen die folgenden Schritte aus:

  1. Lesen Sie den HTML-Inhalt aus einer HTML-Datei mit der fs-Methode des readFileSync-Moduls.
  2. Rufen Sie die exportWebsiteAsPdf-Funktion mit der geladenen html-Zeichenkette und dem gewünschten outputPath auf.
  3. Verwenden Sie einen .then-Block, um die erfolgreiche Erstellung des PDFs zu handhaben und eine Erfolgsmeldung in die Konsole zu protokollieren.
  4. Verwenden Sie einen .catch-Block, um eventuelle Fehler während des HTML-zu-PDF-Konvertierungsprozesses zu verwalten und eine Fehlermeldung in die Konsole zu protokollieren.

Dieses Codebeispiel bietet ein umfassendes Beispiel dafür, wie ein HTML-Template mit Node.js und Puppeteer in eine PDF-Datei konvertiert wird. Durch die Implementierung dieser Lösung können Sie effizient qualitativ hochwertige PDFs generieren, die den Anforderungen verschiedener Anwendungen und Benutzer gerecht werden.

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

Konvertierung von URLs in PDF-Dateien

Neben der Konvertierung von HTML-Vorlagen ermöglicht Puppeteer auch die direkte Konvertierung von URLs in PDF-Dateien.

Puppeteer importieren

const puppeteer = require('puppeteer');

Der Code beginnt mit dem Importieren der Puppeteer-Bibliothek, einem leistungsstarken Tool zur Steuerung von Headless-Browsern wie Chrome und Chromium. Puppeteer ermöglicht es Ihnen, eine Vielzahl von webbasierten Aufgaben zu automatisieren, darunter 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: true // Launches the browser in headless mode
  });

  // Create a new page
  const page = await browser.newPage();

  // Open the URL in the 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 exportWebsiteAsPdf-Funktion ist der Kern unseres Codebeispiels. Diese asynchrone Funktion akzeptiert ein websiteUrl und ein outputPath als Eingabeparameter und gibt eine PDF-Datei zurück. Die Funktion führt folgende Schritte aus:

  1. Startet eine neue Headless-Browserinstanz mit Puppeteer.
  2. Erstellt eine neue Browserseite.
  3. Navigiert zur bereitgestellten websiteUrl und wartet mit der waitUntil-Option, die auf networkidle0 gesetzt ist, bis das Netzwerk im Leerlauf ist.
  4. Emuliert den Medientyp 'Bildschirm', um sicherzustellen, dass das für Bildschirme verwendete CSS angewendet wird, anstatt druckspezifische Stile.
  5. Konvertiert die geladene Webseite mit den angegebenen Rändern, Hintergrunddrucken und Format (A4) in eine PDF-Datei.
  6. Schließt die Browserinstanz.
  7. Gibt die generierte PDF-Datei zurück.

Verwendung der Funktion exportWebsiteAsPdf

// Usage example
// Convert the URL content into a PDF and save it to the specified path
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, wie die exportWebsiteAsPdf-Funktion verwendet wird. Wir führen die folgenden Schritte aus:

  1. Rufen Sie die exportWebsiteAsPdf-Funktion mit dem gewünschten websiteUrl und outputPath auf.
  2. Verwenden Sie einen then-Block, um die erfolgreiche Erstellung des PDFs zu handhaben. In diesem Block loggen wir eine Erfolgsnachricht an die Konsole.
  3. Verwenden Sie einen catch-Block, um eventuelle Fehler während des Website-zu-PDF-Konvertierungsprozesses zu verwalten. Wenn ein Fehler auftritt, loggen wir eine Fehlermeldung an die Konsole.

Durch die Integration dieses Codebeispiels in Ihre Projekte können Sie URLs mühelos in hochwertige PDF-Dateien mit Node.js und Puppeteer konvertieren.

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

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

Erkunden Sie IronPDF ist eine beliebte .NET-Bibliothek, die für die Erstellung, Bearbeitung und Extraktion von Inhalten aus PDF-Dateien verwendet wird. Sie bietet eine einfache und effiziente Lösung zur Erstellung von PDFs aus HTML, Text, Bildern und bestehenden PDF-Dokumenten. IronPDF unterstützt .NET Core, .NET Framework und .NET 5.0+ Projekte, was es zu einer vielseitigen Wahl für verschiedene Anwendungen macht.

Hauptfunktionen von IronPDF

HTML-zu-PDF-Konvertierung mit IronPDF: IronPDF ermöglicht es Ihnen, HTML-Inhalte, einschließlich CSS, in PDF-Dateien zu konvertieren. Diese Funktion ermöglicht es Ihnen, pixelgenaue PDF-Dokumente von Webseiten oder HTML-Vorlagen zu erstellen.

URL-Rendering: IronPDF kann Webseiten direkt von einem Server über eine URL abrufen und in PDF-Dateien konvertieren. Dadurch wird es einfach, Webinhalte zu archivieren oder Berichte aus dynamischen Webseiten zu generieren.

Zusammenführung von Text, Bildern und PDFs: Mit IronPDF können Sie Text, Bilder und bestehende PDF-Dateien zu einem einzigen PDF-Dokument zusammenführen. Diese Funktion ist besonders nützlich zur Erstellung komplexer Dokumente mit mehreren Inhaltsquellen.

PDF-Bearbeitung: IronPDF bietet Werkzeuge zum Bearbeiten bestehender PDF-Dateien, wie z. B. das Hinzufügen oder Entfernen von Seiten, das Ändern von Metadaten oder sogar das Extrahieren von Text und Bildern aus PDF-Dokumenten.

Abschluss

Zusammenfassend lässt sich sagen, dass die Erstellung und Bearbeitung von PDF-Dateien in vielen Anwendungen eine häufige Anforderung ist, und die richtigen Tools zur Verfügung zu haben, ist entscheidend. Die in diesem Artikel bereitgestellten Lösungen, wie die Verwendung von Puppeteer mit Node.js 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 sein umfangreiches Funktionsspektrum aus, was es zu einer erstklassigen Wahl for .NET-Entwickler macht. IronPDF bietet eine kostenlose Testversion, die es Ihnen ermöglicht, seine Fähigkeiten zu erkunden.

Benutzer können auch von dem Iron Suite-Paket profitieren, einer Suite von fünf professionellen .NET-Bibliotheken, einschließlich IronXL, IronPDF, IronOCR und mehr.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an