如何使用 IronPDF 在 PDF 中添加頁眉和頁腳

使用 C## 和 IronPDF 在 PDF 中添加页眉和页脚

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF 可讓您在 C# 中使用 AddTextHeadersAddTextFooters 等方法為簡單的文字,或使用 AddHtmlHeadersAddHtmlFooters 等方法為具有完整 CSS 定義支援的 HTML 型內容,輕鬆地為 PDF 文件新增頁首和頁尾。 這個強大的功能對於建立具有一致品牌、頁碼和文件元資料的專業 PDF 來說是不可或缺的。

需要在 PDF 文件的每一頁頂部或底部添加頁碼、公司標誌或日期嗎? IronPDF 可讓您輕鬆地在 C# 專案中套用 PDF 的頁首與頁尾。 無論您是要產生報告、發票或任何商業文件,頁首和頁尾都能提供重要的導覽和識別元素,以提升文件的可用性。

快速入門:使用 C# 為 PDF 新增頁首和頁尾

使用 IronPDF(C#)輕鬆地為 PDF 文件添加頁首和頁尾。 本指南示範如何在幾秒鐘內套用具有頁碼和自製文字的文字式頁眉、頁腳。 使用 AddTextHeadersAddTextFooters 方法快速增強您的 PDF 演示。 使用最少的程式碼儲存更新後的 PDF 文件,確保文件達到專業水準。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronPDF

    PM > Install-Package IronPdf

  2. 複製並運行這段程式碼。

    new IronPdf.ChromePdfRenderer { RenderingOptions = { TextHeader = new IronPdf.TextHeaderFooter { CenterText = "Report • {date}" }, TextFooter = new IronPdf.TextHeaderFooter { RightText = "Page {page} of {total-pages}" } } }
        .RenderHtmlAsPdf("<h1>Hello World!</h1>")
        .SaveAs("withHeadersFooters.pdf");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronPDF,免費試用!
    arrow pointer

如何新增文字標題/腳本?

若要建立一個只有文字的頁首/頁尾,請實體化一個 TextHeaderFooter 物件,加入您想要的文字,然後將該物件加入您的 PDF。 TextHeaderFooter 類提供了一種直接的方式,可在文件的所有頁面中加入一致的文字元素。 此方法特別適用於不需要複雜格式或造型的簡單頁首和頁尾。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-add-textheaderfooter.cs
using IronPdf;

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter
{
    CenterText = "This is the header!",
};

// Create text footer
TextHeaderFooter textFooter = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

// Add text header and footer to the PDF
pdf.AddTextHeaders(textHeader);
pdf.AddTextFooters(textFooter);

pdf.SaveAs("addTextHeaderFooter.pdf");
$vbLabelText   $csharpLabel

如何在呈現過程中加入標頭/標腳?

另外,您也可以使用呈現器的 RenderingOptions 直接新增標頭/頁尾。 這會在呈現過程中加入文字頁頭與頁尾,比起在 PDF 製作完成後再加入更有效率。 當您事先知道頁首和頁尾的內容時,建議採用這種方式,因為它可以減少處理時間,並確保一開始就有一致的格式。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-render-with-textheaderfooter.cs
using IronPdf;

// Instantiate renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create header and add to rendering options
renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "This is the header!",
};


// Create footer and add to rendering options
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

// Render PDF with header and footer
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
pdf.SaveAs("renderWithTextHeaderFooter.pdf");
$vbLabelText   $csharpLabel

我該如何自訂文字和分割線的屬性?

TextHeaderFooter 類中,您可以設定左側、中央和右側位置的文字。 此外,您還可以透過配置相關屬性來自訂文字的字體類型和大小,並新增自訂顏色的分隔線。 這些客製化選項可讓您建立符合企業品牌或文件風格準則的頁首和頁尾。 分割線功能對於在頁首/頁尾與主要內容之間建立視覺分隔特別有用。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-textheaderfooter-options.cs
using IronPdf;
using IronPdf.Font;
using IronSoftware.Drawing;

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter
{
    CenterText = "Center text", // Set the text in the center
    LeftText = "Left text", // Set left-hand side text
    RightText = "Right text", // Set right-hand side text
    Font = IronSoftware.Drawing.FontTypes.ArialBoldItalic, // Set font
    FontSize = 16, // Set font size
    DrawDividerLine = true, // Draw Divider Line
    DrawDividerLineColor = Color.Red, // Set color of divider line
};
$vbLabelText   $csharpLabel

