So generieren Sie PDFs mit Node.js

Blog

So generieren Sie PDFs mit Node.js

  1. PhantomJS
  2. Puppenspieler
  3. Html-pdf-chrom

Was würden wir ohne PDFs tun? Es ist die sicherste und sicherste Art, visuelle Informationen zu speichern, und es ist auf jeder wichtigen Plattform der Welt verfügbar. Die dynamische Erstellung einer druckerfreundlichen Version einer Webseite, einer Benutzerrechnung oder eines Veranstaltungstickets erfordert die Erstellung sicherer Informationen, die ein Benutzer herunterladen, per E-Mail senden oder ausdrucken kann. Mit dieser praktischen Funktionalität bleibt die Möglichkeit, PDFS in absehbarer Zeit zu verwenden, sowohl für Endbenutzer als auch für Entwickler von Webanwendungen hoch.



Die technische Umsetzung eines PDF-Generators ist überraschend schwierig. Dafür gibt es kein standardisiertes Tool und die Bedienung ist komplexer als man vermuten würde. So sehr wir Ihnen auch gerne die definitive Methode zum Generieren von PDFs verraten würden, es gibt einfach keine.<

Wenn Sie keine Zeit und Geduld haben, es selbst zu tun, gibt es bezahlte Optionen. Diese beinhalten:



Ganz problemlos, PDF Crowd ist das einzige ohne eine kostenlose Option und PDF Generator hat keine kostenpflichtigen Optionen zwischen kostenlos und /Monat.

Wenn Sie dagegen lieber selbst eine Lösung implementieren möchten, erstellen Sie am besten einen Headless-Browser mit Node JS. Ein Headless-Browser ist einfach ein Browser ohne GUI, der im Hintergrund einer Webseite ausgeführt werden kann und weiterhin Lösungen implementiert, die ein Browser normalerweise tut. Es gibt mehrere Headless-Node-Browser, die PDFs generieren.



PhantomJS

Ein kopfloser Browser, den es schon seit einiger Zeit gibt, ist PhantomJS . Es handelt sich um eine Open-Source-JavaScript-API, die seit 2011 im Einsatz ist. Leider befindet sie sich seit 2018 nicht mehr in der aktiven Entwicklung, sodass sie möglicherweise nicht mehr lange eine praktikable Option ist. Die Syntax ist jedoch auch für Anfänger einfach zu erlernen, so dass sie vorerst ein Grundnahrungsmittel unter den kopflosen Browsern bleibt.

reagieren natives Template-Typoskript

Der einfachste Weg, ein PDF mit PhantomJS zu erstellen, ist die Render-Methode. Diese Funktion ermöglicht es dem Headless-Browser, eine Datei aus einer beliebigen Webseite zu erstellen; nicht nur PDFs, sondern.jpeg'>Puppeteer , eine API, die von Google Chrome ausgeführt wird. Dank dieser Unterstützung von Google ist Puppeteer extrem mächtig und kann theoretisch alles tun, was Chrome kann. Die Vorteile von Puppeteer gegenüber Phantom sind, dass es besser dokumentiert, unterstützt und flexibler ist. Für einen Neuling ist es etwas schwieriger, PDFs zu erstellen, aber es gibt viele Informationen zur Verwendung auf der GitHub-Seite.
Die Methode von Puppeteer zum Erstellen eines PDFs aus einer Webseite ist ähnlich wie die von Phantom. Es führt eine Reihe asynchroner Aufrufe im Hintergrund Ihres Browsers durch. Hier ist ein Beispiel für denselben Code wie oben, erstellt mit Puppeteer.

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://google.com', {waitUntil: 'networkidle2'}); await page.pdf({path: 'hn.pdf', format: 'A4'}); await browser.close(); })();

Wie Sie sehen können, ist es fast das gleiche wie der PhantomJS-Code, aber etwas komplizierter. Der Vorteil von Puppeteer ist jedoch seine Vielseitigkeit. Die Puppeteer-API bietet eine Vielzahl von Optionen zur PDF-Generierung, die Sie finden können Hier . Der obige Code erzeugt dieses Ergebnis im Vergleich zur Originalseite:

beste maschinelle Lernsprachen

Html-pdf-chrom

Eine dritte Möglichkeit zum Generieren von PDFs aus HTML in Node ist die Verwendung einer Bibliothek namens html-pdf-chrom . Dies ist kein separater Headless-Browser, sondern eine Bibliothek, die die integrierten Headless-Browsing-Funktionen von Chrome ausschließlich zum Generieren von PDFs nutzt. Von den Konvertierungsmethoden ist dies die einfachste, die wir gesehen haben. Die einzige Einschränkung besteht darin, dass Sie eine aktuelle Version von Chrome oder Chromium auf Ihrem Computer installiert haben müssen, um sie verwenden zu können. Wie Puppeteer und Phantom können Sie eine externe Seite in eine PDF-Datei konvertieren oder eine Seite aus einer Vorlage laden, um etwas individueller zu gestalten. Hier ist ein Beispiel für die Verwendung von html-pdf-chrome, um eine externe Seite in ein PDF zu konvertieren.

import * as htmlPdf from 'html-pdf-chrome'; const options: htmlPdf.CreateOptions = { port: 9222, // po }; const url = 'https://github.com/westy92/html-pdf-chrome'; const pdf = await htmlPdf.create(url, options);

Wie Sie sehen, ist es sehr einfach zu bedienen. Leider ist es nicht so gut dokumentiert wie Puppeteer und scheint nicht so viele Optionen zu haben wie Puppeteer oder Phantom. Html-pdf-chrome ist vielleicht am besten für einfachere Aufgaben geeignet, während Puppeteer möglicherweise eine bessere Option für komplexere Aufgaben wie das Erstellen von Rechnungen ist.

Dies sind nur einige der möglichen Lösungen, die derzeit verfügbar sind. Solange die Menschen PDFs aus dem Web benötigen, wird sich das Feld weiterentwickeln und neue Tools werden geschaffen. Vielleicht wird einer zum Industriestandard. In der Zwischenzeit kann Ihnen eine dieser Optionen einen guten Ausgangspunkt bieten. Wenn Sie andere Möglichkeiten zur PDF-Erzeugung mit Node gefunden haben, lassen Sie es uns bitte wissen! Wir sind immer auf der Suche nach neuen Lösungen.

#node-js #nodejs #node