Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

PDF-Dateien mit Aspose C# vs IronPDF erstellen: Ein Entwickler-Leitfaden

Ein PDF, das Bilder über Dateipfad oder URL referenziert, hat eine versteckte Abhängigkeit. Sobald das Dokument die Maschine verlässt, die es erstellt hat, in einer zustandslosen Cloud-Funktion läuft oder jahrelang archiviert wird, können diese Referenzen unterbrochen werden und leere Felder hinterlassen, wo das Logo oder das Diagramm sein sollte. Das Einbetten von Bildern direkt im HTML als base64-Daten-URIs beseitigt diese Abhängigkeit, und IronPDF rendert das Ergebnis in ein vollständig eigenständiges PDF.

Das geschäftliche Problem

Ein Rechnungsdienst zieht nach Azure oder AWS Lambda um, wo der Dateizugriff beschränkt und vorübergehend ist, sodass die Bildpfade, die lokal funktioniert haben, nicht mehr aufgelöst werden. Ein Berichterstellungstool sendet Dokumente per E-Mail, die auch noch Jahre später korrekt angezeigt werden müssen, nachdem der ursprüngliche Asset-Server geändert wurde. Eine Pipeline erstellt Dokumente aus Bildern, die zur Laufzeit generiert wurden und nie auf der Festplatte gespeichert wurden. In jedem Fall sind externe Bildreferenzen eine Haftung.

Bilder als Daten-URIs einbetten

Das Muster besteht aus drei Schritten: die Bild-Bytes lesen, sie zu base64 konvertieren und das Ergebnis in einem <img>-Tag mit dem passenden MIME-Typ platzieren. Das gerenderte PDF hält dann das Bild innerhalb der Datei.

using IronPdf;
using System;

byte[] imageBytes = System.IO.File.ReadAllBytes("logo.png");
string dataUri = "data:image/png;base64," + Convert.ToBase64String(imageBytes);
string html = $"<img src='{dataUri}'>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("self-contained.pdf");
using IronPdf;
using System;

byte[] imageBytes = System.IO.File.ReadAllBytes("logo.png");
string dataUri = "data:image/png;base64," + Convert.ToBase64String(imageBytes);
string html = $"<img src='{dataUri}'>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("self-contained.pdf");
Imports IronPdf
Imports System

Dim imageBytes As Byte() = System.IO.File.ReadAllBytes("logo.png")
Dim dataUri As String = "data:image/png;base64," & Convert.ToBase64String(imageBytes)
Dim html As String = $"<img src='{dataUri}'>"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("self-contained.pdf")
$vbLabelText   $csharpLabel

Der gleiche Ansatz funktioniert für zur Laufzeit generierte Bilder, wie zum Beispiel ein Diagramm oder Barcode, der im Speicher erstellt wurde, indem die Bytes direkt kodiert werden, ohne eine temporäre Datei zu schreiben. Mehrere Formate werden unterstützt, solange die Daten-URI den richtigen Typ angibt: PNG, JPEG, GIF, SVG (image/svg+xml) und WebP.

Punkte, die zu planen sind

  • Base64 erhöht die Größe: Kodierung erhöht die Bytegröße jedes Bildes um etwa ein Drittel, was sowohl im HTML als auch im PDF landet. Für bildlastige Dokumente vor dem Kodieren komprimieren oder die Größe anpassen und danach PDF-Komprimierung anwenden.
  • MIME-Typ abgleichen: Der Präfix muss dem Format entsprechen, wie data:image/jpeg;base64, für ein JPEG, oder das Bild wird nicht gerendert.
  • Keine Dateisystemabhängigkeit: Da das Bild innerhalb des Dokuments reist, ist das Rendern nicht auf einen erreichbaren Pfad oder Asset-Server angewiesen, was es bei Cloud- und Container-Deployments zuverlässig macht.
  • Weniger Abrufe: Inline-Bilder vermeiden zusätzliche HTTP- oder Dateisystemaufrufe während des Renderns, was den Durchsatz verbessert, wenn ein Dokument viele kleine Bilder enthält.

Ergebnis

Indem sie Bilder als Daten-URIs einbetten, generiert das Team PDFs, die unabhängig davon, ob sie auf einem Laptop oder in einer serverlosen Funktion laufen, identisch gerendert werden, und die jedes Bild intakt halten, wenn sie per E-Mail gesendet oder archiviert werden. Vollständige Formatdetails und Beispiele finden Sie im Einbetten von Bildern mit DataURIs-Leitfaden.

Häufig gestellte Fragen

Warum sind selbstständige PDFs in Cloud- und serverlosen Umgebungen wichtig?