自訂的文字標題是什麼樣子?

顯示左、中、右文字定位選項的文字對齊範例

預設提供哪些字型?

您可以在IronPDF API 參考文件中查看預設可用的字型類型。 IronPdf 支援多種標準字體,包括 Arial、Times New Roman、Helvetica、Courier 及其變體。 如果您需要自訂字型,請瞭解更多關於在 IronPDF 中管理字型的資訊。

如何設定文字標題/頁腳的邊界?

預設情況下,IronPDF 中的文字頁頭和頁尾都有預先定義的頁邊。 如果您希望文本標題跨越 PDF 文件的整個寬度,請指定頁邊距值為 0。這可以通過在 AddTextHeadersAddTextFooters 函式中直接設置頁邊距來實現,或者通過 ChromePdfRenderer 中的 RenderingOptions 來實現。 瞭解邊界控制對於達成完美像素的版面設計至關重要,尤其是在使用自訂紙張尺寸時。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-textheaderfooter-margins.cs
using IronPdf;

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

TextHeaderFooter header = new TextHeaderFooter
{
    CenterText = "This is the header!",
};

TextHeaderFooter footer = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

pdf.AddTextHeaders(header, 35, 30, 25); // Left Margin = 35, Right Margin  = 30, Top Margin = 25
pdf.AddTextFooters(footer, 35, 30, 25); // Margin values are in mm
$vbLabelText   $csharpLabel

如何透過呈現選項套用頁邊空白?

如果您在 ChromePdfRendererRenderingOptions 中添加頁邊距值,這些頁邊距值也將應用於頁首和頁尾。 此方法提供了一種集中管理整個文件邊距的方式,包括頁眉、頁腳和主要內容。 如需更進階的自訂頁邊,請查看我們的自訂頁邊設定指南。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-rendering-options-margins.cs
using IronPdf;

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();

TextHeaderFooter header = new TextHeaderFooter
{
    CenterText = "This is the header!",
};

TextHeaderFooter footer = new TextHeaderFooter
{
    CenterText = "This is the footer!",
};

// Margin values are in mm
renderer.RenderingOptions.MarginRight = 30;
renderer.RenderingOptions.MarginLeft = 30;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Add header and footer to renderer
renderer.RenderingOptions.TextHeader = header;
renderer.RenderingOptions.TextFooter = footer;

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
$vbLabelText   $csharpLabel

為什麼我應該避免使用 UseMarginsOnHeaderAndFooter?

RenderingOptions 上的 UseMarginsOnHeaderAndFooter 屬性不適用於此使用個案。 它將相同的邊距值套用至頁首、頁尾和正文,這可能導致頁首與文件正文重疊。 此屬性主要用於使用AddTextHeadersAndFooters方法將頁首和頁尾套用至現有 PDF。 為了更好地控制版面,請考慮使用分頁符來管理內容流程。

什麼是動態邊界大小?

當文件之間的標題內容不同時,靜態邊距會造成問題。 不僅需要調整頁首和頁尾的頁邊空白,還需要調整主要 HTML 頁邊空白,以適應不同的頁首和頁尾尺寸。 因此,我們實施了動態邊界大小功能,頁頭和頁尾的高度會根據內容動態調整,而主要 HTML 也會相應地重新定位。 此功能在使用回應式 CSS 佈局時特別有用。 使用以下代碼試用此功能:

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-dynamic-marigns.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"<div style='background-color: #4285f4; color: white; padding: 15px; text-align: center;'>
                    <h1>Example header</h1> <br>
                    <p>Header content</p>
                    </div>",
    // Enable the dynamic height feature
    MaxHeight = HtmlHeaderFooter.FragmentHeight,
};

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Main HTML content</h1>");
pdf.SaveAs("dynamicHeaderSize.pdf");
$vbLabelText   $csharpLabel

