IRON SUITE KULLANıMı

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

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

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

İşte bu kadar! İlgili sonuçlar şunlardır:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 1: HTML'yi PDF'ye dönüştürmenin sonucu HTML'yi dönüştürme sonucu PDF'ye**

HTML Dosyasından C# ile PDF Oluşturun, Şekil 2: Bir web sayfasını PDF'ye dönüştürmenin sonucu 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:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 4:


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

Sonuç:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 5: HTML'den bir PDF dosyası oluşturun 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)
$vbLabelText   $csharpLabel

İ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 = pdfRenderingOptions
$vbLabelText   $csharpLabel

Not: Ü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ç:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 6: Üstbilgi ve altbilgi içeren bir fatura oluşturun 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:

  1. DemoWebSite'e gidin
  2. Sağ tıklayın > Başlangıç Projesi Olarak Ayarla
  3. Hata ayıklamadan çalıştır (Ctrl+F5)
  4. Çalıştığından emin olmak için {baseurl}/Static/TestInvoice1.html'a gidin. Bu, http://localhost:51169/Static/TestInvoice1.html URL'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"))
$vbLabelText   $csharpLabel

Sonuç:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 7: Barındırılan bir web sitesini PDF'ye dönüştürün 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:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 8: Kimlik doğrulama gerekli formu 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"))
$vbLabelText   $csharpLabel

Not: Aynı özelleştirme, ChromePdfRenderer Örnek2'deki gibi kullanılır.

Sonuç:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 9: Kimlik bilgileri ile bir HTML sitesini PDF dosyasına dönüştürün 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:

HTML Dosyasından C# ile PDF Oluşturun, Şekil 10: Kimlik bilgileri olmadan boş bir PDF dosyası oluşturun 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: