C# ile SVG Dosyaları PDF'ye Nasıl Dönüştürülür

SVG'yi C#'de PDF'ye Dönüştürün

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

IronPDF, HTML'den PDF'ye yaklaşımını kullanarak SVG grafiklerini PDF belgelerine dönüştürür - doğru görüntülenmesini sağlamak için SVG'nizi açık height stilleriyle bir img etiketine gömün.

IronPDF, HTML'den PDF'ye yöntemi üzerinden SVG grafikleri PDF belgelerine render etmeyi destekler. SVG (Ölçeklenebilir Vektör Grafikleri) dosyaları, logolar, simgeler, illüstrasyonlar ve grafikler için yaygın olarak kullanılır çünkü her boyutta ölçeklenebilirlik ve keskin render sağlarlar. SVG'lerin PDF'ye dönüştürülmesi, baskıya hazır belgeler oluşturmak, arşiv amaçları ve farklı platformlar arasında tutarlı görüntüleme sağlamak için önemlidir.

Not: Bir SVG gömülürken img öğesinin width ve/veya height stil özniteliğini ayarlayın; aksi takdirde, boyut sıfıra düşebilir ve oluşturulan PDF'de görünmeyebilir.

Hızlı Başlangıç: Kolay SVG'den PDF Dönüşümü

C#'da IronPDF kullanarak SVG dosyalarını PDF'ye dönüştürün. Bu kod parçacığı, başarılı bir görüntüleme için çok önemli bir adım olan, belirli boyutlara sahip bir HTML img etiketiyle bir SVG'nin gömülmesini göstermektedir. SVG'lerinizin doğru şekilde render edilmesini ve PDF olarak kaydedilmesini sağlamak için bu kılavuzu takip edin.

  1. IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    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");
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın

    arrow pointer

SVG'yi Doğru Boyutlandırma ile PDF olarak Nasıl Render Ederim?

Birçok tarayıcı, SVG'leri boyut spesifikasyonu olmadan tolere eder; ancak, render motorumuz onları gerektirir. IronPDF tarafından kullanılan Chrome render motoru, SVG öğelerini doğru şekilde render etmek için açık boyutlar gerektirir. Belirli boyutlar olmadan, SVG son PDF'de görünmeyebilir veya beklenmeyen boyutlandırma ile render edebilir.

IronPDF'de SVG'lerle çalışırken, doğru render sağlamanın birkaç yolu vardır:

  1. Stil Özniteliklerine Sahip Satır İçi SVG: width ve height özniteliklerini doğrudan stil özniteliğine ekleyin
  2. Harici SVG Dosyaları: SVG dosyalarına URL veya yerel dosya yolu üzerinden başvurun
  3. Base64 Kodlu SVG'ler: SVG'leri HTML içine Base64 dizileri olarak doğrudan yerleştirin

Daha gelişmiş HTML render seçenekleri için, render seçenekleri konusundaki kapsamlı kılavuzumuza bakın.

: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")
$vbLabelText   $csharpLabel

Oluşturulan PDF Nasıl Görünür?

Ek olarak veya alternatif olarak, bir SVG düğümüne açık bir width ve height özniteliği atanabilir. CodePen'de SVG stil örneklerine de bakın.

SVG'yi PDF Olarak Render Etme Örneği

Yerel SVG Dosyaları ile Çalışma

Yerel SVG dosyalarını PDF'ye dönüştürürken, dosya yolu yaklaşımını kullanın. Bu yöntem projenizde depolanan SVG varlıkları ile iyi çalışır:

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")
$vbLabelText   $csharpLabel

Gömülü SVG'ler için Base64 Kodlama

Harici dosya referansları olmadan HTML'ye doğrudan gömülü SVG verisi gereken senaryolar için, Base64 kodlama güvenilir bir çözüm sunar. Bu yaklaşım, görsellerin gömülmesi kılavuzumuzda ayrıntılı olarak açıklanır:

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")
$vbLabelText   $csharpLabel

SVG'den PDF'ye Dönüşüm için En İyi Uygulamalar

1. Her Zaman Boyutları Belirtin

SVG'leri PDF'ye dönüştürürken en yaygın sorun, eksik veya sıfır boyutlardır. SVG öğelerinizin her zaman açık width ve height değerlerine sahip olduğundan emin olun. Duyarlı tasarımlar için PDF düzenini kontrol etmek üzere görünüm ayarlarını kullanmayı düşünün.

2. Karmaşık SVG'lerle Render Gecikmelerini Yönetme

Animasyonlar veya JavaScript içeren karmaşık SVG dosyaları, ek işleme süresi gerektirebilir. Tam işlemeyi sağlamak için RenderDelay seçeneğini kullanın:

renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
renderer.RenderingOptions.WaitFor.RenderDelay(2000) ' Wait 2 seconds
$vbLabelText   $csharpLabel

Gelişmiş JavaScript yönetimi için, JavaScript render kılavuzumuzu keşfedin.

3. SVG Dosyalarını Optimize Etme

