Eine Low-Code-Plattform, die die Einfachheit von No-Code mit der Leistung von Full-Code verbindet 🚀
Jetzt kostenlos starten

Konvertieren von HTML in PDF mit Puppeteer: Stilkonfiguration und Paginierung

Beschreiben Sie, was Sie automatisieren möchten

Latenode verwandelt Ihre Eingabeaufforderung in Sekundenschnelle in einen einsatzbereiten Workflow

Geben Sie eine Nachricht ein

UnterstĂŒtzt von Latenode AI

Es dauert einige Sekunden, bis die magische KI Ihr Szenario erstellt hat.

Bereit zu gehen

Benennen Sie Knoten, die in diesem Szenario verwendet werden

Im Arbeitsbereich öffnen

Wie funktioniert es?

Lorem ipsum dolor sitzen amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis Cursus, Mi Quis Viverra Ornare, Eros Dolor Interdum Nulla, Ut Commodo Diam Libero Vitae Erat. Aenean faucibus nibh und justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Änderungswunsch:

Geben Sie eine Nachricht ein

Schritt 1: Anwendung eins

-

UnterstĂŒtzt von Latenode AI

Beim Absenden des Formulars ist ein Fehler aufgetreten. Versuchen Sie es spÀter noch einmal.
Versuchen Sie es erneut
Inhaltsverzeichnis
Konvertieren von HTML in PDF mit Puppeteer: Stilkonfiguration und Paginierung

Die Konvertierung von HTML in PDF ist fĂŒr die Erstellung standardisierter Dokumente wie Berichte, Rechnungen und Kundenmaterialien von entscheidender Bedeutung. Puppenspieler, ein Browser-Automatisierungstool, hilft Ihnen bei der Verwaltung von Stilen, Layouts und SeitenumbrĂŒchen fĂŒr eine professionelle PDF-Ausgabe. Hier ist ein kurzer Überblick ĂŒber die Möglichkeiten von Puppenspieler:

  • PDFs generieren: Verwenden Sie Puppeteer, um HTML in ansprechende PDFs zu konvertieren, wĂ€hrend Sie JavaScript ausfĂŒhren und benutzerdefiniertes CSS anwenden.
  • Kontrollstile: Definieren Sie SeitengrĂ¶ĂŸen, RĂ€nder, Schriftarten, Kopf- und Fußzeilen und mehr mithilfe von druckspezifischem CSS.
  • SeitenumbrĂŒche verwalten: Verwenden Sie CSS-Regeln, um das Aufteilen von Tabellen, Überschriften oder Bildern auf mehrere Seiten zu vermeiden.
  • Leistung optimieren: Verbessern Sie die QualitĂ€t und reduzieren Sie die DateigrĂ¶ĂŸe durch Skalierung, Bildoptimierung und effiziente Ressourcenverwaltung.

Quick-Start: Installieren Sie Puppeteer mit npm install puppeteer, laden Sie Ihr HTML (als String, lokale Datei oder URL) und konfigurieren Sie PDF-Einstellungen wie Abmessungen, RĂ€nder und Hintergrunddarstellung. Verwenden Sie @media print CSS-Regeln fĂŒr eine bessere Kontrolle ĂŒber Druckstile.

ZENTRALE FUNKTIONEN:

  • Seitenanpassung mit @page Regeln.
  • Kopf-/Fußzeilenvorlagen fĂŒr professionelle Layouts.
  • Mehrseitige Inhaltsverwaltung, um ungĂŒnstige Aufteilungen in Tabellen oder Text zu vermeiden.

Mit Puppeteer können Sie die PDF-Generierung automatisieren und anpassen, um konsistente, qualitativ hochwertige Ergebnisse zu erzielen.

🌐 Konvertieren Sie HTML in PDF mit Puppenspieler in Node.js 🚀 Voller Schritt ...

Puppenspieler

Erste Schritte mit Puppeteer

Erfahren Sie, wie Sie Puppeteer zum Erstellen von PDFs einrichten und verwenden. Folgen Sie diesen Schritten, um loszulegen.

Einrichtung

Bevor Sie beginnen, stellen Sie sicher, dass Node.js Version 14.0.0 oder höher auf Ihrem System installiert ist. So richten Sie alles ein:

  • Installieren Sie Node.js: Laden Sie es herunter von nodejs.org und schließen Sie die Installation ab.
  • Erstellen Sie einen Projektordner: Erstellen Sie einen neuen Ordner fĂŒr Ihr Projekt.
  • Initialisieren Sie das Projekt: Öffnen Sie ein Terminal in Ihrem Projektordner und fĂŒhren Sie npm init -y.
  • Installieren Sie Puppenspieler: Verwenden Sie den Befehl npm install puppeteer um Puppeteer zu Ihrem Projekt hinzuzufĂŒgen.

