Start / Magazin / KI, Automatisierung & Reporting

pdfcn im Test: Rechnungen und Reports mit React, ohne Chrome

Titelbild: pdfcn im Praxistest, PDFs mit React bauen, ohne Chrome. Deutsche Rechnung, Lieferschein und SEO-Report mit pdfcn, dazu die Messwerte 30 ms mit Takumi, 35 ms mit Forme und 91 ms mit Chrome über Puppeteer, daneben eine deutsche Beispielrechnung und die erste Seite des SEO-Monatsberichts

Alles auf einen Blick

  • pdfcn ist eine kostenlose Sammlung von PDF-Bausteinen für React unter MIT-Lizenz: 24 Komponenten, 20 fertige Vorlagen und 9 Themes, verteilt über die Registry der shadcn-Kommandozeile. Der Code liegt danach komplett in deinem Projekt.
  • Dahinter steht Aniket Pawar aus Mumbai mit seinem Projekt Shadcn Labs. Mit shadcn, dem Macher von shadcn/ui, hat pdfcn nichts zu tun, auch wenn es auf Hacker News so verbreitet wurde.
  • Gerendert wird mit Takumi oder Forme, zwei Engines in Rust, die als WebAssembly laufen. Einen Chrome auf dem Server brauchst du nicht: 4,4 MB statt 602 MB Installation.
  • In meinem Test brauchte Takumi für eine einseitige Rechnung 30 ms, Chrome 91 ms. Bei 120 Positionen lag Forme mit 84 ms vorn, Takumi brauchte 174 ms.
  • Die Vorlagen sind auf Englisch und US-Format gebaut. Für eine deutsche Rechnung habe ich 24 Stellen im Code geändert. Umlaute, ß und € kommen danach sauber heraus.
  • Sieben Stolpersteine im Test, von der fehlenden Registry über eine verrutschte Fußzeile bis zu Beispieldaten, die sich in echte Belege mischen. Alle lassen sich mit wenigen Zeilen lösen.
  • Eine PDF-Rechnung ist keine E-Rechnung. Im B2B-Geschäft braucht es spätestens ab 2028 XRechnung oder ZUGFeRD. Takumi und Forme bauen die Hülle dafür, die XML-Daten musst du selbst liefern.
Inhaltsverzeichnis14 Abschnitte
  1. Was ist pdfcn?
  2. Wer steckt hinter pdfcn?
  3. Was kann man mit pdfcn bauen?
  4. Wofür braucht man das im Alltag?
  5. So installierst du pdfcn
  6. Takumi oder Forme: Welche Engine solltest du nehmen?
  7. Mein Praxistest: deutsche Rechnung, Lieferschein und SEO-Bericht
  8. pdfcn, react-pdf oder Puppeteer: Was passt wann?
  9. Wichtig in Deutschland: Eine PDF-Rechnung ist keine E-Rechnung
  10. Wie schnell wächst pdfcn?
  11. Meine Meinung: Für wen sich pdfcn lohnt
  12. Häufige Fragen
  13. Fazit
  14. Quellen

Wer aus einer Web-Anwendung PDFs erzeugen will, hatte bisher meist zwei Wege. Entweder läuft auf dem Server ein kompletter Chrome, der eine HTML-Seite druckt. Oder jede Rechnung wird in einer eigenen Layout-Sprache wie bei react-pdf Zeile für Zeile zusammengesetzt. pdfcn verspricht einen dritten Weg: fertige PDF-Bausteine für React, die mit einem Befehl im eigenen Projekt landen und ohne Browser rendern. Seit dem Start am 12. August 2026 hat das Projekt 2.746 Sterne auf GitHub gesammelt.

Ich wollte wissen, ob das für Shops und Agenturen im Alltag taugt. Also habe ich pdfcn am 30. September 2026 frisch auf meinem Mac installiert und drei Dokumente gebaut: eine deutsche Rechnung, einen Lieferschein und einen SEO-Monatsbericht mit echten Search-Console-Zahlen von Opal-Schmiede. Dazu kommt eine Zeitmessung gegen Chrome. Beim Aufsetzen der Tests und beim Sortieren der Quellen hat mir KI geholfen, jede Zahl in diesem Beitrag stammt aus den gespeicherten Messdaten und Originalquellen.

GitHub-Sterne2.746in sieben Wochen seit dem 11.08.2026, MIT-Lizenz
Bausteine je Engine24 + 20Komponenten und fertige Vorlagen, dazu 9 Themes
Rechnung, warm gerendert30 msmit Takumi; Forme 35 ms, Chrome 91 ms (eigener Test)
Installiert für eine Rechnung18 Dateienund 2 Pakete mit 4,4 MB, Puppeteer samt Chrome braucht 602 MB
Änderungen für Deutsch24 StellenBeschriftungen, Währung und Steuer stehen fest im Code
Stolpersteine im Test7alle lösbar, keiner steht auf der Startseite

Was ist pdfcn?

pdfcn ist eine Sammlung von Bausteinen für PDF-Dokumente in React: Kopfzeilen, Tabellen, Summenblöcke, QR-Codes, Unterschriftsfelder, Diagramme und fertige Vorlagen für Rechnungen, Lieferscheine, Berichte oder Eintrittskarten. Der Name spielt auf shadcn/ui an, die bekannteste Sammlung von Oberflächen-Bausteinen für React. pdfcn überträgt deren Prinzip auf Dokumente. Du installierst keine Bibliothek, in die du nicht hineinschauen kannst, sondern kopierst den Quellcode der Bausteine mit einem Befehl in dein Projekt. Ab dann gehört er dir.

Startseite von pdfcn.dev mit der Überschrift Beautiful PDFs, made simple, einem Installationsbefehl mit Auswahl für bun, npm, pnpm und yarn, den Knöpfen Get Started und Browse Components sowie dem Beginn der Live-Vorschau corporate-invoice.tsx
Die Startseite von pdfcn.dev: Installationsbefehl, Hinweis auf den Theme-Builder und darunter eine Live-Vorschau. Screenshot vom 30.09.2026, Quelle: pdfcn.dev.

Das shadcn-Prinzip in zwei Absätzen

Eine klassische Bibliothek installierst du als Paket. Updates kommen vom Hersteller, eigene Änderungen am Paket gehen beim nächsten Update verloren. Bei shadcn/ui und damit bei pdfcn liegt der Code nach der Installation als ganz normale Dateien in deinem Projekt. Du änderst ihn wie eigenen Code, und Updates holst du bewusst oder gar nicht.

Das hat eine Kehrseite, die in Ankündigungen selten vorkommt. Nachdem ich alle 20 Vorlagen installiert hatte, lagen in meinem Testprojekt 14.685 Zeilen pdfcn-Code. Die pflegst du ab dann selbst. Für ein Projekt mit drei Belegarten ist das kein Problem, du installierst ja nur, was du brauchst: Für die Rechnung waren es 18 Dateien.

