Vergleiche

gPdf vs jsPDF: PDF-Erzeugung im Browser oder Edge-API

Direkter Vergleich: jsPDF ist beliebt für schnelle PDFs im Browser, aber CJK-Schriften, Barcode-Genauigkeit, mobiler Speicher und Compliance ändern die Architektur.

Kurzfassung

jsPDF ist eine praktische Wahl für leichte Browser-PDFs, Prototypen, Belege und Offline-Exporte. Die Grenze zeigt sich, wenn Produktionsdokumente CJK-Text, scannerfeste Barcodes, mobile Stabilität oder Compliance-Ausgaben brauchen. gPdf verlagert Schriftarten, Barcodes, Layout und PDF-Erzeugung in eine kontrollierte Edge-API: Der Browser sendet Daten und erhält ein fertiges PDF.

Seite an Seite

Kriterium gPdf jsPDF Vorteil
Wo gerendert wird
jsPDF ist wertvoll, weil es im Client läuft; dieselbe Eigenschaft verlagert CPU- und Speicherdruck auf jedes Endgerät.
Cloudflare Workers V8-Isolates am Edge Browser-Tab des Nutzers gPdf
CJK-Schriften
Die Standard-PDF-Schriften von jsPDF decken UTF-8/CJK nicht ab; Teams müssen passende TTF-Daten laden oder paketieren.
Gebündelter Fallback für vereinfachtes Chinesisch, Japanisch und Koreanisch Benötigt eine eigene Schrift mit den passenden Glyphen gPdf
Frontend-Payload für CJK Keine CJK-Schriftdatei im Web-App-Bundle Oft mehrere MB an Font-Dateien oder generierten base64-Font-Modulen gPdf
Barcode-Modell Natives `barcode`-Element für 1D- und 2D-Formate Meist kombiniert mit separater Barcode-Bibliothek, SVG/Canvas oder Bildpipeline gPdf
Barcode-Druckgenauigkeit
Bei Versandlabels, Lageretiketten und Tickets zählen gedruckte Geometrie, Quiet Zones und Modulgröße, nicht nur die Bildschirmansicht.
Vektor-Balken und -Module direkt im PDF Hängt davon ab, wie der Browser-Barcode konvertiert und skaliert wird gPdf
Mobile Browser-Stabilität Rendering-Arbeit wird aus dem Tab ausgelagert PDF-Erzeugung, Fonts, Bilder und Barcodes belegen Client-Speicher gPdf
Offline-Unterstützung Benötigt Netzwerkzugriff auf die API Kann in einer PWA oder lokalen App vollständig offline laufen jsPDF
PDF/A und E-Invoicing PDF/A-Profile und Factur-X/ZUGFeRD-Endpunkt Nicht die naheliegende Wahl für Archivierung oder hybride E-Rechnungspakete gPdf
Listenpreis 5 USD/Monat Basic Plan enthält 100.000 Seiten; Mehrverbrauch startet bei 0,00005 USD pro Seite Open-Source-Bibliothek; keine Anbieterrechnung für die Bibliothek selbst jsPDF
Produktionsbetriebskosten API übernimmt Fonts, Barcode-Rendering, Ausgabeumgebung und Upgrades Ihre Web-App übernimmt Font-Paketierung, Barcode-Konvertierung, mobilen Speicher und Browser-QA gPdf
Bester Standardfall Strukturierte Produktionsdokumente: Labels, Rechnungen, Belege, Tickets, Auszüge Kleine Browser-Exporte, Prototypen, Offline-Dokumente und einfache PDFs mit lateinischem Text Gleichstand

Wann was wählen

