C#を使用してPDFにページ番号を追加する方法

C#を使用してPDFにページ番号を追加する方法

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

IronPdfはヘッダー/フッターのプレースホルダー文字列{page}{total-pages}を使ってC#でPDFにページ番号を追加することができます。

ページ番号は、PDF文書内の各ページに割り当てられた連番です。 これらのツールはナビゲーションに不可欠なコンポーネントであり、読者が特定のページを見つけ、その位置を追跡するのに役立ちます。 また、ページ番号を付けることで、コンテンツの引用や参照が容易になります。 IronPdfを使えば、PDFにページ番号を追加するのは簡単です。

クイックスタート: PDFに簡単にページ番号を追加

IronPDFを使用してPDFドキュメントにページ番号を追加します。 最小限のC#コードで、動的なページ番号をヘッダーやフッターに挿入したり、配置をカスタマイズしたり、表示するページを指定したりすることができます。 新しいPDFでも既存のPDFでも、IronPdfはドキュメントのナビゲーションと構成を強化する柔軟なソリューションを提供します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronPDF をインストールします

    PM > Install-Package IronPdf

  2. このコード スニペットをコピーして実行します。

    new IronPdf.ChromePdfRenderer { RenderingOptions = { HtmlFooter = new IronPdf.HtmlHeaderFooter { HtmlFragment = "<center>{page}of{total-pages}</center>", DrawDividerLine = true } } }
         .RenderHtmlAsPdf("<h1>My multi-page document</h1><div style='page-break-after:always;'></div><h1>Page 2</h1>")
         .SaveAs("numbered-pages.pdf");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronPDF を使い始めましょう
    arrow pointer


PDFに基本的なページ番号を追加するにはどうすればよいですか?

TextHeaderFooterまたはHtmlHeaderFooterクラスでプレースホルダ文字列 {page}{total-pages}を使用すると、現在のページ番号と総ページ数を追加できます。 この機能は、新しいPDFを作成するときや、HTMLをPDFに変換するときなど、プロフェッショナルな書式設定が必要な文書には不可欠です。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-basic.cs
using IronPdf;

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};

// Create html footer
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render a new PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Add header and footer
pdf.AddTextHeaders(textHeader);
pdf.AddHtmlFooters(htmlFooter);

pdf.SaveAs("pdfWithPageNumber.pdf");
$vbLabelText   $csharpLabel

上記のコードからの出力PDFは以下に示されています:

また、ChromePdfRendererのレンダリングオプションに直接、ページ番号プレースホルダ文字列を含むヘッダーとフッターを追加することもできます。 このアプローチは、レンダリングオプションを使ってPDF出力をカスタマイズするときに役立ちます。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-chromerenderer.cs
using IronPdf;

// Add header and footer to rendering options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

string html = @"
    <h1>Hello World!</h1>
<div style='page-break-after: always;'/>
    <h1>2nd Page!</h1>";

// Render new PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf");
$vbLabelText   $csharpLabel

複雑な文書を扱う場合は、改ページカスタムマージンを考慮し、ページ番号が正しく表示されるようにしてください。

特定のページだけにページ番号を追加するにはどうすればよいですか?

IronPdfでは、ページ番号の表示位置をコントロールすることができます。 特定のページから始めるようにするか、偶数インデックスページのような特定のグループに適用します。 PDFレポートを生成するときや、異なるセクションを含むドキュメントを扱うときに、この柔軟性は貴重です。

まず、PDF文書にページ番号を付ける準備をします:

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-preparation.cs
using IronPdf;
using System.Linq;
using System.Collections.Generic;

string multi_page_html = @"
    <p>This is the 1st Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 4th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 5th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 6th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 7th Page</p>";

// Create header
HtmlHeaderFooter header = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(multi_page_html);

// Create a Page Range 0..6
var allPageIndices = Enumerable.Range(0, pdf.PageCount);
$vbLabelText   $csharpLabel

偶数ページのみに番号を振るにはどうすればよいですか?

このコードでは、前の例に基づいて、偶数ページのインデックスにのみページ番号を適用します。 フィルタリングは偶数ページのインデックスを対象としているため、出来上がったPDFには奇数ページの数字が表示されます。 ページインデックスはゼロから始まり、ページ番号は一から始まります。 この手法は、伝統的な書籍の書式に従った文書や、マージされたPDF文書を扱う場合に適しています。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-even-pages.cs
// Get even page indexes (resulting in odd page numbers)
var evenPageIndices = allPageIndices.Where(i => i % 2 == 0);

pdf.AddHtmlHeaders(header, 1, evenPageIndices);
pdf.SaveAs("EvenPages.pdf");
$vbLabelText   $csharpLabel

奇数ページのみに番号を振るにはどうすればよいですか?

奇数の索引番号を持つページにページ番号を追加します。 このアプローチは、両面印刷のシナリオで一般的で、印刷されたドキュメントの片面だけにページ番号を表示する必要があります。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-odd-pages.cs
// Get odd page indexes (resulting in even page numbers)
var oddPageIndexes = allPageIndices.Where(i => i % 2 != 0);

pdf.AddHtmlHeaders(header, 1, oddPageIndexes);
pdf.SaveAs("OddPages.pdf");
$vbLabelText   $csharpLabel

最後のページだけにページ番号を追加するにはどうすればよいですか?

最終ページにのみページ番号を追加します。 これは、要約ページや文書の終わりを示す場合に便利です。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-last-page-only.cs
// Last page only
var lastPageIndex = new List<int>() { pdf.PageCount - 1 };

pdf.AddHtmlHeaders(header, 1, lastPageIndex);
pdf.SaveAs("LastPageOnly.pdf");
$vbLabelText   $csharpLabel

