HTML'den PDF'e C# için .NET Geliştiricileri İçin (Son Kılavuz)
Giriş
Günümüzün web odaklı dünyasında, HTML içeriğini PDF belgelerine (Taşınabilir Belge Formatı) dönüştürme yeteneği birçok uygulama için kritik bir özelliktir. İster raporlardan, faturadan ya da web içeriğinin arşivlenmesinden PDF dosyaları oluşturulması için olsun, HTML'den PDF'e dönüştürme, iş akışlarını kolaylaştırır ve yüksek kaliteli PDF'lerin tutarlı biçimlendirilmesini sağlar. Kütüphaneler, IronPDF gibi bu dönüşümü sağlamak için geliştirici dostu bir yol sağlar ve dinamik içerik, HTML formları ve CSS ve JavaScript'in hassas bir şekilde işlenmesini destekler.
.NET geliştiricileri için, doğru HTML'den PDF'ye dönüştürücü kullanmak, verimliliği, kod sadeliğini ve PDF oluşturma kalitesini etkiler. Modern kütüphaneler, geliştiricilerin yalnızca birkaç satır kod ile HTML stringlerini, tüm web sayfalarını veya HTML dosyalarını doğrudan işlenmiş PDF belgelerine dönüştürmelerine olanak tanır, bu da dinamik belgeler, özel üstbilgiler ve web içeriğinin yazdırılabilir versiyonlarını sağlar.
Öğrenecekleriniz
Bu kılavuzda, C# dilinde HTML'yi PDF'ye dönüştürmeyi öğrenecek ve çeşitli kütüphaneler aracılığıyla PDF dönüştürme yeteneklerini keşfedeceksiniz. Bunlar arasında PDF belgelerini yönetme, HTML formları, özel kenar boşlukları ve güvenli PDF'ler bulunmaktadır. Bu makalede ele alacağımız konular şunlardır:
- HTML ve PDF Araçlarını Neden Karşılaştıralım?
- IronPDF: HTML'den PDF'e Dönüştürme
- Aspose: HTML'den PDF'ye Dönüştürme
- iText 9: HTML'den PDF'e Dönüştürme
- wkhtmltopdf: HTML'den PDF'ye Dönüşüm
- PuppeteerSharp: HTML'den PDF'e Dönüştürme
- Sonuç: Neden IronPDF'yi Seçmelisiniz?
Sonunda, IronPDF'in geliştirici dostu ve verimli bir HTML'den PDF'e dönüştürücü olarak neden öne çıktığını anlayacaksınız. Diğer karşılaştırma kılavuzlarımızı kontrol ettiğinizden emin olun, burada IronPDF'in Aspose.PDF, iText 9, wkhtmltopdf ve PuppeteerSharp ile nasıl karşılaştırıldığını daha derinlemesine inceliyoruz, projenize hangisinin daha iyi uyduğunu ve neden IronPDF'in önde çıktığını görün.
Neden HTML'den PDF'e Araçları Karşılaştırmalısınız?
Uygulamanızın performans, kalite ve maliyet gereksinimlerini karşılamasını sağlamak için uygun HTML'den PDF'e dönüştürme aracını seçmek önemlidir. Birçok seçenek mevcut olup, her biri farklı PDF dönüştürme yetenekleri sunduğundan, kapsamlı bir karşılaştırma bilinçli bir karar vermeye yardımcı olur. İşte değerlendirilmesi gereken ana kriterler:
Entegrasyon Karmaşıklığı: Kütüphanenin mevcut .NET projelerinizle ne kadar kolay entegre olduğu, örneğin basit kurulum için NuGet paket Yöneticisi'ni kullanma ve API entegrasyon sekmesi kurulumunu içerir. Kod Basitliği: Kaynak kodunu yazma ve bakımını yapma kolaylığı, HTML dizgilerini veya tüm web sayfalarını oluşturulan PDF belgelerine dönüştürmek için sadece birkaç satır gibi minimal kod örneklerini içerir. Renderleme Doğruluğu: Renderleme motorunun, HTML kodunu, JavaScript yürütmesini, print CSS'yi, HTML formlarını ve diğer dinamik içeriği doğru bir şekilde işleyebilme becerisidir ve yüksek kaliteli PDF'ler üretir. Ölçek Üzerinde Performans: PDF dönüştürücüsünün, birden çok HTML sayfasından veya dinamik içerikten PDF dosyaları oluştururken ağır yük altında ne kadar iyi performans gösterdiği. Lisanslama ve Maliyet Etkinliği: Ticari lisans gibi fiyatlandırma modelleri ve projenizin bütçesine uygunluğu.
Bu faktörleri değerlendiren geliştiriciler, ister Visual Studio'daki .NET Core ister .NET Framework projeleriyle çalışsınlar, hem teknik gereksinimlere hem de finansal kısıtlamalara uyan bir araç seçebilirler.
IronPDF: HTML'den PDF'ye Dönüştürme