gPdf wählen, wenn
  • Ihre Dokumente enthalten Chinesisch, Japanisch oder Koreanisch und Sie möchten keine großen Font-Dateien an jeden Browser ausliefern.
  • Sie erzeugen scan-kritische Labels oder Tickets mit Code 128, GS1-128, QR, DataMatrix, PDF417 oder anderen Barcodes.
  • Ihre Nutzer arbeiten oft in mobilen Browsern und PDF-Erzeugung soll nicht mit der Seite um Speicher konkurrieren.
  • Sie benötigen PDF/A, Factur-X, ZUGFeRD oder einen kontrollierten Renderer für auditrelevante Ausgaben.
  • Derselbe PDF-Ablauf muss aus Frontend, Backend, Jobs und Integrationen aufrufbar sein.
jsPDF wählen, wenn
  • Sie brauchen einen vollständig offlinefähigen Browser- oder PWA-Export ohne Serveraufruf.
  • Das PDF ist klein, nur Latin-Text und wird gelegentlich von einem Nutzer erzeugt.
  • Sie prototypisieren und möchten möglichst schnell Text, Linien und Bilder in JavaScript zeichnen.
  • Daten dürfen das Gerät des Nutzers nicht verlassen, auch nicht für eine kurzlebige Render-Anfrage.
  • Sie akzeptieren, Font-Paketierung, Barcode-Encoding, Skalierung und Browser-Speicherfälle selbst zu besitzen.
Funktionen

gPdf ist eine JSON-zu-PDF-API am Edge für hochvolumige Rechnungen, Dokumente, Versandetiketten, Barcodes, PDF/A und E-Rechnungen. PDF-Rendering im Millisekundenbereich auf globaler Edge-Infrastruktur — optimiert für vorhersehbare, industrietaugliche Dokumentenerzeugung. Infrastruktur-Level-Preise, niedrig genug, um den Aufbau und Betrieb Ihrer eigenen PDF-Infrastruktur zu ersetzen.

Funktionen

jsPDF ist stark für leichte Browser-Exporte

jsPDF ist beliebt, weil es ein echtes Produktproblem löst: ein PDF im Browser erzeugen, ohne einen Backend-Service zu betreiben. Ein Entwickler kann Text, Linien, Bilder und einfache Tabellen zeichnen und den Download direkt auf derselben Seite auslösen. Für Prototypen, kleine Admin-Oberflächen, lokale Belege und Offline-PWAs passt das gut.

Die Produktfrage lautet, wo diese Browser-Grenze aufhört, die richtige zu sein. Sobald das PDF ein Geschäftsdokument wird, das Kunden scannen, archivieren, per E-Mail weitergeben oder in ein anderes System hochladen, ist es nicht mehr nur “eine Datei zeichnen”. Dann geht es um Font-Management, Barcode-Genauigkeit, mobile Stabilität, deterministische Ausgabe und manchmal PDF/A oder E-Invoice-Pakete.

Gleiches PDF-Ergebnis, andere Produktgrenze

Mit jsPDF ist Ihre Frontend-App der Renderer. Jeder Browser-Tab muss die Bibliothek, eigene Fonts, Zwischenbilder, Barcode-Ausgaben und die finalen PDF-Bytes halten. Die Bibliotheksrechnung bleibt bei null, aber die Produktionsverantwortung liegt auf jedem Nutzergerät.

Mit gPdf sendet Browser oder Backend eine strukturierte DocumentRequest- oder template_id + data-Anfrage. gPdf besitzt Render-Umgebung, gebündelte Fonts, Barcode-Geometrie und binäre PDF-Erzeugung am Edge. Die Anwendung bleibt für Daten und Vorlagenlogik verantwortlich, nicht für die PDF-Engine.

Produktpassung: Offline-Export oder operative Dokumente

Wählen Sie jsPDF, wenn das PDF eine lokale Komfortfunktion ist: ein kleiner Export-Button, ein einfacher Beleg mit lateinischem Text, ein Dashboard-Snapshot oder eine PWA, die ohne Netzwerk weiterarbeiten muss.

