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

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

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

ページ番号は、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


ページ番号追加の例

プレースホルダー文字列{page}{total-pages}TextHeaderFooterクラスやHtmlHeaderFooterクラスと組み合わせて使用し、現在のページ番号と総ページ数を追加できます。

: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");
Imports IronPdf

' Create text header
Private textHeader As New TextHeaderFooter() With {.CenterText = "{page} of {total-pages}"}

' Create html footer
Private htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

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

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

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

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

また、ChromePdfRendererのレンダリングオプションにプレースホルダー文字列としてヘッダーやフッターを直接追加することもできます。

: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");
Imports IronPdf

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

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

' Render new PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

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

特定のページにページ番号を追加する例

IronPDFを使用すると、ページ番号を追加する位置を決めることができます。 特定のページまたは偶数ページなどの特定のページのグループで開始することができます。

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);
Imports IronPdf
Imports System.Linq
Imports System.Collections.Generic

Private multi_page_html As String = "
    <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
Private header As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

' Render PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(multi_page_html)

' Create a Page Range 0..6
Private allPageIndices = Enumerable.Range(0, pdf.PageCount)
$vbLabelText   $csharpLabel

偶数ページインデックス

前のコード例に基づいて、以下のコードは偶数ページのインデックスにのみページ番号を適用します。 偶数ページのインデックスをフィルターしているため、生成された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");
' Get even page indexes (resulting in odd page numbers)
Dim evenPageIndices = allPageIndices.Where(Function(i) i Mod 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");
' Get odd page indexes (resulting in even page numbers)
Dim oddPageIndexes = allPageIndices.Where(Function(i) i Mod 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");
' Last page only
Dim lastPageIndex = New List(Of Integer)() From {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");
' First page only
Dim firstPageIndex = New List(Of Integer)() From {0}

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

最初のページをスキップ

ヘッダーを適用するときに最初のページをスキップします。

: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");
' Skip the first page
Dim skipFirstPage = allPageIndices.Skip(1)

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

最初のページをスキップして数えない

最初のページをスキップして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");
' Skip the first page and start numbering the second page as page 1
Dim skipFirstPageAndDontCountIt = allPageIndices.Skip(1)

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

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

よくある質問

C# を使用して PDF にページ番号を追加するにはどうすればよいですか?

IronPDF ライブラリを使用して C# で PDF にページ番号を追加できます。まず、NuGet から C# PDF ライブラリをダウンロードします。そして、既存の PDF を読み込むか新しいものを作成し、ヘッダーやフッターに {page}{total-pages} のプレースホルダー文字列を使用してページ番号を挿入します。最後に、更新された PDF を保存します。

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

はい、IronPDF を使用すると PDF 内のページ番号の配置をカスタマイズできます。特定のページ、たとえば偶数ページや奇数ページにのみページ番号を追加したり、最初や最後のページにのみ適用したりすることができます。

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

IronPDF を使用して PDF の偶数ページにのみページ番号を追加するには、偶数インデックスでページをフィルタリングし、ヘッダーまたはフッターに必要なページ番号のプレースホルダーを設定します。ページ番号は偶数インデックスのページに適用されます。

PDF の 2 ページ目からページ番号を開始することは可能ですか?

はい、IronPDF を使用すると、1 ページ目をスキップして 2 ページ目から番号を開始することができます。これを行うには、ヘッダーまたはフッターを 2 ページ目から適用するように設定し、プレースホルダー文字列を使用して番号のシーケンスを管理します。

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

IronPDF を使用して PDF の最後のページにのみページ番号を追加するには、最後のページに特に適用するようにヘッダーまたはフッターを設定できます。これを達成するために、最後のページインデックスを参照してページ番号のプレースホルダー文字列を設定します。

PDF のページ番号にプレースホルダー文字列を使用する利点は何ですか?

{page}{total-pages} のようなプレースホルダー文字列は、現在のページ番号および合計ページ数の動的な挿入を可能にします。これにより、ドキュメントの構造が変わった場合でもページ番号管理が柔軟かつ効率的になります。IronPDF はこれらのプレースホルダーを利用してページ番号プロセスを効率化します。

最初のページに影響を与えずに PDF にページ番号を追加するにはどうすればよいですか?

IronPDF を使用して最初のページに影響を与えずに PDF にページ番号を追加するには、ヘッダーまたはフッターを 2 ページ目から開始するように設定します。この方法により、最初のページは番号なしの状態を保ちながら、後続のページにページ番号を割り当てます。

IronPDF は HTML コンテンツと既存の PDF 両方にページ番号を適用できますか?

はい、IronPDF は HTML コンテンツと既存の PDF 両方にページ番号を適用できます。IronPdf.ChromePdfRenderer を使用して HTML を PDF としてレンダリングし、ページ番号を適用することも、既存の PDF ドキュメントを変更してヘッダーやフッター内にページ番号を含めることもできます。

IronPDF はページ番号を追加するときに .NET 10 と完全に互換性がありますか?

はい。IronPDF は .NET 10 と完全に互換性があり、以前の .NET バージョンと同様に、.NET 10 プロジェクトでヘッダーまたはフッターとプレースホルダー文字列{page}および{total-pages}を使用してページ番号を追加できます。

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 ダウンロード 16,493,056 | Version: 2025.11 リリース