Dönüşümden önce SVG dosyalarınızı optimize edin:

  • Gereksiz meta verileri kaldırma
  • Yolları basitleştirme
  • Tutarlı bir render için metni yollara dönüştürme
  • Uygun sıkıştırma kullanma

4. Çapraz Platform Uyumluluğu Test Etme

SVG renderi farklı işletim sistemlerinde değişiklik gösterebilir. Dönüşümlerinizi test edin:

Sık Karşılaşılan SVG Sorunlarını Giderme

SVG'nin PDF'te Görünmemesi

SVG'niz oluşturulan PDF'te görünmüyorsa:

  1. Boyutların doğru ayarlandığını doğrulayın
  2. Dosya yollarının veya URL'lerin erişilebilir olup olmadığını kontrol edin
  3. SVG dosyaları için doğru MIME türünü sağlayın
  4. piksel mükemmelliğinde işleme kılavuzumuzu inceleyin

Boyutlandırma ve Çözünürlük Sorunları

Farklı ölçeklerde yüksek kaliteli SVG işleme için:

// 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);' />"
$vbLabelText   $csharpLabel

SVG'lerde Yazı Tipi İşleme

SVG'ler metin öğeleri içerdiğinde, yazı tiplerinin düzgün gömüldüğünden emin olun. yazı tipi yönetimi ve web yazı tipi desteği hakkında daha fazla bilgi edinin.

Gelişmiş SVG Dönüştürme Teknikleri

Birden Fazla SVG'yi Toplu Olarak İşleme

Birden fazla SVG dosyasını tek bir PDF belgeye dönüştürmek için:

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")
$vbLabelText   $csharpLabel

Çok sayfalı belgelerle çalışmak hakkında daha fazla bilgi için PDF birleştirme veya ayırma kılavuzumuzu inceleyin.

Başka neler yapabileceğinizi görmek için hazır mısınız? Eğitim sayfamıza buradan göz atın: Ek Özellikler. SVG içeren PDF'lerinize başlıklar ve altbilgiler eklemeyi veya belgelerinizi markalamak için özel filigranlar nasıl eklenir öğrenmek için keşfedin.

  • TextAnnotation ve AddTextAnnotation kullanın

Sıkça Sorulan Sorular

SVG'yi C#'da PDF'ye nasıl dönüştürebilirim?

IronPDF, HTML'den PDF'ye yöntemi kullanarak SVG'yi PDF'ye dönüştürür. SVG'nizi açık genişlik ve yükseklik stilleriyle bir HTML img etiketinde yerleştirin, ardından IronPDF'ün ChromePdfRenderer'ını kullanarak HTML'yi PDF olarak işleyin. Anahtar nokta, img öğesinde uygun boyutlandırma özniteliklerinin ayarlandığından emin olmaktır.

SVG'lerim neden PDF'de görünmüyor?

IronPDF tarafından oluşturulan PDF'lerde SVG'ler, açık genişlik ve yükseklik belirtimleri yoksa görünmeyebilir. IronPDF tarafından kullanılan Chrome işleme motoru, img etiketinde stil öznitelikleri veya genişlik/yükseklik öznitelikleri aracılığıyla boyutların ayarlanmasını gerektirir. Bunlar olmadan, SVG sıfır boyuta çökebilir.

PDF dönüşümü için SVG'leri yerleştirmenin farklı yöntemleri nelerdir?

IronPDF, SVG'leri yerleştirmek için üç ana yöntemi destekler: 1) genişlik ve yükseklik için stil öznitelikleri ile Satır İçi SVG, 2) URL veya yerel dosya yolu aracılığıyla referans verilen Dış SVG dosyaları ve 3) doğrudan HTML'de yerleştirilen Base64 kodlanmış SVG'ler. Tüm yöntemler uygun boyutlandırma belirtimlerini gerektirir.

Yerel SVG dosyalarını PDF'ye dönüştürebilir miyim?

Evet, IronPDF yerel SVG dosyalarını PDF'ye dönüştürebilir. Projenizde depolanan SVG varlıklarına img etiketinin src özniteliği aracılığıyla referans vererek dosya yolu yaklaşımını kullanın. Doğru görüntüleme için genişlik ve yükseklik belirtimlerini eklemeyi unutmayın.

SVG'den PDF'ye dönüşüm için hangi işleme seçeneklerini kullanmalıyım?

IronPDF ile SVG'den PDF'ye dönüştürme yaparken, uygun RenderingOptions ile ChromePdfRenderer'ı kullanın. Yaygın bir yaklaşım, beklemenin işleme başlamadan önce SVG'lerin tamamen yüklendiğinden emin olmak için WaitFor.RenderDelay(1000) eklemektir. Bu, karmaşık SVG'ler veya dış kaynaklar yüklerken yardımcı olur.

Dönüştürülen SVG'yi PDF dosyası olarak nasıl kaydedebilirim?

IronPDF'ün ChromePdfRenderer'ı ile SVG içeren HTML'nin işlenmesinden sonra, PDF dosyasını kaydetmek için SaveAs yöntemini kullanın. Render edilmiş PDF nesnesinde SaveAs('filename.pdf') çağırarak dosyayı belirtilen konuma kaydedin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,014,616 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.