How to Use Base URLs & Asset Encoding in C# .NET 10
IronPDF'deki temel URL'ler, BaseUrlOrPath parametresini belirterek HTML'den PDF'ye dönüştürme sırasında CSS, JavaScript ve görüntü varlıklarının düzgün bir şekilde yüklenmesini sağlar. Bu parametre, göreceli varlık çözümlemesi için bir web URL'si veya yerel dosya yolu olabilir.
Hızlı Başlangıç: IronPDF'te Taban URL'leri Uygulama
.NET C# içinde HTML'den PDF'ye dönüştürme sırasında sorunsuz varlık yüklemesi için taban URL'leri uygulayarak IronPDF ile başlayın. Bu örnek, tüm CSS, JavaScript ve resimlerin doğru şekilde referanslanmasını sağlamak için BaseUrlOrPath'nin nasıl ayarlanacağını gösterir ve minimum kurulumla PDF oluşturmayı basitleştirir.
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
Bu kod parçacığını kopyalayın ve çalıştırın.
new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<img src='icons/logo.png'>", @"C:\site\assets\").SaveAs("with-assets.pdf"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
Asgari İş Akışı (5 adım)
- HTML'den CSS'e ve Resim Desteğine IronPDF'i İndirin
- BaseUrlOrPath parametresini HTML'deki dış resimler için belirtin
- Web ve PDF görüntüleme için MVC'de doğru src'yi yapılandırın
- BaseUrl özelliğini kullanarak özel başlıklar ve altbilgiler belirtin
- Çıktı PDF'yi kontrol edin
Convert.ToBase64String
Resim ve CSS Varlıklarıyla HTML Dizgilerinden PDF Nasıl İşlenir?
HTML dizelerini PDF'ye dönüştürürken, CSS, JavaScript dosyaları ve görüntüler gibi varlıklar için BaseUrlOrPath parametresini ayarlayın. BaseUrlOrPath, tüm varlıkların göreli olarak yüklendiği temel URL'yi belirtir. CustomCssUrl
Bu, uzak varlıkları yüklemek için 'http' ile başlayan bir web URL'si veya disk üzerindeki varlıklara erişmek için yerel bir dosya yolu olabilir. BaseUrlOrPath öğesinin doğru ayarlanması, dönüştürme sırasında varlıkların düzgün bir şekilde yüklenmesini sağlar. HTML'den PDF'ye dönüştürme hakkında daha fazla ayrıntı için kapsamlı HTML'den PDF'ye kılavuzumuzu inceleyin.
:path=/static-assets/pdf/content-code-examples/how-to/base-urls-baseurl.cs
using IronPdf;
// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
string baseUrl = @"C:\site\assets\";
string html = "<img src='icons/iron.png'>";
// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, baseUrl);
// Export PDF
pdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
' Instantiate ChromePdfRenderer
Private renderer As New ChromePdfRenderer()
Private baseUrl As String = "C:\site\assets\"
Private html As String = "<img src='icons/iron.png'>"
' Render HTML to PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, baseUrl)
' Export PDF
pdf.SaveAs("html-with-assets.pdf")
Dış varlıkları içeren karmaşık senaryolar için font yönetimi veya PDF'lere resim ekleme rehberimize göz atın.
MVC Uygulamalarında Taban URL'leri Nasıl Yapılandırırım?
MVC uygulamalarında resim dosya yollarını belirtirken dikkatli yapılandırma gereklidir. IronPDF'nin resimleri bulup web sitesinde doğru şekilde görüntüleyebilmesi için baseUrl ve HTML src="" özniteliklerini doğru şekilde yapılandırın.
Aşağıda gösterilen dosya hiyerarşisi ayarlanmış olarak
baseUrlOrPathyerine @"wwwroot/image"srcözniteliği "../image/Sample.jpg"
wwwroot
└── image
├── Sample.jpg
└── Sample.png
Örneğin:
:path=/static-assets/pdf/content-code-examples/how-to/base-mvc.cs
// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf("html.Result", @"wwwroot/image");
' Instantiate ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("html.Result", "wwwroot/image")
<img src="../image/Sample.jpg"/>
<img src="../image/Sample.png"/>
<img src="../image/Sample.jpg"/>
<img src="../image/Sample.png"/>
ASP.NET Core MVC'ye özgü uygulamalar için CSHTML'den PDF'ye (MVC Core) kılavuzumuza bakın.
Hangi Dosya Yol Formatlarından Kaçınmalıyım?
Çalışmayan Dosya Yol Formatları
Bu biçimler Chrome tarayıcısında çalışır, ancak MVC uygulamalarında yanlış dizinlere yönlendirir. baseUrlOrPath yöntemi içinde RenderHtmlAsPdf sağlanırsa IronPDF ile çalışırlar:
<img src="image/footer.png"/>
<img src="./image/footer.png"/>
<img src="image/footer.png"/>
<img src="./image/footer.png"/>
Bu formatlar MVC uygulamalarıyla çalışır ancak IronPDF dosya yollarıyla çalışmaz:
<img src="/image/footer.png"/>
<img src="~/image/footer.png"/>
<img src="/image/footer.png"/>
<img src="~/image/footer.png"/>
)}]
Varlık Yüklemeyle İlgili Yaygın Sorun Giderme İpuçları Nelerdir?
Varlıklar yüklenemediğinde, şu sorun giderme adımlarını göz önünde bulundurun:
- Mutlak yolları doğrulayın: Geliştirme sırasında dosya yollarının erişilebilirliğini doğrulamak için mutlak dosya yollarını kullanın
- Dosya izinlerini kontrol edin: Uygulamanın varlık dizinlerine okuma erişimi olduğundan emin olun
- Uzaktan URL'lerle test edin: Yol sorunlarını izole etmek için tam nitelikli URL'ler kullanın
- Loglamayı etkinleştirin: Varlık yüklemeyi hatalık ayıklamak için IronPDF'in özel loglamasını kullanın
// Example: Debug asset loading with absolute paths
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Enable debug logging
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Give assets time to load
// Use absolute path for testing
string absoluteBasePath = Path.GetFullPath(@"C:\MyProject\wwwroot\assets");
string html = @"
<html>
<head>
<link rel='stylesheet' href='styles/main.css'>
</head>
<body>
<img src='images/logo.png' />
<script src='scripts/app.js'></script>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, absoluteBasePath);
// Example: Debug asset loading with absolute paths
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Enable debug logging
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Give assets time to load
// Use absolute path for testing
string absoluteBasePath = Path.GetFullPath(@"C:\MyProject\wwwroot\assets");
string html = @"
<html>
<head>
<link rel='stylesheet' href='styles/main.css'>
</head>
<body>
<img src='images/logo.png' />
<script src='scripts/app.js'></script>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, absoluteBasePath);
Imports System.IO
' Example: Debug asset loading with absolute paths
Dim renderer As New ChromePdfRenderer()
' Enable debug logging
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(500) ' Give assets time to load
' Use absolute path for testing
Dim absoluteBasePath As String = Path.GetFullPath("C:\MyProject\wwwroot\assets")
Dim html As String = "
<html>
<head>
<link rel='stylesheet' href='styles/main.css'>
</head>
<body>
<img src='images/logo.png' />
<script src='scripts/app.js'></script>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, absoluteBasePath)
Resimli HTML Başlıklar ve Altbilgiler Nasıl Eklenir?
HTML üstbilgileri ve altbilgileri yeni veya mevcut PDF'lere aktarılırken, bunlar bağımsız HTML belgeleri olarak ele alınır ve PDF'den BaseURL öğesini devralmaz. Kapsamlı başlık ve alt bilgi seçenekleri için, başlık ve alt bilgilere dair kılavuzumuzu görün.
Varlıkların yüklenebileceği bir BaseURL ayarlayın: ChromePdfRenderOptions
Başlıklar Neden Ana Belgeden Taban URL'lerini Almıyor?
Başlıklar ve altbilgiler performans ve izolasyon için ayrı HTML belgeleri olarak işlenir. Bu tasarım şunları sağlar:
- Ana içeriği etkilemeden bağımsız stil
- Tüm sayfalarda tutarlı render
- Büyük belgeler için daha iyi hafıza yönetimi
- Farklı varlık kaynakları kullanabilme esnekliği
Başlıklar İçin Farklı Taban URL'leri Nasıl Ayarlarım?
Varlıkları etkili bir şekilde düzenlemek için başlıklar, altbilgiler ve ana içerik için farklı taban URL'leri belirtin:
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Main content base URL
string contentBaseUrl = @"C:\website\public\";
// Header specific assets
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<img src='header-logo.png'><link rel='stylesheet' href='header.css'>",
BaseUrl = new Uri(@"C:\website\headers\").AbsoluteUri
};
// Footer specific assets
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div class='footer'>© 2024 Company</div><link rel='stylesheet' href='footer.css'>",
BaseUrl = new Uri(@"C:\website\footers\").AbsoluteUri
};
// Render main content with its own base URL
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Main Content</h1>", contentBaseUrl);
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Main content base URL
string contentBaseUrl = @"C:\website\public\";
// Header specific assets
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<img src='header-logo.png'><link rel='stylesheet' href='header.css'>",
BaseUrl = new Uri(@"C:\website\headers\").AbsoluteUri
};
// Footer specific assets
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div class='footer'>© 2024 Company</div><link rel='stylesheet' href='footer.css'>",
BaseUrl = new Uri(@"C:\website\footers\").AbsoluteUri
};
// Render main content with its own base URL
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Main Content</h1>", contentBaseUrl);
Dim renderer As New ChromePdfRenderer()
' Main content base URL
Dim contentBaseUrl As String = "C:\website\public\"
' Header specific assets
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<img src='header-logo.png'><link rel='stylesheet' href='header.css'>",
.BaseUrl = New Uri("C:\website\headers\").AbsoluteUri
}
' Footer specific assets
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div class='footer'>© 2024 Company</div><link rel='stylesheet' href='footer.css'>",
.BaseUrl = New Uri("C:\website\footers\").AbsoluteUri
}
' Render main content with its own base URL
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Main Content</h1>", contentBaseUrl)
HTML Dosyalarını Yerel Varlıklarla PDF'ye Nasıl Dönüştürürüm?
HTML dosyalarını PDF'ye işlenirken, tüm varlıkların o dosyaya yerel olduğu varsayılır. HTML dosyalarından PDF'ye dönüştürme hakkında daha fazla bilgi edinin HTML Dosyasından PDF'ye rehberimizde inceleyin.
:path=/static-assets/pdf/content-code-examples/how-to/base-html-file.cs
using IronPdf;
// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render HTML file to PDF
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("C:\\Assets\\TestInvoice1.html");
// Export PDF
pdf.SaveAs("Invoice.pdf");
Imports IronPdf
' Instantiate ChromePdfRenderer
Private renderer As New ChromePdfRenderer()
' Render HTML file to PDF
Private pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("C:\Assets\TestInvoice1.html")
' Export PDF
pdf.SaveAs("Invoice.pdf")
Yukarıdaki örnekte, tüm JS, CSS ve resim dosyaları diskteki C:\Assets klasöründen yüklenir - HTML dosyasıyla aynı dizin.
Kolaylık olması açısından, istenirse HtmlToPdf içindeki CustomCssUrl öğesini kullanarak, yalnızca .NET PDF oluşturma için kullanılan ek bir stil sayfasını belirtebilirsiniz. Örneğin:
:path=/static-assets/pdf/content-code-examples/how-to/base-html-file-baseurl.cs
using IronPdf;
// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Set additional CSS url
renderer.RenderingOptions.CustomCssUrl = "./style.css";
// Render HTML file to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export PDF
pdf.SaveAs("tryCss.pdf");
Imports IronPdf
' Instantiate ChromePdfRenderer
Private renderer As New ChromePdfRenderer()
' Set additional CSS url
renderer.RenderingOptions.CustomCssUrl = "./style.css"
' Render HTML file to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export PDF
pdf.SaveAs("tryCss.pdf")
CustomCssUrl
ChromePdfRenderOptions.CustomCssUrl özelliği şu anda yalnızca RenderHtmlAsPdf yöntemi kullanılarak HTML dizelerinden PDF'lere dönüştürme sırasında çalışmaktadır.)})]
Ek Stil İçin CustomCssUrl'i Ne Zaman Kullanmalıyım?
CustomCssUrl şunlar için idealdir:
- Yazı özgü stiller: Navigasyon menülerini veya etkileşimli öğeleri gizle
- PDF düzen optimizasyonu: Yazdırma için kenar boşluklarını ve sayfa kırılmalarını ayarlayın
- Koşullu formatlama: Yalnızca PDF oluştururken stilleri uygula
- A/B testi: Kaynak HTML'yi değiştirmeden farklı PDF düzenlerini test edin
HTML Dosyalarındaki Göreli Varlık Yollarını Nasıl Ele Alırım?
Göreli yollar içeren HTML dosyalarıyla çalışırken, dosya yapınızın referansları desteklediğinden emin olun:
// Example HTML file structure
/*
C:\Projects\Reports\
├── invoice.html
├── css\
│ └── styles.css
├── js\
│ └── calculations.js
└── images\
└── logo.png
*/
// HTML content with relative paths
string htmlContent = @"
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='css/styles.css'>
<script src='js/calculations.js'></script>
</head>
<body>
<img src='images/logo.png' alt='Company Logo'>
<h1>Invoice #12345</h1>
</body>
</html>";
// Save HTML and render
File.WriteAllText(@"C:\Projects\Reports\invoice.html", htmlContent);
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf(@"C:\Projects\Reports\invoice.html");
pdf.SaveAs("invoice-output.pdf");
// Example HTML file structure
/*
C:\Projects\Reports\
├── invoice.html
├── css\
│ └── styles.css
├── js\
│ └── calculations.js
└── images\
└── logo.png
*/
// HTML content with relative paths
string htmlContent = @"
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='css/styles.css'>
<script src='js/calculations.js'></script>
</head>
<body>
<img src='images/logo.png' alt='Company Logo'>
<h1>Invoice #12345</h1>
</body>
</html>";
// Save HTML and render
File.WriteAllText(@"C:\Projects\Reports\invoice.html", htmlContent);
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf(@"C:\Projects\Reports\invoice.html");
pdf.SaveAs("invoice-output.pdf");
Imports System.IO
Imports IronPdf
' Example HTML file structure
'
' C:\Projects\Reports\
' ├── invoice.html
' ├── css\
' │ └── styles.css
' ├── js\
' │ └── calculations.js
' └── images\
' └── logo.png
'
' HTML content with relative paths
Dim htmlContent As String = "
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='css/styles.css'>
<script src='js/calculations.js'></script>
</head>
<body>
<img src='images/logo.png' alt='Company Logo'>
<h1>Invoice #12345</h1>
</body>
</html>"
' Save HTML and render
File.WriteAllText("C:\Projects\Reports\invoice.html", htmlContent)
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("C:\Projects\Reports\invoice.html")
pdf.SaveAs("invoice-output.pdf")
Görüntüleri Base64 Kullanarak HTML İçinde Doğrudan Nasıl Kodlarım?
Görüntü varlıkları HTML dosyalarına veya dizgilerine doğrudan kodlanabilir, eksik görüntü sorunlarını önler. Bu yaklaşım için base64 kodlamasını kullanın. Bu yaklaşım için base64 kodlamasını kullanın. Bu yaklaşım için base64 kodlamasını kullanın:
- İlk olarak, dosyanın okunarak veya bir ağ isteği üzerinden alınarak görüntünün ikili verisini edin.
- İkili verileri base64'e dönüştürmek için Microsoft .NET'te
Convert.ToBase64Stringyöntemini kullanın. - Base64 verilerinin öncesine "data:image/svg+xml;base64," ekleyerek HTML içinde img etiketini oluşturun. Görüntü türünün base64 verilerinden önce belirtildiğine dikkat edin. Görüntü format türleri hakkında daha fazla bilgi için MDN Web Docs on Image Types and Formats inceleyin.
:path=/static-assets/pdf/content-code-examples/how-to/add-images-to-pdfs-base64-image.cs
using IronPdf;
using System;
using System.IO;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Import image file binary data
byte[] binaryData = File.ReadAllBytes("ironpdf-logo-text-dotnet.svg");
// Convert the binary data to base 64
string imgDataUri = Convert.ToBase64String(binaryData);
// Embed in HTML
string html = $"<img src='data:image/svg+xml;base64,{imgDataUri}'>";
// Convert HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
// Export the PDF
pdf.SaveAs("embedImageBase64.pdf");
Imports IronPdf
Imports System
Imports System.IO
Private renderer As New ChromePdfRenderer()
' Import image file binary data
Private binaryData() As Byte = File.ReadAllBytes("ironpdf-logo-text-dotnet.svg")
' Convert the binary data to base 64
Private imgDataUri As String = Convert.ToBase64String(binaryData)
' Embed in HTML
Private html As String = $"<img src='data:image/svg+xml;base64,{imgDataUri}'>"
' Convert HTML to PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
' Export the PDF
pdf.SaveAs("embedImageBase64.pdf")
Base64 Kodlamasını Dosya Referanslarına Tercih Etmemin Nedenleri Nelerdir?
Base64 kodlama birkaç avantaj sunar:
- Kendi içinde HTML: Harici bağımlılıklar olmadan, dağıtımı basitleştirir
- Çok platformlu uyumluluk: Dosya sistemi farklarından bağımsız olarak çalışır
- Güvenlik: Dosya sistemi erişimi gerektirmez, güvenlik risklerini azaltır
- Güvenilirlik: Üretimde eksik varlık hatalarını ortadan kaldırır
- Sürüm kontrolü: Resimler HTML'nin bir parçasıdır, sürümlemeyi basitleştirir
Ancak şu değiş-tokuşları göz önünde bulundurun:
- Artan HTML boyutu: Base64 kodlaması boyutu yaklaşık %33 artırır
- Önbellek yok: Gömülü görüntüler ayrı ayrı önbelleğe alınamaz
- Bellek kullanımı: Tüm görüntünün bellekte yüklenmesi gerekir
Base64 Kodlama ile En İyi Çalışan Görsel Formatlar Nelerdir?
Farklı görsel formatları, base64 kodlandığında verimlilik açısından farklılık gösterebilir:
// Example: Encoding different image formats
public string EncodeImageWithMimeType(string imagePath)
{
byte[] imageBytes = File.ReadAllBytes(imagePath);
string base64 = Convert.ToBase64String(imageBytes);
// Determine MIME type based on extension
string extension = Path.GetExtension(imagePath).ToLower();
string mimeType = extension switch
{
".png" => "image/png", // Best for graphics with transparency
".jpg" or ".jpeg" => "image/jpeg", // Best for photographs
".gif" => "image/gif", // Best for simple animations
".svg" => "image/svg+xml", // Best for scalable graphics
".webp" => "image/webp", // Best overall compression
_ => "image/png" // Default fallback
};
return $"data:{mimeType};base64,{base64}";
}
// Usage
string encodedImage = EncodeImageWithMimeType("logo.png");
string html = $"<img src='{encodedImage}' alt='Company Logo'>";
// Example: Encoding different image formats
public string EncodeImageWithMimeType(string imagePath)
{
byte[] imageBytes = File.ReadAllBytes(imagePath);
string base64 = Convert.ToBase64String(imageBytes);
// Determine MIME type based on extension
string extension = Path.GetExtension(imagePath).ToLower();
string mimeType = extension switch
{
".png" => "image/png", // Best for graphics with transparency
".jpg" or ".jpeg" => "image/jpeg", // Best for photographs
".gif" => "image/gif", // Best for simple animations
".svg" => "image/svg+xml", // Best for scalable graphics
".webp" => "image/webp", // Best overall compression
_ => "image/png" // Default fallback
};
return $"data:{mimeType};base64,{base64}";
}
// Usage
string encodedImage = EncodeImageWithMimeType("logo.png");
string html = $"<img src='{encodedImage}' alt='Company Logo'>";
Imports System.IO
Public Function EncodeImageWithMimeType(imagePath As String) As String
Dim imageBytes As Byte() = File.ReadAllBytes(imagePath)
Dim base64 As String = Convert.ToBase64String(imageBytes)
' Determine MIME type based on extension
Dim extension As String = Path.GetExtension(imagePath).ToLower()
Dim mimeType As String = extension.ToLower() Select Case extension
Case ".png"
mimeType = "image/png" ' Best for graphics with transparency
Case ".jpg", ".jpeg"
mimeType = "image/jpeg" ' Best for photographs
Case ".gif"
mimeType = "image/gif" ' Best for simple animations
Case ".svg"
mimeType = "image/svg+xml" ' Best for scalable graphics
Case ".webp"
mimeType = "image/webp" ' Best overall compression
Case Else
mimeType = "image/png" ' Default fallback
End Select
Return $"data:{mimeType};base64,{base64}"
End Function
' Usage
Dim encodedImage As String = EncodeImageWithMimeType("logo.png")
Dim html As String = $"<img src='{encodedImage}' alt='Company Logo'>"
Base64 Kodlama, PDF Dosya Boyutunu Nasıl Etkiler?
Base64 kodlama, PDF boyutunu tahmin edilebilir şekillerde etkiler:
// Comparison example
public void CompareFileSizes()
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Method 1: External image reference
string htmlExternal = "<img src='large-photo.jpg'>";
PdfDocument pdfExternal = renderer.RenderHtmlAsPdf(htmlExternal, @"C:\images\");
// Method 2: Base64 encoded image
byte[] imageBytes = File.ReadAllBytes(@"C:\images\large-photo.jpg");
string base64Image = Convert.ToBase64String(imageBytes);
string htmlBase64 = $"<img src='data:image/jpeg;base64,{base64Image}'>";
PdfDocument pdfBase64 = renderer.RenderHtmlAsPdf(htmlBase64);
// Compare sizes
Console.WriteLine($"Original image: {imageBytes.Length / 1024} KB");
Console.WriteLine($"PDF with external image: {pdfExternal.BinaryData.Length / 1024} KB");
Console.WriteLine($"PDF with base64 image: {pdfBase64.BinaryData.Length / 1024} KB");
}
// Comparison example
public void CompareFileSizes()
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Method 1: External image reference
string htmlExternal = "<img src='large-photo.jpg'>";
PdfDocument pdfExternal = renderer.RenderHtmlAsPdf(htmlExternal, @"C:\images\");
// Method 2: Base64 encoded image
byte[] imageBytes = File.ReadAllBytes(@"C:\images\large-photo.jpg");
string base64Image = Convert.ToBase64String(imageBytes);
string htmlBase64 = $"<img src='data:image/jpeg;base64,{base64Image}'>";
PdfDocument pdfBase64 = renderer.RenderHtmlAsPdf(htmlBase64);
// Compare sizes
Console.WriteLine($"Original image: {imageBytes.Length / 1024} KB");
Console.WriteLine($"PDF with external image: {pdfExternal.BinaryData.Length / 1024} KB");
Console.WriteLine($"PDF with base64 image: {pdfBase64.BinaryData.Length / 1024} KB");
}
' Comparison example
Public Sub CompareFileSizes()
Dim renderer As New ChromePdfRenderer()
' Method 1: External image reference
Dim htmlExternal As String = "<img src='large-photo.jpg'>"
Dim pdfExternal As PdfDocument = renderer.RenderHtmlAsPdf(htmlExternal, "C:\images\")
' Method 2: Base64 encoded image
Dim imageBytes As Byte() = File.ReadAllBytes("C:\images\large-photo.jpg")
Dim base64Image As String = Convert.ToBase64String(imageBytes)
Dim htmlBase64 As String = $"<img src='data:image/jpeg;base64,{base64Image}'>"
Dim pdfBase64 As PdfDocument = renderer.RenderHtmlAsPdf(htmlBase64)
' Compare sizes
Console.WriteLine($"Original image: {imageBytes.Length \ 1024} KB")
Console.WriteLine($"PDF with external image: {pdfExternal.BinaryData.Length \ 1024} KB")
Console.WriteLine($"PDF with base64 image: {pdfBase64.BinaryData.Length \ 1024} KB")
End Sub
Optimum sonuçlar için:
- Küçük simgeler ve logolar için base64 kullan (< 50KB)
- Büyük görüntüler ve fotoğraflar için dış referanslar kullan
- Kodlamadan önce sıkıştırmayı göz önünde bulundurun
- İçerik türü için uygun görüntü formatlarını kullan
Gelişmiş PDF optimizasyon teknikleri için PDF sıkıştırma kılavuzumuzu inceleyin.
Sıkça Sorulan Sorular
HTML'yi PDF'ye dönüştürürken CSS ve JavaScript varlıklarının doğru şekilde yüklenmesini nasıl sağlarım?
IronPDF, HTML'den PDF'ye dönüştürme sırasında BaseUrlOrPath parametresinin belirtilmesine olanak tanır. Bu parametre, HTML'nizdeki tüm göreceli varlık yolları için temel referans olarak hizmet veren bir web URL'si veya yerel dosya yolu olabilir, böylece CSS, JavaScript ve görüntülerin düzgün şekilde yüklenmesini sağlar.
BaseUrlOrPath parametresi ne için kullanılır?
IronPDF'deki BaseUrlOrPath parametresi, HTML'den PDF'ye dönüştürme sırasında tüm varlıkların (CSS, JavaScript, görüntüler) yüklenebileceği temel URL'yi belirtir. Uzaktaki varlıklar için 'http' ile başlayan bir web URL'sine veya disk tabanlı varlıklar için bir yerel dosya yoluna ayarlanabilir.
Varlıklarla PDF'yi tek satır kodla nasıl oluşturabilirim?
IronPDF'in ChromePdfRenderer'ını kullanarak varlıklarla birlikte HTML'yi tek satırda işleyebilirsiniz: `new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("", @"C:\site\assets\").SaveAs("with-assets.pdf");`. Bu, tüm varlıkların düzgün yüklendiğinden emin olmak için BaseUrlOrPath'i ayarlar.
MVC uygulamalarında PDF oluşturmak için görüntü yollarını nasıl yapılandırabilirim?
IronPDF kullanan MVC uygulamalarında, baseUrlOrPath'i wwwroot alt dizininize (örn. @"wwwroot/image") ayarlayın ve HTML src özniteliğini göreceli yolla yapılandırın (örn. "../image/Sample.jpg"). Bu, hem web sitesinde hem de oluşturulan PDF'de görüntülerin doğru şekilde görüntülenmesini sağlar.
HTML'yi PDF'ye dönüştürürken hem yerel hem de uzaktaki varlıkları kullanabilir miyim?
Evet, IronPDF hem yerel hem de uzaktaki varlıkları destekler. Uzak varlıklar için BaseUrlOrPath'i 'http' ile başlayan bir web URL'sine ayarlayın. Yerel varlıklar için diskinizdeki bir dosya yolunu kullanın. Bu esneklik, PDF oluşturma sırasında çeşitli kaynaklardan varlıklara referans vermenize olanak tanır.
BaseUrlOrPath parametresini ayarlamazsam ne olur?
IronPDF'de BaseUrlOrPath parametresi ayarlanmadığında, HTML'nizdeki göreceli varlık yolları doğru çözümlenmez, bu da oluşturulan PDF'nizde eksik CSS stilleri, JavaScript işlevselliği ve görüntülerle sonuçlanır. HTML'niz göreceli varlık referansları içeriyorsa, her zaman bu parametreyi belirtin.