Takumi und Forme: die Engines darunter

pdfcn zeichnet selbst nichts. Die eigentliche Arbeit machen zwei Engines, die beide in Rust geschrieben sind und als WebAssembly laufen, also ohne Browser. Takumi stammt von Kane Wang und rendert Vorschaubilder für soziale Netzwerke und seitenweise PDFs aus JSX, HTML und CSS, in Node, Bun, im Browser und in Cloudflare Workers. Forme stammt von Dan Molitor und ist eine Dokument-Engine, die HTML mit Print-CSS versteht und Vorlagen aus React, Svelte, Vue oder Preact annimmt. pdfcn bietet jede Komponente für beide Engines mit derselben Schnittstelle an. Auf der Startseite schaltest du oben rechts zwischen beiden um.

Live-Vorschau auf pdfcn.dev: links die Dokumente Corporate invoice, Financial report und Minimal invoice, in der Mitte die gerenderte Rechnung von pdfcn an Global Industries Ltd. mit Tabelle, rechts die Liste Components Used mit Page header, Key-value, Table, Section, Text und Page footer, oben die Umschalter Takumi und Forme
Die Live-Vorschau auf der Startseite zeigt, aus welchen sechs Komponenten die Beispielrechnung besteht. Oben rechts wechselst du zwischen Takumi und Forme. Screenshot vom 30.09.2026, Quelle: pdfcn.dev.

Wer steckt hinter pdfcn?

pdfcn stammt von Aniket Pawar, einem Designer und Entwickler aus Mumbai (auf GitHub Aniket-508, auf X @alaymanguy). Von den 157 Commits im Projekt stammen 111 von ihm. Veröffentlicht hat er pdfcn unter dem Namen Shadcn Labs, einer GitHub-Organisation, die es seit April 2026 gibt. Sie zählt inzwischen 24 öffentliche Projekte, die meisten nach demselben Muster: termcn für Oberflächen im Terminal (1.168 Sterne), emailcn für E-Mails, ogimagecn für Vorschaubilder, editorcn für Texteditoren und einige mehr. pdfcn ist mit Abstand das erfolgreichste davon.

Beitrag von Aniket Pawar auf X vom 12. August 2026: Introducing pdfcn by @shadcnlabs, Built on Takumi by @kanewang_ and Forme, Zero config, one command setup, @shadcn/ui compatible, 10+ themes, components, blocks, Fully customizable, 100% free and open-source, darunter ein Video der Startseite, 2.035 Likes und 39 Antworten
Der Start auf X am 12.08.2026 mit einem kurzen Video der Startseite: 2.035 Likes und 39 Antworten. Screenshot der Einbettung vom 30.09.2026, Quelle: X, @alaymanguy.

Nein, pdfcn kommt nicht von shadcn

Am 20. September 2026 landete pdfcn auf Hacker News mit dem Titel „Beautiful pdf components, built on Takumi and Forme, by Shadcn“. Das ist falsch. shadcn ist der Entwickler hinter shadcn/ui, und Shadcn Labs schreibt auf der eigenen GitHub-Seite selbst: „Not endorsed by or affiliated with shadcn.“ Im offiziellen Verzeichnis der shadcn-Registries mit 408 Einträgen taucht pdfcn am 30.09.2026 nicht auf. Das ist kein Makel, pdfcn nutzt nur die offene Registry-Technik von shadcn. Du solltest es aber wissen, wenn du die Qualität einschätzen willst: Hinter pdfcn steht ein einzelner, sehr fleißiger Entwickler, kein Team mit Firma im Rücken.

Eintrag auf Hacker News: Pdfcn: Beautiful pdf components, built on Takumi and Forme, by Shadcn, 6 Punkte, 1 Kommentar. Der Kommentar von A1Lab-tech lautet: This looks incredibly useful! Generating PDFs directly from web apps is always a pain point with stylingGitHub-Seite der Organisation Shadcn Labs mit 217 Followern, Standort India und 24 Repositories. In der README steht: Welcome to Shadcn Labs und darunter Not endorsed by or affiliated with shadcn
Links der Eintrag auf Hacker News mit der falschen Zuschreibung „by Shadcn“ (6 Punkte, 1 Kommentar), rechts die Klarstellung auf der GitHub-Seite von Shadcn Labs. Screenshots vom 30.09.2026, Quellen: news.ycombinator.com, github.com/shadcn-labs.

Wer sonst mitarbeitet

Elf Menschen haben bisher Code beigesteuert. Kane Wang, der Entwickler von Takumi, hat mit zwölf Commits die Umstellung auf neuere Takumi-Versionen und die Fußzeilen der Berichte übernommen, Dan Molitor von Forme das Update auf Forme 0.25 und korrekte Seitenzahlen. Die Hälfte der 20 Vorlagen stammt von anderen Entwicklern, darunter Lieferschein, Versandetikett, Protokoll, Pressemitteilung und Unterrichtsplan. Eingereicht wurden sie zwischen dem 14. und 22. September. Als Vorbild nennt die Projektseite pdfx, das denselben Ansatz für react-pdf verfolgt. Finanziert wird pdfcn über Sponsoren und Anzeigen von Carbon in der Dokumentation.

Was kann man mit pdfcn bauen?

Die 24 Komponenten decken ab, was in Geschäftsdokumenten immer wieder vorkommt:

  • Text und Aufbau: Heading, Text, List, Section, Stack, Divider, Keep Together (hält Inhalte auf einer Seite zusammen) und Page Break.
  • Kopf und Fuß: Page Header, Page Footer und Page Number, die sich auf jeder Seite wiederholen.
  • Daten: Table, Data Table, Key Value für Schlüssel-Wert-Listen und Graph für Balken-, Linien- und Flächendiagramme aus SVG.
  • Hinweise: Alert, Badge und Card.
  • Extras: QR Code, Signature (Unterschriftsfeld), Watermark, PDF Image, Link und Form für beschriftete Formularblöcke.
Dokumentationsseite der Komponente QR Code auf pdfcn.dev mit Umschalter Takumi und Forme und einer Vorschau: Invoice #12345, Amount Due $500.00, zwei QR-Codes mit den Beschriftungen Scan to pay und Verify document
Jede Komponente hat eine eigene Seite mit Live-Vorschau, Befehl und Code, hier der QR-Code. Die Vorschau ist ein echtes PDF aus der jeweiligen Engine. Screenshot vom 30.09.2026, Quelle: pdfcn.dev.

Spannender als die einzelnen Komponenten sind die 20 fertigen Vorlagen. Sie sind vollständige Dokumente aus diesen Komponenten, mit Beispieldaten, die du durch deine eigenen ersetzt. Ich habe alle 20 installiert und mit Takumi gerendert. Jede lief auf Anhieb durch.

