PRODUKT-VERGLEICHE

Hinzufügen von Seitenzahlen in PDF mit iTextSharp in C#

Veröffentlicht 3. April 2024
Teilen Sie:

Einführung

"Portable Document Format" oder PDF ist ein von Adobe entwickeltes Dateiformat. PDF-Dateien sind praktisch, wenn es um die Präsentation von Dokumenten geht, deren Text und Fotos formatiert werden müssen. In der heutigen Welt sind PDF-Dateien unverzichtbar und werden in allen Unternehmensbereichen zur Dokumentenerstellung und Rechnungsstellung verwendet. Dank der zahlreichen PDF-Bibliotheken, die es inzwischen auf dem Markt gibt, ist die Erstellung von PDFs praktisch zum Kinderspiel geworden. Um die für Sie geeignete PDF-Bibliothek auszuwählen, müssen Sie die Vorteile und Merkmale der einzelnen Bibliotheken abwägen, bevor Sie eine für Ihr Projekt verwenden.

In diesem Artikel wird gezeigt, wie man mit iTextSharp C# Seitenzahlen in PDF-Dateien einfügt. Außerdem werden wir den Vergleich der iTextSharp mitIronPDF.

Wie man mit iTextSharp C&num Seitenzahlen in PDF einfügt;

  1. Erstellen Sie ein neues C#-Projekt mit einer beliebigen IDE.

  2. Erstellen Sie ein neues PDF-Objekt.

  3. Fügen Sie Seitenzahlen in die HTML-Fußzeile ein.

  4. Erstellen Sie eine PDF-Datei aus HTML-Material.

  5. Speichern Sie eine PDF-Datei auf Ihrem Computer.

Was ist IronPDF

IronPDF ist ein robustes PDF .NET-Framework, mit dem Entwickler mühelos PDFs erstellen, anzeigen und bearbeiten können. IronPDF ist ein hochentwickeltes Tool, das intern auf einer Chromium-Engine läuft. Es kann HTML5-, JavaScript-, CSS- und Bilddateien in PDF konvertieren, benutzerdefinierte Kopf- und Fußzeilen hinzufügen und PDFs genau so erstellen, wie sie in einem Browser angezeigt werden. IronPDF unterstützt viele Online- und Netzformate, darunter HTML, ASPX, Razor View und MVC.

IronPDF-Funktionen

  • unter Verwendung von .NET C#-Code zum Erstellen, Lesen und einfachen Bearbeiten von PDF-Dateien.
  • Der Prozess der Erstellung von PDFs aus einem Website-URL-Link bei gleichzeitiger Verwaltung von User-Agents, Proxies, Cookies, HTTP-Headern und Formularvariablen, um die Anmeldung mit HTML-Anmeldeformularen zu ermöglichen.
  • den Prozess des Entfernens von Bildern aus bereits vorhandenen PDF-Dateien.
  • Einschließlich der Elemente einer PDF-Datei: Tabellen, Text, Fotos, Lesezeichen, Wasserzeichen, Kopfzeilen, Fußzeilen und andere.
  • die Möglichkeit, die Seiten zahlreicher PDF-Dokumente mühelos zu trennen und zu kombinieren.

    Weitere Informationen über die IronPDF-Dokumentation finden Sie unter*hier.

Installation von IronPDF

Wählen Sie innerhalb der Visual Studio Tools den NuGet Package Manager aus, und Sie finden die Visual Command-Line-Schnittstelle unter Tools. Der folgende Befehl sollte in die Terminal-Registerkarte der Paketverwaltung eingegeben werden.

Install-Package IronPdf

Oder wir können die Methode der Paketverwaltung verwenden. Die Installation des Pakets direkt in die Lösung ist mit der Option NuGet Package Manager von Visual Studio möglich. Zum Auffinden von Paketen auf der NuGet-Website steht ein Suchfeld zur Verfügung. Wir müssen nur nach "IronPDF" im Paketmanager suchen, wie der folgende Screenshot zeigt:

Wie man mit iTextSharp in C# Seitenzahlen in PDF einfügt: Abbildung 1 - Installation von IronPDF über den Paketmanager

Die Liste der relevanten Suchergebnisse ist in der obigen Abbildung dargestellt. Damit das Paket auf Ihrem System installiert werden kann, treffen Sie bitte die erforderlichen Auswahlen.

Nachdem das Paket nun heruntergeladen und installiert wurde, kann es im aktuellen Projekt verwendet werden.

Was ist iTextSharp

iTextSharp ist eine flexible Bibliothek zum Erstellen und Ändern von PDF-Dokumenten in C#. Es bietet verschiedene Funktionen, wie Verschlüsselung, PDF-Zusammenführung, Text- und Bildextraktion und vieles mehr. iTextSharp ist ein effizientes Werkzeug für zahlreiche Aufgaben, darunter das Hinzufügen von Seitenzahlen zu PDFs.

iTextSharp Merkmale

  • Eine API zur Erzeugung von PDF-Dokumenten ist über die iText-Bibliothek verfügbar.
  • Sowohl HTML- als auch XML-Strings können mit dem Programm iText in PDF-Dateien geparst werden.
  • Mit der iText-Bibliothek können wir Lesezeichen, Seitenzahlen und Markierungen zu unseren PDF-Dokumenten hinzufügen.
  • Mit der iText-Bibliothek können wir auch ein PDF-Dokument in mehrere PDFs aufteilen oder mehrere PDF-Dokumente zu einem einzigen PDF zusammenführen.
  • Wir können PDF-Formulare mit iText bearbeiten.

ITextSharp installieren

Verwenden Sie den NuGet-Paketmanager, um nach iText zu suchen. iText7 und iText.pdfhtml sind erforderliche Installationen, da die iText-Funktionen auf viele Pakete verteilt sind.

Wenn Sie sich für die Visual Command-Line-Schnittstelle entscheiden, müssen die folgenden Pakete installiert werden:

Install-Package iTextSharp

Da iText 7 die neueste Version ist, verwenden wir sie in unserer Lösung.

Hinzufügen von Seitenzahlen mit IronPDF

Das Hinzufügen von Seitenzahlen zu PDF-Dateien wird durch die umfassende Bibliothek von IronPDF vereinfacht. Zur Veranschaulichung sehen Sie sich den folgenden Code an.

using IronPdf;
static void main(string [] args)
{ 
    var renderer = new IronPdf.HtmlToPdf();
    private string header = "<h1>Hello Ironpdf!<h1>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
    HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
    {
        HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
    };
    // Add footer
    pdf.AddHtmlFooters(htmlFooter);
    pdf.SaveAs("output.pdf");
}
using IronPdf;
static void main(string [] args)
{ 
    var renderer = new IronPdf.HtmlToPdf();
    private string header = "<h1>Hello Ironpdf!<h1>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
    HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
    {
        HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
    };
    // Add footer
    pdf.AddHtmlFooters(htmlFooter);
    pdf.SaveAs("output.pdf");
}
Imports IronPdf
Shared Sub main(ByVal args() As String)
	Dim renderer = New IronPdf.HtmlToPdf()
	private String header = "<h1>Hello Ironpdf!<h1>"
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
	Dim htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}
	' Add footer
	pdf.AddHtmlFooters(htmlFooter)
	pdf.SaveAs("output.pdf")
End Sub
VB   C#

Zunächst definieren wir den HTML-Text, der in eine PDF-Datei umgewandelt werden soll. Dieser HTML-Inhalt kann aus einem einzelnen HTML-Absatz oder einer ganzen HTML-Seite bestehen. Als nächstes erstellen wir eine Instanz der Klasse HTMLToPdf, die die HTML-zu-PDF-Konvertierungsfunktion RenderHtmlAsPdf anbietet.

Der HTML-Inhalt wird als Argument an die Funktion RenderHtmlAsPdf übergeben. Wir geben das HTML-Material an, das in ein PDF umgewandelt werden soll. Seitenzahlen werden als Platzhalter dargestellt, oder die {seite} von{gesamt-Seiten} __im Fußzeilenteil dieses HTML-Textes.

Das erstellte PDF-Dokument wird von dieser Methode als PdfDocument-Objekt zurückgegeben. Mit der Methode SaveAs speichern wir das PDF-Dokument in einer Datei mit dem Namen "output.pdf". Alternativ können wir die Funktion OpenInDefaultPDFViewer verwenden, um das erstellte PDF-Dokument mit dem Standard-PDF-Reader des Systems zu öffnen. Mit der oben beschriebenen Methode können wir auch Seitenzahlen zu einer bestehenden PDF-Datei hinzufügen.

