如何在使用IronPDF的PDF中添加页眉和页脚

How to Add Headers and Footers

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

需要在PDF文档的每页顶部或底部包含页码、公司标志或日期吗? 有了页眉和页脚,您可以做到! 使用IronPDF,可以非常简单地在您的C#项目中将页眉和页脚应用到PDF。

快速入门:在C#中向PDF添加页眉和页脚

使用IronPDF在C#中轻松向您的PDF文档添加页眉和页脚。 本快速指南向您展示如何在几秒钟内应用带有页码和自定义文本的基于文本的页眉和页脚。 使用AddTextHeadersAddTextFooters 方法迅速提升您PDF的呈现效果。 通过最少的代码保存更新后的PDF,确保您的文档具有专业的外观。 非常适合开发者寻找快速高效的方式通过IronPDF管理文档页眉和页脚。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    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. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小工作流程(5步)

  1. 下载C#库以添加页眉和页脚
  2. 加载现有PDF或渲染新PDF
  3. 使用AddTextHeadersAddTextFooters 方法添加文本页眉和页脚
  4. 使用AddHtmlHeadersAddHtmlFooters 方法添加HTML页眉和页脚
  5. 通过配置渲染选项在渲染时添加页眉和页脚

添加文本页眉/页脚示例

要仅用文本创建页眉/页脚,实例化TextHeaderFooter对象,添加您想要的文本,并将对象添加到您的PDF。

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

或者,您可以直接使用渲染器的渲染选项添加页眉/页脚。 这将在渲染过程中添加文本页眉和页脚。

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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
};
Imports IronPdf
Imports IronPdf.Font
Imports IronSoftware.Drawing

' Create text header
Private textHeader As New TextHeaderFooter With {
	.CenterText = "Center text",
	.LeftText = "Left text",
	.RightText = "Right text",
	.Font = IronSoftware.Drawing.FontTypes.ArialBoldItalic,
	.FontSize = 16,
	.DrawDividerLine = True,
	.DrawDividerLineColor = Color.Red
}
$vbLabelText   $csharpLabel

输出文本页眉

class="content-img-align-center">
class="center-image-wrapper"> Text Header

You can see what font types are available by default in the IronPDF API Reference.

设置文本页眉/页脚的边距

默认情况下,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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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>");
Imports IronPdf

' Instantiate renderer and create PDF
Private renderer As New ChromePdfRenderer()

Private header As New TextHeaderFooter With {.CenterText = "This is the header!"}

Private footer As New TextHeaderFooter With {.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

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

在RenderingOptions中UseMarginsOnHeaderAndFooter属性不适合此用例。 它将相同的边距值应用于页眉、页脚和正文内容,这会导致页眉与文档正文重叠。 此属性主要用于通过AddTextHeadersAndFooters方法将页眉和页脚应用于现有PDF。

动态边距调整

当页眉内容因文档而异时,静态边距带来了问题。 需要对页眉和页脚的边距以及主体HTML边距都进行调整,以适应不同的页眉和页脚大小。 因此,我们实现了动态边距调整功能,页眉和页脚的高度将根据内容动态调整,主HTML也将相应重新定位。 请使用以下代码查看此功能:

: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");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

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

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

元数据到文本页眉/页脚

您可以通过在文本中使用占位符字符串轻松添加页码、日期和PDF标题等元数据。 以下是所有可用的元数据选项:

  • {page}:当前页码。
  • {total-pages}:总页数。
  • {url}:生成PDF文档的网页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}",
};
Imports IronPdf

' Create header and footer
Private textHeader As New TextHeaderFooter With {
	.CenterText = "{page} of {total-pages}",
	.LeftText = "Today's date: {date}",
	.RightText = "The time: {time}"
}

Private textFooter As New TextHeaderFooter With {
	.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);
Imports IronPdf

Private headerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>"

Private footerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>"

' Instantiate renderer and create PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")

' Create header and footer
Private htmlHeader As New HtmlHeaderFooter With {
	.HtmlFragment = headerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

Private htmlFooter As New HtmlHeaderFooter With {
	.HtmlFragment = footerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

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

与文本页眉和页脚类似,上述AddHtmlHeadersAddHtmlFooters方法已应用了预定义的边距。 要应用自定义边距,请使用带有指定边距值的函数重载。 要在没有任何边距的情况下覆盖整个内容,请在重载函数中将边距设置为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);
' Add to PDF
pdf.AddHtmlHeaders(header, 0, 0, 0)
pdf.AddHtmlFooters(footer, 0, 0, 0)
$vbLabelText   $csharpLabel

也可以直接通过渲染器的渲染选项添加页眉和页脚。 这将在渲染过程中添加HTML页眉和页脚。

:path=/static-assets/pdf/content-code-examples/how-to/headers-and-footers-render-with-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
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create header and footer and add to rendering options
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = headerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = footerHtml,
    LoadStylesAndCSSFromMainHtmlDocument = true,
};

// Render PDF with header and footer
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
Imports IronPdf

Private headerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a header!</h1>
    </body>
    </html>"

Private footerHtml As String = "
    <html>
    <head>
        <link rel='stylesheet' href='style.css'>
    </head>
    <body>
        <h1>This is a footer!</h1>
    </body>
    </html>"

' Instantiate renderer
Private renderer As New ChromePdfRenderer()

' Create header and footer and add to rendering options
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
	.HtmlFragment = headerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
	.HtmlFragment = footerHtml,
	.LoadStylesAndCSSFromMainHtmlDocument = True
}

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

选择文本和HTML页眉/页脚之间的取舍

在选择文本和HTML页眉/页脚时,需要考虑权衡。 如果您优先考虑更快的PDF渲染,请选择文本页眉/页脚。 另一方面,如果可定制性和样式化是必需的,请选择HTML页眉/页脚。 当HTML页眉/页脚内容不多时,文本和HTML页眉/页脚的渲染时间差异不大。 然而,随着HTML页眉/页脚中的资产大小和数量增加,渲染时间会增加。

准备好看看您还能做些什么吗? 查看我们的教程页面:创建PDF

常见问题解答

如何在C#项目中向PDF文档添加页眉和页脚?

要在C#项目中向PDF文档添加页眉和页脚,请使用IronPDF。首先,下载IronPDF库,然后加载或创建PDF。您可以使用AddTextHeadersAddTextFooters方法进行基于文本的页眉/页脚,或使用AddHtmlHeadersAddHtmlFooters进行基于HTML的选项。

在C#中可用哪些方法来添加文本和HTML页眉或页脚?

在IronPDF中,您可以使用AddTextHeadersAddTextFooters添加文本页眉和页脚,而AddHtmlHeadersAddHtmlFooters用于HTML页眉和页脚。

如何使用C#定制PDF中的页眉和页脚?

通过调整TextHeaderFooter类的字体类型、大小和对齐方式等文本属性,在IronPDF中定制页眉和页脚。对于HTML页眉和页脚,利用HTML和CSS样式进行高级设计。

如何确保PDF中的页眉和页脚不会与主体内容重叠?

通过在IronPDF中设置适当的边距来确保页眉和页脚不会与主体内容重叠。使用ChromePdfRenderer中的RenderingOptions来指定边距值,或启用动态边距调整以根据内容自动调整。

使用HTML页眉和页脚在PDF文件中有什么优势?

IronPDF中的HTML页眉和页脚提供比文本页眉和页脚更大的定制和样式灵活性。它们允许使用HTML和CSS,从而实现复杂且视觉上吸引人的设计。

我可以在PDF页眉和页脚中包含动态内容,如页码和日期吗?

是的,您可以在IronPDF的PDF页眉和页脚中包含动态内容,如页码和日期。使用{page}{total-pages}{date}{pdf-title}等占位符字符串。

如何在我的PDF项目中选择文本和HTML页眉/页脚?

在IronPDF中选择文本页眉/页脚,以实现更快的渲染时间。如果需要更多的定制和样式选项,可以选择HTML页眉/页脚。要考虑内容的复杂性和大小,因为这些可能影响渲染性能。

可以对PDF中的HTML页眉和页脚应用自定义边距吗?

是的,可以对IronPDF中的HTML页眉和页脚应用自定义边距。使用AddHtmlHeadersAddHtmlFooters的方法重载来指定边距值并控制页眉/页脚的宽度。

IronPDF 是否完全兼容 .NET 10,以便在创建 PDF 时使用页眉和页脚?

是的。IronPDF 完全兼容 .NET 10,您可以像在早期 .NET 版本中一样使用相同的页眉和页脚方法,例如AddTextHeadersAddTextFootersAddHtmlHeadersAddHtmlFooters 。在 .NET 10 项目(包括桌面、Web 或容器化环境)中使用 IronPDF 时,无需任何额外配置。

Jordi Bardia
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。
准备开始了吗?
Nuget 下载 16,154,058 | 版本: 2025.11 刚刚发布