如何使用 C# 在 PDF 中加入頁碼
IronPDF 讓您能夠在 C# 中透過頁首/頁尾的佔位字串 {page} 和 {total-pages} 為 PDF 文件添加頁碼,並提供將其套用至特定頁面或區段的選項,以提升文件導覽功能。
頁碼是指 PDF 文件中分配給每頁的序號。 這些是導航的關鍵元件,有助於讀者定位特定頁面並追蹤其所在位置。 頁碼亦有助於輕鬆引用及查閱內容。 使用 IronPDF,為 PDF 文件添加頁碼非常簡單。
快速入門:輕鬆為 PDF 添加頁碼
使用 IronPDF 在 PDF 文件中加入頁碼。 只需少量 C# 程式碼,您即可將動態頁碼插入頁首或頁尾,自訂其位置,並指定頁碼應顯示於哪些頁面上。 無論處理新建立或現有的 PDF 檔案,IronPDF 皆提供靈活的解決方案,以提升文件的瀏覽與管理效率。
-
using NuGet 套件管理員安裝 https://www.nuget.org/packages/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
簡化工作流程(5 個步驟)
- 從 NuGet 下載 C# PDF 函式庫
- 載入現有 PDF 文件或渲染新文件
- 請在頁首和頁尾使用占位字串
{page}和{total-pages}來插入頁碼 - 將頁碼套用至特定頁面或章節
- 檢視生成的 PDF 文件
如何在 PDF 中添加基本頁碼?
透過在 {page} 和 {total-pages} 佔位字串中搭配 TextHeaderFooter 或 HtmlHeaderFooter 類別,即可加入當前頁碼與總頁數。 此功能對於建立新 PDF 檔案,或將 HTML 轉換為需要專業排版之 PDF 文件時至關重要。
: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")
上述程式碼產生的 PDF 檔案如下所示:
您亦可直接在 ChromePdfRenderer 的渲染選項中,加入包含頁碼佔位字串的頁首與頁尾。 此方法在運用渲染選項自訂 PDF 輸出時相當實用。
: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")
如何僅在特定頁面添加頁碼?
透過 IronPDF,您可以控制頁碼的顯示位置。 讓它們從特定頁面開始,或將其套用至特定群組,例如偶數頁。 此靈活性在生成 PDF 報告或處理包含不同區段的文件時尤為重要。
首先,請準備 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)
如何僅對偶數頁進行編號?
延續前例,此程式碼僅將頁碼套用至偶數頁索引。 由於篩選功能僅適用於偶數頁索引,因此生成的 PDF 文件會在奇數頁顯示頁碼。 頁面索引從零開始,而頁碼則從一開始。 此技術適用於遵循傳統書籍排版格式的文件,或處理合併後的 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")
如何僅對奇數頁進行編號?
請在奇數頁碼的頁面中添加頁碼。 此做法常見於雙面列印情境,此時頁碼應僅顯示於列印文件的單一頁面上。
: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")
如何僅在最後一頁添加頁碼?
僅在最後一頁添加頁碼。 此內容適用於摘要頁面,或用於標示文件結尾之處。
: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")
如何僅在第一頁添加頁碼?
僅在第一頁添加頁碼。 此格式適用於封面頁或僅需標示首頁的文件。
: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")
在添加頁碼時,如何跳過第一頁?
套用頁首時請跳過第一頁。 此常見要求適用於封面或標題頁不應顯示頁碼的文件。 在處理 PDF 表單或包含求職信的文件時,此技術可確保專業的排版效果。
: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")
如何跳過第一頁,並從第二頁開始編號為 1?
請跳過第一頁,並從第二頁開始編號,將其視為第 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")
如需探索所有元資料選項,請參閱《IronPDF 頁首與頁尾指南》。
進階頁碼編號技巧
除了基本的頁碼編號功能外,IronPDF 還支援以下進階情境:
- 章節編號:針對文件不同章節採用不同的編號方式
- 羅馬數字:前言或附錄頁面的自訂格式
- 多重編號系統:在單一文件中結合不同的編號樣式
- 動態頁數計算:在新增或複製頁面時更新總頁數
在製作技術手冊、學術論文或需要複雜頁碼編排方案的法律文件等複雜文件時,這些技術尤為實用。
頁碼的最佳實踐
在 PDF 中實作頁碼時,請參考以下建議:
- 一致性:確保文件全篇的排版與格式保持一致
- 可讀性:確保頁碼清晰可見,且不與內容重疊
- 無障礙性:使用適當的字型大小與對比度,以利閱讀
- 專業外觀:使頁碼樣式與文件的整體設計風格一致
遵循這些指引並善用 IronPDF 靈活的頁碼編排功能,您將能建立符合特定需求、Professional 且條理分明的 PDF 文件。
常見問題
如何在 C# 中為 PDF 添加基本頁碼?
透過 IronPDF,您可以在 TextHeaderFooter 或 HtmlHeaderFooter 類別中,使用占位字串 {page} 和 {total-pages} 來添加頁碼。只需將這些占位字串包含在頁首或頁尾的 HTML 片段中,IronPDF 便會在渲染 PDF 時自動將其替換為當前頁碼和總頁數。
我能否直接透過渲染選項加入頁碼?
是的,您可以直接在 IronPDF 的 ChromePdfRenderer 渲染選項中加入頁碼。此方法允許您在渲染設定中設定包含頁碼佔位字串的頁首與頁尾,這對於透過渲染選項自訂 PDF 輸出時特別有用。
頁面編號功能提供哪些佔位字串?
IronPDF 提供兩個主要用於頁碼編號的佔位字串:{page} 顯示當前頁碼,而 {total-pages} 顯示文件中的總頁數。當 PDF 進行渲染時,這些佔位字串會自動替換為實際數值。
我可以只對特定頁面套用頁碼嗎?
是的,IronPDF 允許您控制頁碼在文件中的顯示位置。您可以指定哪些頁面應顯示頁碼,從而將封面頁排除在外,或僅將頁碼套用至 PDF 的特定區段。
是否可以自訂頁碼的位置與樣式?
沒問題。透過 IronPDF 的 HtmlHeaderFooter 類別,您可以使用 HTML 和 CSS 自訂頁碼的位置、樣式和格式。您可以控制其位置、字型、大小、顏色,甚至添加分隔線或其他裝飾元素。
我可以為現有的 PDF 文件添加頁碼嗎?
是的,IronPDF 支援在新建的 PDF 及現有 PDF 文件中加入頁碼。您可以載入現有的 PDF 文件,並套用包含頁碼的頁首或頁尾,無需從頭重新建立整個文件。

