HTML Dosyasından C#'da PDF Oluşturma
IronPDF, HTML'i PDF belgelerine programlı olarak dönüştürür.
C# ile PDF Nasıl Oluşturulur: HTML'den PDF'ye Örnek
Bu makalenin tüm kaynak kodu, C# dilinde C# HTML'den PDF'ye Proje Kaynak Kodu İndir olarak bulunmaktadır.
Aşağıdaki eğitim, IronPDF'i bir C# PDF Üreticisi olarak kullanma sürecinde size rehberlik edecektir. Temel bilgileri kapsar ve birçok ileri C# PDF konusuna değinir.
HTML'den PDF'ye C#
- HTML'i PDF'ye dönüştürmek için C# kütüphanesini indirin.
- Koddaki HTML dizesinden PDF oluşturun.
- Koddaki HTML dosyasından PDF oluşturun.
- URL'yi kolayca PDF belgesine dönüştürün.
- PDF dosyalarını istenen konuma aktarın.
HTML'den PDF'ye Yürüyüş
Bu demo, IronPdf'i nasıl kullanacağınıza dair örneklerle size rehberlik eder. Iron Software'den ek kullanım alanı demolarını isteyin.
Demo, Hello World, RenderHtmlAsPdf ve RenderUrlAsPdf örneklerinden oluşur. Tüm örnekler, IronPDF Demo çözümü altındaki ilgili projelerde bulunabilir.
Adım 1: Kurulum
IronPdf'i ya NuGet aracılığıyla kurabilirsiniz. The package name is IronPDF NuGet Package.
Or you can use the Direct Library Download.
Adım 2: Hello World
IronPDF'i projenize kurduktan ve başlattıktan sonra, hemen kullanmaya başlayabilirsiniz birkaç dize yazarak:
// Create a new instance of ChromePdfRenderer
var chromePdfRenderer = new ChromePdfRenderer();// Create a new instance of ChromePdfRenderer
var chromePdfRenderer = new ChromePdfRenderer();' Create a new instance of ChromePdfRenderer
Dim chromePdfRenderer As New ChromePdfRenderer()Daha sonra HTML'i PDF'e dönüştürmek isterseniz:
// Define HTML content to turn into PDF
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// Render the HTML string as a PDF
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));// Define HTML content to turn into PDF
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// Render the HTML string as a PDF
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));' Define HTML content to turn into PDF
Dim html = "<h1>Hello World!</h1><br><p>This is IronPdf.</p>"
' Render the HTML string as a PDF
Dim pdf = chromePdfRenderer.RenderHtmlAsPdf(html)
' Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"))Ya da bir web sayfasını PDF dosyasına dönüştürmek isterseniz:
// URI of the page to turn into PDF
var uri = new Uri("http://www.google.com/ncr");
// Render the webpage as a PDF
using var pdf = chromePdfRenderer.RenderUrlAsPdf(uri);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));// URI of the page to turn into PDF
var uri = new Uri("http://www.google.com/ncr");
// Render the webpage as a PDF
using var pdf = chromePdfRenderer.RenderUrlAsPdf(uri);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));' URI of the page to turn into PDF
Dim uri As New Uri("http://www.google.com/ncr")
' Render the webpage as a PDF
Dim pdf = chromePdfRenderer.RenderUrlAsPdf(uri)
' Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))Hepsi bu kadar! İlgili sonuçlar:
HTML'in PDF'e dönüştürülmesinin sonucu**
Bir web sayfasının PDF'e dönüştürülmesinin sonucu
Kod örneğini IronPDFDemo.HelloWorld projesinde bulabilirsiniz.
Adım 3: RenderHtmlAsPdf
Örnek 1
Daha gerçek bir örneği değerlendirmek için, PDF'e dönüştürülmesi gereken bir HTML faturasını hayal edin. Bunu nasıl yapacağınızın kodu burada.
Not: Fatura HTML'i, IronPDFDemo.DemoWebSite projesi altında (~/Static/TestInvoice1.html) bulunmaktadır. Lütfen not edin, faturada 'baskı' medya türü için özel CSS bulunmaktadır.
Kaynak fatura tarayıcıda şu şekilde görünmektedir:

