ヘッダーとフッターの追加方法

Jordi related to ヘッダーとフッターの追加方法
ジョルディ・バルディア
2023年7月24日
更新済み 2024年12月10日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

PDFドキュメントのすべてのページの上部または下部にページ番号、会社のロゴ、または日付を含める必要がありますか? ヘッダーとフッターを使用すれば可能です! IronPDFを使用すると、C#プロジェクトでPDFにヘッダーとフッターを追加するのは非常に簡単です。



IronPDFを始めましょう

今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer


テキストヘッダー/フッターの追加例

ヘッダー/フッターをテキストのみで作成するには、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 APIリファレンスでデフォルトで確認できます。

ヘッダー/フッターのテキストの余白を設定

デフォルトでは、IronPDFのテキストのヘッダーとフッターには事前定義された余白が設定されています。 PDFドキュメントの全幅にテキストヘッダーを広げたい場合、マージン値を0に指定できます。これは、AddTextHeadersおよびAddTextFooters関数で直接マージンを設定するか、ChromePdfRendererRenderingOptionsを使用して達成できます。

: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

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;
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}について詳しく知るには、IronPDF Page Numbers Guideのハウツーガイドをご覧ください。

: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ヘッダー/フッター内のアセットのサイズと数が増加すると、それに伴って増加します。

Jordi related to テキストとHTMLヘッダー/フッターの選択
ソフトウェアエンジニア
ジョルディは、Iron Softwareでのスキルを活かしていないときには、ゲームプログラミングをしており、Python、C#、C++に最も堪能です。彼は製品テスト、製品開発、研究の責任を共有しており、継続的な製品改善に大きな価値をもたらしています。この多様な経験は彼を常に挑戦的で魅力的に保ち、彼はIron Softwareで働く一番好きな側面の一つだと言っています。ジョルディはフロリダ州マイアミで育ち、フロリダ大学でコンピューターサイエンスと統計学を学びました。