PDF aus HTML in einer React-/Node.js-App erstellen

Eugene Zolotarenko
20. Mai 2021・6 Min. Lesezeit
Ein PDF von einer Webseite zu erzeugen wirkt wie eine einfache Aufgabe, die wenig Zeit und Aufwand erfordert. In der Praxis ist das jedoch anders, und die beste Lösung zu finden, kann oft herausfordernd sein.
Schauen wir uns dieses hypothetische Szenario an:
Wir haben eine React App, mit der wir ein PDF entweder von der gesamten Seite oder nur von einzelnen Bereichen erzeugen möchten. Unser PDF kann Charts, Tabellen, Bilder und/oder reinen Text enthalten und sollte ohne abgeschnittene Inhalte oder Überlappungen strukturiert sein. Außerdem möchten wir einen Button auf der Seite, mit dem sich das Dokument speichern lässt.
In diesem Artikel führe ich dich durch mehrere Lösungen und zeige jeweils die Vor- und Nachteile auf. Wir starten mit der simpelsten Methode und steigern uns bis zur komplexesten.
Native Browser-Druckfunktion mit CSS-Druckregeln verwenden
Grundsätzlich kann ein Browser unsere Seiten bereits als PDF speichern und drucken: Einfach Strg/Cmd + P drücken, um das anpassbare Druck-Dialogfenster zu öffnen.
Einen Button zu erstellen, der dieselbe Aktion ausführt, geht so:
const SavePdfButton=()=>{
return (
<button onClick={window.print()}>Download PDF</button>
)
}Wenn wir das Erscheinungsbild ändern, bestimmte Elemente ausblenden oder die Größe von Elementen im PDF anpassen möchten, können wir CSS-Druckregeln schreiben:
@media print {
.save-button {
display: none;
}
.content {
width: 100%;
}
}Wir wollen vielleicht auch Seitenumbrüche steuern und/oder Überlappungen vermeiden. Das lässt sich mit spezifischen CSS-Eigenschaften erreichen, etwa so:
@media print {
h1 {
break-before: always;
}
table, img, svg {
break-inside: avoid;
}
}Hier ist ein sehr guter, kostenloser Artikel, der zeigt, was mit CSS-Druckregeln noch möglich ist.
Für kleine und einfache Fälle ist das die ideale Lösung – der Einsatz von Libraries wäre hier überdimensioniert. Weniger geeignet ist sie allerdings, wenn ein programmatischer Zugriff auf die generierten Dokumente benötigt wird.
Pros:
Keine externen Libraries erforderlich
Einfache Implementierung, inklusive Anpassungen wie Ausrichtung
Belastet den Rechner der Nutzer nicht
Text bleibt auswähl- und durchsuchbar
Cons:
In verschiedenen Browsern kann die Darstellung abweichen
Save-Buttons sind aufgrund unterschiedlicher Browser-Darstellung teils schwer zu finden
Kein programmatischer Zugriff auf die generierten PDFs
Der PDF-Inhalt hängt von der Größe des Browserfensters ab
Screenshot aus dem DOM erstellen (HTML => Canvas => Image => PDF)
Eine weitere einfache Lösung: Mache einen Screenshot der Seite oder eines Elements und wandle ihn per Canvas und Bildumwandlung in ein PDF um:
html2canvas, um aus HTML einen Screenshot zu erzeugen und daraus ein Canvas zu generieren
jsPDF, um ein Bild in PDF zu transformieren
Den Teil Canvas => Image können wir mit Vanilla JavaScript erledigen. Die Funktion sieht dann so aus:
import html2canvas from 'html2canvas'
import jsPdf from 'jspdf';
function savePdf(){
const domElement=document.querySelector('#container')
html2canvas(domElement, { onclose: (document)=>{
document.querySelector('#save-button').style.visibility='hidden'
}})
.then((canvas)=>{
const img=canvas.toDataURL('image/jpeg')
const pdf=new jsPdf()
pdf.addImage(imgData, 'JPEG',0,0,width,height)
pdf.save('filename.pdf')
})
}Wie du siehst, lassen sich vor der HTML => Canvas-Umwandlung noch Styles hinzufügen.
Wenn das HTML jedoch lang ist, möchtest du Inhalte vielleicht auf mehrere Seiten verteilen. Erzeuge dafür Screenshots aus mehreren Elementen und kombiniere sie in einem PDF-Dokument:
import html2canvas from 'html2canvas'
import jsPdf from 'jspdf'
function savePdf(){
const domElements=document.querySelectorAll('.container')
const pdf=new jsPdf()
domElements.forEach((element,i)=>{
const img=canvas.toDataURL('image/jpeg')
pdf.addImage(imgData,'JPEG',0,0,width,height)
const isSectionLast=domElements.length===i+1;
if(isSectionLast){
pdf.save('filename.pdf')
}else{
doc.addPage()
}
}
}So lassen sich ansehnliche PDFs erzeugen, die dem ursprünglichen HTML sehr ähnlich sehen, und du behältst die Kontrolle über Aussehen und enthaltene Elemente. Der Nachteil ist jedoch, dass Text weiterhin nicht markier- oder durchsuchbar ist.
Pros:
Sehr nahe an der HTML-Darstellung
Einfache Implementierung
Programmatischer Zugriff auf das generierte PDF
Cons:
Text kann nicht ausgewählt und durchsucht werden, insbesondere wenn Cookie-Hinweise eingeblendet sind
Der PDF-Inhalt hängt von der Größe des Browserfensters ab
Externe Pakete erforderlich
PDF-/JavaScript-Libraries verwenden
jsPDF (siehe oben), PDFKit, React-pdf sind Libraries, mit denen du in React PDFs erstellen kannst. Das Problem bleibt jedoch bestehen: HTML und CSS müssen speziell für das PDF-Dokument aufgebaut werden.
In unserem Szenario ist diese Lösung daher ebenfalls nicht ideal, da wir unser vorhandenes HTML mit nur kleinen Anpassungen übernehmen möchten, statt das Design ein zweites Mal in Variationen umzusetzen. Nützlich ist sie aber, wenn du ein PDF von Grund auf aus anderen Datenquellen erzeugen willst.
So sieht es mit React-pdf aus:
import {Page,Text,View,Document,StyleSheet} from "@reat-pdf/renderer';
const styles=StyleSheet.create({
page:{
backgroundColor: "#E4E4E4"
},
section:{
margin: 10,
}
})
const MyDocument=()=>{
<Document>
<Page size="A4" style={styles.page}>
<View style={styles.section}>
<Text>Section</Text>
</View>
</Page>
</Document>
}Pros:
Programmatischer Zugriff auf das generierte PDF
Der PDF-Inhalt ist nicht von der Fenstergröße oder dem Zeitpunkt der Erstellung abhängig.
Das Ergebnis ist in unterschiedlichen Browsern identisch
Text ist auswähl- und durchsuchbar
Cons:
Vorhandenes On-Page-HTML lässt sich nicht einfach übernehmen
Kann zeitaufwendig sein
Zwei Varianten desselben Designs im Code (doppelter Pflegeaufwand)
Puppeteer, Headless Chrome mit Node.js verwenden
Diese Lösung ist die komplexeste, da der Code im Back-End läuft und sich damit von den rein Client-seitigen Ansätzen unterscheidet.
Anders gesagt: Puppeteer ist ein Browser, den du aus Node.js heraus steuern kannst. Laut Doku lassen sich damit Screenshots und PDFs von Seiten generieren.
Hier ein Beispiel, das direkt zu einer URL navigiert, einige Styles ändert und eine PDF-Datei erzeugt:
const puppeter=require('puppeteer')
async function savePdf(){
const browser=await puppeteer.launch({headless: true})
const page=await browser.newPage();
await page.goto('https://start-up.house',{waitUntil:'networkidle0'});
await page.addStyleTag({content: '#save-button {display: none}'})
const pdf=await page.pdf({format: 'A4'});
await browser.close();
return pdf;
}Nach der Erstellung wird das Dokument an das Front-End zurückgesendet. Auf der Client-Seite wird es abgeholt, in einen Blob umgewandelt und gespeichert.
So etwa:
function savePdf(){
return fetchPdfData().then((pdfData)=>{
const blob=new Blob([pdfData],{type: 'application/pdf'})
const link=document.createElement('a')
link.href=window.URL.createObjectURL(blob)
link.download='file-name.pdf'
link.click()
}
}Das ist die umfassendste Lösung, da sie die meisten Vorteile bietet und selbst schwierige Fälle abdeckt. Außerdem bleibt der Text im Dokument auswähl- und durchsuchbar, und das PDF kann ohne zusätzliche API-Calls direkt auf dem Server gespeichert werden.
Pros:
Programmatischer Zugriff auf das generierte PDF
Der PDF-Inhalt ist nicht von der Größe des Browserfensters abhängig
Text ist auswähl- und durchsuchbar
Sehr nahe an der HTML-Darstellung
Belastet den Rechner der Nutzer nicht
Cons:
Erfordert Client- und Server-seitigen Code
Implementierung kann je nach Fall komplex sein
Fazit
Wie wir gesehen haben, kann das Erzeugen von PDFs aus HTML knifflig sein. Das muss es aber nicht, und die oben genannten Beispiele sind nur einige der Optionen, die du in Betracht ziehen kannst. Mit etwas Ausprobieren kommst du schnell ans Ziel – teste unterschiedliche Ansätze, um die für dich beste Lösung zu finden.
Viel Erfolg!
Wenn du mehr wissen möchtest, kontaktiere uns – hello@start-up.house
FAQs
Wie kann ich meine komplette HTML-Seite in React als PDF speichern?
- Mit den im Artikel beschriebenen Methoden kannst du deine HTML-Seite in ein PDF konvertieren. Ein direkter Weg ist die native Browser-Druckfunktion mit CSS-Druckregeln.
Welche Libraries helfen dabei, HTML zu PDF in einer React App umzuwandeln?
- React PDF, PDFKit und jsPDF sind beliebte Libraries. Wenn du speziell React PDF verwendest, ist es wichtig, die passenden React PDF-Komponenten korrekt einzusetzen.
Bleiben Hintergrundfarbe und Custom Fonts beim Export von HTML nach PDF erhalten?
- Das hängt von der Methode ab. Manche Wege übernehmen Hintergrundfarben und Fonts nicht zuverlässig, während Tools wie Puppeteer oder spezialisierte Libraries dies oft ermöglichen.
Warum weicht die Hintergrundfarbe im PDF von meiner HTML-Seite ab?
- Die exakte Reproduktion der Hintergrundfarbe hängt stark von der verwendeten Methode oder Library ab. Achte darauf, dass das gewählte Tool die Übernahme von Hintergrundfarben unterstützt.
Kann ich Standardinhalte meiner React App in eine PDF-Datei exportieren?
- Ja, je nach Inhalt und Struktur deiner React App kannst du Tools und Libraries nutzen, um Standardinhalte reibungslos als PDF zu exportieren.
Kann ich in einer React App einen HTML-String mit jsPDF in ein PDF umwandeln?
- Ja, mit jsPDF kannst du HTML, inklusive HTML-Strings, in PDF-Dokumente konvertieren. In Kombination mit weiteren Tools oder Libraries lässt sich der Prozess in React zusätzlich vereinfachen.
Was sind die Hauptunterschiede zwischen HTML-zu-PDF und dem Screenshot-DOM-Verfahren in React?
- Bei der direkten HTML-zu-PDF-Konvertierung bleibt Text im PDF meist auswähl- und durchsuchbar. Beim Screenshot-Verfahren (HTML => Canvas => Image => PDF) ist das Ergebnis ein Bild; Textauswahl ist dann in der Regel nicht möglich.
Wie sorge ich für eine konsistente Hintergrundfarbe beim Konvertieren meiner HTML-Seite in PDF?
- Nutze Libraries oder Tools, die Styles priorisiert erhalten, etwa Puppeteer oder React PDF. Das erhöht die Chance, dass die Hintergrundfarbe konsistent bleibt.
Was ist effizienter: ein PDF mit React PDF neu erstellen oder HTML zu PDF konvertieren?
- Die Konvertierung von bestehendem HTML zu PDF ist meist schneller, da du vorhandene Inhalte nutzt. Ein PDF von Grund auf mit React PDF zu bauen, kann bei komplexem Design zeitintensiver sein.
Wie gehe ich mit großen PDF-Dateien um, wenn ich lange HTML-Seiten in React konvertiere?
- Teile lange Inhalte in Abschnitte oder Seiten, um Lesbarkeit und Performance zu verbessern. Libraries wie Puppeteer bieten Funktionen, um lange Inhalte sauber zu paginieren.
Was bedeutet der Prozess 'html to pdf react' in der Webentwicklung?
- Der 'html to pdf react'-Prozess bezeichnet die Umwandlung von HTML-Inhalten innerhalb einer React-Anwendung in ein PDF-Dokument. Das geschieht typischerweise mit Libraries, die Struktur und Styling übernehmen, sodass das PDF gespeichert, gedruckt oder geteilt werden kann.
Welche Libraries werden häufig für 'html to pdf react' verwendet?
- Beliebte Libraries für 'html to pdf react' sind jsPDF und html2canvas. Sie arbeiten zusammen, um das von React gerenderte HTML zu erfassen und in ein PDF zu überführen – Layout und Styles bleiben so weit wie möglich erhalten.
Gibt es Herausforderungen im 'html to pdf react'-Prozess?
- Eine zentrale Herausforderung ist, dass das PDF Layout, Styles und Inhalt möglichst exakt widerspiegelt. Auch der Umgang mit dynamischen Daten und sehr großen Dokumenten ist oft herausfordernd.
Wie erreiche ich hohe Qualität im 'html to pdf react'-Prozess?
- Setze auf zuverlässige Libraries, teste mit unterschiedlichen Inhalten und erwäge bei komplexen Layouts oder dynamischen Daten maßgeschneiderte Lösungen. Regelmäßige Updates und Code-Optimierung verbessern die PDF-Qualität zusätzlich.
Kann interaktiver Inhalt bei 'html to pdf react' berücksichtigt werden?
- Grundlegende Interaktivität lässt sich teils abbilden, komplexe Effekte wie Hover-States oder klickbare Interaktionen werden im PDF jedoch nicht vollständig repliziert. Im Fokus steht üblicherweise die korrekte visuelle Darstellung, nicht die Interaktivität.
Digital Transformation Strategy for Siemens Finance
Cloud-based platform for Siemens Financial Services in Poland

Das könnte Ihnen auch gefallen...

So finden Sie 2023 die beste Node.js-Entwicklungsagentur: Ein umfassender Leitfaden
Node.js hat sich als Schlüsseltechnologie für die Entwicklung robuster, skalierbarer Webanwendungen etabliert. Vor diesem Hintergrund ist die Rolle einer Node.js-Entwicklungsagentur wichtiger denn je. Dieser Artikel zeigt Ihnen, wie Sie die besten Node.js-Entwicklungsunternehmen für Ihre spezifischen Anforderungen auswählen.

Marek Pałys
02. Feb. 2023・6 Min. Lesezeit

4 Gründe, Chakra UI in deinem nächsten Projekt zu verwenden
Chakra UI ist eine einfache, modulare und barrierefreie Komponentenbibliothek für die schnelle Entwicklung von React-Apps. Dank leichter Anpassbarkeit, Dark-Mode-Unterstützung, responsivem Design und starkem Fokus auf Barrierefreiheit hebt sich Chakra UI von anderen UI-Bibliotheken ab und ist damit eine ausgezeichnete Wahl für React-Entwicklerinnen und -Entwickler.

Mateusz Wójcik
19. Jan. 2021・4 Min. Lesezeit

So haben wir SWR in einem Projekt eingesetzt – und warum wir es lieben
SWR, eine React-Hooks-Bibliothek für Remote Data Fetching, bietet eine einfache und dennoch leistungsstarke Lösung zum Caching, zur Revalidierung und zum Abrufen von Daten in React-Anwendungen. Erfahren Sie, wie SWR die Komplexität beim Umgang mit State Slices eliminiert, die Entwicklung beschleunigt und die UI-Performance verbessert. Entdecken Sie Beispiele für die SWR-Implementierung und seine Integrationen.

Kamil Polok
09. Juni 2021・6 Min. Lesezeit

Node.js-Entwicklungsservice
Node.js ermöglicht schnelle, skalierbare Echtzeit-Anwendungen. Unsere Node.js-Entwicklungsdienstleistungen helfen Unternehmen, sichere, leistungsstarke Backends aufzubauen, die auf Wachstum ausgelegt sind.

Alexander Stasiak
05. Feb. 2026・10 Min. Lesezeit

Outsourcing von Softwareentwicklung
Outsourcing der Softwareentwicklung hat sich vom reinen Kostenhebel zu einer Möglichkeit entwickelt, genau dann spezialisiertes Fachwissen einzubringen, wenn es die Roadmap braucht. Dieser Leitfaden definiert, was Softwareentwicklungs-Outsourcing umfasst, warum sich Startups und Großunternehmen dafür entscheiden und wie sich die wichtigsten Kooperationsmodelle in der Praxis unterscheiden. Er liefert eine Methode zur Bewertung potenzieller Partner und führt durch den Delivery-Prozess – von der Discovery-Phase bis zum Launch. Abschnitte zu Platform Engineering, Risikominimierung, ROI und Zukunftstrends runden die Analyse ab.

Alexander Stasiak
10. Aug. 2026・8 Min. Lesezeit

Top 10 Innovationstrends der Reisebranche, die 2025 prägen werden
Von KI-generierten Reiseplänen über immersive virtuelle Reiseziele bis hin zu nachhaltigen Luxusreisen – das Reisen im Jahr 2025 wandelt sich rasant. In diesem Artikel stellen wir 10 bahnbrechende Reiseinnovationen vor, die neu definieren, wie wir die Welt entdecken, Erlebnisse buchen und unterwegs mit Technologie interagieren.

Alexander Stasiak
23. Juni 2025・12 Min. Lesezeit
Kürzlich hinzugefügt

Die besten KI-Unternehmen in Mittel- und Osteuropa für Enterprise-Kunden
Die Wahl des Technologiepartners für die Einführung von Künstlicher Intelligenz (KI) im Enterprise-Segment erfordert, über die gängigen Kriterien eines Softwarehauses hinauszugehen. In der CEE-Region (Mittel- und Osteuropa) agieren Anbieter, die globale Skalierung mit tiefgreifender Engineering-Expertise verbinden und Agentensysteme sowie RAG-Wissensbasen anbieten – konform mit dem AI Act und DORA. Dieser Artikel präsentiert eine Übersicht verifizierter Unternehmen mit dokumentierten KI-Implementierungen für den Corporate-Sektor.

Alexander Stasiak
04. Nov. 2026・10 Min. Lesezeit

Die besten KI-Unternehmen für die Fintech- und Versicherungsbranche (2027)
Die Wahl des Technologiepartners in regulierten Branchen ist eine Entscheidung von großer Tragweite. Wenn Sie wissen möchten, welche der besten KI-Unternehmen für Fintech und Versicherungen in Polen aktiv sind, vergleicht dieser Beitrag Softwarehäuser, Systemintegratoren und Softwarehersteller, die KI-Agenten, RAG-Wissensdatenbanken und Datenanalyse in Banken, Fintechs und bei Versicherern implementieren. Sie finden hier eine Vergleichstabelle, Firmenprofile, die Anforderungen von DORA, der DSGVO und dem AI Act, den Implementierungsprozess sowie eine Startup House Case Study mit Zahlen.

Alexander Stasiak
03. Nov. 2026・12 Min. Lesezeit

KI in der Lebensmittelproduktion: Praxisbeispiele und Implementierungspartner (2027)
Lebensmittelhersteller stehen vor der Herausforderung begrenzter Haltbarkeit, volatiler Rohstoffpreise und steigender Anforderungen der Handelsketten, weshalb die Nachfrageprognose und die Produktionsplanung immer häufiger von KI (AI) unterstützt werden. In diesem Überblick zeigen wir, wie KI (AI) 2026 und 2027 in der Lebensmittelproduktion eingesetzt wird: Praxisbeispiele und Implementierungspartner in Polen. Hier finden Sie einen Vergleich von Implementierungsdienstleistern (Startup House, Comarch, Sii Polska, TTMS) und Tools (RELEX, o9 Solutions, Kinaxis) sowie Informationen zum Implementierungsprozess, zu Risiken und Antworten auf häufig gestellte Fragen.

Alexander Stasiak
02. Nov. 2026・11 Min. Lesezeit

KI-Integration in ERP- und CRM-Systeme (SAP, Comarch, Dynamics): so funktioniert es in der Praxis (2027)
Die Integration von KI in ERP- und CRM-Systeme (SAP, Comarch, Dynamics) bedeutet in der Praxis die Wahl zwischen drei Modellen: ein vom Hersteller eingebauter Assistent, eine eigene KI-Schicht mit API-Anbindung oder KI-Agenten, die über MCP auf den Systemen arbeiten. Der Text richtet sich an mittelständische und große Unternehmen in Polen, die Sprachmodelle mit ihrem bestehenden ERP oder CRM – auch mit Legacy-Systemen – verbinden wollen. Sie finden hier einen Vergleich der Hersteller-Tools (SAP Joule, Microsoft Dynamics 365, Comarch ERP, Salesforce Agentforce, Oracle NetSuite), der Implementierungspartner, den Einführungsprozess, Risiken sowie eine Fallstudie mit konkreten Zahlen.

Alexander Stasiak
01. Nov. 2026・13 Min. Lesezeit

Automatisierung von Geschäftsprozessen mit KI-Agenten: vom Workflow zum Agenten
Automatisierung von Geschäftsprozessen mit KI-Agenten: Vom Workflow zum Agenten ist ein Leitfaden für mittelständische und große Unternehmen, die einen Dienstleister oder ein Tool zur Automatisierung ihrer Abläufe suchen. Wir zeigen, worin sich ein deterministischer Workflow von einem entscheidungsfähigen KI-Agenten unterscheidet, vergleichen Implementierungspartner (Startup House, Comarch, WeAreFuture, TTMS) sowie Plattformen (n8n, Make, Zapier, Power Automate, Copilot Studio, UiPath, LangGraph, OpenAI Agents SDK). Zum Schluss beschreiben wir den Implementierungsprozess, eine Fallstudie von Startup House und die Risiken.

Alexander Stasiak
31. Okt. 2026・11 Min. Lesezeit

KI-Assistent für Vertrieb und Kundenservice: Eigenentwicklung oder Copilot
KI-Assistent für Vertrieb und Kundenservice: Eigenentwicklung oder Copilot? Vor dieser wichtigen Entscheidung stehen heute Vertriebs-, Service- und IT-Teams in mittelständischen und großen Unternehmen. Die Wahl zwischen einem fertigen Produkt wie Microsoft 365 Copilot und dem Aufbau eines eigenen KI-Assistenten beeinflusst Einführungsgeschwindigkeit, Datenhoheit und die Passung zu den Prozessen deines Unternehmens. In diesem Beitrag findest du einen Vergleich der Tools (Salesforce Agentforce, Microsoft 365 Copilot for Sales und for Service, HubSpot, Zendesk, Intercom Fin) und der Implementierungspartner, Auswahlkriterien, den Implementierungsprozess sowie eine Fallstudie von Startup House.

Alexander Stasiak
30. Okt. 2026・13 Min. Lesezeit
Bereit, Ihr Know-how mit KI zu zentralisieren?
Beginnen Sie ein neues Kapitel im Wissensmanagement – wo der KI-Assistent zum zentralen Pfeiler Ihrer digitalen Support-Erfahrung wird.
Arbeiten Sie mit einem Team, dem erstklassige Unternehmen vertrauen.
