跳過到頁腳內容
產品比較

如何在C#中使用iTextSharp在PDF中添加頁碼

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison

"便攜式文件格式"(Portable Document Format,簡稱 PDF)是由 Adob​​e 建立的文件格式。 在展示需要保持文字和圖像格式一致的文件時,PDF 文件非常方便。 在當今世界,PDF 文件至關重要,並被各個企業部門廣泛用於建立文件和開立發票。 由於市面上有許多PDF庫,創建PDF檔案幾乎已經成為一種本能行為。為了選擇適合自己的PDF庫,在將其用於專案之前,權衡每個庫的優勢和特性至關重要。

本文將介紹如何使用 iTextSharp C# 在 PDF 中新增頁碼。 此外,我們也將比較iTextSharpIronPDF

如何使用 iTextSharp C# 在 PDF 中新增頁碼

  1. 使用任意 IDE 建立一個新的 C# 專案。
  2. 建立一個新的 PDF 物件。
  3. 在 HTML 頁腳中新增頁碼。
  4. 從 HTML 內容建立 PDF。
  5. 將 PDF 檔案儲存到您的電腦。

什麼是IronPDF

IronPDF是一個功能強大的 PDF .NET Framework,開發人員可以使用它來輕鬆建立、檢視和編輯 PDF。 IronPDF是一款功能強大的工具,其內部運作是基於 Chromium 引擎。 它可以將 HTML5、 JavaScript、CSS 和圖像檔案轉換為 PDF,添加自訂頁眉和頁腳,並產生與瀏覽器中顯示效果完全相同的 PDF 文件。 IronPDF支援多種線上和網路格式,包括 HTML、ASPX、 Razor View 和 MVC。

IronPDF功能

  • 利用.NET C# 程式碼建立、讀取和輕鬆編輯 PDF 檔案。
  • 透過網站 URL 連結建立 PDF,同時管理 User-Agent、Proxy、Cookie、HTTP 標頭和表單變量,以啟用使用 HTML 登入表單的登入。
  • 從現有 PDF 檔案中擷取影像。
  • 在 PDF 檔案中包含元素:表格、文字、圖像、書籤、浮水印、頁首、頁尾等。
  • 能夠輕鬆地分割和合併多個 PDF 文件中的頁面。

要了解有關IronPDF文件的更多信息,請參閱此處

安裝IronPDF

在 Visual Studio 工具中,選擇NuGet套件管理器,即可在"工具"下找到 Visual 命令列介面。 以下命令應輸入到軟體包管理終端機標籤中。

Install-Package IronPdf

或者我們可以使用套件管理器方法。 使用 Visual Studio 的NuGet套件管理器選項,可以直接將套件安裝到解決方案中。 NuGet網站上提供了一個搜尋框,用於查找軟體包。我們只需要在套件管理器中尋找"IronPDF",如下面的螢幕截圖所示:

如何在C#中使用iTextSharp在PDF中加入頁碼:圖1 - 從套件管理器安裝IronPDF

相關搜尋結果清單如上圖所示。 若要將此軟體包安裝到您的系統上,請進行必要的選擇。

現在軟體包已經下載安裝完畢,可以在目前專案中使用了。

什麼是 iTextSharp

iTextSharp是一個靈活的 C# 函式庫,用於產生和修改 PDF 文件。 它提供了多種功能,例如加密、PDF合併、文字和圖像提取等等。 iTextSharp 是一款高效率的工具,可用於執行多種任務,包括在 PDF 中新增頁碼。

iTextSharp 功能

  • 透過 iText 庫可以取得產生 PDF 文件的 API。
  • 使用 iText 程式可以將 HTML 和 XML 字串解析為 PDF 檔案。
  • 我們可以使用 iText 庫在 PDF 文件中加入書籤、頁碼和標記。
  • 我們也可以使用 iText 函式庫將一個 PDF 文件拆分成多個 PDF,或將多個 PDF 文件合併成一個 PDF。
  • 我們可以使用 iText 修改 PDF 表單。

安裝 iTextSharp

使用NuGet套件管理器搜尋 iText。 由於 iText 的功能分散在多個軟體包中,因此需要安裝 iText7 和 iText.pdfhtml。

如果您選擇可視化命令列介面,則需要安裝以下軟體包:

Install-Package iText7
Install-Package itext7.pdfhtml
Install-Package iText7
Install-Package itext7.pdfhtml
SHELL

由於 iText 7 是最新版本,因此我們在解決方案中採用了該版本。

使用IronPDF新增頁碼

IronPDF 擁有功能全面的庫,可以輕鬆地在 PDF 文件中添加頁碼。 例如,請參閱以下程式碼:

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the IronPdf renderer
        var renderer = new IronPdf.HtmlToPdf();

        // HTML content to convert to PDF
        string header = "<h1>Hello Ironpdf!</h1>";

        // Render the HTML content to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the footer with page number placeholders
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

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

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

class Program
{
    static void Main(string[] args)
    {
        // Initialize the IronPdf renderer
        var renderer = new IronPdf.HtmlToPdf();

        // HTML content to convert to PDF
        string header = "<h1>Hello Ironpdf!</h1>";

        // Render the HTML content to PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the footer with page number placeholders
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

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

        // Save the output PDF file
        pdf.SaveAs("output.pdf");
    }
}
$vbLabelText   $csharpLabel

解釋