IronPDF, özellikle geliştiriciler için tasarlanmış tam özellikli bir .NET kütüphanesidir. Kutudan çıktığı haliyle HTML'yi dönüştürme yöntemleri için minimal kurulum ile PDF'lere dönüştürmek üzere HTML dizelerini, yerel dosyaları ve canlı URL'leri sağlar. Chrome tabanlı işleme motoru, CSS ve JavaScript desteği dahil yüksek doğruluğu garanti eder. IronPDF ticari bir üründür ancak güçlü destek ve basit bir API sunar.
HTML Dizesi için PDF
IronPDF ile bir dizgiden PDF'e HTML dönüştürmek basittir. Bu yaklaşım, dinamik içerik oluşturma veya küçük HTML parçacıkları için idealdir.
Örnek:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main(args As String())
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>")
pdf.SaveAs("output.pdf")
End Sub
End ClassOluşturulan PDF Dokümanı

Açıklama:
ChromePdfRenderer:ChromePdfRenderersınıfı, IronPDF'de HTML'yi PDF'ye dönüştürmek için ana araçtır. Çoğu kullanım durumunu minimum kurulumla ele almak üzere önceden yapılandırılmış olarak gelir.RenderHtmlAsPdf: Bu yöntem, bir HTML dizesini girdi olarak alır ve bir PDF belgesi oluşturur.SaveAs: Oluşturulan PDF belirtilen yola kaydedilir (output.pdf).
Yerel HTML Dosyasını PDF'ye Dönüştürme
Harici kaynaklar (CSS veya JavaScript gibi) içeren bir yerel HTML dosyasını dönüştürmesi gereken uygulamalar için IronPDF bunu kolaylaştırır.
Örnek:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("template.html")
pdf.SaveAs("report.pdf")
End Sub
End ClassHTML Dosyasını Girdi Olarak Kullanma

Çıktı

Açıklama:
RenderHtmlFileAsPdf: Yerel bir HTML dosyasını alır ve PDF'ye dönüştürür. Bağlantılı kaynakları otomatik olarak işler, örneğin harici CSS ve JavaScript dosyalarını.
URL'den PDF'e
IronPDF, JavaScript kullanan sayfalar da dahil olmak üzere, URL'lerden dinamik web içeriği dönüştürmede özellikle güçlüdür.
Örnek:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main(args As String())
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.WaitFor.RenderDelay(3000) ' Wait up to 3 seconds for JS to load
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://apple.com")
pdf.SaveAs("url-to-pdf.pdf")
End Sub
End ClassÇıktı

Açıklama:
RenderUrlAsPdf: URL içeriğini, JavaScript ile oluşturulmuş unsurlar dahil, alır ve PDF'e dönüştürür.
Karar / Ne Zaman Kullanılmalı
IronPDF, kolay API entegrasyonu, minimal kod ve PDF belgelerini manipüle etme desteği, dinamik belgeler oluşturma, HTML formları, özel başlıklar ve web içeriği için yazdırılabilir versiyonlar gibi özellikleri ihtiyaç duyan geliştiriciler için mükemmeldir. Visual Studio'da .NET Core veya .NET Framework projeleri için idealdir.
Aspose: HTML'den PDF'ye Dönüştürme

Aspose.PDF, HTML'yi PDF'ye dönüştürme desteği ile PDF düzenleme için güçlü başka bir kütüphanedir. Aspose'un her dönüşüm senaryosunu nasıl ele aldığını görelim:
HTML Dizgisini PDF'e Dönüştürme
Aspose, HTML dizelerini IronPDF'e kıyasla dönüştürme aşamasında biraz daha fazla kurulum gerektirir.
Örnek:
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");Imports Aspose.Html
Imports Aspose.Html.Saving
Private doc As New Document()
Private page As Page = doc.getPages().Add()
Private htmlFragment As New HtmlFragment("<h1>HTML String</h1>")
page.getParagraphs().Add(htmlFragment)
doc.Save("HTMLStringUsingDOM.pdf")Çıktı