Alle 20 Vorlagen von pdfcn auf einen Blick Filtere nach Einsatz (zum Start siehst du die sechs Rechnungen), wähle die Engine und kopiere den Befehl mit einem Klick. Die Vorschauen habe ich selbst mit Takumi gerendert, mit den englischen Beispieldaten, die in jeder Vorlage stecken.
Engine
  • Vorschau der pdfcn-Vorlage Rechnung Minimal (invoice-minimal) mit den Beispieldaten von pdfcn
    Rechnung Minimalinvoice-minimal · 1 Seite

    Schlicht, Rechnungsnummer im Stempelkasten. Grundlage meiner deutschen Testrechnung.

  • Vorschau der pdfcn-Vorlage Rechnung Klassisch (invoice-classic) mit den Beispieldaten von pdfcn
    Rechnung Klassischinvoice-classic · 1 Seite

    Absender, Empfänger und Zahlungsbedingungen in drei Spalten, Tabelle mit Rahmen.

  • Vorschau der pdfcn-Vorlage Rechnung Modern (invoice-modern) mit den Beispieldaten von pdfcn
    Rechnung Moderninvoice-modern · 1 Seite

    Großzügiger Kopf, Summenblock rechts, kaum Linien.

  • Vorschau der pdfcn-Vorlage Rechnung Corporate (invoice-corporate) mit den Beispieldaten von pdfcn
    Rechnung Corporateinvoice-corporate · 1 Seite

    Mit Logo und Projektreferenz, für Firmenkunden gedacht.

  • Vorschau der pdfcn-Vorlage Rechnung Beratung (invoice-consultant) mit den Beispieldaten von pdfcn
    Rechnung Beratunginvoice-consultant · 1 Seite

    Stunden mal Satz je Leistung, passend für Agenturen und Freiberufler.

  • Vorschau der pdfcn-Vorlage Rechnung Kreativ (invoice-creative) mit den Beispieldaten von pdfcn
    Rechnung Kreativinvoice-creative · 1 Seite

    Dunkler Kasten für die Nummer, farbige Akzente.

Ein Klick auf einen Befehl kopiert ihn. Vorher muss die Registry in deiner components.json stehen, sonst meldet shadcn „Unknown registry“. Den Eintrag zeigt der Baukasten weiter unten.

Themes und Theme-Builder

Das Aussehen steuern neun Themes: Professional, Modern, Minimal, Executive, Corporate, Elegant, Vivid, Forest und Blueprint. Ein Theme ist eine Datei mit Farben, Schriften, Abständen und Rundungen, die alle Komponenten über einen gemeinsamen Provider lesen. Seit dem 30. August gibt es dazu einen Theme-Builder mit Live-Vorschau, Rückgängig-Funktion und Export als Code. Die Einstellungen stehen in der Adresse, du kannst ein Theme also per Link teilen.

Der Theme-Builder in 34 Sekunden: fünf Themes nacheinander (Executive, Elegant, Vivid, Forest, Blueprint), dazwischen rendert die Vorschau neu, am Ende der Code-Export. Ohne Ton. Eigene Aufnahme von pdfcn.dev/theme-builder am 30.09.2026.

Im Video fällt auf, was Jacob Paris von Vercel schon zehn Tage nach dem Start angemerkt hat: Die Themes unterscheiden sich vor allem in Farbe und Schrift, der Aufbau des Dokuments bleibt gleich. Aniket Pawar antwortete damals, der Theme-Builder sei in Arbeit. Er kam eine Woche später. Für eigene Hausfarben reicht das völlig, für ein wirklich eigenes Layout änderst du die Vorlage selbst.

Kommentar von Jacob Paris, Vercel Staff, in der Vercel Community: This looks great, I like that you copied the shadcn theming shape so it feels more familiar. Your included themes do look more like recolors though, it would be cool to have more variety like tweakcn.com. Antwort von Aniket Pawar: Thanks Jacob, theme builder is underway and will be released soon
Rückmeldung von Jacob Paris aus dem Vercel-Team zu den Themes und die Antwort von Aniket Pawar, 22. und 23.08.2026. Screenshot vom 30.09.2026, Quelle: Vercel Community.

Wofür braucht man das im Alltag?

pdfcn lohnt sich überall dort, wo Dokumente automatisch aus Daten entstehen, und zwar oft. Typische Fälle aus meiner Arbeit mit Shops und Agenturen:

  • Online-Shops mit eigener Logik: Rechnung, Lieferschein, Versandetikett oder Gutschein direkt aus der Bestellung, etwa über einen Webhook aus Shopify oder Shopware in eine kleine Node-Funktion. Das lohnt sich vor allem bei Headless-Shops und Sonderfällen, für die es kein fertiges Plugin gibt.
  • Agenturen und Freiberufler: Monatsberichte für Kunden aus Search Console, GA4 oder Werbekonten, Stundenabrechnungen, Angebote.
  • Veranstalter: Eintrittskarten mit QR-Code, Programmhefte über mehrere Tage.
  • Handwerk und Service: Arbeitsaufträge mit Material, Arbeitszeit und Unterschrift des Kunden.
  • Software-Produkte: der Knopf „Als PDF herunterladen“ für Auswertungen, Zertifikate oder Verträge.

Wo pdfcn keinen Sinn ergibt: Wenn du im Monat eine Handvoll Rechnungen schreibst, nimm deine Buchhaltungssoftware. Wenn dein Shopsystem ein Rechnungsplugin mit deutschen Pflichtangaben hat, nutze das. pdfcn ist ein Baukasten für Entwickler, kein Programm zum Anklicken.

So installierst du pdfcn

Die Startseite verspricht „ein Befehl“. In einem frischen Projekt waren es bei mir drei Schritte, weil zwei Voraussetzungen nirgends auf der Startseite stehen.

  1. Ein React-Projekt mit shadcn-Konfiguration. In einem Next.js-Projekt mit shadcn/ui ist das schon erledigt. In meinem frischen Vite-Projekt brach shadcn init ab, weil Tailwind und ein Pfad-Alias fehlten. Die PDF-Bausteine brauchen Tailwind gar nicht, die Kommandozeile verlangt es trotzdem.
  2. Die Registry eintragen. Der Befehl von der Startseite schlug fehl mit Unknown registry "@pdfcn". Erst mit dem Eintrag "@pdfcn": "https://pdfcn.dev/r/{name}.json" unter registries in der components.json klappt der Kurzname. Den Hinweis findest du nur auf der Unterseite „Registry“ der Dokumentation.
  3. Der eigentliche Befehl. npx shadcn@latest add @pdfcn/takumi/invoice-minimal legte in 7,8 Sekunden 18 Dateien an und installierte zwei Pakete: takumi-pdf 0.15.0 und @takumi-rs/helpers 2.14.0.
