如何使用C#為PDF文件新增頁碼
IronPDF讓您可以使用佔位符字串{total-pages}輕鬆在C#中新增頁碼到PDF中的頁眉/頁腳,並選擇應用於特定頁面或部分,以增強文件導航功能。
頁碼是分配給PDF文件中每個頁面的連續數字。 它們是導航的基本組成部分,有助於讀者找到特定頁面並跟踪其位置。 頁碼也使得內容引用和參考變得簡單。 使用IronPDF,為您的PDF文件新增頁碼非常簡單。
快速入門:輕鬆為PDF文件新增頁碼使用IronPDF為PDF文件新增頁碼。 只需少量C#程式碼,您就可以在頁眉或頁腳插入動態頁碼,自定義它們的位置,並指定它們出現在哪些頁面上。 無論是處理新PDF文件還是現有文件,IronPDF都提供了一種靈活的解決方案,以增強文件的導航和組織。
-
1Install IronPDF with NuGet Package Manager
-
2複製並運行這段程式碼片段。
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");C# -
3部署以在您的實時環境中測試
今天就開始在您的專案中使用IronPDF,透過免費試用
最小工作流程 (5步)
- 從NuGet下載C# PDF程式庫
- 載入現有的PDF文件或渲染新的文件
- 在頁眉和頁腳中使用佔位符字串
{page}和{total-pages}來插入頁碼 - 將頁碼應用於特定頁面或部分
- 檢查生成的PDF文件
如何在PDF中新增基本頁碼?
使用佔位符字串HtmlHeaderFooter類,可以新增當前頁面號碼和總頁數。 當建立新的PDF文件或將HTML轉換為PDF文件需要專業格式時,這一功能是必不可少的。
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輸出時,此方法很有用。
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文件以應用頁碼:
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文件。
// 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")如何僅為奇數頁編號?
為奇數索引頁加上頁碼。 此方法常見於雙面列印場景,頁碼僅應在列印文件的一側顯示。
// 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")如何僅在最後一頁新增頁碼?
僅在最後一頁加上頁碼。 這對於摘要頁或指示文件結尾非常有用。
// 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")如何僅在第一頁新增頁碼?
僅在第一頁加上頁碼。 這適用於封面頁或僅需要識別第一頁的文件。
// 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表單或包含封面信件的文件時,此技術可確保專業格式。
// 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")如何跳過第一頁並從第二頁開始編號?
跳過第一頁,從第二頁開始編號,將其視為第一頁。此方法適用於封面頁不應在頁碼序列中計入的文件,如學術論文或正式報告。
// 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靈活的頁碼功能,您可以建立滿足特定需求的專業且井然有序的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文件,並且在不重建整個文件的情況下應用帶有頁碼的頁首或頁尾。
Can I add page numbers to only even or odd pages in a PDF with IronPDF?
Yes, IronPDF enables you to filter and apply page numbers exclusively to even or odd page indexes, which is ideal for documents needing traditional book formatting.
How can I skip the first page when adding page numbers with IronPDF?
To skip the first page, you can simply adjust the page range indices and apply page numbers starting from the second page onward using IronPDF.
Can IronPDF handle custom page numbering formats like Roman numerals?
Yes, IronPDF can handle various custom formatting options, including Roman numerals, which can be useful for sections like prefaces or appendices.
What are the best practices for implementing page numbers in PDFs using IronPDF?
Ensure consistency in positioning and formatting, maintain readability with clear visibility, use appropriate font sizes for accessibility, and match the style with the document's design for a professional look.

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。