如何使用 C# 為 PDF 新增頁碼
IronPDF可讓您使用 C# 中的佔位符字串 {page} 和 {total-pages} 在頁首/頁尾中新增頁碼,並可選擇將其套用至特定頁面或部分,以增強文件導覽。
頁碼是指派給 PDF 文件中每一頁的順序編號。 它們是導航的重要組成部分,可以幫助讀者找到特定頁面並追蹤他們的位置。 頁碼也方便引用和參考內容。 使用IronPDF,為 PDF 新增頁碼非常簡單。
快速入門:輕鬆為 PDF 新增頁碼
使用IronPDF為 PDF 文件新增頁碼。 只需編寫少量 C# 程式碼,即可在頁首或頁尾插入動態頁碼,自訂頁碼位置,並指定頁碼出現在哪些頁面上。 無論是處理新的 PDF 文件還是現有的 PDF 文件, IronPDF都能提供靈活的解決方案,以增強文件的導航和組織。
-
使用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 檔案中新增頁碼時,請考慮以下做法:
1.一致性:在整個文件中保持位置和格式的一致性。
2.可讀性:確保頁碼清晰可見,且不與內容重疊。
3.易讀性:使用適當的字體大小和對比度,以便於閱讀
4.專業外觀:頁碼樣式應與文件的整體設計保持一致。
遵循這些指導原則並利用 IronPDF 靈活的頁碼功能,您可以建立符合您特定要求的專業、組織良好的 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 文件,並套用帶有頁碼的頁首或頁尾,而無需從頭重新製作整個文件。