Terminalprotokoll der Installation: npx shadcn init bricht mit Validating Tailwind CSS und Validating import alias ab, npx shadcn add @pdfcn/takumi/invoice-minimal meldet Unknown registry @pdfcn, nach dem Eintrag in der components.json laufen Checking registry, Installing dependencies und Created 18 files durch. Darunter drei Kacheln: shadcn-Projekt nötig, Registry eintragen, dann ein Befehl
So lief die Installation wirklich, gekürzt auf die entscheidenden Zeilen. Eigenes Protokoll vom 30.09.2026 mit shadcn CLI 4.21.0, eigene Darstellung.

Danach ist das Rendern kurz. So entsteht bei mir die Rechnung aus den Daten einer Bestellung:

import { render } from "takumi-pdf";
import { googleFonts } from "@takumi-rs/helpers";
import { RechnungDocument } from "@/pdf-de/rechnung";

const pdf = await render(<RechnungDocument data={bestellung} />, {
  size: "a4",
  margin: 0,            // die Vorlagen bringen ihre Ränder selbst mit
  fonts: await googleFonts(["Inter"]),
  lang: "de",
});

Zwei Zeilen darin sind wichtig. margin: 0 steht in keiner Anleitung der Vorlagen, pdfcn.dev rendert sie intern aber genau so. Ohne diese Option rutschte die Fußzeile meiner Rechnung auf eine zweite Seite. Und googleFonts lädt die Schrift bei jedem Start von Google. Für den Betrieb legst du die Schriftdateien besser ins Projekt, dann läuft alles offline.

Befehls-Baukasten: der passende Installationsbefehl für dein Projekt Wähle Engine, Paketmanager und Baustein. Du bekommst den Eintrag für die components.json und den Befehl, beides zum Kopieren. Es wird nichts gesendet oder gespeichert.

1. Einmal in die components.json deines Projekts, auf oberster Ebene:

"registries": {
  "@pdfcn": "https://pdfcn.dev/r/{name}.json"
}

2. Dann im Projektordner:

npx shadcn@latest add @pdfcn/takumi/invoice-minimal

Tipp: pdfcn mit einem KI-Assistenten nutzen

pdfcn ist auf Coding-Agenten wie Claude Code oder Cursor vorbereitet. Es gibt eine llms.txt mit allen Seiten, jede Seite auch als Markdown, eine Agenten-Anleitung unter /.well-known/agent-skills/ und auf der Startseite den Knopf „Copy prompt for your agent“. Über npx shadcn@latest mcp init kennt dein Assistent außerdem alle Bausteine. Ein Auftrag wie „Baue eine Rechnung mit Table, KeyValue und PageFooter und setze Umsatzsteuer und IBAN ein“ klappt damit deutlich zuverlässiger als ohne.

Takumi oder Forme: Welche Engine solltest du nehmen?

Beide Engines laufen ohne Browser, beide sind kostenlos, beide stecken hinter derselben pdfcn-Schnittstelle. Unterschiede gibt es trotzdem, und einige davon habe ich erst im Test gesehen.

MerkmalTakumiForme
EntwicklerKane WangDan Molitor
LizenzMIT oder Apache-2.0MIT
GitHub-Sterne (30.09.2026)3.059210
npm-Downloads, Woche 22. bis 28.09.27.617 (takumi-pdf)17.359 (@formepdf/react)
Installation in meinem Projekt4,4 MBrund 20 MB
Läuft inNode, Bun, Browser, Cloudflare WorkersNode, Browser, Cloudflare Workers (tabellenlastig bis etwa 50 Seiten)
Schriftenkeine Systemschriften, Schriften als Datei oder von GooglePDF-Standardschriften ohne Einbettung, eigene TrueType-Schriften möglich
E-Rechnung, ArchivPDF/A 2 bis 4, Dateianhänge für ZUGFeRDPDF/A, PDF/UA, eigene Option für Factur-X und ZUGFeRD
Besonderheitenderselbe Code rendert auch Vorschaubilder für soziale Netzwerkeausfüllbare Formulare, Strichcodes, digitale Signatur, Schwärzen
Mein Test: Rechnung, 1 Seite30 ms, 14,7 KB35 ms, 27,2 KB
Mein Test: 120 Positionen174 ms84 ms

Meine Faustregel: Für kurze Belege, die schnell und klein sein sollen, nimm Takumi. Das ist auch die Engine, auf die pdfcn zuerst ausgerichtet ist, und die mit der größeren Gemeinde. Für lange, tabellenlastige Dokumente, ausfüllbare Formulare oder Signaturen nimm Forme. Mischen solltest du die beiden nicht: Die Dateien beider Engines landen unter denselben Pfaden, eine zweite Installation überschreibt die erste.

Mein Praxistest: deutsche Rechnung, Lieferschein und SEO-Bericht

Der Aufbau: ein frisches Projekt mit Vite, React und TypeScript, Node 22, ein Apple M4 mit 16 GB. Getestet habe ich takumi-pdf 0.15.0, Forme 0.25.0 und zum Vergleich Chrome 154 über Puppeteer 25.12. Chrome bekam dabei denselben Code, nur als HTML statt als PDF-Auftrag. Das geht, weil die Takumi-Bausteine von pdfcn am Ende normale div- und span-Elemente mit Stilangaben sind.

Die Rechnung: 24 Stellen, dann ist sie deutsch

Als Grundlage diente die Vorlage „Invoice Minimal“. Sie ist sauber gebaut, aber durch und durch amerikanisch. „Bill To“, „Invoice Details“ und „Balance Due“ stehen als Text im Code, ebenso das Dollarzeichen, „Tax (7%)“ und die indische Steuernummer „GST“. Selbst „Page 1 of 1“ ist kein Platzhalter, sondern fester Text. Die Beträge erscheinen zudem in zwei Formaten im selben Beleg: $25,000 beim Einzelpreis und $25000.00 bei der Summe.

Vergleich von zwei Rechnungen: links das Original von pdfcn mit Bill To, Invoice Details, GST und Dollarbeträgen in zwei Formaten, rechts meine deutsche Fassung der Strickerei Müller und Söhne mit Rechnung an, Leistungsdatum, Fällig am, USt-IdNr., Steuernummer, Beträgen in Euro, USt. 19 Prozent und Rechnungsbetrag 485,10 Euro. Daneben eine Liste der Änderungen: Beschriftungen, Währung, Steuer, Pflichtangaben ergänzt, Ergebnis
Links die Vorlage im Original, rechts meine deutsche Fassung mit fiktiven Daten. Eigener Test vom 30.09.2026, eigene Darstellung.

Für die deutsche Fassung habe ich 24 Stellen ersetzt und die Datentypen um Leistungsdatum, USt-IdNr., Steuernummer, IBAN und Steuersatz erweitert. Die Beträge formatiert jetzt Intl.NumberFormat("de-DE", { currency: "EUR" }). Das Ergebnis stimmt: Umlaute, ß, das Euro-Zeichen und deutsche Anführungszeichen kommen in Takumi und Forme sauber heraus, der Text ist im PDF markier- und durchsuchbar.

Eine Kleinigkeit zeigt, warum du die Sprache immer fest angeben solltest. Einige Vorlagen formatieren Zahlen mit toLocaleString() ohne Sprachangabe. Das Ergebnis hängt dann von der Sprachumgebung ab, in der gerendert wird. In meinem deutschen Chrome zeigte die Vorschau auf pdfcn.dev deshalb „$4.500“ statt „$4,500“, ein Dollarbetrag im deutschen Zahlenformat.

Geschwindigkeit: schneller als Chrome, aber nicht bei jeder Länge

Im Netz kursiert die Zahl „26 ms statt 198 ms mit Chrome“. Sie stammt aus der Vergleichsseite von Takumi selbst, gemessen mit Version 0.4 auf einem M1 Pro. Ich habe mit den aktuellen Versionen nachgemessen, jede Engine in fünf eigenen Läufen mit je 20 warmen Durchläufen.

Mein Messergebnis: Takumi, Forme und Chrome mit derselben Rechnung Wähle, was du vergleichen willst. Zeiten sind der Median aus fünf Läufen mit je 20 warmen Durchläufen, gemessen am 30.09.2026 auf einem Apple M4 mit Node 22. Kürzer ist besser.

TakumiFormeChrome

Alle Werte als Tabelle
EngineRechnung, warm120 Positionen, warmErster DurchlaufDatei (1 Seite)Installation
Takumi 0.1530,1 ms174,3 ms266 ms14,7 KB4,4 MB
Forme 0.2534,6 ms84,0 ms108 ms27,2 KB20,4 MB
Chrome 154 über Puppeteer 25.1290,8 ms130,7 ms286 ms92,8 KB602,0 MB

Aufbau: frisches Vite-Projekt, pdfcn-Vorlage „Invoice Minimal“ auf Deutsch umgebaut, Schrift Inter. Chrome bekommt denselben Code als HTML und druckt ihn mit Puppeteer. Der erste Durchlauf enthält bei Takumi und Forme das Laden der WASM-Datei, bei Chrome den Browserstart. Installation: takumi-pdf mit Hilfspaket, @formepdf/core mit React-Paket, Puppeteer mit Chrome und Headless Shell. Apple M4, 16 GB, macOS 26.6.1.

Bei der einseitigen Rechnung bestätigt sich der Vorsprung, nur kleiner als versprochen: Takumi brauchte 30 ms, Forme 35 ms, Chrome 91 ms. Das ist Faktor drei, nicht Faktor acht, denn Chrome war auf dem M4 deutlich schneller als in der Messung von Takumi. Bei der Sammelrechnung mit 120 Positionen dreht sich das Bild. Forme lag mit 84 ms klar vorn, Chrome brauchte 131 ms und Takumi 174 ms. Wer lange Dokumente erzeugt, sollte also nicht blind die schnellste Engine aus dem Kurztest nehmen.

Der größere Unterschied liegt ohnehin woanders. Puppeteer lädt bei der Installation einen kompletten Chrome und eine zweite, schlanke Chrome-Variante herunter, zusammen mit dem Paket selbst 602 MB. Takumi kommt mit 4,4 MB aus. Auf einem kleinen Server oder in einer Serverless-Funktion entscheidet genau das, ob PDFs überhaupt gehen.

Dieselbe deutsche Rechnung dreimal nebeneinander: mit Takumi 0.15 in 30 Millisekunden und 14,7 Kilobyte, alles in der Schrift Inter; mit Forme 0.25 in 35 Millisekunden und 27,2 Kilobyte, in Helvetica ohne Fettschrift; mit Chrome 154 in 91 Millisekunden und 92,8 Kilobyte, mit Times-Überschrift aus dem Theme
Gleicher Code, drei Ergebnisse. Die Unterschiede liegen vor allem in den Schriften, dazu unten mehr. Eigener Test vom 30.09.2026, eigene Darstellung.

Lange Rechnungen: Hier musst du nacharbeiten

Die Sammelrechnung zeigt auch die größte Schwäche der fertigen Vorlagen. Sie sind für eine Seite gebaut. Bei 120 Positionen wiederholt keine der drei Varianten den Tabellenkopf auf den Folgeseiten. Takumi setzt ab Seite zwei keinen oberen Rand mehr und stellt die Fußzeile allein auf eine siebte Seite. Forme hält die Ränder, schreibt aber auf jede Seite „Seite 1 von 1“, weil der Text fest in der Vorlage steht. Das gleiche Problem wurde für die Forme-Berichte schon gemeldet und dort behoben, in der Rechnungsvorlage steckt es noch.

Seitenübersicht der Sammelrechnung mit 120 Positionen in drei Reihen: Takumi mit 7 Seiten, markiert kein Rand oben auf Seite 2 und nur Fußzeile auf Seite 7; Forme mit 7 Seiten, markiert Seite 1 von 1 in der Fußzeile jeder Seite; Chrome mit 6 Seiten, markiert kein Rand oben ab Seite 2
Dieselbe Rechnung mit 120 Positionen: Keine Variante wiederholt den Tabellenkopf, jede hat eine eigene Schwäche beim Umbruch. Eigener Test vom 30.09.2026, eigene Darstellung.

Lösbar ist das mit Bordmitteln. Takumi kennt eigene Kopf- und Fußzeilen mit echten Seitenzahlen als Option beim Rendern, Forme hat eine Tabelle, die ihren Kopf auf jeder Seite wiederholt. Du musst die Vorlage dafür aber umbauen. Für Monatsrechnungen mit vielen Positionen solltest du das einplanen.

Lieferschein: Vorsicht bei Feldern, die du nicht setzt

Der Lieferschein hatte eine Überraschung, die in einem echten Betrieb unangenehm werden kann. Die Vorlage mischt die übergebenen Daten mit ihren eigenen US-Beispieldaten. Jedes Feld, das du nicht setzt, füllt sie aus dem Beispiel. Auf meinem deutschen Lieferschein stand deshalb plötzlich „Bestellnr. Kunde: PO-4471“, eine Nummer, die ich nie angegeben hatte. Genauso wären der englische Rückgabehinweis oder der Firmenname „Acme Store“ gedruckt worden, hätte ich sie weggelassen.

Deutscher Lieferschein der Strickerei Müller und Söhne mit rot markierter Zeile Bestellnr. Kunde: PO-4471 und dem Hinweis nie übergeben. Daneben der Code aus der Vorlage: sampleData mit companyName Acme Store und poNumber PO-4471 und die Zeile data gleich sampleData, data, props, darunter meine Lösung mit poNumber undefined
„PO-4471“ stammt aus den Beispieldaten der Vorlage, nicht aus meiner Bestellung. Eigener Test vom 30.09.2026 mit fiktiven Daten, eigene Darstellung.