Açıklama:
Document doc: Dönüştürülen HTML dizesini kaydetmek için yeni bir belge oluşturur. Sayfa sayfa: Bu satır, oluşturduğumuz boş belgeye yeni bir sayfa ekler. HtmlFragment htmlFragment: Dönüştürdüğümüz HTML dizesidir. page.getParagraphs().Add(htmlFragment): HTML'i belgeye ekleyin. doc.Save: HTML içeriğiyle belgeyi bir PDF belgesi olarak kaydeder.
Yerel HTML Dosyasını PDF'e Dönüştürme
Aspose, yerel HTML dosyalarını PDF'lere dönüştürmek için de kullanılabilir, ancak bu işlem IronPDF'e göre daha fazla yapılandırma gerektirir.
Örnek:
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");Imports Aspose.Html
Imports Aspose.Html.Converters
Imports Aspose.Html.Saving
Private document = New HTMLDocument("document.html")
Private options = New PdfSaveOptions()
Converter.ConvertHTML(document, options, "output.pdf")Giriş HTML:

Çıktı:

Açıklama:
var document = new HTMLDocument("document.html"): HTML dosyasını yükler. var options: Yeni bir PdfSaveOptions nesnesi oluşturur. Converter.ConvertHTML(): HTML'yi PDF'ye dönüştürür.
URL'den PDF'e
Aspose, URL'ler için benzer işlevsellik sağlar ancak ek kurulum gerektirir.
Örnek:
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");Imports System.IO
Imports System
Imports System.Net.Http
Imports Aspose.Pdf
Dim client As New HttpClient()
Dim response As HttpResponseMessage = Await client.GetAsync("https://www.apple.com")
response.EnsureSuccessStatusCode()
Dim responseFromServer As String = Await response.Content.ReadAsStringAsync()
Dim stream As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer))
Dim options As New HtmlLoadOptions("https://www.apple.com")
Dim pdfDocument As New Document(stream, options)
pdfDocument.Save("WebPageToPDF_out.pdf")Çıktı

Açıklama:
dataDirdeğişkeni, oluşturulan PDF'nin kaydedileceği dizini tutar.- Wikipedia ana sayfa URL'sine erişmek için bir
WebRequestoluşturulur ve istek için varsayılan kimlik bilgileri kullanılır. GetResponse()yöntemi, isteği gönderir ve yanıtı bir HttpWebResponse olarak alır.- Yanıttan bir akış elde edilir ve bir StreamReader, sayfanın tüm HTML içeriğini
responseFromServerdizgesine okur. responseFromServer'den HTML içeriği bir bayt dizisine dönüştürülür ve ardından birMemoryStream'a yüklenir.HtmlLoadOptions, görece bağlantılar için temel URL'yi ve diğer ayarları belirtmek için kullanılır.- Bellek akışındaki HTML'yi içeren bir
Aspose.Pdf.Documentoluşturulur ve belge belirtilen dizine PDF olarak kaydedilir.
Karar / Ne Zaman Kullanılır
Aspose.PDF, gelişmiş PDF manipülasyonu ve dönüştürme gerektiren kurumsal projeler için en iyisidir. Güçlüdür ancak hızlı HTML- PDF dönüşümleri için daha az optimize edilmiştir.
iText 9: HTML'den PDF'ye Dönüştürme

iText 9, .NET uygulamaları için PDF belgeleri oluşturma ve işleme konusunda geliştirilmiş özellikler sunan iText PDF kütüphanesinin en son sürümüdür. Daha akıcı ve genişletilebilir bir API sunuyor, performansı artırıyor ve modern PDF standartlarına daha iyi destek sağlıyor.
HTML Dizgisini PDF'e Dönüştürme
iText 9 kullanarak bir HTML dizesini bir PDF belgesine dönüştürmenin temel bir örneği.
Örnek:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}Imports iText.Html2pdf
Imports System.IO
Class Program
Shared Sub Main()
Dim html As String = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>"
Dim outputFile As String = "SimpleHtmlToPdf.pdf"
Using pdfStream As New FileStream(outputFile, FileMode.Create)
HtmlConverter.ConvertToPdf(html, pdfStream)
End Using
System.Console.WriteLine("PDF generated: " & outputFile)
End Sub
End ClassÇıktı

