SVG in C#35 in PDF konvertieren
IronPDF konvertiert SVG-Grafiken mithilfe des HTML-zu-PDF-Ansatzes in PDF-Dokumente – betten Sie Ihre SVG-Datei in einen img-Tag mit expliziten height-Stilen ein, um eine korrekte Darstellung sicherzustellen.
IronPDF unterstützt das Rendern von SVG-Grafiken in PDF-Dokumente über die HTML-to-PDF-Methode. SVG-Dateien (Scalable Vector Graphics) werden aufgrund ihrer Skalierbarkeit und gestochen scharfen Darstellung bei jeder Größe häufig für Logos, Symbole, Illustrationen und Diagramme verwendet. Die Konvertierung von SVGs in PDFs ist für die Erstellung druckfertiger Dokumente, für Archivierungszwecke und zur Gewährleistung einer konsistenten Darstellung auf verschiedenen Plattformen unerlässlich.
Hinweis: Setzen Sie beim Einbetten einer SVG-Datei das Stilattribut width und/oder height des Elements img – andernfalls kann es auf die Größe Null reduziert werden und erscheint nicht in der gerenderten PDF-Datei.
Schnellstart: Mühelose SVG-zu-PDF-Konvertierung
Konvertieren von SVG-Dateien in PDF mit IronPDF in C#. Dieser Ausschnitt veranschaulicht das Einbetten einer SVG-Datei über einen HTML-Tag img mit festgelegten Abmessungen – ein entscheidender Schritt für eine erfolgreiche Darstellung. Befolgen Sie diesen Leitfaden für eine schnelle Implementierung, die sicherstellt, dass Ihre SVGs korrekt gerendert und als PDF-Dateien gespeichert werden.
-
Installieren Sie IronPDF mit NuGet Package Manager
PM > Install-Package IronPdf -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.Rendering.WaitFor.RenderDelay(1000) } } .RenderHtmlAsPdf("<img src='https://example.com/logo.svg' style='width:100px;height:100px;'>") .SaveAs("svgToPdf.pdf"); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Installieren Sie die
IronPdf-Bibliothek für SVG-zu-PDF-Konvertierung - Verwendung des
img-Tags in HTML zum Importieren von SVG-Bildern - Verwenden Sie verschiedene Rendering-Methoden in
IronPdf, um PDF zu erzeugen - Speichern Sie die PDF-Datei mit dem SVG-Bild mit der Methode
SaveAs - Überprüfen Sie die PDF-Datei am angegebenen Ort
Wie rendere ich SVG in PDF mit korrekter Größe?
Viele Browser tolerieren SVGs ohne Größenangaben; unsere Rendering-Engine benötigt sie jedoch. Die von IronPDF verwendete Chrome-Rendering-Engine benötigt explizite Abmessungen, um SVG-Elemente korrekt darzustellen. Wenn die Abmessungen nicht angegeben werden, kann es sein, dass die SVG in der endgültigen PDF-Datei nicht angezeigt wird oder eine unerwartete Größe aufweist.
Bei der Arbeit mit SVGs in IronPDF haben Sie mehrere Möglichkeiten, um eine korrekte Darstellung zu gewährleisten:
- Inline-SVG mit Style-Attributen: Fügen Sie
widthundheightdirekt in das Style-Attribut ein - Externe SVG-Dateien: Referenzieren Sie SVG-Dateien über URL oder lokalen Dateipfad
- Base64-codierte SVGs: Betten Sie SVGs direkt in das HTML als Base64-Strings ein
Weitere fortgeschrittene HTML-Rendering-Optionen finden Sie in unserem umfassenden Leitfaden zu Rendering-Optionen.
:path=/static-assets/pdf/content-code-examples/how-to/SVGs-render.cs
using IronPdf;
string html = "<img src='https://ironsoftware.com/img/svgs/new-banner-svg.svg' style='width:100px'>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("svgToPdf.pdf");
Imports IronPdf
Private html As String = "<img src='https://ironsoftware.com/img/svgs/new-banner-svg.svg' style='width:100px'>"
Private renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.RenderDelay(1000)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("svgToPdf.pdf")
Wie sieht die generierte PDF-Datei aus?
Zusätzlich oder alternativ kann einem SVG-Knoten ein explizites width- und height-Attribut zugewiesen werden. Siehe auch Beispiele für SVG-Styling auf CodePen.
Beispiel zum Rendern von SVG in PDF
Arbeiten mit lokalen SVG-Dateien
Verwenden Sie bei der Konvertierung lokaler SVG-Dateien in PDF den Dateipfad-Ansatz. Diese Methode funktioniert gut mit SVG-Assets, die in Ihrem Projekt gespeichert sind:
using IronPdf;
using System.IO;
// Load SVG file content
string svgPath = @"C:\assets\company-logo.svg";
string svgContent = File.ReadAllText(svgPath);
// Create HTML with embedded SVG
string html = $@"
<html>
<head>
<style>
body {{ margin: 20px; }}
.logo {{ width: 200px; height: 100px; }}
</style>
</head>
<body>
<h1>Company Report</h1>
<img src='file:///{svgPath}' class='logo' />
<p>Annual financial summary with vector graphics.</p>
</body>
</html>";
// Configure renderer with custom settings
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Generate PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report-with-svg.pdf");
using IronPdf;
using System.IO;
// Load SVG file content
string svgPath = @"C:\assets\company-logo.svg";
string svgContent = File.ReadAllText(svgPath);
// Create HTML with embedded SVG
string html = $@"
<html>
<head>
<style>
body {{ margin: 20px; }}
.logo {{ width: 200px; height: 100px; }}
</style>
</head>
<body>
<h1>Company Report</h1>
<img src='file:///{svgPath}' class='logo' />
<p>Annual financial summary with vector graphics.</p>
</body>
</html>";
// Configure renderer with custom settings
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Generate PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report-with-svg.pdf");
Imports IronPdf
Imports System.IO
' Load SVG file content
Dim svgPath As String = "C:\assets\company-logo.svg"
Dim svgContent As String = File.ReadAllText(svgPath)
' Create HTML with embedded SVG
Dim html As String = $"
<html>
<head>
<style>
body {{ margin: 20px; }}
.logo {{ width: 200px; height: 100px; }}
</style>
</head>
<body>
<h1>Company Report</h1>
<img src='file:///{svgPath}' class='logo' />
<p>Annual financial summary with vector graphics.</p>
</body>
</html>"
' Configure renderer with custom settings
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Generate PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report-with-svg.pdf")
Base64-Kodierung für eingebettete SVGs
Für Szenarien, die direkt in HTML eingebettete SVG-Daten ohne externe Dateiverweise erfordern, bietet die Base64-Kodierung eine zuverlässige Lösung. Dieser Ansatz wird in unserem Leitfaden zum Einbetten von Bildern ausführlich erläutert:
using IronPdf;
using System;
// SVG content as string
string svgContent = @"<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
<circle cx='50' cy='50' r='40' stroke='black' stroke-width='2' fill='red' />
</svg>";
// Convert to Base64
byte[] svgBytes = System.Text.Encoding.UTF8.GetBytes(svgContent);
string base64Svg = Convert.ToBase64String(svgBytes);
// Create HTML with Base64 embedded SVG
string html = $@"
<html>
<body>
<h2>Embedded SVG Example</h2>
<img src='data:image/svg+xml;base64,{base64Svg}' style='width:150px;height:150px;' />
</body>
</html>";
// Render to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("embedded-svg.pdf");
using IronPdf;
using System;
// SVG content as string
string svgContent = @"<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
<circle cx='50' cy='50' r='40' stroke='black' stroke-width='2' fill='red' />
</svg>";
// Convert to Base64
byte[] svgBytes = System.Text.Encoding.UTF8.GetBytes(svgContent);
string base64Svg = Convert.ToBase64String(svgBytes);
// Create HTML with Base64 embedded SVG
string html = $@"
<html>
<body>
<h2>Embedded SVG Example</h2>
<img src='data:image/svg+xml;base64,{base64Svg}' style='width:150px;height:150px;' />
</body>
</html>";
// Render to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("embedded-svg.pdf");
Imports IronPdf
Imports System
Imports System.Text
' SVG content as string
Dim svgContent As String = "<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
<circle cx='50' cy='50' r='40' stroke='black' stroke-width='2' fill='red' />
</svg>"
' Convert to Base64
Dim svgBytes As Byte() = Encoding.UTF8.GetBytes(svgContent)
Dim base64Svg As String = Convert.ToBase64String(svgBytes)
' Create HTML with Base64 embedded SVG
Dim html As String = $"
<html>
<body>
<h2>Embedded SVG Example</h2>
<img src='data:image/svg+xml;base64,{base64Svg}' style='width:150px;height:150px;' />
</body>
</html>"
' Render to PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("embedded-svg.pdf")
Best Practices für die Konvertierung von SVG in PDF
1. Geben Sie immer die Abmessungen an
Das häufigste Problem bei der Konvertierung von SVGs in PDF sind fehlende oder fehlende Abmessungen. Stellen Sie stets sicher, dass Ihre SVG-Elemente explizite width- und height-Werte enthalten. Für responsive Designs sollten Sie Blickfeldeinstellungen verwenden, um das PDF-Layout zu steuern.
2. komplexe SVGs mit Rendering-Verzögerungen handhaben
Komplexe SVG-Dateien mit Animationen oder JavaScript erfordern möglicherweise zusätzliche Rendering-Zeit. Verwenden Sie die Option RenderDelay, um ein vollständiges Rendering sicherzustellen:
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
renderer.RenderingOptions.WaitFor.RenderDelay(2000) ' Wait 2 seconds
Für den Umgang mit JavaScript für Fortgeschrittene empfehlen wir unseren JavaScript Rendering Guide.
3. optimiere SVG-Dateien
Optimieren Sie Ihre SVG-Dateien vor der Konvertierung durch:
- Entfernen Sie unnötige Metadaten
- Vereinfachen Sie Pfade
- Konvertieren Sie Text in Pfade für konsistente Wiedergabe
- Geeignete Komprimierung verwenden
4. plattformübergreifende Kompatibilität testen
Die SVG-Darstellung kann von Betriebssystem zu Betriebssystem unterschiedlich sein. Testen Sie Ihre Konvertierungen auf:
Fehlerbehebung bei häufigen SVG-Problemen
SVG wird in PDF nicht angezeigt
Wenn Ihr SVG nicht in der generierten PDF-Datei erscheint:
- Überprüfen Sie, ob die Abmessungen korrekt eingestellt sind
- Prüfen Sie, ob Dateipfade oder URLs zugänglich sind
- Stellen Sie den richtigen MIME-Typ für SVG-Dateien sicher
- Lesen Sie unseren Leitfaden für pixelgenaues Rendering
Skalierungs- und Auflösungsprobleme
Für hochwertiges SVG-Rendering in verschiedenen Maßstäben:
// Set custom DPI for better quality
renderer.RenderingOptions.DPI = 300;
// Use CSS transforms for scaling
string html = @"
<img src='logo.svg' style='width:200px;height:200px;transform:scale(1.5);' />";
// Set custom DPI for better quality
renderer.RenderingOptions.DPI = 300;
// Use CSS transforms for scaling
string html = @"
<img src='logo.svg' style='width:200px;height:200px;transform:scale(1.5);' />";
' Set custom DPI for better quality
renderer.RenderingOptions.DPI = 300
' Use CSS transforms for scaling
Dim html As String = "
<img src='logo.svg' style='width:200px;height:200px;transform:scale(1.5);' />"
Schriftwiedergabe in SVGs
Wenn SVGs Textelemente enthalten, muss sichergestellt werden, dass die Schriftarten richtig eingebettet sind. Erfahren Sie mehr über Schriftartenverwaltung und Webschriftartenunterstützung.
Fortgeschrittene SVG-Konvertierungstechniken
Batch-Verarbeitung mehrerer SVGs
Für die Konvertierung mehrerer SVG-Dateien in ein einziges PDF-Dokument:
using IronPdf;
using System.Collections.Generic;
using System.Text;
List<string> svgFiles = new List<string>
{
"chart1.svg",
"chart2.svg",
"diagram.svg"
};
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<html><body>");
foreach(string svgFile in svgFiles)
{
htmlBuilder.Append($@"
<div style='page-break-after:always;'>
<img src='{svgFile}' style='width:600px;height:400px;' />
</div>");
}
htmlBuilder.Append("</body></html>");
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdf.SaveAs("multiple-svgs.pdf");
using IronPdf;
using System.Collections.Generic;
using System.Text;
List<string> svgFiles = new List<string>
{
"chart1.svg",
"chart2.svg",
"diagram.svg"
};
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<html><body>");
foreach(string svgFile in svgFiles)
{
htmlBuilder.Append($@"
<div style='page-break-after:always;'>
<img src='{svgFile}' style='width:600px;height:400px;' />
</div>");
}
htmlBuilder.Append("</body></html>");
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdf.SaveAs("multiple-svgs.pdf");
Imports IronPdf
Imports System.Collections.Generic
Imports System.Text
Dim svgFiles As New List(Of String) From {
"chart1.svg",
"chart2.svg",
"diagram.svg"
}
Dim htmlBuilder As New StringBuilder()
htmlBuilder.Append("<html><body>")
For Each svgFile As String In svgFiles
htmlBuilder.Append($"
<div style='page-break-after:always;'>
<img src='{svgFile}' style='width:600px;height:400px;' />
</div>")
Next
htmlBuilder.Append("</body></html>")
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
pdf.SaveAs("multiple-svgs.pdf")
Weitere Informationen zur Arbeit mit mehreren Seiten finden Sie in unserem Leitfaden zum Zusammenführen oder Teilen von PDFs.
Bereit zu sehen, was Sie sonst noch tun können? Sehen Sie sich hier unsere Tutorial-Seite an: Zusätzliche Funktionen. Sie können auch herausfinden, wie Sie Kopf- und Fußzeilen zu Ihren SVG-haltigen PDFs hinzufügen oder sich über angepasste Wasserzeichen für das Branding Ihrer Dokumente informieren.
- Verwenden Sie
TextAnnotationundAddTextAnnotation
Häufig gestellte Fragen
Wie kann ich SVG in C# in PDF konvertieren?
IronPDF konvertiert SVG in PDF mithilfe der HTML-zu-PDF-Methode. Sie betten Ihr SVG einfach in ein HTML-img-Tag mit expliziten Breiten- und Höhenstilen ein und verwenden dann den ChromePdfRenderer von IronPDF, um das HTML als PDF zu rendern. Wichtig ist, dass die richtigen Größenattribute für das img-Element festgelegt werden.
Warum wird meine SVG-Datei nicht in der PDF-Datei angezeigt?
SVGs können in von IronPDF generierten PDFs nicht angezeigt werden, wenn sie keine expliziten Breiten- und Höhenangaben enthalten. Die von IronPDF verwendete Chrome-Rendering-Engine verlangt, dass die Abmessungen entweder über Style-Attribute oder Width/Height-Attribute am img-Tag festgelegt werden. Ohne diese Attribute kann das SVG auf eine Größe von Null zusammenfallen.
Welche verschiedenen Methoden gibt es zum Einbetten von SVGs für die PDF-Konvertierung?
IronPDF unterstützt drei Hauptmethoden zum Einbetten von SVGs: 1) Inline-SVGs mit Stilattributen für Breite und Höhe, 2) externe SVG-Dateien, auf die über eine URL oder einen lokalen Dateipfad verwiesen wird, und 3) Base64-kodierte SVGs, die direkt in HTML eingebettet sind. Bei allen Methoden müssen die Größenangaben korrekt sein.
Kann ich lokale SVG-Dateien in PDF konvertieren?
Ja, IronPDF kann lokale SVG-Dateien in PDF konvertieren. Verwenden Sie den Dateipfad-Ansatz, indem Sie über das src-Attribut des img-Tags auf Ihre in Ihrem Projekt gespeicherten SVG-Assets verweisen. Vergessen Sie nicht, die Angaben zu Breite und Höhe für eine korrekte Darstellung anzugeben.
Welche Rendering-Optionen sollte ich für die Konvertierung von SVG in PDF verwenden?
Wenn Sie SVG mit IronPDF in PDF konvertieren, verwenden Sie den ChromePdfRenderer mit den entsprechenden RenderingOptions. Ein gängiger Ansatz ist es, mit WaitFor.RenderDelay(1000) eine Renderverzögerung hinzuzufügen, um sicherzustellen, dass SVGs vor der Konvertierung vollständig geladen werden. Dies ist hilfreich bei komplexen SVGs oder beim Laden externer Ressourcen.
Wie speichere ich die konvertierte SVG-Datei als PDF-Datei?
Nachdem Sie Ihr SVG-haltiges HTML mit dem ChromePdfRenderer von IronPDF gerendert haben, verwenden Sie die SaveAs-Methode, um die PDF-Datei zu speichern. Rufen Sie einfach SaveAs("Dateiname.pdf") für das gerenderte PDF-Objekt auf, um es an dem von Ihnen angegebenen Ort zu speichern.