Erstes PDF-Generierungsskript

Hier ist ein einfaches Skript zum Konvertieren von HTML in PDF mit Puppeteer:

const puppeteer = require('puppeteer');

async function generatePDF() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // Set page content
  await page.setContent(`
    <html>
      <body>
        <h1>Sample PDF Document</h1>
        <p>Generated with Puppeteer</p>
      </body>
    </html>
  `);

  // Generate PDF
  await page.pdf({
    path: 'output.pdf',
    format: 'Letter',
    margin: {
      top: '1in',
      right: '1in',
      bottom: '1in',
      left: '1in'
    }
  });

  await browser.close();
}

generatePDF();

Speichern Sie dieses Skript unter generate-pdf.js. FĂŒhren Sie es aus, indem Sie Folgendes eingeben: node generate-pdf.js in Ihrem Terminal. Das Skript erstellt eine PDF-Datei im US-Letter-Format (8.5 × 11 Zoll) mit 1-Zoll-RĂ€ndern.

HTML-Quelloptionen

Puppeteer bietet mehrere Möglichkeiten zum Laden von HTML-Inhalten fĂŒr die PDF-Generierung:

  • Direktes Laden von Inhalten: Verwenden Sie eine Zeichenfolge, die das HTML enthĂ€lt.
    await page.setContent(htmlString);
    
  • Lokaler Dateizugriff: Laden Sie eine HTML-Datei von Ihrem lokalen System.
    await page.goto(`file:${path.join(__dirname, 'template.html')}`);
    
  • Remote-URL-Laden: HTML von einer Live-Website abrufen.
    await page.goto('https://yourwebsite.com/page-to-convert');
    

Achten Sie beim Arbeiten mit externen Ressourcen wie Bildern oder Stilen darauf, dass diese eingebettet sind, absolute URLs verwenden oder lokal gespeichert sind.

Tipps fĂŒr eine bessere Leistung

Um eine reibungslose PDF-Erstellung zu gewÀhrleisten, beachten Sie die folgenden Hinweise:

  • Nutzen Sie page.waitForNetworkIdle() um zu warten, bis alle Netzwerkanforderungen abgeschlossen sind.
  • Legen Sie entsprechende Timeouts fĂŒr das Laden von Ressourcen fest.
  • Behandeln Sie das Laden von Schriftarten explizit, um Darstellungsprobleme zu vermeiden.

Sobald Ihr HTML fertig ist, können Sie mit der Anpassung der Stile und Einstellungen des PDFs fortfahren.

PDF-Stileinstellungen

Um Ihren Inhalt fĂŒr die PDF-Ausgabe anzupassen, verwenden Sie @media print Regeln. Hier ist ein Beispiel:

@media print {
  /* Hide navigation menus and non-essential elements */
  nav, button, .no-print {
    display: none;
  }

  /* Adjust text for better readability in PDFs */
  body {
    font-size: 12pt;
    line-height: 1.5;
  }

  /* Ensure accurate background rendering */
  * {
    -webkit-print-color-adjust: exact;
  }
}

Wenn Sie Ihre bildschirmbasierten Stile beibehalten möchten, anstatt druckspezifische Stile anzuwenden, fĂŒgen Sie vor dem Generieren der PDF-Datei diese Zeile ein:

await page.emulateMediaType('screen');

Sobald die Druckstile angewendet wurden, können Sie mit den Layoutanpassungen fortfahren.

Seitenlayouteinstellungen

Definieren Sie PDF-Abmessungen mithilfe von Puppeteer-Optionen oder CSS @page Regeln. FĂŒr Puppeteer können Sie die folgende Konfiguration verwenden:

await page.pdf({
  format: 'Letter',
  margin: {
    top: '0.75in',
    right: '0.5in',
    bottom: '0.75in',
    left: '0.5in'
  },
  landscape: false,
  preferCSSPageSize: true
});

FĂŒr individuellere SeitengrĂ¶ĂŸen verwenden Sie CSS @page Regeln:

@page {
  size: 8.5in 11in;
  margin: 0.75in 0.5in;
}

Nachdem Sie das Layout eingerichtet haben, können Sie die Designelemente fĂŒr ein elegantes Erscheinungsbild optimieren.

Text- und Designelemente

Um den Inhalt optisch klar und professionell zu gestalten, verwenden Sie diese CSS-Regeln:

body {
  font-family: 'Arial', sans-serif;
  color: #333333;
}

h1, h2, h3 {
  page-break-after: avoid;
  color: #000000;
}

table {
  width: 100%;
  border-collapse: collapse;
  page-break-inside: avoid;
}

img {
  max-width: 100%;
  height: auto;
  page-break-inside: avoid;
}

FĂŒgen Sie fĂŒr einheitliche Hintergrundfarben, insbesondere in kritischen Abschnitten, diese Regel hinzu:

.color-critical {
  -webkit-print-color-adjust: exact;
}

Diese Anpassungen stellen sicher, dass Ihr PDF leicht lesbar und optisch ansprechend ist.

sbb-itb-23997f1

Seitenumbruchsteuerung

CSS-Eigenschaften fĂŒr SeitenumbrĂŒche

Durch effektives Verwalten von SeitenumbrĂŒchen wird ein reibungsloser Seitenfluss gewĂ€hrleistet. Verwenden Sie diese CSS-Eigenschaften, um die Inhaltstrennung zu steuern:

/* Start new page before chapters */
.chapter {
  page-break-before: always;
}

/* Keep headings together with their content */
h2, h3 {
  page-break-after: avoid;
}

/* Avoid splitting tables or figures */
table, figure {
  page-break-inside: avoid;
}

Diese Regeln sorgen dafĂŒr, dass Ihr Dokument ĂŒbersichtlich und leserlich bleibt. Nachdem Sie SeitenumbrĂŒche eingerichtet haben, sollten Sie Kopf- und Fußzeilen entsprechend diesen Einstellungen konfigurieren.

Richten Sie Kopf- und Fußzeilen in Puppeteer ein, um Ihrem PDF ein professionelles Aussehen zu verleihen:

await page.pdf({
  displayHeaderFooter: true,
  headerTemplate: `
    <div style="font-size: 10px; padding: 0 0.5in; width: 100%;">
      <span class="title"></span>
      <span class="date" style="float: right;"></span>
    </div>
  `,
  footerTemplate: `
    <div style="font-size: 10px; text-align: center; width: 100%;">
      Page <span class="pageNumber"></span> of <span class="totalPages"></span>
    </div>
  `,
  margin: {
    top: '1in',
    bottom: '1in'
  }
});

Achten Sie darauf, die RĂ€nder so anzupassen, dass Kopf- und Fußzeile richtig passen, ohne Ihren Inhalt zu ĂŒberlappen.

Verwaltung mehrseitiger Inhalte

Konzentrieren Sie sich bei eingerichteten SeitenumbrĂŒchen und Kopf-/Fußzeilen auf die Verwaltung von Inhalten ĂŒber mehrere Seiten hinweg. Eine gute Layoutkontrolle sorgt dafĂŒr, dass Ihr Dokument ĂŒbersichtlich und professionell bleibt:

/* Keep captions with their images */
figure {
  display: table;
  page-break-inside: avoid;
}

figcaption {
  display: table-caption;
  caption-side: bottom;
}

/* Avoid splitting list items or table rows */
li, .table-row {
  page-break-inside: avoid;
}

/* Allow large tables to break across pages */
.table-wrapper {
  page-break-inside: auto;
}

Umfassen Sie große Tabellen, die sich ĂŒber mehrere Seiten erstrecken, in einem Container, der UmbrĂŒche zulĂ€sst, ohne dass die Zeilen unterbrochen werden. So bleiben die Daten auch bei langen DatensĂ€tzen leicht verstĂ€ndlich.

TIPP: Aktivieren Sie die printBackground Option in Puppeteer zum Rendern aller visuellen Elemente, einschließlich Hintergrundfarben und Bildern:

await page.pdf({
  printBackground: true,
  preferCSSPageSize: true
});

PDF-QualitÀt und -Leistung

Um die QualitĂ€t und Leistung von PDF-Dateien zu verbessern, mĂŒssen Skalierung, Bildbearbeitung und Ressourcenverwaltung berĂŒcksichtigt werden. Diese Schritte gewĂ€hrleisten ein ansprechendes Erscheinungsbild und eine effiziente FunktionalitĂ€t des fertigen Dokuments.

Methoden zur Inhaltsskalierung

Durch die korrekte Skalierung von Inhalten bleibt der Inhalt lesbar und das Design konsistent. Puppeteer bietet detaillierte Skalierungssteuerungen fĂŒr die PDF-Darstellung:

await page.pdf({
  scale: 0.8,
  preferCSSPageSize: true,
  format: 'Letter'
});

Werte unter 1 verkleinern den Inhalt, Werte ĂŒber 1 vergrĂ¶ĂŸern ihn. Die Skalierung mit preferCSSPageSize stellt sicher, dass das PDF den durch CSS definierten Abmessungen entspricht:

@page {
  size: 8.5in 11in;
  margin: 0.5in;
}

BildqualitÀtsmanagement

Die Wahl des richtigen Bildformats ist entscheidend. PNG eignet sich gut fĂŒr detaillierte Grafiken wie Diagramme und Logos, kann aber die DateigrĂ¶ĂŸe erhöhen. JPEG ist eine bessere Option fĂŒr Fotos, wĂ€hrend WebP wird oft konvertiert, wodurch die DateigrĂ¶ĂŸe möglicherweise noch weiter ansteigt.

Um die BildschÀrfe zu verbessern, erhöhen Sie den Skalierungsfaktor des GerÀts:

await page.setViewport({
  width: 1200,
  height: 800,
  deviceScaleFactor: 2
});

HÀufige Probleme und Lösungen

Durch die BewĂ€ltigung allgemeiner Herausforderungen wie Ressourcenverwaltung, DateigrĂ¶ĂŸe und Fehler kann die Leistung erheblich gesteigert werden.

  • Ressourcenmanagement
    Verwenden Sie eine einzelne Browserinstanz und -seite, um mehrere PDF-Anfragen zu verarbeiten und so den Aufwand zu reduzieren:
    const browser = await puppeteer.launch({
      args: ['--no-sandbox', '--disable-setuid-sandbox']
    });
    
    const page = await browser.newPage();
    for (const request of requests) {
      await generatePDF(page, request);
    }
    
  • Optimierung der DateigrĂ¶ĂŸe
    Minimieren Sie die DateigrĂ¶ĂŸe, indem Sie unnötige Elemente entfernen und Bilder optimieren:
    await page.evaluate(() => {
      document.querySelectorAll('.no-print').forEach(el => el.remove());
    
      document.querySelectorAll('img').forEach(img => {
        img.loading = 'lazy';
        img.decoding = 'async';
      });
    });
    
  • Fehlerbehandlung
    Implementieren Sie Strategien zur Behandlung von Fehlern wie Timeouts und Wiederholungsversuchen:
    const generatePDF = async (page, options) => {
      try {
        await page.goto(options.url, {
          waitUntil: 'networkidle0',
          timeout: 30000
        });
        return await page.pdf(options);
      } catch (error) {
        console.error('PDF generation failed:', error);
        throw error;
      }
    };
    

Fazit

Die Verwendung von Puppeteer zum Konvertieren von HTML in PDF bietet effektive Tools zum Erstellen professioneller Dokumente.

Wichtige Schritte

  • Übernehmen Sie die Druckmedieneinstellungen mit page.emulateMediaType('print').
  • Verwenden Sie CSS-Regeln wie page-break-inside: avoid um sicherzustellen, dass Elemente wie Tabellenzeilen intakt bleiben.

Diese Techniken bauen auf frĂŒheren Styling- und Layoutmethoden auf und dienen als solide Basis fĂŒr eine fortgeschrittenere Automatisierung.

Erweiterte Automatisierungsoptionen

Mit diesen zusÀtzlichen Automatisierungsfunktionen können Sie die PDF-Erstellung weiter vorantreiben:

  • Umgebungskonfiguration
    Richten Sie Cache-Verzeichnisse und Browsereinstellungen ein, um konsistente Ergebnisse auf verschiedenen Plattformen sicherzustellen.
  • Performance-Verbesserungen
    Passen Sie die Timeout-Einstellungen an und fĂŒgen Sie Wiederholungsmechanismen hinzu, um die ZuverlĂ€ssigkeit wĂ€hrend des Generierungsprozesses zu verbessern.

Wenn Sie diese Methoden in der Produktion einsetzen, schließen Sie Fehlerbehandlung und Protokollierung ein, um konsistente und zuverlĂ€ssige PDF-Ausgaben zu gewĂ€hrleisten.

Ähnliche Artikel

Apps austauschen

Anwendung 1

Anwendung 2

Schritt 1: WÀhlen ein Auslöser

Schritt 2: WĂ€hle eine Aktion

Wenn das passiert ...

Name des Knotens

Aktion, zum Beispiel löschen

Name des Knotens

Aktion, zum Beispiel löschen

Name des Knotens

Aktion, zum Beispiel löschen

Name des Knotens

Beschreibung des Auslösers

Name des Knotens

Aktion, zum Beispiel löschen

Vielen Dank! Ihre Einreichung wurde erhalten!
Hoppla! Beim Absenden des Formulars ist ein Fehler aufgetreten.

Mach das.

Name des Knotens

Aktion, zum Beispiel löschen

Name des Knotens

Aktion, zum Beispiel löschen

Name des Knotens

Aktion, zum Beispiel löschen

Name des Knotens

Beschreibung des Auslösers

Name des Knotens

Aktion, zum Beispiel löschen

Vielen Dank! Ihre Einreichung wurde erhalten!
Hoppla! Beim Absenden des Formulars ist ein Fehler aufgetreten.
Probieren Sie es jetzt

Keine Kreditkarte notwendig

Ohne EinschrÀnkung

Georgi Miloradowitsch
Forscher, Texter und Usecase-Interviewer
25. MĂ€rz 2025
‱
7
min lesen

Verwandte Blogs

Anwendungsfall

UnterstĂŒtzt von