Yerel HTML Dosyasını PDF'e Dönüştürme
iText 9, HtmlConverter.ConvertToPdf sınıfını kullanarak HTML dosya türlerini PDF'ye dönüştürebilir.
Örnek:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}Imports iText.Html2pdf
Imports System.IO
Module Program
Sub Main()
Dim htmlFile As String = "document.html"
Dim outputPdf As String = "html-file-to-pdf.pdf"
' Read HTML content from file
Dim htmlContent As String = File.ReadAllText(htmlFile)
' Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, New FileStream(outputPdf, FileMode.Create))
System.Console.WriteLine("PDF generated: " & outputPdf)
End Sub
End ModuleÇıktı

Açıklama:
- HtmlConverter: Bir HTML dosyasını doğrudan PDF'ye dönüştürür.
URL'den PDF'e
iText ayrıca URL'lerden içerik dönüştürmeyi destekler.
Örnek:
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}Imports iText.Html2pdf
Imports System
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks
Module Program
Async Function Main() As Task
Dim url As String = "https://apple.com"
Dim outputPdf As String = "url-to-pdf.pdf"
Using httpClient As New HttpClient()
' Fetch the HTML content from the URL
Dim htmlContent As String = Await httpClient.GetStringAsync(url)
' Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, New FileStream(outputPdf, FileMode.Create))
Console.WriteLine("PDF generated: " & outputPdf)
End Using
End Function
End ModuleÇıktı

Açıklama: HttpClient.GetStringAsync(url): URL'den gerçek HTML içeriğini indirir. HtmlConverter.ConvertToPdf(htmlContent, …): Alınan HTML dizisini işlenmiş bir PDF'ye dönüştürür.
Karar / Ne Zaman Kullanılır
iText 9, PDF oluşturma, manipülasyon ve HTML'den PDF'ye dönüştürme işlemleri için sağlam, kurumsal düzeyde bir çözüme ihtiyaç duyan geliştiriciler için uygundur. PDF oluşturma üzerinde hassas kontrol gerektirdiğinizde, mevcut iText iş akışları ile entegrasyon için veya dijital imzalar ve formlar gibi gelişmiş PDF özellikleri ihtiyacınız olduğunda iyi çalışır. Ancak, basit HTML'den PDF'e dönüştürme görevleri için, iText 9, IronPDF gibi yalınlaştırılmış kütüphanelere göre daha ağır ve daha karmaşıktır.
wkhtmltopdf: HTML'den PDF'ye Dönüşüm

Arşiv ve Bakım Durumu
wkhtmltopdf'nin artık aktif olarak bakımının yapılmadığını not etmek önemlidir. GitHub deposu, Ocak 2023'te resmi olarak arşivlendi ve yalnızca-okunur olarak işaretlendi, bu da gelecekte hiçbir güncelleme, hata düzeltmesi veya güvenlik yamasının uygulanmadığı anlamına gelir.
Geliştiriciler için etki: wkhtmltopdf, çok temel kullanım durumları için hala etkili olabilse de, bakımsız durumu ve eski render motoru, özellikle üretim ortamları veya dinamik veya harici HTML içeriğini işleyen uygulamalar için riskli bir tercih haline getirmektedir.
wkhtmltopdf, Webkit render kullanarak HTML dosyalarını PDF'ye dönüştüren bir komut satırı aracıdır. İşte farklı senaryolar için nasıl çalıştığı:
HTML Dizgisini PDF'e Dönüştürme
wkhtmltopdf, HTML dizelerini önce bir dosyaya yazarak dönüştürülmesini gerektirir.
Örnek:
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}Imports System
Imports System.IO
Imports System.Diagnostics
Friend Class Program
Shared Sub Main(ByVal args() As String)
' HTML string to be converted to PDF
Dim html As String = "<html><body><h1>Hello, World!</h1></body></html>"
' Write HTML string to temporary file
Dim tempHtmlFile As String = Path.Combine(Path.GetTempPath(), "temp.html")
File.WriteAllText(tempHtmlFile, html)
' Set output PDF path
Dim outputPdfFile As String = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf")
' Execute wkhtmltopdf command
Dim process As New Process()
process.StartInfo.FileName = "wkhtmltopdf"
process.StartInfo.Arguments = $"""{tempHtmlFile}"" ""{outputPdfFile}"""
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process.Start()
process.WaitForExit()
' Clean up the temporary HTML file
File.Delete(tempHtmlFile)
Console.WriteLine($"PDF saved to: {outputPdfFile}")
End Sub
End ClassÇıktı

Açıklama:
- wkhtmltopdf, bir giriş dosyası gerektirir, bu yüzden öncelikle HTML dizelerini geçici bir dosyaya (temp.html) yazarız.
- Daha sonra Process sınıfını kullanarak geçici HTML dosyası ve istenen çıktı PDF yolu argümanlarıyla wkhtmltopdf komutunu çalıştırırız.
- Çevrimden sonra, temizlemek için geçici HTML dosyasını sileriz.
Yerel HTML Dosyasını PDF'e Dönüştürme
wkhtmltopdf kullanarak yerel bir HTML dosyasını PDF'ye dönüştürmek için, doğrudan HTML dosyasının dosya yolunu gösterebilirsiniz.
Örnek:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}Imports System
Imports System.Diagnostics
Module Program
Sub Main(args As String())
' Path to the local HTML file
Dim htmlFilePath As String = "C:\path\to\your\document.html"
' Path for the output PDF file
Dim outputPdfFile As String = "C:\path\to\output\html-file-to-pdf.pdf"
' Execute wkhtmltopdf command
Dim process As New Process()
process.StartInfo.FileName = "wkhtmltopdf"
process.StartInfo.Arguments = $"""{htmlFilePath}"" ""{outputPdfFile}"""
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process.Start()
process.WaitForExit()
Console.WriteLine($"PDF saved to: {outputPdfFile}")
End Sub
End ModuleÇıktı

Açıklama:
- Bu örnek, yerel HTML dosyasının (template.html) yolunu ve PDF için çıkış yolunu basitçe sağlar.
- wkhtmltopdf yerel dosyaları doğrudan işler, bu işlemi basit hale getirir.
URL'den PDF'e
Bir URL'yi PDF'ye dönüştürmek, wkhtmltopdf ile kolaydır. Sadece URL'yi doğrudan komuta geçirin.
Örnek:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}Imports System
Imports System.Diagnostics
Module Program
Sub Main(args As String())
' URL to be converted to PDF
Dim url As String = "https://apple.com"
' Path for the output PDF file
Dim outputPdfFile As String = "C:\path\to\output\url-to-pdf.pdf"
' Execute wkhtmltopdf command
Dim process As New Process()
process.StartInfo.FileName = "wkhtmltopdf"
process.StartInfo.Arguments = $"""{url}"" ""{outputPdfFile}"""
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process.Start()
process.WaitForExit()
Console.WriteLine($"PDF saved to: {outputPdfFile}")
End Sub
End ModuleÇıktı

Açıklama:
- Bu örnekte,
wkhtmltopdfdoğrudan URL'leri girdi olarak kabul eder. - URL,
wkhtmltopdf'a bir argüman olarak aktarılır ve çıktı belirtilen yola PDF olarak kaydedilir.
PuppeteerSharp: HTML'den PDF'ye Dönüştürme