Die Lösung ist einfach: Lösche die Beispieldaten, sobald die Vorlage in deinem Projekt liegt. Dann fällt ein fehlendes Feld sofort auf, statt still durch amerikanische Daten ersetzt zu werden. Auch die Adressfelder musst du umbauen. Die Vorlage erwartet Bundesstaat und ZIP-Code und setzt sie in US-Reihenfolge zusammen. Für Deutschland habe ich daraus „Straße, PLZ Ort“ gemacht.

SEO-Monatsbericht mit echten Search-Console-Daten

Der dritte Test ist der, den ich selbst am ehesten einsetzen würde: ein Monatsbericht für einen Kunden. Als Grundlage diente die Vorlage „Report Marketing“, befüllt mit den Septemberzahlen von Opal-Schmiede aus der Search-Console-Schnittstelle. Vom 1. bis 29. September kamen 11.299 Klicks aus der Google-Suche, rund 390 am Tag, bei 698.392 Impressionen. Die durchschnittliche Position verbesserte sich gegenüber dem August von 7,5 auf 7,0. Vier der sechs stärksten Seiten sind Ratgeber-Artikel.

Drei Seiten eines SEO-Monatsberichts für Opal-Schmiede: Seite 1 mit den Kennzahlen 11.299 Klicks, 698.392 Impressionen, CTR 1,62 Prozent und Position 7,0; Seite 2 mit einem Balkendiagramm der Klicks pro Kalenderwoche von KW 29 bis KW 39 und einer Tabelle der sechs stärksten Seiten; Seite 3 mit den wichtigsten Punkten
Der fertige Bericht auf drei Seiten. Daten: Google Search Console, opal-schmiede.com, Suchtyp Web, 01. bis 29.09.2026, abgerufen am 30.09.2026. Eigenes Rendering mit pdfcn und Takumi.

Das Ergebnis sieht ordentlich aus, der Weg dahin zeigt aber wieder die Grenzen der Vorlage. Mit den vollen Adressen der Seiten lief die zweite Seite über, und es entstand eine leere Seite, auf der nur die Fußzeile stand. Erst mit kurzen Namen wie „Tansanit-Preis“ passte alles auf drei Seiten. Die Diagramm-Komponente beschriftet Achse und Balken mit Werten wie „2.8K“ und „837.8“, die Tabellenköpfe hießen „Stream“, „Owner“ und „Risk“, und jede Seite trug die Fußzeile „Generated with pdfcn“. Die Zähler auf der letzten Seite prüfen sogar englische Statuswerte wie „On Track“, übersetzt man die, zählen sie falsch. Das alles lässt sich ändern, es ist ja dein Code. Rechne für einen Bericht in deinem Design aber eher mit einem halben Tag als mit einer Stunde.

Wie du die Zahlen in so einem Bericht richtig einordnest, steht in meinem Beitrag Search Console richtig lesen. Wenn du solche Berichte automatisch haben willst, schau dir mein Angebot für Reporting und Auswertungen an.

Schriften, Barrierefreiheit und was mir sonst auffiel

  • Takumi liest keine Systemschriften. Die Themes nennen „Helvetica“ und „Times-Roman“, gerendert wurde trotzdem alles in Inter, der einzigen Schrift, die ich übergeben hatte. Die Serifen-Überschrift des Themes fehlte. Chrome dagegen nahm die Schriften des Mac. Wer ein Theme wie Executive mit Merriweather nutzen will, muss die Schriftdatei selbst übergeben.
  • Forme bettet Helvetica nicht ein. Die Datei ist klein, aber das Aussehen hängt vom Betrachter ab. Für PDF/A oder eine Hausschrift registrierst du eigene Schriften.
  • „Accessible“ stimmt nur teilweise. Takumi schreibt standardmäßig eine Struktur für Screenreader ins PDF. In meiner Rechnung bestand sie aber aus 36 Absätzen, ohne Überschrift und ohne Tabelle. Der Grund: pdfcn baut Tabellen aus Zeilen mit Flexbox statt aus echten Tabellen-Elementen. Die Takumi-Dokumentation sagt selbst, dass solche Tabellen keine Tabellen-Struktur bekommen.
  • Die Code-Ansicht ist geschönt. Auf der Startseite besteht die Beispielrechnung aus 20 Zeilen. Die echte Vorlage hat 252 Zeilen und bringt 17 weitere Dateien mit.
  • Keine deutsche Sprache in Sicht. Geplant ist Mehrsprachigkeit für die Dokumentation in sieben Sprachen, Deutsch ist nicht dabei. Die Beschriftungen in den Vorlagen betrifft das ohnehin nicht.

Die sieben Stolpersteine als Checkliste

  1. shadcn-Projekt vorbereiten: Tailwind und Pfad-Alias, sonst bricht shadcn init ab.
  2. Registry in der components.json eintragen, sonst „Unknown registry“.
  3. Beim Rendern mit Takumi margin: 0 setzen, die Vorlagen haben eigene Ränder.
  4. Beschriftungen, Währung, Steuer und Adressformat im Code übersetzen, Sprache bei Zahlen fest angeben.
  5. Beispieldaten aus der Vorlage löschen, damit nichts Fremdes im Beleg landet.
  6. Für lange Dokumente eigene Kopf- und Fußzeilen mit echten Seitenzahlen bauen.
  7. Schriften als Datei ins Projekt legen und übergeben, statt auf Systemschriften zu hoffen.

pdfcn, react-pdf oder Puppeteer: Was passt wann?

pdfcn ist nicht der einzige Weg zum PDF aus JavaScript. Die Frage ist, was deine Vorlage mitbringt und wo das PDF entstehen soll.

WegSo funktioniert esStark beiSchwach bei
pdfcn mit Takumifertige React-Bausteine, WebAssembly-Enginekurzen Belegen, kleinen Dateien, Edge und Browserlangen Tabellen, Schriften, deutschen Vorlagen
pdfcn mit Formedieselben Bausteine, andere Enginelangen Dokumenten, Formularen, SignaturenAussehen weicht von Takumi ab, 20 MB groß
react-pdfeigene Komponenten wie View und Text, reines JavaScriptgroßer Verbreitung: 6,9 Mio. Downloads pro Wochevorhandenes HTML nicht nutzbar, laut Takumi-Messung langsamer
Puppeteer oder Gotenbergechter Chrome druckt eine HTML-Seitevollem CSS, bestehenden Webseitenrund 600 MB auf dem Server, langer Kaltstart
pdf-lib, PDFKit, jsPDFZeichenbefehle, jede Zeile an KoordinatenBearbeiten und Zusammenfügen bestehender PDFsLayout von Hand, kein Umbruch von selbst
Welcher Weg zum PDF passt zu deinem Projekt? Sechs Fragen, dann bekommst du eine Empfehlung mit Begründung. Grundlage sind mein Test und die Dokumentation von pdfcn, Takumi und Forme. Es wird nichts gesendet oder gespeichert.
1. Ist dein Projekt in React geschrieben?
2. Wo soll das PDF entstehen?
3. Wie sieht die Vorlage aus?
4. Brauchst du E-Rechnungen (ZUGFeRD, XRechnung) oder PDF/A zur Archivierung?
5. Wie lang werden die Dokumente?
6. Brauchst du ausfüllbare Formularfelder, Strichcodes oder eine digitale Signatur?