如何在文字標題/註腳中加入元資料?

您可以在文字中加入占位符字串,輕鬆添加頁碼、日期和 PDF 標題等元資料。 這些占位符會在 PDF 呈現時以相對應的值自動取代。 此功能對於建立根據文件屬性自動更新的動態頁首和頁尾非常重要。 以下是所有可用的元資料選項:

  • {page} :目前頁碼。
  • {total-pages} : 總頁數。
  • {url} : 渲染 PDF 文件的 Web URL。
  • {date} : 目前日期。
  • {time} : 當前時間。
  • {html-title} : HTML 中title標籤內指定的 HTML 標題。
  • {pdf-title} : PDF 元資料中指定的 PDF 標題。

哪些占位符應該最常使用?

要瞭解關於 {page}{total-pages} 的更多資訊,請造訪 IronPDF 頁碼指南。這些占位符是最常用的,因為它們提供了基本的導覽資訊。 日期和時間占位符對需要追蹤時間戳記的文件特別有用,例如報告或發票。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-mail-merge.cs
using IronPdf;

// Create header and footer
TextHeaderFooter textHeader = new TextHeaderFooter
{
    CenterText = "{page} of {total-pages}",
    LeftText = "Today's date: {date}",
    RightText = "The time: {time}",
};

TextHeaderFooter textFooter = new TextHeaderFooter
{
    CenterText = "Current URL: {url}",
    LeftText = "Title of the HTML: {html-title}",
    RightText = "Title of the PDF: {pdf-title}",
};
$vbLabelText   $csharpLabel

我要如何新增 HTML 標頭/頁腳?

您可以使用 HTML 和 CSS 進一步自訂頁首/頁尾。 若要建立 HTML 頁首/頁尾,請使用HtmlHeaderFooter類別。 這種方法提供了最大的彈性,讓您可以在頁首和頁尾加入圖片、複雜的版面設計和樣式化的內容。 如果您想保留 CSS 樣式表中的 CSS 樣式,請在類別屬性中設定 LoadStylesAndCSSFromMainHtmlDocument = true。 這在使用網頁字型和圖示時尤其有用。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-htmlheaderfooter.cs
using IronPdf;

string headerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>";

string footerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>";

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Create header and footer
HtmlHeaderFooter htmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = headerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = footerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

// Add to PDF
pdf.AddHtmlHeaders(htmlHeader);
pdf.AddHtmlFooters(htmlFooter);
$vbLabelText   $csharpLabel

如何控制 HTML 標頭/頁尾頁邊空白?

類似於文字的頁首和頁尾,AddHtmlHeadersAddHtmlFooters 方法會套用預先定義的邊界。 若要套用自訂邊距,請使用指定邊距值的函數重載。 若要跨整個內容而沒有任何邊距,請將 overload 函式中的邊距設定為 0。在建立具有特定版面需求的專業文件時,此控制層級是不可或缺的。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-htmlheaderfooter-margins.cs
// Add to PDF
pdf.AddHtmlHeaders(header, 0, 0, 0);
pdf.AddHtmlFooters(footer, 0, 0, 0);
$vbLabelText   $csharpLabel

我可以在呈現的過程中加入 HTML 標頭/頁腳嗎?

新增頁首和頁尾也可以直接透過呈現器的 RenderingOptions 來完成。 這會在渲染過程中加入 HTML 標頭和頁尾,比後期處理更有效率。 此方法在從 HTML 檔案產生 PDF 或 URL 轉換為 PDF 時特別有用。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-htmlheaderfooter.cs
using IronPdf;

string headerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>";

string footerHtml = @"
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>";

// Instantiate renderer and create PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Create header and footer
HtmlHeaderFooter htmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = headerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = footerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

// Add to PDF
pdf.AddHtmlHeaders(htmlHeader);
pdf.AddHtmlFooters(htmlFooter);
$vbLabelText   $csharpLabel

何時應該使用文字與 HTML 標頭/頁脚?

在決定使用文字或 HTML 標頭/頁尾時,請考慮如何取捨。 如果優先考慮更快的 PDF 渲染速度,請選擇文字頁首/頁尾。 如果自訂性和樣式是必要的,請選擇 HTML 標頭/頁腳。 當 HTML 標題/頁腳包含有限的內容時,Text 與 HTML 標題/頁腳的渲染時間差會很小。 然而,隨著 HTML 標頭/頁腳中資產的大小和數量增加,翻譯也會隨之增加。

對效能有何影響?

由於不需要 HTML 解析和 CSS 處理,因此文字標題/頁尾的呈現速度更快。 HTML 標題/頁腳提供更多的彈性,但需要與其複雜度成正比的額外渲染時間。 當處理大型文件或批次處理時,效能差異會變得更明顯。 若要在高產量的情況下達到最佳效能,請考慮我們的動態 PDF 生成指南。

準備好看看您還能做些什麼嗎? 在此查看我們的教學頁面:建立 PDF

常見問題解答

如何在 C# 中為 PDF 新增文字頁眉與頁腳?

使用 IronPdf,您可以使用 AddTextHeaders 和 AddTextFooters 方法添加文本页眉和页脚。只需實體化一個 TextHeaderFooter 物件,新增您所需的文字,並將其套用至您的 PDF。這提供了一種直接的方式,可在所有頁面中加入一致的文字元素,例如頁碼或文件標題。

我可以在 PDF 的頁首或頁尾加入頁碼嗎?

是的,IronPDF 使用特殊的占位符支持动态页码。您可以在 TextHeaderFooter 物件中使用 {page} 表示當前頁數,使用 {total-pages} 表示總頁數。例如,設定 RightText = "Page {page} of {total-pages}"將自動在每頁顯示正確的頁碼。

是否可以使用 CSS 定義添加基於 HTML 的頁首和頁尾?

絕對可以!IronPdf 提供了 AddHtmlHeaders 和 AddHtmlFooters 方法,可讓您添加具有完整 CSS 定義支援的 HTML 內容。這可讓您使用格式化的文字、圖片和自訂樣式來建立複雜的頁首和頁尾,以符合您的品牌準則。

在 PDF 中添加頁首和頁尾的最有效方法是什麼?

最有效的方法是在渲染過程中使用 IronPDF 的 RenderingOptions 添加頁首和頁尾。通過在渲染前配置 ChromePdfRenderer 中的 TextHeader 和 TextFooter 屬性,與在 PDF 創建後添加相比,您可以減少處理時間。

我可以在頁首/頁腳的左邊、中間和右邊部分加入不同的內容嗎?

是的,IronPDF 中的 TextHeaderFooter 類提供了 LeftText、CenterText 和 RightText 屬性,讓您可以在每個部分放置不同的內容。這可讓您彈性地組織資訊,例如日期在左側、標題在中間、頁碼在右側。

如何在 PDF 標題中加入公司標誌?

若要在 PDF 標題中加入公司標誌,請使用 IronPDF 中的 AddHtmlHeaders 方法。您可以在 HTML 內容中包含一個圖片標籤,指向您的標誌檔案,並使用 CSS 進行任何額外的造型或定位,以確保它準確地出現在您想要的位置。

我可以在 PDF 的頁首和頁尾包含日期嗎?

是的,IronPDF 支援使用 TextHeaderFooter 物件中的 {date} 占位符動態插入日期。當您在頁首或頁尾文字中包含 {date} 時,在 PDF 產生時會自動以目前的日期取代。

Jordi Bardia
軟體工程師
Jordi 最精通的是 Python、C# 和 C++,當他在 Iron Software 沒有發揮他的技能時;他在進行遊戲程式設計。Jordi 分擔產品測試、產品開發和研究的責任,為產品的持續改善增添無限價值。多樣化的經驗讓他不斷接受挑戰並投入其中,他說這是他在 Iron Software 工作最喜歡的方面之一。Jordi 在佛羅里達州邁阿密長大,在佛羅里達大學主修電腦科學和統計學。
準備好開始了嗎?
Nuget 下載 17,527,568 | 版本: 2026.2 剛剛發布