PuppeteerSharp, Google'ın Puppeteer için bir .NET sarıcısıdır ve Headless Chrome/Chromium üzerinde kontrol sağlar. JavaScript ağırlıklı, dinamik sayfaları render etmede mükemmeldir ancak bir Chromium örneği indirip yönetmek gerekli, bu da ek yük ekler. Apache 2.0 altında açık kaynaklıdır.
HTML Dizgisini PDF'e Dönüştürme
Puppeteer, tam sayfalar render etmek için tasarlanmıştır, bu yüzden bir HTML dizisini dönüştürmek bir dosyaya yazmayı veya doğrudan bir tarayıcıda render etmeyi gerektirir.
Örnek:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Module Program
Async Function Main(args As String()) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync()
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
Dim htmlContent As String = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>"
Await page.SetContentAsync(htmlContent)
' Save the page as a PDF
Await page.PdfAsync("html-string-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End ModuleÇıktı

Açıklama:
- Puppeteer.LaunchAsync: Başsız modda yeni bir Chromium örneği başlatır.
- page.SetContentAsync: HTML dizisini tarayıcı sayfasına yükler.
- page.PdfAsync: Yüklenen HTML'yi PDF'ye dönüştürür ve bir dosyaya kaydeder.
Yerel HTML Dosyasını PDF'e Dönüştürme
PuppeteerSharp kullanarak bir yerel HTML dosyasını PDF'ye dönüştürmek için dosyayı başsız bir tarayıcıya yükleyebilir ve PDF oluşturabilirsiniz.
Örnek:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Load the local HTML file
Await page.GoToAsync("file:///path/to/your/template.html")
' Save the page as a PDF
Await page.PdfAsync("html-file-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End ClassÇıktı

Açıklama:
- page.GoToAsync: Yerel HTML dosyasını yükler (doğru
[file://]()yolunu kullandığınızdan emin olun). - page.PdfAsync: Yerel HTML dosyasının içeriğini PDF'ye dönüştürür.
URL'den PDF'e
Bir URL'yi PDF'ye dönüştürmek, PuppeteerSharp'ın temel özelliklerinden biridir, çünkü JavaScript ile karmaşık sayfaları işleyebilir.
Örnek:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Navigate to the URL
Await page.GoToAsync("https://example.com")
' Save the page as a PDF
Await page.PdfAsync("url-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End ClassÇıktı

Açıklama:
- page.GoToAsync: Belirtilen URL'ye gider.
- page.PdfAsync: URL'deki web sayfasını PDF'ye dönüştürür ve kaydeder.
Karar / Ne Zaman Kullanılmalı
PuppeteerSharp, modern, JavaScript ağırlıklı web uygulamalarının piksel mükemmellikte render edilmesi gerektiğinde idealdir. IronPDF'den daha karmaşıktır ancak dinamik web içeriğini işleme konusunda mükemmeldir.
Neden IronPDF'yi Seçmelisiniz?
IronPDF, kullanım kolaylığı, esnekliği ve .NET uygulamalarıyla sorunsuz entegrasyonu ile öne çıkar. Uygulaması basittir, HTML, CSS ve JavaScript render desteği sunar ve ek kurulum veya dış bağımlılıklar gerektirmez. HTML'den PDF'ye dönüştürmenin ötesinde, IronPDF çeşitli dosya türlerinden PDF belgeleri oluşturma, mevcut PDF belgelerini düzenleme ve ekleme, filigranlama, PDF dosyası güvenliği ve daha fazlası için geniş bir özellik yelpazesi sunar! Bu kütüphaneyi iş başında görmek için, her bir özelliğinin nasıl işlediğini gösteren Kılavuzlara mutlaka göz atın.
Sonuç
C# ile HTML'den PDF dosyalarına dönüştürme söz konusu olduğunda, her biri farklı özellikler ve yetenekler sunan birkaç güçlü araç bulunmaktadır. IronPDF, Aspose, iText 9, wkhtmltopdf ve PuppeteerSharp, HTML içeriğini profesyonel düzeyde PDF belgelerine dönüştürmek için güçlü çözümler sunar. Ancak, projeniz için doğru aracı seçmek, entegrasyon kolaylığı, dinamik içerik desteği, performans ve esneklik gibi faktörlere bağlıdır.
| Araç | PDF'e HTML Dizesi | HTML Dosyasından PDF'e | PDF için URL | Açıklamalar |
|---|---|---|---|---|
IronPDF | HTML dizeleri için RenderHtmlAsPdf ile basit. Kullanımı kolay ve .NET uygulamalarıyla sorunsuz bir şekilde entegre olur. | RenderHtmlFileAsPdf kullanır, bağlı kaynakları (CSS, JS) otomatik olarak işler. | RenderUrlAsPdf kullanır, JavaScript ağırlıklı sayfaları ve dinamik içeriği destekler. | .NET ile tam entegre, .NET geliştiricileri için idealdir. HTML dizeleri, dosyaları ve URL'leri destekler. |
![]() Aspose | Daha fazla kurulum gerektirir. HTML dizelerini dönüştürmek için bir Document nesnesinde HtmlFragment kullanır. | Yerel HTML dosya dönüştürme için HtmlDocument ve PdfSaveOptions gerektirir. IronPDF'den daha fazla yapılandırma gerektirir. | WebRequest kullanarak içerik almak için ek kurulum gerektirir, HtmlLoadOptions ile dönüştürülmeden önce. | Çeşitli belge manipülasyonları için sağlamdır, ancak kurulum daha karmaşık olabilir. Daha karmaşık PDF gereksinimleri için iyidir. |
![]() iText | HTML dizelerini PDF'ye dönüştürmek için HtmlConverter.ConvertToPdf kullanır. | Yerel HTML dosyalarını PDF'ye dönüştürmek için HtmlConverter.ConvertToPdf kullanır. | Yerel dosya işleme benzer şekilde, HtmlConverter.ConvertToPdf kullanır. | HTML'den PDF'ye dönüşümün ötesinde PDF manipülasyonu üzerinde daha fazla kontrol gerektiren geliştiriciler için harikadır. |
![]() wkhtmltopdf | HTML dizelerini önce bir dosyaya yazarak dönüştürür. Komut satırı aracı kullanarak PDF'ler üretir. | Yerel HTML dosyalarını dosya yollarına işaret ederek doğrudan PDF'ye dönüştürür. | URL'leri komut satırı aracına geçirerek doğrudan PDF'ye dönüştürür. | Öncelikle bir komut satırı aracı, .NET entegrasyonu için ek adımlar gerektirebilir. Basit dönüştürmeler için en iyisi. |
![]() PuppeteerSharp | page.SetContentAsync ile HTML dizisini yükler ve ardından page.PdfAsync ile bir PDF üretir. | Bir yerel HTML dosyasını page.GoToAsync ile yükler ve ardından bir PDF'ye dönüştürür. | Bir URL'yi yükler ve page.GoToAsync ve page.PdfAsync kullanarak bir PDF'ye dönüştürür. | Dinamik sayfalar, özellikle JavaScript ağırlıklı içerik için en uygundur. Chromium'u indirme ve başlatma gerektirir. |
IronPDF, sadeliği, .NET ile doğrudan entegrasyonu ve karmaşık HTMLyi, JavaScript ile oluşturulmuş sayfalar dahil, işleme kapasitesi ile öne çıkar. Minimal kurulum ile kullanımı kolay bir çözüm arayan geliştiriciler için mükemmeldir.
Aspose, kapsamlı PDF manipülasyon özellikleri sunar, ancak HTML'den PDF'ye dönüşüm yetenekleri, özellikle yerel dosyalar ve dış kaynaklar için ek yapılandırma gerektirir.
iText 9, PDF belgeleri oluşturmak isteyenler için sağlam bir temel sunar, ancak özellikle dinamik içerik için HTML'den PDF'ye dönüştürme ek kodlama gerektirebilir. Özelleştirilmiş PDF manipülasyonu gereken projeler için harika bir seçenektir.
wkhtmltopdf basit HTML'den PDF'ye dönüşüm için ideal bir komut satırı arayüzü sağlar, ancak tam bir .NET kütüphanesinin entegrasyonu ve esnekliği yoktur.
- PuppeteerSharp, Headless Chrome'u kullanarak, karmaşık, dinamik web sayfalarını işlemek ve özellikle JavaScript ağırlıklı içerikle uğraşırken bunları PDF'lere dönüştürmek için tercih edilen araçtır.
Çoğu .NET geliştiricisi için tek çatı altında, doğru bir çözüm arayışında olanlar için IronPDF bugünden deneyip güçlü özelliklerini kendiniz deneyimlemenizi tavsiye ederiz. Yeni PDF belgeleri üretmekten, mevcut PDF'leri düzenlemeye kadar, IronPDF'in tüm özellik yelpazesini kendiniz keşfedin. Sadece IronPDF'i yükleyin ve ücretsiz denemeyi kullanarak kendiniz deneyin. Bugün PDF iş akışlarınızı nasıl geliştirebileceğini görün.
Sonuç olarak, doğru araç sizin özel gereksinimlerinize bağlıdır, ancak burada tartışılan seçeneklerle, projeniz için mükemmel çözümü bulmağa iyi bir şekilde donanmışsınızdır.
Lütfen dikkat: Aspose, iText, wkhtmltopdf ve PuppeteerSharp, ilgili sahiplerinin tescilli ticari markalarıdır. Bu site Aspose, iText, wkhtmltopdf veya Puppeteer ile bağlantılı, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar, ilgili sahiplerinin mülkiyetindedir. Karşılaştırmalar sadece bilgilendirme amaçlı sağlanmaktadır ve yazıldığı zamandaki herkese açık bilgilere dayanmaktadır.




