Verwendung von Basis-URLs und Asset-Kodierung

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF ist ein nützliches Tool zur Erzeugung von PDF-Dokumenten in .NET-Projekten.

Eine häufige Anwendung dieser Bibliothek ist das "HTML to PDF"-Rendering, bei dem HTML als Designsprache für das Rendering eines PDF-Dokuments verwendet wird. Eine logische Frage ist: wie können wir CSS-Stylesheets und Bilddateien in unserer HTML-zu-PDF-Konvertierung verwenden?


C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronPDF an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es PDF mit C#.

C# NuGet-Bibliothek für PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

Erwägen Sie die Installation der IronPDF DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronPdf.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen
## Rendering einer PDF-Datei aus einer HTML-Zeichenkette mit Bild- und CSS-Elementen Bei der Konvertierung von HTML-Strings in PDF ist es wichtig, einen Parameter **BaseUrlOrPath** für Elemente wie CSS, JavaScript-Dateien und Bilder festzulegen. Die BaseUrlOrPath gibt die Basis-URL an, von der alle Assets relativ zu ihr geladen werden. Dies kann eine Web-URL sein, die mit "http" beginnt, um entfernte Assets zu laden, oder ein lokaler Dateipfad, um auf Assets auf Ihrer Festplatte zuzugreifen. Die korrekte Einstellung von BaseUrlOrPath stellt sicher, dass die Assets während des Konvertierungsprozesses korrekt geladen werden. ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-urls-baseurl.cs ``` ### MVC-Anwendung In einer MVC-Anwendung kann die Angabe des Dateipfads eines Bildes eine Herausforderung darstellen. Damit das Bild von IronPDF gefunden und auf der Website korrekt angezeigt werden kann, müssen die **baseUrl** von IronPDF und das **src=""**-Attribut im HTML-String korrekt konfiguriert werden. Mit der unten gezeigten Dateihierarchie - baseUrlOrPath zu @"wwwroot/image" - src-Attribut zu "../Bild/Muster.jpg" ```txt wwwroot └── image ├── Sample.jpg └── Sample.png ``` **Beispiel:** ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-mvc.cs ``` ```html ```
Bevor Sie fortfahren
#### Dateipfadformate, die nicht funktionieren Die folgenden Formate funktionieren gut, wenn sie im Chrome-Browser angezeigt werden, verweisen aber auf das falsche Ordnerverzeichnis, wenn sie in einer MVC-Anwendung verwendet werden. Diese Formate funktionieren auch mit IronPDF, wenn baseUrlOrPath in der Methode RenderHtmlAsPdf angegeben wird: ```html ``` Andererseits funktionieren diese Formate gut mit MVC-Anwendungen, aber wenn es um den Dateipfad geht, funktionieren diese Formate nicht gut in IronPDF: ```html ```
## HTML-Kopf- und Fußzeilen mit Bildern und Assets Wenn wir HTML-Kopf- und -Fußzeilen in ein neues oder bestehendes PDF-Dokument rendern, werden sie als eigenständige HTML-Dokumente behandelt und erben nicht die BaseURL des PDF-Dokuments selbst. Wir sollten eine BaseURL festlegen, von der Assets geladen werden können: ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-header-footer.cs ``` ## HTML-Datei in PDF mit CSS, JS und Bild-Assets Bei der Umwandlung einer HTML-Datei in eine PDF-Datei wird davon ausgegangen, dass alle Elemente in dieser Datei lokal sind. ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-html-file.cs ``` Im obigen Beispiel werden alle JS-, CSS- und Bilddateien aus dem Ordner C:\\Assets auf der Festplatte geladen - demselben Verzeichnis, in dem sich auch die HTML-Datei befindet. Der Einfachheit halber können Sie Folgendes verwenden[ChromePdfRenderOptions.CustomCssUrl](/object-reference/api/IronPdf.ChromePdfRenderOptions.html#IronPdf_ChromePdfRenderOptions_CustomCssUrl) ein zusätzliches Stylesheet angeben, das nur für das .NET-PDF-Rendering verwendet wird, wenn Sie dies wünschen. Zum Beispiel: ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-html-file-baseurl.cs ```
Bitte beachten Sie
Die Eigenschaft ChromePdfRenderOptions.CustomCssUrl funktioniert derzeit nur beim Rendern von einem HTML-String in ein PDF-Dokument mit der Methode RenderHtmlAsPdf.
## Bild-Asset-Codierung Bildinhalte können direkt in die HTML-Datei oder -Zeichenkette kodiert werden, was dazu beitragen kann, einige der frustrierenden Probleme mit nicht gefundenen Bildern zu vermeiden. Dazu können wir die Verwendung von base64 nutzen: 1. Erhalten Sie zunächst die Binärdaten des Bildes, indem Sie entweder die Bilddatei lesen oder sie durch eine Netzwerkanfrage erhalten. 2. Verwenden Sie die Methode `Convert.ToBase64String` in Microsoft .NET, um die Binärdaten in Base64 zu konvertieren. 3. Konstruieren Sie das Bild-Tag in HTML mit "data:image/svg+xml;base64" vor den base64-Daten. Sie haben vielleicht bemerkt, dass der Bildtyp vor den base64-Daten angegeben wird. Besuchen Sie die[MDN-Webdokumente](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types) für weitere Informationen über Bildformattypen. ```cs :path=/static-assets/pdf/content-code-examples/how-to/add-images-to-pdfs-base64-image.cs ```