Selbstständige PDFs sind in Cloud- und serverlosen Umgebungen entscheidend, weil sie Abhängigkeiten von externen Bildpfaden oder URLs eliminieren. Dies stellt sicher, dass das PDF konsistent gerendert wird, selbst wenn das Dokument auf eine andere Maschine verschoben oder für die langfristige Archivierung gespeichert wird, wo solche Referenzen möglicherweise nicht mehr gültig sind.

Wie hilft IronPDF bei der Erstellung selbstständiger PDFs?

IronPDF hilft bei der Erstellung selbstständiger PDFs, indem es Nutzern ermöglicht, Bilder direkt als Base64-Daten-URIs in das HTML einzubetten. Diese Methode entfernt die Abhängigkeit von externen Dateipfaden und URLs und stellt sicher, dass das PDF vollständig selbstständig ist.

Was ist ein Base64-Daten-URI und wie wird es in IronPDF verwendet?

Ein Base64-Daten-URI ist eine Methode, um Bilddaten direkt innerhalb eines HTML-Dokuments zu kodieren. In IronPDF können Sie Bildbytes in einen Base64-String konvertieren und in ein  related to Was ist ein Base64-Daten-URI und wie wird es in IronPDF verwendet?-Tag im HTML einbetten. Dies ermöglicht es, das Bild direkt in das PDF einzuschließen und die Notwendigkeit externer Dateiverweise zu eliminieren.

Welche Vorteile hat die Verwendung von Daten-URIs in PDFs?

Die Verwendung von Daten-URIs in PDFs stellt sicher, dass Bilder direkt im Dokument eingebettet sind, wodurch das Risiko von gebrochenen Links reduziert wird, wenn das Dokument verschoben oder archiviert wird. Dieser Ansatz verbessert auch die Leistung, indem die Anzahl der externen Aufrufe während der Rendering reduziert wird.

Kann IronPDF verschiedene Bildformate verarbeiten, wenn Bilder als Daten-URIs eingebettet werden?

Ja, IronPDF unterstützt mehrere Bildformate, wenn Bilder als Daten-URIs eingebettet werden. Formate wie PNG, JPEG, GIF, SVG und WebP können verwendet werden, solange der Daten-URI den korrekten MIME-Typ angibt.

Beeinflusst das Einbetten von Bildern als Daten-URIs die Größe eines PDFs?

Ja, das Kodieren von Bildern als Base64-Daten-URIs erhöht die Größe jedes Bildes um etwa ein Drittel. Diese Zunahme betrifft sowohl das HTML als auch das resultierende PDF, sodass es ratsam ist, Bilder vor dem Kodieren zu komprimieren oder zu verkleinern und danach die PDF-Kompression anzuwenden.

Ist es notwendig, Vorbereitungen zu treffen, bevor Bilder als Daten-URIs in IronPDF eingebettet werden?

Bevor Bilder als Daten-URIs in IronPDF eingebettet werden, stellen Sie sicher, dass Bilder komprimiert oder verkleinert sind, um die Dateigröße zu verwalten. Überprüfen Sie außerdem, dass das Daten-URI-Präfix dem MIME-Typ des Bildes entspricht, um eine korrekte Darstellung sicherzustellen.

Was ist der Prozess, um Bilder als Daten-URIs in IronPDF einzubetten?

Der Prozess umfasst drei Schritte: Lesen der Bildbytes, Konvertieren in einen Base64-String und Einbetten des Resultats in ein  related to Was ist der Prozess, um Bilder als Daten-URIs in IronPDF einzubetten?-Tag mit dem richtigen MIME-Typ. Dies erlaubt es, das Bild innerhalb der PDF-Datei selbst einzuschließen.

Wie beeinflusst die Verwendung von Daten-URIs HTTP- oder Dateisystemaufrufe während der PDF-Rendering mit IronPDF?

Durch die Verwendung von Daten-URIs bettet IronPDF Bilder direkt in das Dokument ein, wodurch zusätzliche HTTP- oder Dateisystemaufrufe während der Rendering eliminiert werden. Dies verbessert die Durchsatzrate, insbesondere wenn das Dokument viele kleine Bilder enthält.

Welcher häufige Fehler kann vermieden werden, wenn Bilder als Daten-URIs in IronPDF eingebettet werden?

Ein häufiger Fehler ist nicht, den MIME-Typ im Daten-URI-Präfix mit dem tatsächlichen Bildformat zu übereinstimmen. Beispielsweise sollte ein JPEG-Bild ein Präfix von data:image/jpeg;base64, haben. Wenn der MIME-Typ falsch ist, wird das Bild nicht korrekt dargestellt.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an