HTML Dosyasından C#'ta PDF Oluşturma
IronPDF HTML'yi programatik olarak PDF belgesine dönüştürür.
C# ile PDF Oluşturma - HTML'den PDF'ye Örnek
Bu makalenin tamamı için kaynak kodu C# olarak C# HTML'den PDF'ye Proje Kaynak Kodu İndir mevcuttur.
Aşağıdaki eğitim, IronPDF'yi bir C# PDF Üretici olarak kullanma sürecinde size rehberlik edecektir. Temel bilgiler ile birlikte birçok gelişmiş C# PDF konusunu ele alır.
HTML'den PDF'ye C#
- HTML'yi PDF'ye dönüştürmek için C# kütüphanesini indirin
- Kodda HTML dizesinden PDF oluşturma
- Kodda HTML dosyasından PDF oluşturma
- URL'yi PDF belgesine kolayca dönüştürme
- PDF dosyalarını istenilen konuma aktarın
HTML'den PDF'ye Kılavuz
Bu demo, IronPDF kullanmanın örneklerini size gösterir. Iron Software'den ek kullanım durumu demoları 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 NuGet aracılığıyla kurabilirsiniz. The package name is IronPDF NuGet Package.
Or you can use the Direct Library Download.
Adım 2: Merhaba Dünya
IronPDF'yi projenize kurup başvurduktan sonra, hemen kullanmaya başlayabilirsiniz:
// 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()HTML'yi PDF'ye dönüştürmeniz gerekiyorsa:
// 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"))Veya bir web sayfasını PDF dosyasına dönüştürmek istiyorsanız:
// 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"))İşte bu kadar! İlgili sonuçlar şunlardır:
HTML'yi dönüştürme sonucu PDF'ye**
Bir web sayfasının PDF'ye dönüştürülmesi sonucu
Kod örneğini IronPDFDemo.HelloWorld projesinde bulabilirsiniz.
Adım 3: RenderHtmlAsPdf
Örnek 1
Daha gerçek bir örnek düşünmek için bir HTML Faturası'nın PDF'ye dönüştürülmesi gerektiğini hayal edin. Bunu nasıl yapacağınızın kodu burada.
Not: Fatura HTML'sini IronPDFDemo.DemoWebSite projesinde (~/Static/TestInvoice1.html) bulabilirsiniz. Lütfen faturanın 'yazdırma' medya türü için özel CSS içerdiğini unutmayın.
Kaynak fatura tarayıcıda şöyle görünür:

Bunu PDF dosyasına dönüştürmek için, yukarıdaki HelloWorld örneğine benzer kodlar kullanılır, fark HTML dosyasının kaynağında.
// 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ç:
HTML'den PDF dosyası oluşturma
Harika görünüyor! Kod örneğini IronPDFDemo.RenderHtmlAdPdfDemo projesinde bulabilirsiniz.
HTML belgelerini veya Dizeleri Byte Dizileri ile birlikte IronPDF'de nasıl kullanacağınızı bu soruyu da görün
Örnek 2
Bu bölüm, Örnek 1'den elde edilen PDF'nin özelleştirilmesine yardımcı olacaktır. Örneğin, bu bir belge başlığı olan bir başlık ekleyecek, oluşturulma tarihi ve sayfa numaraları olan bir altbilgi ekleyecek ve standart bir faturanın sahip olduğu 'yazdırma' medya türü için bazı özel CSS'ler ekleyecek. Bunu yapmak için, 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 geçirmek yerine, ChromePdfRenderer örneği için karşılık gelen alanı ayarlayabilirsiniz:
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;Dim chromePdfRenderer As New ChromePdfRenderer()
chromePdfRenderer.RenderingOptions = pdfRenderingOptionsNot: Üstbilgi ve altbilgi özellikleri, birleştirici işlevselliği sunar, bu da tüm birleştirme alanlarının ({page}, {total-pages}, {url}, {date}, {time}, {html-title}, {pdf-title}) karşılık gelen verilerle doldurulabileceği anlamına gelir.
Kodun geri kalanı Örnek 1 ile aynı, sonuç:
Başlık ve altbilgi ile fatura oluşturma
Özel kenar boşlukları, başlıklar, altbilgiler ve 'yazdırma' medya türü için CSS şimdi yerinde. Kod örneğini IronPDFDemo.RenderHtmlAdPdfDemo projesinde bulabilirsiniz. Daha fazla ayarı, IronPDF API referansı altında bulabilirsiniz.
Adım 4: RenderUrlAsPdf
Kurulum
Bu bölümden örnekleri çalıştırmak için IronPDFDemo.DemoWebSite'i yerel olarak barındırmanız gerekir. Bunu IIS Express'te yapmak için:
- DemoWebSite'e gidin
- Sağ tıklayın > Başlangıç Projesi Olarak Ayarla
- Hata ayıklamadan çalıştır (Ctrl+F5)
- Çalıştığından emin olmak için
{baseurl}/Static/TestInvoice1.html'a gidin. Bu,http://localhost:51169/Static/TestInvoice1.htmlURL'si (karşılık gelen 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ğiyle aynı kod kullanılarak PDF'ye dönüştürülür. Fark, barındırılan URL'de yatıyor:
// 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ç:
Barındırılan bir web sitesini PDF'ye dönüştürme
Harika ve beklediğiniz gibi görünüyor. Kod örneğini IronPDFDemo.RenderUrlAsPdfDemo projesi içinde bulabilirsiniz.
Örnek 2
Birçok web sitesi, genellikle bir kimlik doğrulama yöntemi ile korunur. Bu bölümde, bir PDF dosyası oluşturma işlemi sırasında sağlanan bir kullanıcı adı ve şifre kullanılır: özel kenar boşlukları, bir belge başlığı ile bir başlık, oluşturulma tarihi ve sayfalarla bir altbilgi ve 'yazdırma' medya türü için özelleştirilmiş CSS. Faturanın URL'si http://localhost:51169/Invoice'dedir.
http://localhost:51169/Invoice'e erişmek "Kimlik doğrulama gerekli" formunu oluşturur:
Kimlik doğrulama gerekli formu
Not: Kimlik bilgileri 'testUser'/'testPassword'.
Peki kimlik doğrulamayı nasıl atlatılır? 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: Aynı özelleştirme, ChromePdfRenderer Örnek2'deki gibi kullanılır.
Sonuç:
PDF dosyasına kimlik bilgileriyle bir HTML sitesi oluşturma
Her şey yerinde. Kod örneğini IronPDFDemo.RenderUrlAsPdfDemo projesinde bulabilirsiniz. Eğer HttpLoginCredentials olmadan sonucun nasıl görüneceğini merak ediyorsanız, işte burada:
Kimlik bilgileri olmadan bir boş PDF dosyası oluşturma
Jean'ın .NET HTML'den PDF'ye Eğitimine de bakın
Ek olarak, IronPDF PDF ile farklı şekillerde de etkileşime girebilir:
- OCR kullanarak PDF'lerden resim ve metin çıkarın
- Dönüştürdüğünüz webin HTML içeriğini düzenleyin
- PDF dosyasının ön plan ve arka plan ayarlarını geliştirin
- PDF'lerinize dijital imzalar ekleyin
- PDF formlarınızı IronPDF araçlarını kullanarak otomatik doldurun f