最初のページだけにページ番号を追加するにはどうすればよいですか?

最初のページにのみページ番号を追加します。 これは、カバーページや、最初のページのみ識別が必要な文書に適しています。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-first-page-only.cs
// First page only
var firstPageIndex = new List<int>() { 0 };

pdf.AddHtmlHeaders(header, 1, firstPageIndex);
pdf.SaveAs("FirstPageOnly.pdf");
$vbLabelText   $csharpLabel

ページ番号を追加するときに最初のページをスキップするにはどうすればよいですか?

ヘッダーを適用するときに最初のページをスキップします。 この一般的な要件は、ページ番号を表示すべきではない表紙やタイトルページのある文書にも適用されます。 PDFフォームやカバーレターを含む文書を扱う場合、このテクニックはプロフェッショナルな書式を保証します。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page.cs
// Skip the first page
var skipFirstPage = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 1, skipFirstPage);
pdf.SaveAs("SkipFirstPage.pdf");
$vbLabelText   $csharpLabel

最初のページをスキップして、2ページ目に1から番号を振るにはどうすればよいですか?

1ページ目は省略し、2ページ目から1ページ目とみなしてナンバリングを始めます。この方法は、学術論文や正式な報告書など、表紙がページ番号の順序にカウントされるべきでない文書に適しています。

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page-and-dont-count-it.cs
// Skip the first page and start numbering the second page as page 1
var skipFirstPageAndDontCountIt = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt);
pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf");
$vbLabelText   $csharpLabel

すべてのメタデータオプションについては、IronPDFヘッダーとフッターガイドをご覧ください。

高度なページ番号付けのテクニック

IronPDFは基本的なページ番号だけでなく、次のような高度なシナリオもサポートしています:

  • セクションベースのナンバリング:文書のセクションごとに異なる番号付けスキーム
  • ローマ数字:序文や付録ページのカスタムフォーマット
  • 複数のナンバリングシステム:1つの文書で異なるナンバリングスタイルを組み合わせる
  • 動的ページ数ページを追加またはコピーするときに総ページ数を更新する。

これらのテクニックは、技術マニュアル、学術論文、高度なページ番号スキームを必要とする法律文書など、複雑な文書を作成する際に役立ちます。

ページ番号のベストプラクティス

PDFにページ番号を付ける場合は、以下のことを考慮してください:

1.一貫性:文書全体で一貫した位置と書式を維持する。 2.読みやすさ:ページ番号がはっきりと見え、コンテンツと重ならないようにすること。 3.アクセシビリティ:読みやすいように、適切なフォントサイズとコントラストを使用してください。 4.プロフェッショナルな外観:ページ番号のスタイルを文書全体のデザインに合わせましょう。

これらのガイドラインに従い、IronPdfの柔軟なページ番号機能を活用することで、特定の要件を満たすプロフェッショナルで整理されたPDFドキュメントを作成することができます。

よくある質問

C# で PDF に基本的なページ番号を付けるには?

IronPDFでは、TextHeaderFooterまたはHtmlHeaderFooterクラスのプレースホルダー文字列{page}と{total-pages}を使ってページ番号を追加することができます。これらのプレースホルダーをヘッダーやフッターのHTMLフラグメントに含めるだけで、IronPDFはPDFをレンダリングする際に自動的に現在のページ番号と総ページ数に置き換えます。

レンダリングオプションでページ番号を直接追加できますか?

はい、IronPdfのChromePdfRendererのレンダリングオプションに直接ページ番号を追加することができます。この方法では、レンダリング設定の一部としてヘッダーやフッターにページ番号のプレースホルダー文字列を設定することができ、レンダリングオプションでPDF出力をカスタマイズする場合に特に便利です。

ページ番号にはどのようなプレースホルダ文字列が使用できますか?

IronPdfはページ番号のために2つの主要なプレースホルダー文字列を提供します:{page}は現在のページ番号を表示し、{total-pages}は文書内の総ページ数を表示します。これらのプレースホルダはPDFがレンダリングされるときに自動的に実際の値に置き換えられます。

特定のページだけにページ番号を付けることはできますか?

はい、IronPDFでは文書内のページ番号をコントロールすることができます。ページ番号を表示するページを指定し、表紙から除外したり、PDFの特定のセクションにのみ適用することができます。

ページ番号の配置やスタイルをカスタマイズできますか?

もちろんです。IronPDFのHtmlHeaderFooterクラスでは、HTMLとCSSを使ってページ番号の配置、スタイル、書式をカスタマイズできます。ページ番号の位置、フォント、サイズ、色を制御し、仕切り線やその他の装飾要素を追加することもできます。

既存のPDF文書にページ番号を追加できますか?

はい、IronPDFは新しいPDFと既存のPDFドキュメントの両方にページ番号を追加することをサポートしています。既存のPDF文書を読み込み、ヘッダーやフッターにページ番号を付けることができます。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。
レビュー済み
Jeff Fritz
Jeffrey T. Fritz
プリンシパルプログラムマネージャー - .NETコミュニティチーム
Jeffはまた、.NETとVisual Studioチームのプリンシパルプログラムマネージャーです。彼は.NET Conf仮想会議シリーズのエグゼクティブプロデューサーであり、週に二回放送される開発者向けライブストリーム『Fritz and Friends』のホストを務め、テクノロジーについて話すことや視聴者と一緒にコードを書くことをしています。Jeffはワークショップ、プレゼンテーション、およびMicrosoft Build、Microsoft Ignite、.NET Conf、Microsoft MVPサミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。
準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース