PREISE
USE CASES
LÖSUNGEN
nach Anwendungsfällen
AI Lead ManagementFakturierungSoziale MedienProjektmanagementDatenmanagementnach Branche
MEHR ERFAHREN
BlogTemplateVideosYoutubeRESSOURCEN
COMMUNITYS UND SOZIALE MEDIEN
PARTNER
Puppeteer ist eine Node.js-Bibliothek, die Chrome- oder Chromium-Browser automatisiert und damit ein leistungsstarkes Tool zum Erstellen von PDFs ist. Ob Sie einfache Dokumente oder komplexe Berichte erstellen, Puppeteer bietet Funktionen wie Native PDF-Unterstützung, benutzerdefinierte Layouts und Automatisierungsintegration um den Prozess zu rationalisieren.
Puppeteer eignet sich perfekt für die Automatisierung von Arbeitsabläufen, die Erstellung von Berichten oder den Export von Webinhalten. Von Unternehmen, die Markendokumente erstellen, bis hin zu Entwicklern, die Datenvisualisierungen durchführen – Puppeteer vereinfacht den Prozess und sorgt für qualitativ hochwertige Ergebnisse.
Wenn Sie bereit sind, einzutauchen, führt Sie der Artikel durch die Einrichtung, Anpassung und erweiterten Funktionen wie die Handhabung großer Berichte und die Behebung häufiger Probleme.
Latenode verfügt über eine direkte Integration eines Puppeteer-basierten Headless-Browsers, wodurch Sie diese Bibliothek in Ihre Automatisierungsszenarien integrieren können, um Daten von Websites zu scrapen, Screenshots zu machen, Dateien zu konvertieren und sogar Dienste zu automatisieren, die nicht über eine API verfügen.
Sie können Code beliebiger Komplexität hinzufügen, einschließlich Skripts zur Konvertierung von HTML in PDF. Sobald der Knoten konfiguriert ist, können Sie ihn verknüpfen mit viele weitere Integrationen zur Verbesserung Ihrer Automatisierung: KI-Modelle wie ChatGPT, Datenbanken wie Airtable, CRM-Systeme wie Webflow und viele andere Integrationen.
Um mit Puppeteer PDFs erstellen zu können, müssen Sie es korrekt einrichten und die grundlegenden Konfigurationsoptionen verstehen. Hier ist eine Kurzanleitung, die Ihnen den Einstieg erleichtert.
Um aus einer Webseite eine einfache PDF-Datei zu generieren, erstellen Sie eine app.js
Datei mit folgendem Code:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.freecodecamp.org/', {
waitUntil: 'networkidle0'
});
await page.pdf({
path: 'example.pdf',
format: 'Letter'
});
await browser.close();
})();
Dieses Skript beschreibt den wesentlichen Arbeitsablauf: Starten eines Browsers, Öffnen einer Seite, Navigieren zu einer URL, Generieren der PDF-Datei und Schließen des Browsers.
Puppeteer ermöglicht Ihnen die Anpassung verschiedener Einstellungen für die PDF-Erstellung. Nachfolgend finden Sie einige wichtige Optionen, die Sie ändern können:
Rahmen | Beschreibung | Beispielwert |
---|---|---|
Format | Papier größe | „Letter“, „A4“, „Legal“ |
Breite | Benutzerdefinierte Seitenbreite | „8.5 Zoll“, „215.9 mm“ |
Größe | Benutzerdefinierte Seitenhöhe | „11 Zoll“, „279.4 mm“ |
Landschaft | Seitenausrichtung | wahr / falsch |
Marge | Seitenränder | { oben: '1 Zoll', rechts: '1 Zoll', unten: '1 Zoll', links: '1 Zoll' } |
Verwenden Sie beim Generieren von PDFs aus Webseiten die waitUntil: 'networkidle0'
Dadurch wird sichergestellt, dass alle Netzwerkaktivitäten abgeschlossen sind, bevor die PDF-Datei generiert wird.
Für benutzerdefinierte HTML-Inhalte können Sie PDFs aus lokalen Dateien erstellen. Dies ist besonders hilfreich für Vorlagendokumente oder die Stapelverarbeitung. Aktualisieren Sie die page.goto()
Funktion wie folgt:
await page.goto(`file://${absolutePath}`, {
waitUntil: 'networkidle0'
});
Da Puppeteer auf der Rendering-Engine von Chrome basiert, werden alle von Chrome unterstützten CSS-Stile und Formatierungen in Ihren PDFs korrekt angezeigt. Für komplexere Anforderungen können Sie erweiterte Formatierungstechniken nutzen, um detaillierte PDF-Berichte zu erstellen.
Puppeteer bietet zahlreiche Optionen zum Anpassen Ihrer PDFs. In den folgenden Abschnitten erfahren Sie, wie Sie Kopfzeilen einrichten, das Seitenlayout steuern und ein einheitliches Design gewährleisten.
Sie können Kopf- und Fußzeilen einfügen, indem Sie die PDF-Optionen mit HTML-Vorlagen anpassen. Hier ein Beispiel:
await page.pdf({
displayHeaderFooter: true,
headerTemplate: `<div style="font-size: 10px; padding: 10px; width: 100%; text-align: center;">
<span class="title"></span> | Generated on <span class="date"></span>
</div>`,
footerTemplate: `<div style="font-size: 10px; padding: 10px; width: 100%; text-align: center;">
Page <span class="pageNumber"></span> of <span class="totalPages"></span>
</div>`,
margin: { top: '1.25in', bottom: '1in' }
});
Hier sind die dynamischen Klassen, die Sie verwenden können:
Um Seitenumbrüche zu verwalten und einen reibungslosen Inhaltsfluss sicherzustellen, verwenden Sie CSS-Regeln wie diese:
.no-break {
page-break-inside: avoid;
}
.force-break {
page-break-after: always;
}
Sie können die Papiereinstellungen auch direkt in den PDF-Optionen anpassen:
Rahmen | Optionen | Beispiel |
---|---|---|
Format | Brief, A4, Legal | Format: „Brief“ |
Abmessungen | Benutzerdefinierte Breite/Höhe | Breite: 8.5 Zoll, Höhe: 11 Zoll |
Orientierung | Porträt / Landschaft | Landschaft: wahr |
Die Margen | Benutzerdefinierter Abstand | Rand: { oben: '1 Zoll', unten: '1 Zoll' } |
Optimieren Sie Schriftarten und Grafiken, damit sie zu Ihrem Branding passen:
@font-face {
font-family: 'CustomFont';
src: url('path/to/font.woff2') format('woff2');
}
await page.pdf({ printBackground: true });
body {
-webkit-print-color-adjust: exact;
background-color: #f5f5f5;
}
export FONTCONFIG_FILE=/path/to/fonts.conf
Mit diesen Optionen können Sie PDFs erstellen, die elegant und professionell aussehen.
Die Erstellung komplexer PDF-Berichte erfordert viel Liebe zum Detail, insbesondere bei Datenvisualisierung, Layoutgestaltung und Leistung. Durch die Verbesserung grundlegender Formatierungstechniken können Sie professionelle Dokumente erstellen, die sich von der Masse abheben.
Verbessern Sie Ihre Berichte mit dynamischen Visualisierungen durch die Kombination Puppenspieler, D3.js und Lenker. Hier ist ein Beispiel-Setup für die Integration von Datendiagrammen:
const template = Handlebars.compile(`
<div class="report-container">
{{> dataTable}}
<div id="chart"></div>
</div>
`);
// D3.js chart configuration
const chartConfig = {
container: '#chart',
data: salesData,
width: 800,
height: 400
};
Um sicherzustellen, dass Ihr PDF ein ansprechendes Aussehen erhält, konfigurieren Sie die Ausgabeeinstellungen wie folgt:
await page.pdf({
printBackground: true,
format: 'Letter',
margin: {
top: '0.75in',
right: '0.5in',
bottom: '0.75in',
left: '0.5in'
}
});
„D3.js ist eine JavaScript-Bibliothek zur Bearbeitung von Dokumenten auf Datenbasis. D3 hilft Ihnen, Daten mithilfe von HTML, SVG und CSS zum Leben zu erwecken.“
Sobald Ihre visuellen Elemente vorhanden sind, strukturieren Sie den Bericht mit Inhalten und Seitenzahlen.
Folgen Sie diesen Schritten, um einen Inhaltsverzeichnis und stellen Sie eine genaue Seitennummerierung sicher:
const mainPdf = await page.pdf({
format: 'Letter',
displayHeaderFooter: true
});
const pageMapping = await extractPageNumbers(mainPdf);
const tocHtml = generateTocHtml(pageMapping);
const finalPdf = await mergePdfs([tocPdf, mainPdf]);
Bei größeren Dokumenten müssen Sie zusätzliche Schritte unternehmen, um die Leistung aufrechtzuerhalten.
Die effiziente Bearbeitung umfangreicher Berichte erfordert spezifische Optimierungen. Hier sind einige effektive Techniken:
Technik | Vorteile |
---|---|
Temporäre Dateinutzung | Reduziert den Speicherverbrauch um 20 % |
CPU-Kernbegrenzung | Beschleunigt die Verarbeitung durch Aufgabenausgleich |
Zum Beispiel, Carriyo's Die Implementierung im April 2024 generierte täglich 10,000 PDFs mit einer Latenz von 95 ms (365. Perzentil) auf AWS Lambda. So kann die temporäre Dateiverwaltung angewendet werden:
// Optimize file handling
const tempFile = await saveTempHtml(content);
await page.goto(`file://${tempFile}`, {
waitUntil: 'networkidle0',
timeout: 30000
});
„Durch die Verwendung temporärer Dateien zur Umgehung von Protokollbeschränkungen haben wir sowohl die Leistung als auch die Zuverlässigkeit verbessert.“ – Danindu de Silva
Wenn bei der Navigation Probleme auftreten, protokollieren Sie die Fehler und laden Sie die Seite neu:
try {
await page.goto(url, {
waitUntil: 'networkidle0',
timeout: 30000
});
} catch (error) {
console.error('Navigation failed:', error);
await page.reload();
}
Diese Methoden stellen sicher, dass die Erstellung Ihrer Berichte im großen Maßstab zuverlässig und effizient bleibt.
Die Behebung häufiger Probleme ist entscheidend für einen reibungslosen und zuverlässigen Ablauf Ihrer automatisierten PDF-Workflows. Die folgenden Lösungen bauen auf den zuvor besprochenen Konfigurationsgrundlagen auf.
Im dritten Quartal 3 behob das Entwicklungsteam von Acme Corp. den Fehler „Chrome konnte nicht gestartet werden“ auf Ubuntu-Servern durch die Installation der erforderlichen Abhängigkeiten. Dies reduzierte die Fehlerrate um 2023 % und sparte 95 Stunden pro Woche an Debugging-Zeit.
Verwenden Sie bei Problemen beim Start von Chrome unter Windows die folgende Konfiguration:
const browser = await puppeteer.launch({
ignoreDefaultArgs: ['--disable-extensions'],
args: ['--disable-features=HttpsFirstBalancedModeAutoEnable']
});
So beheben Sie häufige Fehler effizient:
Fehlertyp | Die Lösung | Impact der HXNUMXO Observatorien |
---|---|---|
Modul nicht gefunden | Aktualisieren Sie Node.js auf v14+ | Behebt Abhängigkeitskonflikte |
Navigations-Timeout | Festlegen benutzerdefinierter Timeout-Werte | Verhindert vorzeitige Skriptfehler |
Sandbox-Probleme | Berechtigungen anpassen | Gewährleistet eine sichere Ausführung |
Um beispielsweise Navigationstimeouts zu verarbeiten, können Sie diese Wiederholungslogik verwenden:
const navigateWithRetry = async (page, url) => {
try {
await page.goto(url, {
waitUntil: 'networkidle0',
timeout: 30000
});
} catch (error) {
console.error('Navigation error:', error);
await page.reload();
}
};
Sobald die Fehler behoben sind, können Sie sich auf die Verbesserung der Geschwindigkeit konzentrieren, um die Effizienz Ihres Arbeitsablaufs zu steigern.
Nach der Fehlerbehandlung besteht der nächste Schritt darin, die PDF-Generierungsgeschwindigkeit zu erhöhen. Beispielsweise generiert Carriyo täglich 10,000 PDFs mit einer p95-Latenz von 365 ms auf AWS Lambda.
Hier ist ein Codeausschnitt zur Leistungsoptimierung durch lokale Bereitstellung statischer Assets:
await page.setRequestInterception(true);
page.on('request', request => {
if (request.resourceType() === 'font' || request.resourceType() === 'image') {
request.respond({
body: localFileContent,
headers: { 'Cache-Control': 'public, max-age=31536000' }
});
}
});
Berücksichtigen Sie bei groß angelegten Operationen die folgenden Strategien:
„Durch die Verwendung temporärer Dateien zur Umgehung von Protokollbeschränkungen haben wir sowohl die Leistung als auch die Zuverlässigkeit verbessert.“ – Danindu de Silva
Latenode vereinfacht die Verwendung von Puppeteer zum Generieren von PDFs und bietet eine skalierbare und kosteneffiziente Möglichkeit zur Automatisierung von Dokument-Workflows.
Latenode kombiniert die PDF-Funktionen von Puppeteer mit Tools wie einem visuellen Workflow-Builder, KI-gestützter Codegenerierung und bedingter Logik. Es unterstützt außerdem eine breite Palette von NPM-Paketen. Die Plattform nutzt ein zeitbasiertes Kreditsystem, das die Kosten für die PDF-Automatisierung effizient verwaltet.
Aufbauend auf der Kernfunktionalität von Puppeteer vereinfacht Latenode komplexe PDF-Workflows mit einer benutzerfreundlichen, auf Skalierbarkeit ausgelegten Oberfläche.
Hier sind die herausragenden Funktionen der PDF-Automatisierung:
Um Puppeteer zur PDF-Generierung auf Latenode zu verwenden, können Sie dieser grundlegenden Einrichtung folgen:
const puppeteer = require('puppeteer');
async function generatePDF(url) {
const browser = await puppeteer.launch({
headless: true,
args: ['--disable-dev-shm-usage']
});
const page = await browser.newPage();
await page.goto(url, { waitUntil: 'networkidle0' });
const pdf = await page.pdf({ format: 'A4' });
await browser.close();
return pdf;
}
Um die Sicherheit der Dokumenterstellung zu gewährleisten, speichern Sie vertrauliche Informationen wie Anmeldeinformationen in Umgebungsvariablen:
await page.type('#email', process.env.PDF_USER);
await page.type('#password', process.env.PDF_PASSWORD);
Dieses Setup gewährleistet einen sicheren und effizienten Workflow zum Erstellen von PDFs.
Bei der Entscheidung für eine Plattform zur PDF-Automatisierung schneidet Latenode im Vergleich zu herkömmlichen Tools wie folgt ab:
Merkmal | Latenknoten | Herkömmliche Automatisierungstools |
---|---|---|
Preismodell | Zeitbasierte Credits ab 5 $/Monat | Lizenzierung pro Dokument oder Benutzer |
Workflow-Grenzen | 20–unbegrenzt | Oft durch gleichzeitige Ausführungen eingeschränkt |
NPM-Paketunterstützung | Über 1 Million Pakete | Normalerweise beschränkt auf plattformspezifische Module |
Ausführungsverlauf | Aufbewahrung für 1–60 Tage | Oft auf grundlegende Protokollierung beschränkt |
Für den Einsatz in Unternehmen bietet Latenodes Prime-Plan (297 $/Monat) Unterstützung für bis zu 1.5 Millionen Szenarioläufe und speichert den Ausführungsverlauf 60 Tage lang. Dies macht ihn zu einer hervorragenden Wahl für Unternehmen mit hohem PDF-Generierungsbedarf.
Die Plattform vereinfacht auch Aufgaben wie das Ändern des Seitenstils vor der PDF-Erstellung. Mit diesem Codeausschnitt können Sie beispielsweise bestimmte Elemente ausblenden:
await page.addStyleTag({
content: '.nav { display: none } .navbar { border: 0px } #print-button { display: none }'
});
Diese Flexibilität trägt dazu bei, selbst die komplexesten PDF-Workflows zu optimieren.
Puppeteer ist ein leistungsstarkes Tool zum Erstellen von PDFs, egal ob Sie mit einfachen Dokumenten oder komplexen Berichten arbeiten. Dank seiner Fähigkeit, moderne Webtechnologien zu verarbeiten und die PDF-Ausgabe präzise zu steuern, eignet es sich hervorragend für umfangreiche Anwendungsfälle.
Zum Beispiel, Carriyo Im April 2024 nutzte Puppeteer erfolgreich, um täglich 10,000 PDFs für Versandetiketten auf AWS Lambda zu generieren. Sie erreichten eine p95-Latenz von 365 ms bei Kosten von 7.68 $ für 430,000 Aufrufe.
Hier sind einige herausragende Funktionen und ihre praktischen Vorteile:
Merkmal | Vorteile | Auswirkungen auf die reale Welt |
---|---|---|
Kopfloser Browser | Ermöglicht serverseitiges Rendering mit modernen Webfunktionen | Verarbeitet dynamische Inhalte, JavaScript und CSS präzise |
Ressourcenoptimierung | Speichert Assets im Cache und deaktiviert ungenutzte Funktionen, um die Leistung zu steigern | Verbessert die Effizienz bei der PDF-Erstellung |
Fehlerbehandlung | Enthält Wiederholungsmechanismen und Timeout-Kontrollen | Gewährleistet Zuverlässigkeit in Produktionsumgebungen |
Skalierbarkeit | Unterstützt die Generierung großer PDF-Volumina | Bewährte Leistung bei hoher Arbeitsbelastung |
Um Puppeteer optimal zu nutzen, beachten Sie für eine erfolgreiche Bereitstellung die folgenden Schritte:
userDataDir
Einstellung zum Zwischenspeichern von Ressourcen und Deaktivieren nicht verwendeter Funktionen, um die PDF-Generierung zu beschleunigen.
Für ein noch reibungsloseres Erlebnis können Sie Puppeteer mit Plattformen wie Latenode integrieren, um Arbeitsabläufe zu vereinfachen und gleichzeitig die Spitzenleistung aufrechtzuerhalten.