1.初始化渲染器:我們建立一個 HtmlToPdf 實例,它提供 HTML 到 PDF 的轉換功能。 2.定義 HTML 內容:指定需要轉換為 PDF 的 HTML 內容。 3.渲染 HTML 內容:使用 RenderHtmlAsPdf 函數將 HTML 轉換為 PDF 文件。 4.定義頁尾:頁碼在 HTML 頁尾文字中以佔位符的形式表示。 5.新增頁尾並儲存 PDF:將頁尾套用到文件並將其儲存為 PDF 檔案。

如何使用 C# 中的 iTextSharp 在 PDF 中加入頁碼:圖 2 - IronPDF:帶有頁碼的輸出 PDF

要了解有關IronPDF代碼的更多信息,請參閱此處

使用 iTextSharp 新增頁碼

首先,我們使用 iTextSharp 產生一個新的 PDF 文件。 以下是建立帶有頁碼的新 PDF 文件的基本範例:

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 document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));

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

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

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

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

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

            // Add page number to the table cell
            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, 150, document.Bottom, writer.DirectContent);
        }
    }
}
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 document = new Document();
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));

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

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

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

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

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

            // Add page number to the table cell
            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, 150, document.Bottom, writer.DirectContent);
        }
    }
}
$vbLabelText   $csharpLabel

解釋

1.建立 PDF 文件:初始化一個新的 DocumentPdfWriter 以產生一個空的 PDF 檔案。 2.新增內容:為文件添加基本內容,例如段落。 3.頁碼:我們利用 iTextSharp 的事件處理功能來新增頁碼。 我們建立了一個繼承自 PdfPageEventHelper 的自訂類別。 4.重寫 OnEndPage:在自訂類別中,重寫 OnEndPage 方法,在每頁底部新增頁碼。 5.關閉文件:關閉文件以完成文件編輯。

如何使用 C# 中的 iTextSharp 在 PDF 中新增頁碼:圖 3 - iTextSharp:帶有頁碼的輸出 PDF

結論

總而言之, IronPDF的專業性、易用性以及與.NET環境的無縫集成,使其成為需要 HTML 到 PDF 轉換及相關功能的場景的最佳選擇,儘管 iTextSharp 在 C# PDF 操作庫領域仍然是一個強大的競爭對手。 透過IronPDF,您可以輕鬆、有效率且靈活地從 HTML 內容建立發票、報告和動態生成的文檔,從而在現代開發環境中取得成功。

IronPDF 的 Lite 版本包含永久許可證、升級選項和一年的軟體維護服務。 帶有浮水印的試用期可讓使用者在實際環境中評估產品。 請造訪許可頁面以了解更多資訊。 有關Iron Software 的更多詳細信息,請訪問其網站

請注意iTextSharp 是其各自所有者的註冊商標。 本網站與iTextSharp無任何關聯,亦未獲得其認可或贊助。所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供參考,反映的是撰寫本文時可公開取得的資訊。

常見問題解答

如何在 C# 中使用 iTextSharp 向 PDF 添加頁碼?

要在 C# 中使用 iTextSharp 添加頁碼,您可以創建一個繼承自 PdfPageEventHelper 的自定義類。重寫 OnEndPage 方法以插入頁碼,並將此事件附加到 PdfWriter 實例。

為什麼 PDF 在各個領域都很重要?

PDF 保持文本和圖像的格式一致,這對於文件創建和企業部門的開票是必不可少的。它們在專業地呈現文件方面非常可靠。

使用 IronPDF 進行 PDF 操作的優勢是什麼?

IronPDF 提供強大的功能來創建、查看和編輯 .NET 環境中的 PDF。它在將 HTML、JavaScript 和圖像轉換為 PDF 方面表現出色,並支持自定義頁眉、頁腳和水印。

IronPDF 可以處理具有 JavaScript 支援的 HTML 到 PDF 轉換嗎?

是的,IronPDF 可以將 HTML 內容(包括 JavaScript)轉換為 PDF,同時保持其在瀏覽器中顯示的佈局和功能。

如何在 C# 項目中安裝 IronPDF?

您可以使用 Visual Studio 中的 NuGet 包管理器安裝 IronPDF。只需搜索 'IronPDF' 並將其添加到項目中即可開始使用其功能。

IronPDF 提供的試用期有何重要性?

IronPDF 的試用期允許開發人員在實際應用中探索其功能和效用,並附有水印試用,幫助他們在購買許可證之前評估其適用性。

iTextSharp 和 IronPDF 在添加頁碼方面如何比較?

雖然 iTextSharp 使用事件處理來添加頁碼,但 IronPDF 提供了一種更簡單的方法,使用 HTML 模板來設置頁眉和頁腳,這對於尋求易用性的 .NET 開發人員來說是理想的選擇。

在選擇 C# 項目的 PDF 庫時應考慮哪些因素?

考慮每個庫提供的功能。例如,IronPDF 專注於 HTML 到 PDF 的轉換並且與 .NET Framework集成良好,而 iTextSharp 提供強大的加密和文本提取能力。

iTextSharp 是否相容於 .NET 10 以新增頁碼?還是我應該使用 iText 7?

iTextSharp(5.x 版本)已正式棄用並進入維護模式;它只接收安全性修復,不再提供任何新功能更新。它不直接面向 .NET 10,在較新的 .NET 版本中使用它可能會導致相容性問題。對於新項目或升級到 .NET 10 的項目,強烈建議使用 iText 7(或 iText Core),因為它支援最新的框架,並且相比 iTextSharp 進行了改進。 ([itextpdf.com](https://itextpdf.com/products/itextsharp?utm_source=openai))

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me