如何添加页眉和页脚
需要在PDF文档的每一页顶部或底部添加页码、公司标志或日期吗? 使用页眉和页脚,您可以! 使用IronPDF,在您的C#项目中为PDF应用页眉和页脚非常简单。
开始使用IronPDF
立即在您的项目中开始使用IronPDF,并享受免费试用。
如何添加页眉和页脚
- 下载 C# 库以添加页眉和页脚
- 加载现有 PDF 或渲染新 PDF
- 使用
AddTextHeaders
和AddTextFooters
方法添加文本页眉和页脚 - 使用
AddHtmlHeaders
和AddHtmlFooters
方法添加HTML页眉和页脚 - 通过配置渲染选项,在渲染时添加页眉和页脚
添加文本页眉/页脚示例
要仅用文本创建页眉/页脚,请实例化一个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");
或者,您可以直接使用渲染器的渲染选项添加页眉/页脚。 这将在渲染过程中添加文本页眉和页脚。
: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");
自定义文本和分隔符属性
在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
};
输出文本标题
您可以在
设置文本页眉/页脚的边距
默认情况下,IronPDF中的文本页眉和页脚带有预定义的边距。 如果您希望文本标题跨越整个 PDF 文档的宽度,可以将边距值设置为 0。这可以通过直接在 AddTextHeaders
和 AddTextFooters
函数中设置边距,或者通过 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
如果在ChromePdfRenderer
的RenderingOptions
中添加边距值,这些边距也会应用到页眉和页脚。
: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;
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All;
// Add header and footer to renderer
renderer.RenderingOptions.TextHeader = header;
renderer.RenderingOptions.TextFooter = footer;
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
动态边距调整
静态边距在不同文档的标题内容变化时,造成了一个问题。 需要调整的不仅是页眉和页脚的边距,还有主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");
元数据到文本页眉/页脚
您可以通过在文本中加入占位符字符串,轻松添加诸如页码、日期和PDF的标题等元数据。 以下是所有可用的元数据选项:
- {page}:当前页码。
- {total-pages}: 总页数。
- {url}:生成PDF文档的Web URL。
- {date}:当前日期。
- {time}:当前时间。
- {html-title}: 在HTML中title标签指定的HTML标题。
-
{pdf-title}:PDF元数据中指定的PDF标题。
要了解更多关于{page}和{total-pages}的信息,请访问
如何指南。
: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}",
};
添加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);
与文本页眉和页脚类似,上述的AddHtmlHeaders
和AddHtmlFooters
方法已应用预定义的边距。 要应用自定义边距,请使用具有指定边距值的函数重载。 要在没有任何边距的情况下跨越整个内容,请将重载函数中的边距设置为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);
通过渲染器的渲染选项可以直接添加页眉和页脚。 这将在渲染过程中添加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>");
选择文本和HTML页眉/页脚之间的区别
在选择文本和HTML页眉/页脚之间时,请考虑权衡利弊。 如果您重视更快的PDF渲染,请选择文本页眉/页脚。 另一方面,如果可定制性和样式很重要,请选择HTML头部/尾部。 在HTML页眉/页脚内容不多时,文本与HTML页眉/页脚的渲染时间差异不太明显。 然而,随着HTML头部/尾部的大小和数量的增加,它确实会增加。