Wählen Sie gPdf, wenn das PDF Teil eines operativen Ablaufs ist: Versandlabels, Lageretiketten, Rechnungen, Tickets, Kontoauszüge, Zollformulare und grenzüberschreitende Belege. Diese Dokumente brauchen dieselbe Ausgabe auf allen Geräten, nicht das, was der aktuelle Browser-Tab gerade sicher zusammenbauen kann.

Kostenmodell: freie Bibliothek vs verantwortete Produktionsfläche

jsPDF hat den offensichtlichen Preisvorteil: Die Bibliothek selbst ist Open Source, und Browser-CPU erscheint nicht auf Ihrer Cloud-Rechnung. Für ein kleines internes Feature kann das der günstigste Weg sein.

Die Produktionskosten entstehen um die Bibliothek herum:

  • CJK-fähige Font-Dateien oder generierte Base64-Font-Module.
  • Barcode-Encoding- und Konvertierungsbibliotheken.
  • Browser-spezifische Speicher- und Download-Bugs.
  • Druck-QA für Scanner und Thermodrucker.
  • Regressionstests über Desktop, iOS Safari, Android WebView und eingebettete Browser.

gPdf macht daraus eine Nutzungsrechnung. Der öffentliche Basic Plan startet bei 5 USD/Monat für 100.000 Seiten; Standard-Mehrverbrauch startet bei 0,00005 USD pro Seite. Das ist ein Anbieterkostenpunkt, entfernt aber die Notwendigkeit, jedes Frontend-Bundle und jedes Nutzergerät wie einen Produktions-PDF-Service zu behandeln.

CJK-Kosten sind nicht nur Dateigröße

Die erste harte Grenze ist CJK-Text: Chinesisch, Japanisch und Koreanisch.

Die integrierten Standard-PDF-Schriften von jsPDF reichen für einfache Ausgaben mit lateinischem Text, decken aber nicht alle Unicode-Glyphen ab. Enthält das Dokument CJK-Text, braucht die Anwendung eine Schrift, die diese Glyphen tatsächlich enthält. Browserseitige Implementierungen paketieren dafür häufig eine TTF-Datei, wandeln sie in ein Base64-JavaScript-Modul um oder laden Font-Daten vor der PDF-Erzeugung.

Diese Kosten werden doppelt bezahlt: zuerst als größerer Frontend-Payload, dann erneut als Browser-Speicher während der PDF-Erzeugung. Auf Mobilgeräten hält derselbe Tab dann Web-App, Font, Barcode-Puffer, Bilder und finale PDF-Bytes gleichzeitig im Speicher.

gPdf hält diese Arbeit serverseitig. Der Browser sendet strukturiertes JSON; der Renderer wählt aus gebündelten Fonts für Latein, Griechisch, Kyrillisch, CJK, Arabisch, Devanagari, Bengali, Thai und Monospace-Text. Eine 2-KB-Bestellung muss nicht zu einem 12-MB-Font-Delivery-Pfad werden.

Barcode-Kosten: Encoding ist leicht, Druckzuverlässigkeit ist schwerer

In Logistik, E-Commerce, Fertigung, Gesundheitswesen, Ticketing und Retail kann der Barcode wichtiger sein als der sichtbare Text. Menschen lesen die Bestellnummer; der Betrieb liest Code 128, GS1-128, QR, DataMatrix oder PDF417.

Mit jsPDF ist Barcode-Erzeugung meist eine separate Produktentscheidung. Teams kombinieren jsPDF mit einem Encoder, rendern den Barcode in SVG, Canvas oder ein Bild und setzen das Ergebnis dann ins PDF. Für einen Coupon-QR-Code oder einen Proof of Concept funktioniert das.

Fragil wird es, wenn der gedruckte Barcode operativ kritisch ist:

  • Ein Canvas-Barcode kann mit falscher Auflösung gerastert werden.
  • Ein skaliertes Bild kann Balken, Module oder Quiet Zones verwischen.
  • Browser, CSS-Transformation oder Exportpfad können die finale physische Größe ändern.
  • Unterschiedliche Barcode-Formate benötigen oft unterschiedliche Libraries oder Konvertierungspfade.
  • Thermodrucker mit 203 DPI zeigen kleine Größenfehler schnell.

