Altbilgi içeriğine atla
IRONPDF KULLANARAK

C# .NET Kütüphanesinde PDF Yapma

"Portable Document Format", veya kısaca PDF, Adobe tarafından oluşturulmuş bir dosya formatıdır. PDF'ler, metin ve fotoğrafların düzenlenmesi gereken belgeleri sunarken kullanışlıdır. Günümüz dünyasında, PDF dosyaları belgelerin oluşturulması ve faturalandırma için tüm kurumsal sektörlerde vazgeçilmezdir. Piyasada bulunan birkaç PDF kütüphanesi sayesinde, PDF'lerin oluşturulması neredeyse içgüdüsel hale gelmiştir. Projeniz için bir kütüphane kullanmadan önce, her birinin faydalarını ve özelliklerini değerlendirerek sizin için uygun olan PDF kütüphanesini seçmek önemlidir.

Bu makalede, iText C# kullanarak PDF'ye sayfa numaraları nasıl eklenir göreceğiz. Ayrıca, iText'i IronPDF ile karşılaştıracağız.

iText Kullanarak PDF'ye Sayfa Numaraları Nasıl Eklenir

  1. Herhangi bir IDE kullanarak yeni bir C# projesi oluşturun.
  2. Yeni bir PDF nesnesi oluşturun.
  3. Sayfa numaralarını HTML altbilgisine ekleyin.
  4. HTML materyalinden PDF oluşturun.
  5. Bir PDF dosyasını bilgisayarınıza kaydedin.

IronPDF nedir

IronPDF, geliştiricilerin PDF'ler üretmesini, görüntülemesini ve düzenlemesini kolayca yapmasını sağlayan sağlam bir PDF .NET Framework'tür. IronPDF, içsel olarak bir krom motoru üzerinde çalışan gelişmiş bir araçtır. HTML5, JavaScript, CSS ve resim dosyalarını PDF'ye dönüştürebilir, özel Başlıklar ve Alt Bilgiler ekleyebilir ve bir tarayıcıda göründüğü gibi PDF'ler üretebilir. HTML, ASPX, Razor View ve MVC gibi birçok çevrimiçi ve net format, IronPDF tarafından desteklenir.

IronPDF Özellikleri

*.NET C# kodunu kullanarak PDF dosyaları oluşturma, okuma ve düzenleme işlemleri yapmak. Kullanıcı Temsilcileri, Vekiller, Çerezler, HTTP başlıkları ve form değişkenlerini yönetirken HTML giriş formlarını kullanarak oturum açmayı sağlayarak bir web sitesi URL'si bağlantısından PDF oluşturma süreci. Zaten mevcut olan PDF dosyalarından görüntülerin kaldırılması. PDF'nin elemanlarını içerenler: tablo, metin, fotoğraflar, yer imleri, su işaretleri, başlıklar, alt bilgi ve diğerleri. Birçok PDF belgelerinin sayfalarını ayırma veya birleştirme yeteneği.

IronPDF dokümantasyonu hakkında daha fazla bilgi için buraya başvurun.

Installing IronPDF

Visual Studio Araçları içinde, NuGet Paket Yöneticisi'ni seçin ve Araçlar altında Visual Komut Satırı arabirimini bulabilirsiniz. Aşağıdaki komut, paket yönetim terminali sekmesine girilmelidir.

Install-Package IronPdf

Ya da Paket yöneticisi yöntemini kullanabiliriz. Paket, Visual Studio'nun NuGet Paket Yöneticisi seçeneği ile direkt çözüme kurulabilir. NuGet web sitesinde paketleri bulmak için bir arama kutusu mevcuttur. Sadece paket yöneticisinde "IronPDF" aramamız yeterlidir, aşağıdaki ekran görüntüsü bunu gösteriyor:

C#: iText kullanarak PDF'e Sayfa Numaraları Ekleme: Şekil 1 - Paket yöneticisinden IronPDF'in kurulumu

Yukarıda ilgili arama sonuçlarının listesi gösterilmektedir. Paketin sisteminize kurulabilmesi için gerekli seçimleri yapınız.

Paket indirildikten ve kurulduktan sonra, mevcut projede kullanılabilir.

