Heim >Web-Frontend >js-Tutorial >Verwenden Sie Puppeteer mit Node, um PDFs zu erstellen!
Das Generieren dynamischer PDFs ist eine häufige Anforderung in der Webentwicklung. Ob für Rechnungen, Berichte oder Lebensläufe – die Erstellung eines robusten PDF-Generators ist eine wesentliche Fähigkeit für Entwickler. In diesem Artikel führe ich Sie durch die Erstellung eines PDF-Generators mit Node.js und Puppeteer, einer leistungsstarken Headless-Browser-Bibliothek.
Zum Beispiel habe ich dieselbe Methode verwendet, um mein CV Maker-Projekt zu erstellen, das Benutzereingaben entgegennimmt und dynamisch eine PDF-Datei generiert. Die Live-Demo des Projekts können Sie hier sehen: Live-Demo.
Dieser Leitfaden ist in einer einfachen, anfängerfreundlichen Sprache verfasst. Wenn Ihnen ein Teil unklar erscheint, können Sie gerne einen Kommentar hinterlassen, und ich werde mich so schnell wie möglich darum kümmern.
Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:
npm install puppeteer
Wenn Sie auf den vollständigen Quellcode für dieses Tutorial verweisen möchten, sehen Sie sich mein GitHub-Repository an.
Erstellen Sie zunächst einen Endpunkt, an den der Client Daten senden kann, um ein PDF zu generieren. Dazu definieren wir eine einfache POST-Route in unserer index.js (oder einer entsprechenden Hauptserverdatei).
app.post("/data", async (req: Request, res: Response) => { let postData = req.body.data; // Storing the data sent from the client });
Dieser Endpunkt empfängt die Daten, die in das PDF aufgenommen werden müssen.
Um den Code organisiert zu halten, erstellen Sie einen Ordner mit dem Namen „controllers“ in Ihrem Projektverzeichnis. Erstellen Sie in diesem Ordner eine Datei mit dem Namen PdfController.js.
In der Controller-Datei schreiben wir die Logik zum Generieren der PDF-Datei. Dies hält unseren Code modular und erleichtert die Wartung.
Fügen Sie in PdfController.js den folgenden Code hinzu, um mit Puppeteer ein PDF zu generieren:
export default (async function (postData) { try { const browser = await puppeteer.launch({ headless: true, args: ["--no-sandbox", "--disable-gpu"], }); const page = await browser.newPage(); const content = `<html><body><h1>${postData}</h1></body></html>`; await page.setContent(content); await page.emulateMediaType('screen'); await page.pdf({ path: 'resume.pdf', format: 'A4', printBackground: true, }); console.log('PDF created'); await browser.close(); } catch (err) { console.error('Error:', err); } });
Das macht dieser Code:
Verbinden Sie nun die PdfController-Funktion mit dem POST-Endpunkt in index.js:
import PdfController from "./controllers/controller.js"; app.post("/data", async (req: Request, res: Response) => { let postData = req.body.data; // Storing the data sent from the client await PdfController(postData); });
Dadurch wird sichergestellt, dass bei jedem Aufruf des /data-Endpunkts die Logik zum Generieren der PDF-Datei ausgeführt wird.
An dieser Stelle können Sie den Endpunkt mit Postman oder einem anderen HTTP-Client testen. Wenn Sie eine POST-Anfrage mit den relevanten Textdaten senden, wird im Stammverzeichnis des Projekts eine PDF-Datei mit dem Namen „resume.pdf“ erstellt.
Um das generierte PDF als Antwort an den Client zurückzusenden, installieren Sie das fs-extra-Paket:
npm install puppeteer
Dann aktualisieren Sie den POST-Endpunkt wie folgt:
app.post("/data", async (req: Request, res: Response) => { let postData = req.body.data; // Storing the data sent from the client });
Dieser Code sendet die Datei „Lebenslauf.pdf“ als herunterladbaren Anhang an den Kunden.
Und das ist es! ? Sie haben mit Node.js und Puppeteer einen vollständigen PDF-Generator erstellt. Dieses Setup generiert dynamisch PDFs basierend auf Benutzereingaben und sendet sie als herunterladbare Dateien zurück.
Das haben Sie erreicht:
Wenn Sie gut strukturierte und formatierte PDFs generieren möchten (z. B. Lebensläufe oder Rechnungen mit Tabellen und Stilen), lassen Sie es mich in den Kommentaren wissen. Ich würde gerne ein weiteres Tutorial für fortgeschrittene Anwendungsfälle schreiben.
Schauen Sie sich auch gerne den vollständigen Projektcode an. Es ist gut dokumentiert und anfängerfreundlich.
Einen schönen Tag noch!
Das obige ist der detaillierte Inhalt vonVerwenden Sie Puppeteer mit Node, um PDFs zu erstellen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!