gPdf behandelt Barcodes als Dokumentelemente. Die Anfrage enthält type: "barcode", format, Nutzdaten und physische Maße in Millimetern. Der Renderer schreibt Vektor-Barcode-Geometrie für unterstützte 1D- und 2D-Formate direkt ins PDF, sodass Text, Formen, Tabellen, Bilder und Barcodes in einem Koordinatensystem bleiben.

Studio und Vorlageniteration

jsPDF ist code-first. Eine Layoutänderung bedeutet meist Änderungen an Zeichenbefehlen, Positionen, Font-Registrierung, Bildkonvertierung und Barcode-Platzierung in JavaScript.

gPdf unterstützt denselben API-orientierten Ablauf, ergänzt ihn aber um gPdf Studio als kostenlosen visuellen Designer für das PDF-Layout. Teams können Text, Bilder, Tabellen, Formen, Kopf- und Fußbereiche sowie Barcodes hinzufügen und verschieben und das Design anschließend mit template_id + data verbinden. Das zählt, wenn sich Label-, Rechnungs- oder Belegformate häufig ändern und nicht jeder Beteiligte PDF-Spezialist ist.

Mobile Browser sind der falsche Ort für schwere PDF-Arbeit

Clientseitige PDF-Erzeugung wirkt billig, weil die Serverrechnung null ist. Die Kosten wandern zum Nutzergerät.

Auf dem Desktop kann das akzeptabel sein. In mobilen Browsern kann ein Produktionsdokument den Tab hart belasten: CJK-Font-Daten, Base64-Bilder, Canvas-Puffer, Barcode-Bilder, erzeugte PDF-Bytes und die laufende App konkurrieren gleichzeitig um Speicher. iOS Safari und speicherschwache Android-Geräte sind weniger großzügig als ein Entwickler-Laptop.

Die Verlagerung zu gPdf ändert die Form des Problems. Der Browser baut eine kleine JSON-Anfrage, wartet auf eine binäre Antwort und lädt das fertige PDF herunter. Der Tab des Nutzers muss nicht Font-Manager, Barcode-Renderer, Layout-Engine und binärer PDF-Writer zugleich sein.

Wann jsPDF weiterhin richtig ist

Es gibt gute Gründe, bei jsPDF zu bleiben.

Wenn der Nutzer offline exportieren muss, ist jsPDF die bessere Wahl. Wenn Daten das Gerät überhaupt nicht verlassen dürfen, ist browserseitige Erzeugung die sauberere Datenschutzgrenze. Wenn das Dokument klein ist, nur lateinischen Text enthält und gelegentlich genutzt wird, lohnt sich die operative Komplexität einer API möglicherweise nicht. Für Prototypen und interne Tools ist jsPDF oft der schnellste Weg.

Die Entscheidung ändert sich, wenn die Ausgabe Teil eines operativen Ablaufs ist: ein Versandlabel, das scannen muss; eine Rechnung, die archiviert wird; ein Ticket, das geprüft wird; oder ein grenzüberschreitendes Auftragsdokument, das CJK-Namen korrekt darstellen muss. Dann ist “PDF im Browser erzeugen” weniger wichtig als “dasselbe Produktions-PDF zuverlässig erzeugen”.

Migrationsform

Die Migration ist kein Austausch eines Funktionsaufrufs. Sie verlagert imperative Browser-Zeichnung in eine strukturierte Dokumentanfrage.

- // Before: browser-side drawing with jsPDF plus extra font/barcode setup.
- import { jsPDF } from "jspdf";
- import JsBarcode from "jsbarcode";
-
- const doc = new jsPDF({ unit: "mm", format: [100, 150] });
- // Load a CJK-capable TTF and register it before drawing CJK text.
- doc.addFileToVFS("NotoSansCJK-Regular.ttf", base64Font);
- doc.addFont("NotoSansCJK-Regular.ttf", "NotoSansCJK", "normal");
- doc.setFont("NotoSansCJK");
- doc.text("跨境订单 / Cross-border order", 6, 10);
-
- // Generate a barcode separately, then place it into the PDF.
- JsBarcode(canvas, "PDN0003507278", { format: "CODE128" });
- doc.addImage(canvas.toDataURL("image/png"), "PNG", 6, 72, 72, 20);
- doc.save("label.pdf");
+
+ // After: send one structured DocumentRequest to gPdf.
+ const res = await fetch("https://api.gpdf.com/api/v1/pdf/render", {
+   method: "POST",
+   headers: {
+     Authorization: `Bearer ${KEY}`,
+     "Content-Type": "application/json"
+   },
+   body: JSON.stringify({
+     settings: {
+       defaults: {
+         text: {
+           font_family: "NotoSans-Regular",
+           font_mode: "prefer",
+           font_size: 9,
+           color: "#111827"
+         }
+       }
+     },
+     pages: [{
+       width: 100,
+       height: 150,
+       elements: [
+         {
+           type: "text",
+           x: 6,
+           y: 8,
+           content: "跨境订单 / Cross-border order",
+           style: { width: 88, font_size: 12, font_weight: "bold" }
+         },
+         {
+           type: "barcode",
+           x: 6,
+           y: 70,
+           width: 72,
+           height: 18,
+           format: "code128",
+           content: "PDN0003507278",
+           barcode_text: { enabled: true, position: "bottom", offset: 1 }
+         },
+         {
+           type: "barcode",
+           x: 80,
+           y: 8,
+           width: 14,
+           height: 14,
+           format: "qrcode",
+           content: "https://track.example/PDN0003507278",
+           barcode_text: { enabled: false, position: "bottom" }
+         }
+       ]
+     }]
+   })
+ });
+ const pdf = await res.arrayBuffer();

Der wichtige Wechsel ist die Zuständigkeit. Mit jsPDF besitzt Ihre Web-App den CJK-Font-Pfad, die Barcode-Erzeugung, das Browser-Speicherprofil und das Exportverhalten. Mit gPdf besitzt Ihre Anwendung Daten und Vorlage; der Edge-Renderer besitzt die Dokumentmechanik.

Verwandte PDF-Generierungsszenarien

Teams, die jsPDF und gPdf vergleichen, prüfen meist zuerst, ob die PDF-Erzeugung im Browser bleiben muss oder in eine kontrollierte API wandern kann. Für strukturierte Dokumente sind JSON-to-PDF API, Rechnungs-PDF API, Versandlabel API, GS1 Barcode API und Template PDF API die naheliegenden nächsten Seiten. Wenn Archivierung oder E-Invoicing wichtig sind, lesen Sie zusätzlich PDF/A API und Factur-X API.

FAQ

Ist jsPDF kostenlos?

Die Bibliothek selbst ist Open Source. Die Produktionskosten liegen in der Arbeit darum herum: CJK-Fonts, Barcode-Bibliotheken, Browser-QA, Druck-QA und Support für Geräte, denen der Speicher ausgeht.

Ersetzt gPdf jeden jsPDF-Anwendungsfall?

Nein. Offline-Browser-Export und lokale Dokumente bleiben das natürliche Gebiet von jsPDF. gPdf ist für Produktionsdokumente gedacht, bei denen ein kontrollierter Renderer den API-Aufruf wert ist.

Warum werden Barcode-Kosten separat erwähnt?

Weil ein Barcode auf dem Bildschirm gut aussehen und nach Skalierung, Rasterung oder Thermodruck trotzdem scheitern kann. Operative Dokumente brauchen Scanner-Zuverlässigkeit, nicht nur ein sichtbares Muster.

Siehe auch