iText Nedir

iText, C#'ta PDF belgeleri oluşturmak ve değiştirmek için esnek bir kütüphanedir. Çeşitli özellikler sunar, şifreleme, PDF birleştirme, metin ve resim çıkarma gibi. iText, PDF'lere sayfa numaraları ekleme gibi çok sayıda görev için verimli bir araçtır.

iText Özellikleri

  • Bir API aracılığıyla iText kütüphanesinden PDF belgeleri üretmek mümkündür.
  • Hem HTML hem de XML dizgileri, iText programı kullanılarak PDF dosyalarına parse edilebilir.
  • iText kütüphanesini kullanarak PDF belgelerine yer imleri, sayfa numaraları ve işaretçiler ekleyebiliriz.
  • iText kütüphanesini kullanarak bir PDF belgesini birçok PDF'ye bölebiliriz veya birden çok PDF belgesini tek bir PDF olarak birleştirebiliriz.
  • iText ile PDF formlarını değiştirebiliriz.

iText Kurun

NuGet paket yöneticisini kullanarak iText'i arayın. iText işlevsellikleri birden fazla pakete yayıldığı için iText ve iText.pdfhtml kurulum gerektirir.

Visual Komut Satırı arabirimini seçerseniz, aşağıdaki paketler kurulmalıdır:

Install-Package iTextSharp

iText, en son sürüm olduğundan, çözümümüzde kullandığımız versiyondur.

IronPDF Kullanarak Sayfa Numaraları Ekleme

