IronPDF 操作指南 添加頁碼到 PDF 如何使用 C# 為 PDF 新增頁碼 Jordi Bardia 更新:7月 27, 2025 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English 頁碼是指派給 PDF 文件中每一頁的順序編號。 頁碼是文件中最重要的組成部分之一,用於導航。 它們幫助讀者找到特定頁面,並確定他們正在閱讀的頁面。 此外,頁碼便於對文件內容進行引用和參考。 使用 IronPDF,為 PDF 新增頁碼非常簡單。 快速入門:輕鬆地在 PDF 上新增頁碼 使用 IronPDF,您可以輕鬆地為 PDF 文件添加頁碼。 只需幾行 C# 程式碼,您就可以在頁首或頁尾插入動態頁碼,自訂頁碼的位置,並指定頁碼應出現在哪些頁面上。 無論您是處理新的 PDF 文件還是現有的 PDF 文件,IronPDF 都能提供簡單靈活的解決方案,以增強文件的導航和組織。 請按照本指南即可快速在您的專案中實現頁碼功能。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronPDF PM > Install-Package IronPdf 複製並運行這段程式碼。 new IronPdf.ChromePdfRenderer { RenderingOptions = { HtmlFooter = new IronPdf.HtmlHeaderFooter { HtmlFragment = "<center>{page}of{total-pages}</center>", DrawDividerLine = true } } } .RenderHtmlAsPdf("<h1>My multi‑page document</h1><div style='page‑break‑after:always;'></div><h1>Page 2</h1>") .SaveAs("numbered‑pages.pdf"); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronPDF,免費試用! 免費試用30天 最小工作流程(5 個步驟) 從 NuGet 下載 C# PDF 庫 加載一個現有的 PDF 文件或渲染一個新的 在頁首和頁尾中使用佔位符字串 {page} 和 {total-pages} 來插入頁碼。 將頁碼應用於特定頁面或章節 檢查生成的 PDF 文件 新增頁碼範例 使用佔位符字串{page}和{total-pages}以及TextHeaderFooter或HtmlHeaderFooter類,您可以新增目前頁碼和總頁數。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-basic.cs using IronPdf; // Create text header TextHeaderFooter textHeader = new TextHeaderFooter() { CenterText = "{page} of {total-pages}" }; // Create html footer HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<center><i>{page} of {total-pages}<i></center>" }; // Render a new PDF ChromePdfRenderer renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>"); // Add header and footer pdf.AddTextHeaders(textHeader); pdf.AddHtmlFooters(htmlFooter); pdf.SaveAs("pdfWithPageNumber.pdf"); Imports IronPdf ' Create text header Private textHeader As New TextHeaderFooter() With {.CenterText = "{page} of {total-pages}"} ' Create html footer Private htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"} ' Render a new PDF Private renderer As New ChromePdfRenderer() Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>") ' Add header and footer pdf.AddTextHeaders(textHeader) pdf.AddHtmlFooters(htmlFooter) pdf.SaveAs("pdfWithPageNumber.pdf") $vbLabelText $csharpLabel 上述程式碼產生的PDF檔案如下所示: 您也可以直接將頁首和頁尾以及頁碼佔位符字串加入到ChromePdfRenderer的渲染選項中。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-chromerenderer.cs using IronPdf; // Add header and footer to rendering options ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { CenterText = "{page} of {total-pages}" }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<center><i>{page} of {total-pages}<i></center>" }; string html = @" <h1>Hello World!</h1> <div style='page-break-after: always;'/> <h1>2nd Page!</h1>"; // Render new PDF PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf"); Imports IronPdf ' Add header and footer to rendering options Private renderer As New ChromePdfRenderer() renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {.CenterText = "{page} of {total-pages}"} renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"} Dim html As String = " <h1>Hello World!</h1> <div style='page-break-after: always;'/> <h1>2nd Page!</h1>" ' Render new PDF Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf") $vbLabelText $csharpLabel 為特定頁面新增頁碼範例 使用 IronPDF,您可以自行決定在何處添加頁碼。 您可以讓它們從某個頁面或特定的頁面群組(例如偶數索引頁面)開始。 讓我們準備PDF文檔,以便新增頁碼。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-preparation.cs using IronPdf; using System.Linq; using System.Collections.Generic; string multi_page_html = @" <p>This is the 1st Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 2nd Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 3rd Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 4th Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 5th Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 6th Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 7th Page</p>"; // Create header HtmlHeaderFooter header = new HtmlHeaderFooter() { HtmlFragment = "<center><i>{page} of {total-pages}<i></center>" }; // Render PDF ChromePdfRenderer renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(multi_page_html); // Create a Page Range 0..6 var allPageIndices = Enumerable.Range(0, pdf.PageCount); Imports IronPdf Imports System.Linq Imports System.Collections.Generic Private multi_page_html As String = " <p>This is the 1st Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 2nd Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 3rd Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 4th Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 5th Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 6th Page</p> <div style = 'page-break-after: always;' ></div> <p>This is the 7th Page</p>" ' Create header Private header As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"} ' Render PDF Private renderer As New ChromePdfRenderer() Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(multi_page_html) ' Create a Page Range 0..6 Private allPageIndices = Enumerable.Range(0, pdf.PageCount) $vbLabelText $csharpLabel 甚至頁面索引 在前一個程式碼範例的基礎上,以下程式碼將專門為偶數頁碼套用頁碼。 由於我們篩選的是偶數頁碼,因此產生的 PDF 將只在奇數頁碼上套用數字。 頁碼索引從零開始,頁碼從一開始。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-even-pages.cs // Get even page indexes (resulting in odd page numbers) var evenPageIndices = allPageIndices.Where(i => i % 2 == 0); pdf.AddHtmlHeaders(header, 1, evenPageIndices); pdf.SaveAs("EvenPages.pdf"); ' Get even page indexes (resulting in odd page numbers) Dim evenPageIndices = allPageIndices.Where(Function(i) i Mod 2 = 0) pdf.AddHtmlHeaders(header, 1, evenPageIndices) pdf.SaveAs("EvenPages.pdf") $vbLabelText $csharpLabel 奇數頁索引 專門為索引號為奇數的頁面加上頁碼。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-odd-pages.cs // Get odd page indexes (resulting in even page numbers) var oddPageIndexes = allPageIndices.Where(i => i % 2 != 0); pdf.AddHtmlHeaders(header, 1, oddPageIndexes); pdf.SaveAs("OddPages.pdf"); ' Get odd page indexes (resulting in even page numbers) Dim oddPageIndexes = allPageIndices.Where(Function(i) i Mod 2 <> 0) pdf.AddHtmlHeaders(header, 1, oddPageIndexes) pdf.SaveAs("OddPages.pdf") $vbLabelText $csharpLabel 僅最後一頁 只在最後一頁加上頁碼。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-last-page-only.cs // Last page only var lastPageIndex = new List<int>() { pdf.PageCount - 1 }; pdf.AddHtmlHeaders(header, 1, lastPageIndex); pdf.SaveAs("LastPageOnly.pdf"); ' Last page only Dim lastPageIndex = New List(Of Integer)() From {pdf.PageCount - 1} pdf.AddHtmlHeaders(header, 1, lastPageIndex) pdf.SaveAs("LastPageOnly.pdf") $vbLabelText $csharpLabel 僅首頁 只需在第一頁新增頁碼。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-first-page-only.cs // First page only var firstPageIndex = new List<int>() { 0 }; pdf.AddHtmlHeaders(header, 1, firstPageIndex); pdf.SaveAs("FirstPageOnly.pdf"); ' First page only Dim firstPageIndex = New List(Of Integer)() From {0} pdf.AddHtmlHeaders(header, 1, firstPageIndex) pdf.SaveAs("FirstPageOnly.pdf") $vbLabelText $csharpLabel 跳過第一頁 應用頁眉時跳過第一頁。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page.cs // Skip the first page var skipFirstPage = allPageIndices.Skip(1); pdf.AddHtmlHeaders(header, 1, skipFirstPage); pdf.SaveAs("SkipFirstPage.pdf"); ' Skip the first page Dim skipFirstPage = allPageIndices.Skip(1) pdf.AddHtmlHeaders(header, 1, skipFirstPage) pdf.SaveAs("SkipFirstPage.pdf") $vbLabelText $csharpLabel 跳過第一頁,不要算。 跳過第一頁,從第二頁開始編號,將其視為第 1 頁。 :path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page-and-dont-count-it.cs // Skip the first page and start numbering the second page as page 1 var skipFirstPageAndDontCountIt = allPageIndices.Skip(1); pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt); pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf"); ' Skip the first page and start numbering the second page as page 1 Dim skipFirstPageAndDontCountIt = allPageIndices.Skip(1) pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt) pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf") $vbLabelText $csharpLabel 若要了解所有元資料選項,請造訪IronPDF 頁首和頁尾指南。 常見問題解答 如何使用 C# 將頁碼添加到 PDF? 您可以使用 IronPDF 庫在 C# 中為 PDF 添加頁碼。首先,從 NuGet 下載 C# PDF 庫。然後,加載一個現有的 PDF 或創建一個新的,並在頁眉或頁腳中使用佔位符字串 {page} 和 {total-pages} 插入頁碼。最後,保存更新后的 PDF。 我可以自定義 PDF 中頁碼的位置嗎? 可以,使用 IronPDF,您可以自定義 PDF 中頁碼的位置。您可以選擇只在特定頁面上添加頁碼,如偶數索引或奇數索引頁面,或僅應用於第一頁或最後一頁。 如何僅在 PDF 的偶數頁上添加頁碼? 要在 PDF 的偶數頁上添加頁碼,請使用 IronPDF 選擇偶數索引頁面並設置所需頁碼佔位符的頁眉或頁腳。頁碼將應用於偶數索引的頁面。 是否可以將頁碼從 PDF 的第二頁開始? 是的,使用 IronPDF 您可以跳過第一頁,從第二頁開始編號。為此,設置要從第二頁應用的頁眉或頁腳,並使用佔位符字串管理編號序列。 如何僅在 PDF 的最後一頁添加頁碼? 要僅在 PDF 的最後一頁添加頁碼,可以使用 IronPDF 配置頁眉或頁腳以專門應用於最後一頁。這可以通過引用最後一頁索引並設置頁碼的佔位符字串來實現。 在 PDF 頁碼中使用佔位符字串有什麼好處? 佔位符字串如 {page} 和 {total-pages} 允許動態插入當前頁碼和總頁數。這使得頁碼管理靈活且高效,尤其是當文檔結構變更時。IronPDF 使用這些佔位符簡化頁碼過程。 如何在不影響 PDF 第一頁的情況下添加頁碼? 要在不影響第一頁的情況下使用 IronPDF 為 PDF 添加頁碼,請配置頁眉或頁腳從第二頁開始。這種方法確保第一頁不設頁碼,而後續頁面接收頁碼。 IronPDF 能否處理 HTML 內容和現有 PDF 的頁碼? 是的,IronPDF 可以處理 HTML 內容和現有 PDF 的頁碼。您可以將 HTML 渲染為 PDF 並使用 IronPdf.ChromePdfRenderer 應用頁碼,或者修改現有的 PDF 文檔以在頁眉和頁腳中包含頁碼。 IronPDF 在新增頁碼時完全相容於 .NET 10? 是的-IronPDF 與 .NET 10 完全相容,讓您在 .NET 10 專案中使用頁首或頁尾以及佔位符字串{page}和{total-pages}新增頁碼,就像在早期的 .NET 版本一樣。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 審核人 Jeffrey T. Fritz 首席程序经理 - .NET 社区团队 Jeff 也是 .NET 和 Visual Studio 团队的首席程序经理。他是 .NET Conf 虚拟会议系列的执行制作人,并主持“Fritz 和朋友”这一每周两次的开发者的直播节目,在节目上讨论技术并与观众一起编写代码。Jeff 撰写研讨会、主持演讲,并计划大型 Microsoft 开发者活动(包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP Summit)的内容。 準備好開始了嗎? Nuget 下載 16,493,056 | Version: 2025.11 剛發表 免費下載 NuGet 下載總數:16,493,056 檢視授權