Wie man mit iTextSharp in C# Seitenzahlen in PDF einfügt: Abbildung 2 - IronPDF: Ausgegebenes PDF mit Seitenzahlen

Weitere Informationen über den IronPDF-Code finden Sie unter*hier.

Hinzufügen von Seitenzahlen mit iTextSharp

Lassen Sie uns zunächst mit iTextSharp ein neues PDF-Dokument erstellen. Hier ist eine einfache Illustration, wie man ein neues PDF-Dokument mit einer Seitenzahl erstellt:

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(document, new FileStream("output.pdf", FileMode.Create));
            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);
            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);
            table.WriteSelectedRows(0, -1, 150, 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(document, new FileStream("output.pdf", FileMode.Create));
            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);
            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);
            table.WriteSelectedRows(0, -1, 150, 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(document, New FileStream("output.pdf", FileMode.Create))
			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)
			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)
			table.WriteSelectedRows(0, -1, 150, 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
VB   C#

Zunächst erstellen wir ein neues Objekt für Document und PdfWriter, mit dem wir eine leere PDF-Datei erstellen können. Sie können Text, Fotos, Tabellen und andere Arten von Material in Ihr PDF-Dokument einfügen. Verwenden wir den neuen Absatz, um zur Veranschaulichung einen Beispieltext hinzuzufügen. Der wichtigste Schritt besteht nun darin, dem PDF-Dokument Seitenzahlen hinzuzufügen. Dazu werden wir die Seitenereignisse von iTextSharp verwenden. Um Methoden überschreiben zu können, die aufgerufen werden, wenn bestimmte Ereignisse während des PDF-Erzeugungsprozesses auftreten, konstruieren wir zunächst eine Klasse, die von der Klasse PdfPageEventHelper erbt.

Die Funktion OnEndPage wird in dieser Klasse überschrieben, um eine Tabelle mit einer einzigen Zelle hinzuzufügen, die die aktuelle Seitenzahl enthält. Bevor wir das Dokument schließen, müssen wir noch eine Instanz unserer Klasse PageNumberEventHandler mit dem Objekt PdfWriter verbinden. Mit dieser Konfiguration wird die Funktion OnEndPage der Klasse PageNumberEventHandler jedes Mal aufgerufen, wenn dem PDF-Dokument eine neue Seite hinzugefügt wird, wobei die Seitenzahl am Ende jeder Seite hinzugefügt wird. Wir können auch ein bestehendes PDF-Dokument verwenden, um Seitenzahlen hinzuzufügen.

Wie man mit iTextSharp in C# Seitenzahlen in PDF einfügt: Abbildung 3 - iTextSharp: Ausgegebenes PDF mit Seitenzahlen

Schlussfolgerung

Zusammengefasst,IronPDFdie Spezialisierung, die Benutzerfreundlichkeit und die nahtlose Integration in .NET-Umgebungen machen iTextSharp zur besten Option für Szenarien, die eine Konvertierung von HTML in PDF und verwandte Funktionen erfordern, auch wenn iTextSharp immer noch ein starker Konkurrent in der Landschaft der C#-Bibliotheken zur PDF-Bearbeitung ist. Mit IronPDF können Sie Rechnungen, Berichte und dynamisch erstellte Dokumente aus HTML-Inhalten mit der Leichtigkeit, Effektivität und Anpassungsfähigkeit erstellen, die für den Erfolg in der modernen Entwicklungsumgebung erforderlich sind.

Eine permanente Lizenz, Upgrade-Optionen und ein Jahr Software-Wartung sind in IronPDFs $749 Lite-Edition enthalten. Der mit Wasserzeichen versehene Testzeitraum ermöglicht es den Benutzern, das Produkt in der Praxis zu testen. Besuchen Sie die Lizenz*Seite. Hier geht es weiterWebseite um mehr über Iron Software zu erfahren.

< PREVIOUS
C# Reporting Tools (Funktionsvergleich)
NÄCHSTES >
Wie man PDF-Dokumente in C# mit iTextSharp liest:

Sind Sie bereit, loszulegen? Version: 2024.12 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,810,873 Lizenzen anzeigen >