IronPDF'nin kapsamlı kütüphanesi sayesinde PDF dosyalarına sayfa numaraları eklemek basittir. Ayrıntı için aşağıdaki koda bakın.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a new HtmlToPdf renderer instance
        var renderer = new HtmlToPdf();

        // Define the HTML content with a header
        string header = "<h1>Hello IronPDF!</h1>";

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the HTML footer with page numbers
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the PDF document to a file
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a new HtmlToPdf renderer instance
        var renderer = new HtmlToPdf();

        // Define the HTML content with a header
        string header = "<h1>Hello IronPDF!</h1>";

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the HTML footer with page numbers
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the PDF document to a file
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new HtmlToPdf renderer instance
		Dim renderer = New HtmlToPdf()

		' Define the HTML content with a header
		Dim header As String = "<h1>Hello IronPDF!</h1>"

		' Render the HTML as a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)

		' Define the HTML footer with page numbers
		Dim htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"}

		' Add footer to the PDF
		pdf.AddHtmlFooters(htmlFooter)

		' Save the PDF document to a file
		pdf.SaveAs("output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Öncelikle, PDF'ye dönüştürülmesi gereken HTML metnini tanımlarız. Bu HTML içeriği bir HTML paragrafından veya bütün bir HTML sayfasından oluşabilir. Daha sonra, HTML'den PDF'e dönüşüm fonksiyonu sunan HtmlToPdf sınıfının bir örneğini oluşturuyoruz RenderHtmlAsPdf.

HTML içeriği, RenderHtmlAsPdf fonksiyonuna bir argüman olarak geçirilir. PDF'ye dönüştürülmesi gereken HTML materyalini belirliyoruz. Sayfa numaraları, bu HTML metninin alt bilgi bölümündeki yer tutucular veya {page} of {total-pages} olarak temsil edilir.

Oluşturulan PDF belge, bu yöntem tarafından bir PdfDocument nesnesi olarak döndürülür. SaveAs yöntemi kullanılarak, PDF belgeyi 'output.pdf' adıyla bir dosyaya kaydediyoruz. Alternatif olarak, sistemin varsayılan PDF okuyucusuyla oluşturulan PDF belgesini açmak için OpenInDefaultPDFViewer fonksiyonunu kullanabiliriz. Ayrıca, yukarıdaki yöntemi kullanarak mevcut bir PDF dosyasına sayfa numaraları ekleyebiliriz.

C#: iText kullanarak PDF'e Sayfa Numaraları Ekleme: Şekil 2 - IronPDF: Sayfa numaralı çıktı PDF

IronPDF kodu hakkında daha fazla bilgi için buraya başvurun.

iText Kullanarak Sayfa Numaraları Ekleme

Öncelikle, yeni bir PDF belgesi oluşturmak için iText kullanalım. Aşağıda sayfa numarasına sahip yeni bir PDF belgesi nasıl oluşturuluğuna dair basit bir örnek verilmiştir:

using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            Document doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            doc.Open();
            doc.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            doc.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnOpenDocument(PdfWriter writer, Document document)
        {
            base.OnOpenDocument(writer, document);
        }

        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table to hold the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);

            // Write the table at the bottom of the page
            table.WriteSelectedRows(0, -1, 150f, document.Bottom, writer.DirectContent);
        }

        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            Document doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            doc.Open();
            doc.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            doc.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnOpenDocument(PdfWriter writer, Document document)
        {
            base.OnOpenDocument(writer, document);
        }

        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table to hold the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
            cell.Border = 0;
            table.AddCell(cell);

            // Write the table at the bottom of the page
            table.WriteSelectedRows(0, -1, 150f, document.Bottom, writer.DirectContent);
        }

        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf

Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create a new PDF document
			Dim doc As New Document()
			Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("output.pdf", FileMode.Create))

			' Open the document to add content
			doc.Open()
			doc.Add(New Paragraph("Hello, world!"))

			' Attach page number event to PDF writer
			writer.PageEvent = New PageNumberEventHandler()

			' Close the document
			doc.Close()
		End Sub
	End Class

	Public Class PageNumberEventHandler
		Inherits PdfPageEventHelper

		Public Overrides Sub OnOpenDocument(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnOpenDocument(writer, document)
		End Sub

		Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnEndPage(writer, document)

			' Create a table to hold the page number
			Dim table As New PdfPTable(1)
			table.TotalWidth = 300F
			table.HorizontalAlignment = Element.ALIGN_CENTER

			Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
			cell.Border = 0
			table.AddCell(cell)

			' Write the table at the bottom of the page
			table.WriteSelectedRows(0, -1, 150F, document.Bottom, writer.DirectContent)
		End Sub

		Public Overrides Sub OnCloseDocument(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnCloseDocument(writer, document)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Öncelikle Document ve PdfWriter için yeni bir nesne oluşturuyoruz, bu bize boş bir PDF dosyası oluşturma imkanı tanır. PDF belgenize metin, fotoğraf, tablo ve diğer türde içerik ekleyebilirsiniz. Demo amaçlı bazı örnek metinler eklemek için bir Paragraph kullanabiliriz. Şimdi, PDF belgesine sayfa numaralarını eklemek önemli adımdır. Bunun için iText'in sayfa olaylarını kullanacağız. PDF oluşturma işlemi sırasında belirli olaylar gerçekleştiğinde çağrılan yöntemleri geçersiz kılabilmek için PdfPageEventHelper sınıfından türetilen bir sınıf tanımlayarak başlıyoruz.

Bu sınıfta, mevcut sayfa numarasını içeren tek bir hücre bulunan bir tablo eklemek için OnEndPage fonksiyonu geçersiz kılınır. Son olarak, belgeyi kapatmadan önce, PageNumberEventHandler sınıfımızın bir örneğini PdfWriter nesnesine bağlamamız gerekir. Bu yapılandırma ile, her yeni sayfa PDF belgisine eklendiğinde, PageNumberEventHandler sınıfının OnEndPage fonksiyonu çağrılır ve her sayfanın altına sayfa numarası eklenir. Mevcut bir PDF belgesine de sayfa numaralarını ekleyebiliriz.

C#: iText kullanarak PDF'e Sayfa Numaraları Ekleme: Şekil 3 - iText: Sayfa numaralı çıktı PDF

Sonuç

Özetlemek gerekirse, IronPDF'nin uzmanlaşma, kullanılabilirlik ve .NET ortamları ile sorunsuz entegrasyonu, HTML'den PDF'e dönüştürme ve ilgili işlevler gerektiren senaryolar için en iyi seçenek olarak konumlanmasını sağlar, her ne kadar iText, C# PDF manipülasyon kütüphaneleri alanında hala güçlü bir rakip olsa da. IronPDF ile, HTML içeriğinden faturalar, raporlar ve dinamik olarak üretilen belgeleri, modern geliştirme ortamında başarıya ulaşmanız için gereken kolaylık, etkinlik ve uyarlanabilirlikle yaratabilir ya da düzenleyebilirsiniz.

IronPDF'in Lite sürümünde, kalıcı lisans, yükseltme seçenekleri ve bir yıllık yazılım bakımı dahildir. Filigranlı deneme süresi, kullanıcıların ürünü pratik ortamlarda değerlendirmesine olanak tanır. sayfa daha fazla bilgi için ziyaret edin. Iron Software hakkında daha fazla bilgi almak için bu web sitesini ziyaret edin.

Sıkça Sorulan Sorular

C# kullanarak bir PDF'ye sayfa numaralarını nasıl ekleyebilirim?

Sayfa numaralarını bir PDF'e eklemek için IronPDF kullanarak sayfa numarası yer tutucuları ile HTML içeriği tanımlayabilir ve bu içeriği PDF'inize footer olarak uygulamak için AddHtmlFooters yöntemini kullanabilirsiniz.

PDF manipülasyonu için IronPDF kullanmanın faydaları nelerdir?

IronPDF, güçlü PDF.NET framework yetenekleri sunar, HTML5, JavaScript, CSS ve resimden PDF'ye dönüştürme işlemlerini destekler, özel başlık ve altbilgiler ile PDF'leri kolayca düzenlemenizi sağlar.

Sayfa numaraları ekleme konusunda iTextSharp ile IronPDF nasıl karşılaştırılır?

iTextSharp, sayfa numaralarını yönetmek için PdfPageEventHelper sınıfını kullanır; oysa IronPDF, sayfa numarası yer tutucuları ile HTML altbilgiler tanımlamanıza izin vererek daha basit bir yaklaşım sunar.

Mevcut PDF dosyalarını manipüle ederek sayfa numaraları ekleyebilir miyim?

Evet, IronPDF'yi kullanarak, HTML altbilgileri ile sayfa numarası yer tutucuları ekleyip bunları orijinal belgeyle birleştirerek mevcut PDF dosyalarına sayfa numaraları ekleyebilirsiniz.

HTML'i PDF'ye dönüştürmenin tercih edilen yöntemi nedir?

IronPDF, HTML5, JavaScript ve CSS ile başa çıkma yeteneği ve .NET ortamları ile sorunsuz entegrasyonu nedeniyle HTML'den PDF'ye dönüşüm için tercih edilir.

C# projesinde IronPDF kullanımı için kurulum adımları nelerdir?

IronPDF'yi bir C# projesine Visual Studio'da NuGet Paket Yöneticisi'ni kullanarak yükleyebilirsiniz. 'IronPDF' araması yaparak projeye ekleyebilirsiniz.

C# kullanarak PDF'lerimin doğru sayfa numaralarına sahip olduğundan nasıl emin olabilirim?

IronPDF kullanarak, sayfa numaralarının doğruluğunu sağlamak için sayfa numarası yer tutucuları içeren bir HTML şablonu tanımlayın ve bunu tüm PDF sayfalarına tutarlı bir şekilde uygulayın.

IronPDF için lisanslama seçenekleri mevcut mu?

IronPDF, kalıcı bir lisans, yükseltme seçenekleri ve bir yıllık yazılım bakımı ile birlikte değerlendirme için filigranlı bir deneme süresi sunan 'Lite' bir sürüm sunar.

IronPDF kullanımı için detaylı örnekleri ve belgeleri nerede bulabilirim?

IronPDF kullanımı için kapsamlı dokümantasyon ve örnekler, ironpdf.com adresindeki resmi web sitesinde bulunabilir.

IronPDF, .NET 10 ile tamamen uyumlu mu ve bir .NET 10 projesinde sayfa numaralandırma özelliklerini kullanabilir miyim?

Evet, IronPDF .NET 10'u destekler ve başlık veya altbilgilerdeki yer tutucular aracılığıyla sayfa numaralandırma dahil tüm özellikler .NET 10 projelerinde özel bir yapılandırma veya geçici çözüm gerektirmeden doğrudan çalışır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara