IRON SUITE KULLANıMı

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

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

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

Hepsi bu kadar! İlgili sonuçlar:

C# içinde HTML Dosyasından PDF Oluşturma, Şekil 1: HTML'yi PDF'ye dönüştürmenin sonucu HTML'in PDF'e dönüştürülmesinin sonucu**

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

C# içinde HTML Dosyasından PDF Oluşturma, Şekil 4:


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

Sonuç şu şekildedir:

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

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

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

C# içinde HTML Dosyasından PDF Oluşturma, Şekil 6: Başlık ve altbilgi ile bir fatura oluşturma Ü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:

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

Sonuç şu şekildedir:

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

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

Not: ChromePdfRenderer Example2 ile aynı özelleştirme kullanılır.

Sonuç şu şekildedir:

C# içinde HTML Dosyasından PDF Oluşturma, Şekil 9: Kimlik bilgileriyle bir HTML sitesini PDF dosyasına dönüştürme 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:

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