Beantworte die Fragen, dann steht hier die Empfehlung.

Wichtig in Deutschland: Eine PDF-Rechnung ist keine E-Rechnung

Wer pdfcn für Rechnungen einsetzt, muss die E-Rechnungspflicht kennen. Seit dem 1. Januar 2025 müssen alle Unternehmen in Deutschland E-Rechnungen empfangen können. Beim Ausstellen gilt eine Übergangszeit: Bis Ende 2026 darfst du an andere Unternehmen noch Papier oder mit Zustimmung des Empfängers ein PDF schicken. Bei einem Vorjahresumsatz bis 800.000 Euro verlängert sich diese Frist bis Ende 2027. Danach gilt im Geschäft zwischen inländischen Unternehmen die E-Rechnung.

Eine E-Rechnung ist ein strukturierter Datensatz nach der europäischen Norm EN 16931, in Deutschland meist als XRechnung (reines XML) oder ZUGFeRD (PDF mit eingebetteter XML). Ein schön gestaltetes PDF aus pdfcn ist das nicht. Seit der Einführung der Pflicht gilt bei ZUGFeRD außerdem die XML als führend, nicht das sichtbare Bild. Weichen beide voneinander ab, zählt die XML.

Was das für pdfcn heißt

Für Rechnungen an Privatkunden, für Kleinbeträge bis 250 Euro und für Kleinunternehmer bleibt das PDF erlaubt, hier kann pdfcn direkt ran. Für Rechnungen an Unternehmen brauchst du zusätzlich die XML-Daten. Takumi und Forme können daraus ein ZUGFeRD-PDF bauen: Takumi mit PDF/A-3b und der XML als Anhang, Forme sogar mit einer eigenen Option für Factur-X und ZUGFeRD. Die XML selbst erzeugt aber keine der beiden Engines. Dafür brauchst du eine eigene Bibliothek oder einen Dienst, und das Ergebnis solltest du mit einem Prüfwerkzeug validieren.

Die Details stehen in den Fragen und Antworten des Bundesfinanzministeriums zur E-Rechnung (Stand März 2026). Eine Steuerberatung ersetzt dieser Abschnitt nicht.

Wie schnell wächst pdfcn?

Für ein Projekt, das am 11. August 2026 angelegt wurde, ist das Tempo bemerkenswert. Am 30. September standen 2.746 Sterne und 139 Forks auf GitHub, 40 Einträge waren offen. Der Launch-Beitrag auf X holte 2.035 Likes. Auf Hacker News blieb es dagegen bei 6 Punkten, auf Reddit bei einem freundlichen Beitrag in r/shadcn mit 51 Punkten. Viel Kritik habe ich nicht gefunden, aber auch kaum Erfahrungsberichte aus echten Projekten. pdfcn ist sieben Wochen alt.

Ein besserer Gradmesser als Sterne sind die Downloads der Engines. takumi-pdf gibt es auf npm erst seit dem 1. August 2026, elf Tage vor pdfcn. Heute sind es rund 26.000 Downloads pro Woche. Forme hat sich seit dem Start von pdfcn mehr als verdreifacht. Ein Teil davon geht sicher auf pdfcn zurück, beide Engines haben aber auch eigene Nutzer.

Downloads pro Woche: die beiden Engines hinter pdfcn npm-Downloads von takumi-pdf und @formepdf/react, jeweils Montag bis Sonntag. Die gestrichelte Linie markiert den Start von pdfcn am 12.08.2026. Fahr mit der Maus oder dem Finger über das Diagramm.

takumi-pdf@formepdf/react

Alle Wochen als Tabelle
Woche abtakumi-pdf@formepdf/react
01.06.01.737
08.06.01.398
15.06.01.132
22.06.01.598
29.06.02.854
06.07.03.365
13.07.03.312
20.07.03.888
27.07.1224.043
03.08.3.7653.931
10.08.8.2234.402
17.08.21.7466.594
24.08.14.1937.206
31.08.25.22210.080
07.09.21.89810.521
14.09.21.61410.317
21.09.26.35916.263

Quelle: npm Downloads API, abgerufen am 30.09.2026. Zum Vergleich in der Woche vom 22. bis 28.09.2026: @react-pdf/renderer 6.910.492, puppeteer 13.188.914. Downloads zählen auch automatische Installationen, etwa in Build-Servern.

„This is a treasure. So clean.“

Einer von drei Kommentaren unter dem Beitrag von Aniket Pawar in r/shadcn. Alle drei sind Lob, eine Diskussion über den Einsatz gab es nicht.

„Generating PDFs directly from web apps is always a pain point with styling.“

Der einzige Kommentar auf Hacker News trifft das Problem, das pdfcn lösen will: Gestaltung ist beim PDF aus der Web-Anwendung meist der mühsamste Teil.

Die offenen Aufgaben auf GitHub zeigen, wohin es geht. Geplant sind Vorlagen für Quittung, Angebot, Geschäftsbrief, Lebenslauf, Anschreiben, Projektangebot und Zertifikat, dazu Komponenten für Strichcodes, Summenblöcke und Adressen. Außerdem sollen mit pdfme und Unlayer zwei weitere Engines dazukommen.

Meine Meinung: Für wen sich pdfcn lohnt

pdfcn ist das schnellste Startpaket für PDFs in React, das ich kenne. Nach zehn Minuten hatte ich eine ansehnliche Rechnung, nach einer Stunde eine deutsche. Der Code ist lesbar, die Themes lassen sich im Browser einstellen, und das Rendern ohne Chrome spart auf dem Server Platz und Nerven. Dass die Dokumentation für KI-Assistenten vorbereitet ist, merkt man im Alltag sofort.

Man sollte pdfcn aber als das nehmen, was es ist: eine sehr gute Vorlage, kein fertiges Produkt für Deutschland. Sprache, Währung, Pflichtangaben, Adressen und Seitenumbrüche machst du selbst. Und das Projekt hängt an einer Person. 111 von 157 Commits stammen von Aniket Pawar, und niemand garantiert, dass es in einem Jahr noch gepflegt wird. Genau hier hilft ausgerechnet das shadcn-Prinzip: Der Code liegt bei dir und läuft auch weiter, wenn pdfcn eines Tages stillsteht.

Einsetzen würde ich pdfcn für zwei Dinge. Erstens für Monatsberichte an Kunden, die heute als Dashboard im Browser laufen und am Monatsende als PDF in den Posteingang sollen. Zweitens für Belege in Shop-Automationen, die kein Plugin abdeckt, etwa Lieferscheine für Teillieferungen oder Etiketten aus einem eigenen Lager-Workflow. Für Rechnungen an Unternehmen würde ich pdfcn nur zusammen mit einer E-Rechnungs-Bibliothek nehmen. Wie solche Abläufe mit KI und Schnittstellen aussehen, zeige ich unter KI-Automatisierung.

Häufige Fragen

Was ist pdfcn?

pdfcn ist eine kostenlose Sammlung von PDF-Bausteinen für React mit 24 Komponenten, 20 fertigen Vorlagen und 9 Themes. Die Bausteine werden über die shadcn-Kommandozeile als Quellcode in dein Projekt kopiert und mit Takumi oder Forme gerendert, ohne Browser.

Ist pdfcn kostenlos?

Ja. pdfcn steht unter der MIT-Lizenz und darf auch in kommerziellen Projekten genutzt werden. Takumi (MIT oder Apache-2.0) und Forme (MIT) sind ebenfalls kostenlos.

Kommt pdfcn von shadcn?

Nein. pdfcn stammt von Aniket Pawar und seinem Projekt Shadcn Labs. Shadcn Labs schreibt selbst, dass es nicht von shadcn unterstützt wird und nicht mit ihm verbunden ist. pdfcn nutzt nur die offene Registry-Technik der shadcn-Kommandozeile.

Brauche ich shadcn/ui, um pdfcn zu nutzen?

Du brauchst die shadcn-Kommandozeile und eine components.json mit dem Registry-Eintrag für pdfcn. Die Kommandozeile verlangt beim Einrichten Tailwind und einen Pfad-Alias. Die PDF-Bausteine selbst nutzen kein Tailwind und keine Komponenten aus shadcn/ui.

Funktioniert pdfcn ohne React?

Nein, pdfcn besteht aus React-Komponenten. Ohne React kannst du Takumi direkt mit HTML und CSS nutzen oder Forme mit HTML, Print-CSS, Vue, Svelte oder Preact.

Kann pdfcn deutsche Rechnungen erzeugen?

Ja, nach Anpassung. Umlaute, ß und das Euro-Zeichen funktionieren. Die Vorlagen sind aber auf Englisch und US-Format gebaut, Beschriftungen, Währung und Steuer musst du im Code ändern und die Pflichtangaben nach § 14 UStG selbst ergänzen. In meinem Test waren das 24 Stellen.

Erzeugt pdfcn E-Rechnungen im Format ZUGFeRD oder XRechnung?

Nein. pdfcn liefert nur das sichtbare Dokument. Takumi und Forme können zwar ein ZUGFeRD-PDF als PDF/A-3 mit eingebetteter XML bauen, die XML nach EN 16931 musst du aber mit einer eigenen Bibliothek oder einem Dienst erzeugen.

Wie schnell ist pdfcn?

In meinem Test auf einem Apple M4 brauchte eine einseitige Rechnung mit Takumi 30 ms, mit Forme 35 ms und mit Chrome über Puppeteer 91 ms. Bei 120 Positionen waren es 174 ms mit Takumi, 84 ms mit Forme und 131 ms mit Chrome.

Läuft pdfcn in Cloudflare Workers oder auf Vercel?

Ja. Takumi läuft in Node, Bun, im Browser und in Cloudflare Workers, pdfcn.dev selbst rendert seine Vorschauen in einer Next.js-Route. Forme läuft laut eigener Dokumentation ebenfalls in Workers, bei tabellenlastigen Dokumenten aber nur bis etwa 50 Seiten.

Sind die PDFs aus pdfcn barrierefrei?

Nur teilweise. Takumi schreibt standardmäßig eine Struktur für Screenreader ins PDF, bei meiner Rechnung waren das aber nur Absätze ohne Überschriften und ohne Tabellen-Struktur, weil pdfcn Tabellen aus Flexbox-Zeilen baut. Für geprüfte Barrierefreiheit nach PDF/UA musst du die Vorlagen umbauen und das Ergebnis mit einem Prüfwerkzeug testen.

Fazit

pdfcn hält, was die Startseite verspricht: schöne PDFs, schnell gemacht, ohne Chrome auf dem Server. Für React-Projekte ist es der kürzeste Weg von null zur ersten Rechnung, und dank der Engines Takumi und Forme ist es auf kleinen Servern und in Edge-Funktionen einsetzbar, wo Puppeteer scheitert. Mein Test zeigt aber auch, dass „Beautiful PDFs, made simple“ vor allem für Amerika und für eine Seite gilt. Für deutsche Belege, lange Dokumente und E-Rechnungen ist pdfcn ein hervorragender Startpunkt, das letzte Stück Arbeit bleibt bei dir.

Stand: 30.09.2026. Ich wiederhole den Test, wenn pdfcn Vorlagen für Angebot und Quittung bringt, eine dritte Engine dazukommt oder die Vorlagen mehrsprachig werden.

Quellen

Geschrieben von

SEO, GEO und KI-Automatisierung für Online-Shops. Ich teste, worüber ich schreibe, zuerst auf eigenen Seiten und in Kundenprojekten wie RYMHART und Opal-Schmiede.

Das für deinen Shop umsetzen?

Drei Fragen, sofort eine Einschätzung, danach drei konkrete Punkte von mir persönlich. Kostenlos.

Projekt anfragen

Weitere Artikel
aus dem Magazin.

Alle Artikel
KI, Automatisierung & Reporting41 Min.

ChatGPT Dots: Was OpenAIs Agenten können und was sie kosten

Am 29. September 2026 hat OpenAI auf dem DevDay in San Francisco die „Dots“ vorgestellt: Agenten in ChatGPT, die dauerhaft laufen, einen eigenen Computer in der Cloud haben und an deinen Aufgaben weiterarbeiten, …

KI, Automatisierung & Reporting11 Min.

Magnific Spaces mit Claude: Produktfotos und Ads per MCP

KI-Bildmodelle sind gut darin, schöne Bilder zu erfinden. Genau das ist bei Produktfotos das Problem: Sie erfinden auch den Reißverschluss, das Etikett und das Logo. Für RYMHART, einen Strickwaren-Hersteller aus …

KI, Automatisierung & Reporting17 Min.

Static Ads mit KI: Prompts, Fehler und Kosten im Praxistest

Ich plane und betreue Anzeigen bei Meta und Google, und die Werbemittel dafür entstehen bei mir mit KI. Für mein Labor habe ich am 27.09.2026 dreißig Static Ads für sechs erfundene Marken gebaut: Nahrungsergänzung, …