使用C#和IronPDF在PDF中新增頁眉和頁腳
IronPDF讓您可以輕鬆地在C#中使用AddHtmlFooters新增支持完整CSS樣式的基於HTML的內容。 此強大的功能對於建立具有一致品牌、頁碼和文件元資料的專業PDF至關重要。
需要在PDF文件的每一頁頂部或底部包含頁碼、公司標誌或日期嗎? IronPDF使得在C#項目中應用頁眉和頁腳到PDF變得簡單。 無論您是在生成報告、發票還是任何商業文件,頁眉和頁腳都提供了增強文件使用性的重要導航和識別元素。
快速入門:在C#中向PDF新增頁眉和頁腳
使用IronPDF在C#中輕鬆地向您的PDF文件新增頁眉和頁腳。 本指南演示如何在幾秒鐘內應用帶有頁碼和自定義文字的基於文字的頁眉和頁腳。 使用AddTextFooters方法快速增強您的PDF展示。 使用最少的程式碼保存更新的PDF,確保您的文件具有專業的完成效果。
-
使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf
-
複製並運行這段程式碼片段。
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"); -
部署以在您的實時環境中測試
今天就開始在您的專案中使用IronPDF,透過免費試用
最小工作流程 (5步)
- 下載C#程式庫以新增頁眉和頁腳
- 載入現有的 PDF 或渲染一個新的
- 使用
AddTextHeaders和AddTextFooters方法新增文字頁眉和頁腳 - 使用
AddHtmlHeaders和AddHtmlFooters方法新增HTML頁眉和頁腳 - 在渲染時間新增頁眉和頁腳,通過配置
RenderingOptions
如何新增文字頁眉/頁腳?
要建立僅包含文字的頁眉/頁腳,請實例化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");
Imports IronPdf
' Instantiate renderer and create PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
' Create text header
Dim textHeader As New TextHeaderFooter With {
.CenterText = "This is the header!"
}
' Create text footer
Dim textFooter As New TextHeaderFooter With {
.CenterText = "This is the footer!"
}
' Add text header and footer to the PDF
pdf.AddTextHeaders(textHeader)
pdf.AddTextFooters(textFooter)
pdf.SaveAs("addTextHeaderFooter.pdf")
如何在渲染時新增頁眉/頁腳?
或者,您可以直接使用渲染器的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");
Imports IronPdf
' Instantiate renderer
Dim renderer As New ChromePdfRenderer()
' Create header and add to rendering options
renderer.RenderingOptions.TextHeader = New TextHeaderFooter With {
.CenterText = "This is the header!"
}
' Create footer and add to rendering options
renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
.CenterText = "This is the footer!"
}
' Render PDF with header and footer
Dim pdf As PdfDocument = 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
};
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
}
自定義文字頁眉的樣子如何?
預設情況下哪些字體可用?
您可以在IronPDF API 參考中查看預設情況下可用的字體型別。 IronPDF支持包括Arial、Times New Roman、Helvetica、Courier及其變體在內的多種標準字體。 如果您需要自定義字體,請了解有關在IronPDF中管理字體的更多資訊。
如何設置文字頁眉/頁腳的邊距?
在IronPDF中,文字頁眉和頁腳預設有預定義的邊距。 如果您希望文字頁眉跨越整個PDF文件的寬度,請指定0的邊距值。這可以通過在ChromePdfRenderer實現。 了解邊距控制對於實現像素完美的佈局至關重要,尤其是在使用自定義紙張尺寸時。
: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
Imports IronPdf
' Instantiate renderer and create PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
Dim header As New TextHeaderFooter With {
.CenterText = "This is the header!"
}
Dim footer As New TextHeaderFooter With {
.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中新增邊距值,這些邊距也會應用到頁眉和頁腳。 這種方法提供了一種集中管理包括頁眉、頁腳和主要內容在內的整個文件邊距的方法。 若要進行更高級的邊距自定義,請查看我們有關設置自定義邊距的指南。
: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>")
為何應避免使用UseMarginsOnHeaderAndFooter?
RenderingOptions上不適合此用例。 它將相同的邊距值應用到頁眉、頁腳和主要內容,這可能導致頁眉與文件正文重疊。 此屬性主要用於通過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");
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")
如何將元資料新增到文字頁眉/頁腳?
通過在文字中加入佔位符字串,您可以輕鬆新增頁碼、日期和PDF標題等元資料。 這些佔位符會在PDF渲染時自動替換為相應的值。 此功能對於建立依據文件屬性自動更新的動態頁眉和頁腳至關重要。 以下是所有可用的元資料選項:
{page}:當前頁碼。{total-pages}:總頁數。{url}:生成PDF文件的網頁URL。{date}:當前日期。{time}:當前時間。title標籤中指定的HTML標題。{pdf-title}:在PDF元資料中指定的PDF標題。
我應該最常使用哪些佔位符?
如需了解更多{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}"
}
如何新增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)
如何控制HTML頁眉/頁腳的邊距?
和文字頁眉和頁腳類似,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);
' Add to PDF
pdf.AddHtmlHeaders(header, 0, 0, 0)
pdf.AddHtmlFooters(footer, 0, 0, 0)
我可以在渲染時新增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);
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)
什麼時候我應該使用文字與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方法,允許您新增具備完整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生成時它會自動被替換為當前日期。
How do I detect if a header or footer overlaps existing PDF content?
Pass a ContentOverlapBehavior to the AddHtmlHeaders or AddHtmlFooters overloads, or set RenderingOptions.HeaderFooterOverlapBehavior. Ignore skips the check (default), Warn logs the affected page indexes, and Throw raises an InvalidOperationException before stamping. Detection is report-only and covers text and images only, not vector content such as table borders, and it requires the HtmlHeaderFooter.MaxHeight to be set.

