PDFBolt gegen IronPDF: Leitfaden für einen technischen Vergleich
PDFBoltvs IronPDF: Cloud SaaS vs. selbstgehostete PDF-Erzeugung in .NET
Wenn .NET-Entwickler PDF-Dokumente erzeugen müssen, stehen sie vor einer grundlegenden architektonischen Entscheidung: Cloud-basierte SaaS-Dienste wie PDFBoltoder selbst gehostete Bibliotheken wie IronPDF. In diesem Vergleich werden beide Ansätze anhand der wichtigsten technischen Dimensionen untersucht, um Entwicklern, Architekten und technischen Entscheidungsträgern die Auswahl des richtigen Werkzeugs für ihre PDF-Generierungs-Workflows zu erleichtern.
Was ist PDFBolt?
PDFBolt ist eine reine Cloud-SaaS-Plattform, die für die Erzeugung von PDFs über externe Server entwickelt wurde. Der Dienst bietet eine HtmlToPdfConverter-Klasse, die HTML-Inhalte oder URLs zur Verarbeitung an die Cloud-Infrastruktur von PDFBoltsendet und die generierten PDF-Bytes an Ihre Anwendung zurückgibt.
Die Cloud-basierte Architektur bietet eine schnelle Integration durch API-Aufrufe - Entwickler installieren das NuGet-Paket, erhalten einen API-Schlüssel und können mit der PDF-Erstellung beginnen. PDFBoltübernimmt die Rendering-Infrastruktur, sodass keine lokalen Ressourcen für die PDF-Generierung erforderlich sind.
Diese Bequemlichkeit ist jedoch mit Abstrichen verbunden. Jedes Dokument durchläuft externe Server, so dass der Datenschutz zu berücksichtigen ist. Die kostenlose Version ist auf 100 Dokumente pro Monat beschränkt, darüber hinaus wird pro Dokument bezahlt. Außerdem ist eine Netzwerkverbindung für alle PDF-Generierungsvorgänge erforderlich.
Was ist IronPDF?
IronPDF ist eine selbst gehostete .NET-Bibliothek, die die PDF-Erzeugung lokal auf Ihren Servern durchführt. Die Klasse ChromePdfRenderer verwendet eine eingebettete Chromium-Engine, um HTML, CSS und JavaScript ohne externe Netzwerkaufrufe in originalgetreue PDF-Dokumente zu konvertieren.
Die Bibliothek verarbeitet alle Dokumente innerhalb der Infrastruktur Ihrer Anwendung. Keine Daten verlassen Ihre Server, und es gibt keine Nutzungsbeschränkungen für die Dokumentenerstellung. Nach der Lizenzierung können Sie eine unbegrenzte Anzahl von PDFs erstellen, ohne dass Kosten pro Dokument anfallen.
IronPDF bietet sowohl synchrone als auch asynchrone Methoden sowie umfangreiche Funktionen, die über die grundlegende Generierung hinausgehen - einschließlich PDF-Zusammenführung, Wasserzeichen, Textextraktion und Sicherheitseinstellungen, die Cloud-APIs in der Regel nicht bieten können.
Architekturvergleich
Der grundlegende Unterschied zwischen PDFBoltundIronPDFliegt darin, wo die Dokumentenverarbeitung stattfindet. Diese Unterscheidung betrifft alles, vom Datenschutz bis zur Betriebssicherheit.
| Feature | PDFBolt | IronPDF |
|---|---|---|
| Hosting | Nur für die Cloud | Selbst gehostet |
| Datenstandort | Externe Server | Nur Ihre Server |
| Datenschutz | Extern bearbeitete Dokumente | Vollständiger Datenschutz, lokale Verarbeitung |
| Nutzungseinschränkungen | Kostenlose Ebene, begrenzt auf 100/Monat | Unbegrenzt |
| Internet erforderlich | Ja, immer | Nein |
| Latenzzeit | Netzwerkumlaufzeit (Sekunden) | Millisekunden (lokal) |
| Offline-Betrieb | Unmöglich | Vollständig unterstützt |
| C#-Integration | Cloud-API | Direkte Integration von Bibliotheken |
| Kostenmodell | Pro Dokument | Einmaliger Kauf oder Abonnement |
Für Anwendungen, die mit sensiblen Dokumenten umgehen - Verträge, Krankenakten, Finanzdaten - führt der Cloud-Charakter von PDFBoltzu komplexer Compliance. GDPR-, HIPAA- und SOC2-Audits werden komplizierter, wenn Dokumente an externe Server übertragen werden.
Basiskonvertierung von HTML in PDF
Beide Bibliotheken beherrschen die HTML-zu-PDF-Konvertierung, allerdings mit unterschiedlichen API-Mustern und Rückgabetypen.
PDFBolt HTML-zu-PDF Ansatz:
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF HTML-zu-PDF-Ansatz:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
PDFBolt's ConvertHtmlString() gibt ein Byte[]-Array zurück, was manuelle File.WriteAllBytes()-Aufrufe zum Speichern erfordert. IronPDFs RenderHtmlAsPdf() gibt ein PdfDocument-Objekt mit praktischen Methoden wie SaveAs() zurück, plus Eigenschaften wie BinaryData und Stream für die alternative Ausgabebehandlung.
Der HTML-zu-PDF-Konvertierungsprozess inIronPDFwird vollständig lokal ausgeführt, ohne dass die Latenzzeit bei jeder Konvertierung durch einen Netzwerk-Round-Trip erhöht wird.
URL zu PDF Konvertierung
Die Konvertierung von Webseiten in PDF folgt ähnlichen Mustern, mit bemerkenswerten Unterschieden in der Benennung und Verarbeitung von Methoden.
PDFBolt URL-to-PDF Ansatz:
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF URL-to-PDF Ansatz:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF bietet eine spezielle RenderUrlAsPdf-Methode an, die den ausgeführten Vorgang klar angibt. Das resultierende PdfDocument-Objekt bietet dieselbe reichhaltige Schnittstelle für das Speichern, den Zugriff auf Binärdaten oder weitere Manipulationen.
Benutzerdefinierte Seitengröße und Ränder
Professionelle Dokumente erfordern oft bestimmte Seitenabmessungen und Randkonfigurationen. Beide Bibliotheken unterstützen diese Anpassungen mit unterschiedlichen Konfigurationsmustern.
PDFBolt Seitenaufbau:
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF-Seitenkonfiguration:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
PDFBolt verwendet direkte Eigenschaften des Konverterobjekts (converter.PageSize, converter.MarginTop).IronPDFzentralisiert die gesamte Konfiguration über die RenderingOptions-Eigenschaft und macht die Einstellungen über die IDE-Autovervollständigung auffindbar.
Beide Bibliotheken geben die Ränder in Millimetern an, und beide unterstützen Standardpapiergrößen durch Enums.
API-Mapping-Referenz
Für Teams, die eine Migration von PDFBoltzuIronPDFin Erwägung ziehen, ist das Verständnis der API-Zuordnungen hilfreich, um den Aufwand einzuschätzen.
Kern-Methoden-Zuordnungen
| PDFBolt | IronPDF | Notizen |
|---|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
Haupt-Renderer |
converter.ConvertHtmlString(html) |
renderer.RenderHtmlAsPdf(html) |
Liefert PdfDocument |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
Liefert PdfDocument |
File.WriteAllBytes(path, pdf) |
pdf.SaveAs(Pfad) |
Eingebauter Speicher |
Byte[] Ergebnis |
pdf.BinaryData |
Zugang zu den Eigenschaften |
Zuordnungen von Konfigurationseigenschaften
| PDFBolt | IronPDF | Notizen |
|---|---|---|
converter.PageSize = PageSize.A4 |
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4 |
Enum-Namen unterscheiden sich |
converter.MarginTop = 20 |
renderer.RenderingOptions.MarginTop = 20 |
In Millimetern |
converter.MarginBottom = 20 |
renderer.RenderingOptions.MarginBottom = 20 |
Einzelne Eigenschaften |
converter.MarginLeft = 15 |
renderer.RenderingOptions.MarginLeft = 15 |
Direkter Auftrag |
converter.MarginRight = 15 |
renderer.RenderingOptions.MarginRight = 15 |
Objekt ohne Ränder |
Kopf-/Fußzeilen-Platzhalter-Zuordnungen
Kopf- und Fußzeilen mit dynamischem Inhalt verwenden eine andere Platzhalter-Syntax:
| PDFBolt | IronPDF | Zweck |
|---|---|---|
{Seitennummer} |
{Seite} |
Aktuelle Seitenzahl |
{gesamteSeiten} |
{Gesamtseiten} |
Gesamtseitenzahl |
{Datum} |
{Datum} |
Aktuelles Datum |
{Titel} |
{html-title} |
Titel des Dokuments |
IronPDF verwendet HTML-basierte Kopf- und Fußzeilen mit vollständiger CSS-Unterstützung, im Gegensatz zu reinen Textoptionen in einigen Cloud-APIs.
Vergleich der Verfügbarkeit von Funktionen
Über die grundlegende HTML-zu-PDF-Konvertierung hinaus unterscheiden sich die Bibliotheken erheblich in ihren verfügbaren Funktionen.
| Feature | PDFBolt | IronPDF |
|---|---|---|
| HTML zu PDF | ✓ | ✓ |
| URL zu PDF | ✓ | ✓ |
| Kopf-/Fußzeilen | ✓(Text) | ✓(vollständiges HTML) |
| Seitenzahlen | ✓ | ✓ |
| Benutzerdefinierte Seitengrößen | ✓ | ✓ |
| Margen | ✓ | ✓ |
| PDF-Zusammenführung | ✗ | ✓ |
| PDF-Aufteilung | ✗ | ✓ |
| Wasserzeichen | ✗ | ✓ |
| Passwortschutz | ✗ | ✓ |
| Textextraktion | ✗ | ✓ |
| PDF in Bilder | ✗ | ✓ |
| Formular ausfüllen | ✗ | ✓ |
| Digitale Signaturen | ✗ | ✓ |
| Offline-Betrieb | ✗ | ✓ |
| Unbegrenzte Bearbeitung | ✗ | ✓ |
IronPDF bietet umfangreiche PDF-Bearbeitungsfunktionen, einschließlich Zusammenführen, Aufteilen, Wasserzeichen und Sicherheitseinstellungen, die Cloud-APIs aufgrund des zustandslosen Charakters von API-Anfragen normalerweise nicht bieten können.
Datenschutz und Compliance
Der architektonische Unterschied führt zu grundlegend unterschiedlichen Datenverarbeitungseigenschaften:
PDFBolt Datenfluss:
- Ihre Anwendung sendet HTML/URL an PDFBolt-Server
- PDFBoltverarbeitet das Dokument extern
- Generierte PDF-Dateien werden über das Netzwerk zurückgegeben
- Dokumentinhalte, die außerhalb der eigenen Infrastruktur übermittelt werden
IronPDF-Datenfluss:
- Ihre Anwendung verarbeitet HTML/URL lokal
- Chromium-Engine rendert die PDF-Datei während des Prozesses
- PDF-Daten verlassen nie Ihre Server
- Vollständige Kontrolle über die Dokumentenbearbeitung
Für Anwendungen, die Datenschutzbestimmungen unterliegen - GDPR in Europa, HIPAA für das Gesundheitswesen, SOC2 für Sicherheitsaudits - vereinfacht die lokale Verarbeitung die Einhaltung der Vorschriften erheblich. Dokumente, die personenbezogene Informationen, geschützte Gesundheitsinformationen oder vertrauliche Geschäftsdaten enthalten, verlassen niemals Ihre Infrastruktur.
Wenn Teams den Wechsel von PDFBoltzuIronPDFerwägen
Mehrere Faktoren veranlassen Teams,IronPDFals Alternative zu PDFBoltzu prüfen:
Datenschutzanforderungen: Unternehmen, die mit sensiblen Dokumenten (Verträgen, Krankenakten, Jahresabschlüssen) umgehen, stehen vor Herausforderungen bei der Einhaltung von Vorschriften, wenn die Dokumente extern verarbeitet werden. Durch die lokale Verarbeitung entfällt dieses Problem vollständig.
Nutzungsvolumen-Wachstum: Die kostenlose Version von PDFBolthat eine Obergrenze von 100 Dokumenten pro Monat, darüber hinaus wird pro Dokument abgerechnet. Anwendungen, die monatlich Hunderte oder Tausende von PDFs generieren, finden die unbegrenzte Verarbeitung vonIronPDFkosteneffizienter.
Bedenken der Netzwerkzuverlässigkeit: Cloud-APIs erfordern für jeden Vorgang eine Netzwerkverbindung. Anwendungen, die in Umgebungen mit unterbrochener Konnektivität eingesetzt werden, oder solche, die eine hohe Verfügbarkeit erfordern, profitieren von einer lokalen Verarbeitung, die unabhängig vom Netzwerkstatus weiterläuft.
Latenzempfindlichkeit: Jede PDFBolt-Konvertierung beinhaltet eine Netzwerkumlaufzeit - in der Regel 2-5 Sekunden für einfache Dokumente.IronPDFführt ähnliche Konvertierungen lokal in 100-300 Millisekunden durch.
Funktionsanforderungen: Wenn Anwendungen PDF-Zusammenführung, Wasserzeichen, Textextraktion oder Sicherheitseinstellungen benötigen, können Cloud-APIs diese Funktionen oft nicht bieten. Die umfassenden Funktionen vonIronPDFerfüllen diese Anforderungen ohne zusätzliche Dienstleistungen.
API-Schlüssel-Sicherheit: Durchgesickerte PDFBolt-API-Schlüssel können dazu führen, dass unberechtigte Nutzung über Ihr Konto abgerechnet wird. Das Lizenzschlüsselmodell vonIronPDFbirgt nicht das gleiche Abrechnungsrisiko.
Installationsvergleich
PDFBolt-Installation:
Install-Package PDFBolt
Install-Package PDFBolt
Plus API-Schlüsselkonfiguration und Kontoeinrichtung.
IronPDF-Installation:
Install-Package IronPdf
Install-Package IronPdf
IronPDF erfordert eine Lizenzschlüsselkonfiguration beim Start der Anwendung:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Beide Bibliotheken unterstützen das .NET Framework und moderne .NET-Versionen, wodurch sie mit Anwendungen kompatibel sind, die auf .NET 10 und C# 14 ausgerichtet sind.
Async vs. Sync Überlegungen
Die Cloud-basierte Architektur von PDFBoltverwendet aufgrund von Netzwerkoperationen in der Regel asynchrone Muster:
// PDFBoltcloud pattern - async required
var result = await client.HtmlToPdf(html, options);
var bytes = result.GetBytes();
// PDFBoltcloud pattern - async required
var result = await client.HtmlToPdf(html, options);
var bytes = result.GetBytes();
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF bietet standardmäßig synchrone Methoden, da für die lokale Verarbeitung kein asynchrones Verfahren erforderlich ist:
//IronPDFlocal pattern - sync by default
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
//IronPDFlocal pattern - sync by default
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Für Anwendungen, die von asynchronen Mustern profitieren, bietetIronPDFauch asynchrone Methodenvarianten:
//IronPDFasync option
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
//IronPDFasync option
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
Leistungsmerkmale
Lokale gegenüber Cloud-Verarbeitung führt zu erheblichen Leistungsunterschieden:
| Metrik | PDFBolt | IronPDF |
|---|---|---|
| Einfaches HTML (1 Seite) | 2-5 Sekunden (Netzwerk) | 100-300ms (lokal) |
| Komplexes HTML (10 Seiten) | 5-15 Sekunden | 500ms-2s |
| Stapel (100 Dokumente) | Preis begrenzt | Keine Grenzen |
| Offline-Betrieb | Unmöglich | Volle Unterstützung |
| Erste Anfrage | 3-8 Sekunden (Kaltstart) | 500ms (Motor-Init) |
Die Chromium-Engine vonIronPDFhat bei der ersten Verwendung einen Initialisierungs-Overhead (ca. 500 ms), aber die nachfolgenden Rendervorgänge sind deutlich schneller als Netzwerk-Roundtrips.
Die Entscheidung treffen
Die Wahl zwischen PDFBoltundIronPDFhängt von Ihren spezifischen Anforderungen ab:
Konsultieren Sie PDFBolt, wenn: Sie eine schnelle Integration für einen Prototyp benötigen, das Dokumentenvolumen unter 100 Dokumenten pro Monat bleibt, der Datenschutz keine Rolle spielt und die Netzwerkverbindung zuverlässig ist.
Konsultieren Sie IronPDF, wenn: Sie eine lokale Datenverarbeitung aus Gründen des Datenschutzes oder der Einhaltung von Vorschriften benötigen, mehr als 100 Dokumente pro Monat erstellen, PDF-Bearbeitung über die Erstellung hinaus (Zusammenfügen, Wasserzeichen, Sicherheit) benötigen, Offline-Betrieb möglich sein muss oder die Latenzzeit für die Benutzerfreundlichkeit wichtig ist.
Für Teams, die im Jahr 2025 Produktionsanwendungen erstellen und bis 2026 planen, bietet die selbst gehostete Architektur vonIronPDFbetriebliche Unabhängigkeit und umfassende Funktionen, die Cloud-APIs nicht bieten können.
Einstieg mit IronPDF
Testen SieIronPDFfür Ihre Anforderungen bei der PDF-Erstellung:
- Installieren Sie das IronPDF NuGet-Paket:
Install-Package IronPdf - Lesen Sie das HTML to PDF tutorial für grundlegende Konvertierungsmuster
- Entdecken Sie die URL-zu-PDF-Konvertierung für die Erfassung von Webseiten
- Umfassende Beispiele finden Sie im Abschnitt Tutorials
Die IronPDF-Dokumentation bietet detaillierte Anleitungen für gängige Szenarien, und die API-Referenz dokumentiert alle verfügbaren Klassen und Methoden.
Abschluss
PDFBolt undIronPDFstellen grundlegend unterschiedliche Ansätze für die PDF-Erzeugung in .NET-Anwendungen dar. PDFBoltbietet Cloud-basierten Komfort mit den Nachteilen der externen Datenverarbeitung, Nutzungsbeschränkungen und Netzwerkabhängigkeit.IronPDFbietet eine selbst gehostete Verarbeitung mit vollständigem Datenschutz, unbegrenzter Nutzung und umfassenden PDF-Bearbeitungsfunktionen.
Für Anwendungen, bei denen der Datenschutz eine Rolle spielt, das Dokumentenvolumen erheblich ist oder ein Offline-Betrieb erforderlich ist, bietet die lokale Verarbeitungsarchitektur vonIronPDFFunktionen, die Cloud-APIs nicht bieten können. Der selbst gehostete Ansatz eliminiert externe Abhängigkeiten, vereinfacht die Einhaltung von Vorschriften und schaltet Funktionen wie PDF-Zusammenführung, Wasserzeichen und Sicherheitseinstellungen frei.
Beurteilen Sie beide Optionen im Hinblick auf Ihre spezifischen Anforderungen an die Datenverarbeitung, das Verarbeitungsvolumen, den Funktionsbedarf und die betrieblichen Zwänge. Das Verständnis der in diesem Vergleich dargelegten architektonischen Unterschiede wird Ihnen helfen, eine fundierte Entscheidung zu treffen, die Ihren Anforderungen an die PDF-Erstellung und den Datenschutz entspricht.