Bunu bir PDF dosyasına dönüştürmek için yukarıdaki HelloWorld örneğindeki kodlar kullanılmaktadır, fark ise kaynak HTML dosyasıdır.
// Read HTML from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var chromePdfRenderer = new ChromePdfRenderer();
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));// Read HTML from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var chromePdfRenderer = new ChromePdfRenderer();
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));' Read HTML from file
Dim html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"))
Dim chromePdfRenderer As New ChromePdfRenderer()
Dim pdf = chromePdfRenderer.RenderHtmlAsPdf(html)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"))Sonuç şu şekildedir:
HTML'den bir PDF dosyası oluştur
Harika görünüyor! Kod örneğini IronPDFDemo.RenderHtmlAdPdfDemo projesinde bulabilirsiniz.
Ayrıca bu soruyu HTML belgelerini veya Dizeleri Byte Dizileri ile IronPDF'de Nasıl Kullanılır hakkında görüntüleyin.
Örnek 2
Bu bölüm, Örnek 1'den elde edilen PDF'in özelleştirilmesine yardımcı olacaktır. Örneğin, özel kenar boşlukları, belgenin başlık ve oluşturulma tarihiyle bir üst bilgi ve sayfa numaraları içeren bir alt bilgi, ve standart bir faturanın sahip olduğu 'baskı' medya türü için bazı özel CSS ekleyecektir. Bunu yapmak için, bir ChromePdfRenderOptions örneği başlatılır ve ChromePdfRenderer yapıcısına geçirilir.
// Configure rendering options with margins, headers, and footers
var pdfRenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);// Configure rendering options with margins, headers, and footers
var pdfRenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);' Configure rendering options with margins, headers, and footers
Dim pdfRenderingOptions = New ChromePdfRenderOptions() With {
.MarginTop = 50,
.MarginBottom = 50,
.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
},
.TextFooter = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
},
.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
}
Dim chromePdfRenderer As New ChromePdfRenderer(pdfRenderingOptions)İpucu: Seçenekleri yapıcıda bir parametre olarak iletmek yerine, ChromePdfRenderer örneğinin karşılık gelen alanını ayarlayabilirsiniz:
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;Dim chromePdfRenderer As New ChromePdfRenderer()
chromePdfRenderer.RenderingOptions = pdfRenderingOptionsNot: Başlık ve altbilgi özellikleri birleştirme işlevselliğine sahiptir, yani tüm birleştirme alanları ({page}, {total-pages}, {url}, {date}, {time}, {html-title}, {pdf-title}) ilgili verilerle doldurulabilir.
Kodun geri kalanı Örnek 1 ile aynıdır. Sonuç şu şekildedir:
Üst bilgi ve alt bilgi ile bir fatura oluştur
Özel kenar boşlukları, üst bilgi, alt bilgi ve 'baskı' medya türü için CSS şimdi yer alıyor. Kod örneğini IronPDFDemo.RenderHtmlAdPdfDemo projesinde bulabilirsiniz. Daha fazla ayar, IronPDF API referansı altında bulunabilir.
Adım 4: RenderUrlAsPdf
Kurulum
Bu bölümden örnekleri çalıştırmak için, IronPDFDemo.DemoWebSite'ı yerelde barındırmanız gerekmektedir. Bunu IIS Express'te yapmak için:
- DemoWebSite'a gidin
- Sağ tıklayın > Başlangıç Projesi Olarak Ayarla
- Hata ayıklama olmadan başlayın (Ctrl+F5)
- Çalıştığından emin olmak için
{baseurl}/Static/TestInvoice1.html'nize gidin. Bu URLhttp://localhost:51169/Static/TestInvoice1.html(eğer ilgili proje ayarlarını değiştirmezseniz sizin için de aynı olacaktır).
Örnek 1
Bu bölümde, barındırılan DemoWebSite faturası, HelloWorld örneğindeki aynı kod kullanılarak PDF'e dönüştürülür. Fark, barındırılan URL'dedir:
// URL of the hosted invoice webpage
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));// URL of the hosted invoice webpage
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));' URL of the hosted invoice webpage
Dim uri As New Uri("http://localhost:51169/Static/TestInvoice1.html")
Dim urlToPdf = New ChromePdfRenderer()
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"))Sonuç şu şekildedir:
Barındırılan bir web sitesini PDF'e dönüştür
Bu harika ve beklediğiniz gibi görünüyor. Kod örneğini IronPDFDemo.RenderUrlAsPdfDemo projesinde bulabilirsiniz.
Örnek 2
Birçok web sitesi genellikle bir kimlik doğrulama yöntemiyle korunur. Bu bölüm, PDF dosyasını render etme sürecinde sağlanan bir kullanıcı adı ve parola kullanır ve bazı özelleştirmeler içerir: özel kenar boşlukları, belgenin başlığı ile bir üst bilgi, oluşturulma tarihi ve sayfaları içeren bir alt bilgi ve 'baskı' medya türü için özel CSS. Fatura için URL http://localhost:51169/Invoice adresindedir.
http://localhost:51169/Invoice'ya erişmek "Kimlik doğrulama gerekli" formuyla sonuçlanır:
Kimlik doğrulama gerekli formu
Not: Kullanıcı bilgileri 'testUser'/'testPassword'.
Öyleyse kimlik doğrulamayı nasıl atlayabilirsiniz? HttpLoginCredentials ayarlanarak:
// URL of the protected invoice webpage
var uri = new Uri("http://localhost:51169/Invoice");
// Configure renderer with login credentials to bypass authentication
var urlToPdf = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// Set login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));// URL of the protected invoice webpage
var uri = new Uri("http://localhost:51169/Invoice");
// Configure renderer with login credentials to bypass authentication
var urlToPdf = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// Set login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));' URL of the protected invoice webpage
Dim uri As New Uri("http://localhost:51169/Invoice")
' Configure renderer with login credentials to bypass authentication
Dim urlToPdf = New ChromePdfRenderer With {
.RenderingOptions = New ChromePdfRenderOptions() With {
.MarginTop = 50,
.MarginBottom = 50,
.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
},
.TextFooter = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
},
.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
.LoginCredentials = New HttpLoginCredentials() With {
.NetworkUsername = "testUser",
.NetworkPassword = "testPassword"
}
}
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"))Not: ChromePdfRenderer Example2 ile aynı özelleştirme kullanılır.
Sonuç şu şekildedir:
Kimlik bilgileriyle bir HTML sitesi PDF dosyasına dönüştür
Her şey yerinde. Kod örneğini IronPDFDemo.RenderUrlAsPdfDemo projesinde bulabilirsiniz. Sonucun HttpLoginCredentials olmadan nasıl görüneceğini merak ediyorsanız, işte burada:
Kimlik bilgileri olmadan boş bir PDF dosyası oluştur
Ayrıca Jean'in .NET HTML'den PDF'e Eğitim makalesine de bakın.
Ek olarak, IronPDF, PDF ile farklı şekillerde de etkileşim kurabilir:
