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

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

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

IronPDF使您能够使用 C# 中的 AddTextHeadersAddTextFooters 等方法轻松地向 PDF 文档添加页眉和页脚,以添加简单的文本,或者使用 AddHtmlHeadersAddHtmlFooters 等方法添加基于 HTML 的内容,并完全支持 CSS 样式。 这一强大的功能对于创建具有一致品牌、页码和文档元数据的专业 PDF 至关重要。

需要在PDF文档的每页顶部或底部包含页码、公司标志或日期吗? IronPDF 可让您轻松地在 C# 项目中为 PDF 应用页眉和页脚。 无论您是在生成报告、发票还是任何商业文档,页眉和页脚都是至关重要的导航和识别元素,可提高文档的可用性。

快速入门:使用 C# 为 PDF 添加页眉和页脚

使用IronPDF在C#中轻松向您的PDF文档添加页眉和页脚。 本指南演示了如何在几秒钟内应用带有页码和自定义文本的基于文本的页眉和页脚。 使用 AddTextHeadersAddTextFooters 方法可以快速增强您的 PDF 演示文稿。 通过最少的代码保存更新后的PDF,确保您的文档具有专业的外观。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/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 函数中直接设置边距来实现,也可以通过 RenderingOptionsChromePdfRenderer 中来实现。 了解页边距控制对于实现完美像素布局至关重要,尤其是在使用自定义纸张尺寸时。

: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

如何通过呈现选项应用页边距?

如果在 RenderingOptionsChromePdfRenderer 中添加边距值,这些边距也将应用于页眉和页脚。 这种方法提供了一种集中管理整个文档页边距的方法,包括页眉、页脚和主要内容。 有关更高级的页边距自定义,请查看我们的自定义页边距设置指南。

: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 方法都应用了预定义的边距。 要应用自定义边距,请使用带有指定边距值的函数重载。 要跨整个内容而不留任何边距,可将重载函数中的边距设置为 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 页眉/页脚包含的内容有限时,文本页眉/页脚与 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 方法,允许您添加 HTML 内容,并支持完整的 CSS 样式。这使您能够创建带有格式化文本、图像和自定义样式的复杂页眉和页脚,以符合您的品牌准则。

为 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,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。