使用IRONPDF 如何在PDF中使用C#添加頁碼 Curtis Chau 更新:2025年6月22日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 "便攜式文件格式"(Portable Document Format,簡稱 PDF)是由 Adobe 建立的文件格式。 在展示需要對文字和圖片進行格式化的論文時,PDF 文件非常方便。 在當今世界,PDF 文件至關重要,並被各個企業部門廣泛用於建立文件和開立發票。 由於市面上有許多PDF庫,創建PDF檔案幾乎已經成為一種本能行為。為了選擇適合自己的PDF庫,在將其用於專案之前,權衡每個庫的優勢和特性至關重要。 本文將介紹如何使用 iTextSharp C# 在 PDF 中新增頁碼。 此外,我們也將比較iTextSharp和IronPDF 。 如何使用 iTextSharp C# 在 PDF 中新增頁碼 使用任意 IDE 建立一個新的 C# 專案。 建立一個新的 PDF 物件。 在 HTML 頁腳中新增頁碼。 從 HTML 內容建立 PDF。 將 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",如下面的螢幕截圖所示: 上方顯示的是相關搜尋結果清單。 若要將此軟體包安裝到您的系統上,請進行必要的選擇。 現在軟體包已經下載安裝完畢,可以在目前專案中使用了。 什麼是 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 iTextSharp 由於 iText 7 是最新版本,因此我們在解決方案中採用了該版本。 使用IronPDF新增頁碼 IronPDF 擁有功能全面的庫,可以輕鬆地在 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"); } } 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"); } } $vbLabelText $csharpLabel 首先,我們定義要轉換為 PDF 的 HTML 文字。 此HTML內容可以包含單一HTML段落或整個HTML頁面。 接下來,我們建立一個 HtmlToPdf 類別的實例,該類別提供 HTML 到 PDF 的轉換功能 RenderHtmlAsPdf。 HTML 內容作為參數傳遞給 RenderHtmlAsPdf 函數。 我們指定需要轉換為 PDF 的 HTML 內容。 頁碼以佔位符的形式表示,或以 {page} of {total-pages} 表示,位於此 HTML 文字的頁尾部分。 此方法將建立的 PDF 文件作為 PdfDocument 物件傳回。 使用 SaveAs 方法,我們將 PDF 文件儲存到名為"output.pdf"的檔案中。 或者,我們可以使用 OpenInDefaultPDFViewer 函數,用系統的預設 PDF 閱讀器開啟已建立的 PDF 文件。 我們也可以使用上述方法為現有的 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 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); } } } $vbLabelText $csharpLabel 首先,我們為 Document 和 PdfWriter 建立一個新的對象,這樣我們就可以建立一個空白的 PDF 檔案。您可以在 PDF 文件中包含文字、照片、表格和其他類型的內容。 讓我們使用 Paragraph 添加一些範例文字以作示範。 現在最重要的步驟是為PDF文件添加頁碼。 我們將使用 iTextSharp 的頁面事件來實現這一點。 我們首先定義一個繼承自 PdfPageEventHelper 類別的類,以便能夠重寫在 PDF 生成過程中發生特定事件時調用的方法。 此類重寫了 OnEndPage 函數,以新增包含目前頁碼的單一儲存格表格。 最後,在關閉文件之前,我們需要將我們的 PageNumberEventHandler 類別的實例連接到 PdfWriter 物件。 透過此配置,每次新增頁面至 PDF 文件時,都會呼叫 PageNumberEventHandler 類別的 OnEndPage 函數,並在每頁底部新增頁碼。 我們也可以使用現有的PDF文件來新增頁碼。 結論 總而言之, IronPDF的專業性、易用性以及與.NET環境的無縫集成,使其成為需要 HTML 到 PDF 轉換及相關功能的場景的最佳選擇,儘管 iTextSharp 在 C# PDF 操作庫領域仍然是一個強大的競爭對手。 透過IronPDF,您可以輕鬆、有效率且靈活地從 HTML 內容建立發票、報告和動態生成的文檔,從而在現代開發環境中取得成功。 IronPDF 的 Lite 版本包含永久授權、升級選項和一年的軟體維護。 帶有浮水印的試用期可讓使用者在實際環境中評估產品。 請造訪許可證頁面以了解更多詳情。 請造訪此網站以了解更多關於Iron Software。 常見問題解答 如何使用 C# 將頁碼添加到 PDF? 您可以使用 IronPDF 通過定義帶有頁碼佔位符的 HTML 內容並使用 AddHtmlFooters 方法將其應用為 PDF 中的頁腳來添加頁碼。 使用 IronPDF 進行 PDF 操作的好處是什么? IronPDF 提供強大的 PDF.NET Framework能力,支持 HTML5、JavaScript、CSS 和圖像到 PDF 轉換,使您可以輕鬆地操控具有自定義頁眉和頁腳的 PDF。 iTextSharp 和 IronPDF 在添加頁碼方面如何比較? iTextSharp 使用 PdfPageEventHelper 類來處理頁碼,而 IronPDF 通過允許您定義帶有頁碼佔位符的 HTML 頁腳來提供更簡單的方法。 我可以操控現有的 PDF 文件來添加頁碼嗎? 是的,使用 IronPDF,您可以通過渲染帶有頁碼佔位符的 HTML 頁腳並將其與原始文檔合併來向現有 PDF 文件添加頁碼。 轉換 HTML 為 PDF 的首選方法是什麼? IronPDF 是首選的 HTML 到 PDF 轉換工具,因為它可以無縫集成到 .NET 環境中,並能夠處理 HTML5、JavaScript 和 CSS。 在 C# 項目中使用 IronPDF 的安裝步驟是什麼? 您可以通過在 Visual Studio 的 NuGet 包管理器中搜索 'IronPDF' 並將其添加到您的項目來安裝 IronPDF。 如何確保我的 PDF 使用 C# 擁有準確的頁碼? 使用 IronPDF,通過定義帶有頁碼佔位符的 HTML 模板並一致地將其應用到所有 PDF 頁面上,確保您的頁碼準確。 IronPDF 是否提供可用的授權選項? IronPDF 提供一個 'Lite' 版本,配有永久許可證、升級選項和一年軟件維護,以及一個帶水印的試用期供評估。 我在哪裡可以找到使用 IronPDF 的詳盡示例和文檔? 使用 IronPDF 的綜合文檔和示例可在他們的官方網站 ironpdf.com 上找到。 IronPDF 是否完全兼容 .NET 10,我可以在 .NET 10 項目中使用頁碼功能嗎? 是的,IronPDF 支援 .NET 10 和它的所有功能——包括使用頁首或頁尾中的佔位符來添加頁碼——在 .NET 10 項目中開箱即用,無需任何特殊配置或解決方案。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新2026年3月1日 如何在.NET中使用IronPDF創建PDF檔案(C#教程) 發現用於創建C# PDF文件的有效方法,提升您的編碼技能並簡化您的項目。立即閱讀文章! 閱讀更多 更新2026年2月27日 如何在C#中合併PDF文件 使用 IronPDF 合併 PDF 文件。學習如何使用簡單的 VB.NET 程式碼將多個 PDF 文件合併成一個文檔。包含逐步範例。 閱讀更多 更新2026年3月1日 C# PDFWriter教程,適用於.NET 10開發者 通過這個面向開發人員的逐步指南,學習如何使用C# PDFWriter高效創建PDF。閱讀本文以提高您的技能! 閱讀更多 如何在C#中從PDF中提取數據C#將圖像添加到PDF(開發者...