C#を使用してPDFにページ番号を追加する方法
"ポータブルドキュメントフォーマット"、またはPDFは、Adobeによって作成されたファイル形式です。 PDFは、文書や写真の形式を整える必要がある書類を提示する際に便利です。 現在の世界では、PDFファイルは重要であり、すべての企業部門で文書作成や請求書作成に利用されています。 現在市場に出回っているいくつかのPDFライブラリのおかげで、PDFの作成はほぼ直感的になりました。プロジェクトでPDFライブラリを利用する前に、それぞれの利点や特徴を比較することが重要です。
この記事では、iTextSharp C#を使用してPDFにページ番号を追加する方法を見ていきます。 また、iTextSharpとIronPDFを比較します。
iTextSharp C#を使用してPDFにページ番号を追加する方法
- 任意のIDEを使用して新しいC#プロジェクトを作成します。
- 新しいPDFオブジェクトを作成します。
- HTMLフッターにページ番号を追加します。
- HTML素材からPDFを作成します。
- PDFファイルをコンピュータに保存します。
IronPDFとは
IronPDFは、開発者が簡単にPDFを作成、表示、編集するために使用する堅牢なPDF .NET Frameworkです。 IronPDFは、内部でクロミウムエンジンを実行する高度なツールです。 HTML5、JavaScript、CSS、画像ファイルをPDFに変換し、カスタムヘッダーとフッターを追加し、ブラウザに表示される通りにPDFを作成することができます。 多くのオンラインおよびネットフォーマット、HTML、ASPX、Razor View、MVCを含む、IronPDFに対応しています。
IronPDFの機能
- PDFファイルの作成、読み取り、および簡単な編集のために.NET C#コードを利用すること。
- HTMLログインフォームを使用してログインを可能にするために、User-Agents、プロキシ、クッキー、HTTPヘッダー、フォーム変数を管理しながら、ウェブサイトURLリンクからPDFを作成するプロセス。
- 既に存在するPDFファイルから画像を削除すること。
- PDFの要素を含めること: テーブル, テキスト, 写真, ブックマーク, 透かし, ヘッダー, フッター, その他。
- 複数のPDFドキュメントのページを簡単に分割および結合する能力。
IronPDFのドキュメントについて詳しくは、ここを参照してください。
IronPDFのインストール
Visual Studio Tools内で、NuGetパッケージマネージャを選択し、Visualコマンドラインインターフェイスをツールの下に見つけることができます。 パッケージ管理ターミナルタブに以下のコマンドを入力してください。
Install-Package IronPdf
あるいは、パッケージマネージャメソッドを使用できます。 Visual StudioのNuGetパッケージマネージャオプションを使用して、ソリューションにパッケージをインストールすることができます。 NuGetウェブサイトでパッケージを見つけるための検索ボックスがあります。パッケージマネージャで"IronPDF"を検索するだけで、以下のスクリーンショットのようになります。

関連する検索結果一覧が上に表示されています。 システムにパッケージをインストールするには、必要な選択を行ってください。
パッケージがダウンロードされインストールされたので、現在のプロジェクトで利用することができます。
iTextSharpとは
iTextSharpは、C#でPDFドキュメントを生成および修正するための柔軟なライブラリです。 暗号化、PDFのマージ、テキストと画像の抽出など、多くの機能を提供します。 iTextSharpは、PDFへのページ番号の追加を含む多くのタスクに効率的なツールです。
iTextSharpの機能
- PDFドキュメントを生成するためのAPIがiTextライブラリを通じて提供されます。
- iTextプログラムを使用して、HTMLおよびXML文字列をPDFファイルにパースすることができます。
- iTextライブラリを使用して、PDFドキュメントにブックマーク、ページ番号、およびマーカーを追加することができます。
- iTextライブラリを使用して、PDFドキュメントを複数のPDFに分割したり、複数のPDFドキュメントを単一のPDFにマージしたりすることができます。
- iTextを使用して、PDFフォームを修正できます。
iTextSharpのインストール
NuGetパッケージマネージャを使用してiTextを探します。 iTextの機能は多くのパッケージに分割されているため、iText7およびiText.pdfhtmlは必須のインストールです。
Visualコマンドラインインターフェイスを選択した場合、以下のパッケージをインストールする必要があります。
Install-Package iTextSharp
最新バージョンのiText 7を使用しており、ソリューションに採用しています。
IronPDFを使用したページ番号の追加
PDFファイルへのページ番号の追加は、IronPDFの包括的なライブラリを通じて簡単に行われます。 以下のコードを示します。
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Create a new HtmlToPdf renderer instance
var renderer = new HtmlToPdf();
// Define the HTML content with a header
string header = "<h1>Hello IronPDF!</h1>";
// Render the HTML as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the HTML footer with page numbers
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the PDF document to a file
pdf.SaveAs("output.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
// Create a new HtmlToPdf renderer instance
var renderer = new HtmlToPdf();
// Define the HTML content with a header
string header = "<h1>Hello IronPDF!</h1>";
// Render the HTML as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the HTML footer with page numbers
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the PDF document to a file
pdf.SaveAs("output.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new HtmlToPdf renderer instance
Dim renderer = New HtmlToPdf()
' Define the HTML content with a header
Dim header As String = "<h1>Hello IronPDF!</h1>"
' Render the HTML as a PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
' Define the HTML footer with page numbers
Dim htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"}
' Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter)
' Save the PDF document to a file
pdf.SaveAs("output.pdf")
End Sub
End Class最初に、PDFに変換する必要があるHTMLテキストを定義します。 このHTMLコンテンツは、単一のHTML段落または完全なHTMLページで構成される場合があります。 次に、HtmlToPdfクラスのインスタンスを作成し、HTMLからPDFへの変換機能RenderHtmlAsPdfを提供します。
HTMLコンテンツはRenderHtmlAsPdf関数の引数として渡されます。 PDFに変換する必要があるHTML素材を指定します。 ページ番号は、プレースホルダーとして、またはこのHTMLテキストのフッター部分にある_{page} of {total-pages}_として表示されます。
このメソッドによって生成されたPDFドキュメントは、PdfDocumentオブジェクトとして返されます。 SaveAsメソッドを使用して、PDFドキュメントを"output.pdf"という名前でファイルに保存します。 代わりに、システムのデフォルトのPDFリーダーを使用して生成されたPDFドキュメントを開くためにOpenInDefaultPDFViewer関数を使用できます。 上記のメソッドを使用して既存のPDFファイルにページ番号を追加することもできます。

IronPDFコードについて詳しくは、こちらを参照してください。
iTextSharpを使用したページ番号の追加
まず、iTextSharpを使用して新しいPDFドキュメントを生成してみましょう。 ページ番号付きの新しいPDFドキュメントを作成する基本的な例を示します。
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
doc.Open();
doc.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
doc.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
}
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table to hold the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150f, document.Bottom, writer.DirectContent);
}
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
doc.Open();
doc.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
doc.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
}
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table to hold the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150f, document.Bottom, writer.DirectContent);
}
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Namespace ConsoleApp1
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new PDF document
Dim doc As New Document()
Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("output.pdf", FileMode.Create))
' Open the document to add content
doc.Open()
doc.Add(New Paragraph("Hello, world!"))
' Attach page number event to PDF writer
writer.PageEvent = New PageNumberEventHandler()
' Close the document
doc.Close()
End Sub
End Class
Public Class PageNumberEventHandler
Inherits PdfPageEventHelper
Public Overrides Sub OnOpenDocument(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnOpenDocument(writer, document)
End Sub
Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnEndPage(writer, document)
' Create a table to hold the page number
Dim table As New PdfPTable(1)
table.TotalWidth = 300F
table.HorizontalAlignment = Element.ALIGN_CENTER
Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
cell.Border = 0
table.AddCell(cell)
' Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150F, document.Bottom, writer.DirectContent)
End Sub
Public Overrides Sub OnCloseDocument(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnCloseDocument(writer, document)
End Sub
End Class
End Namespace最初に、DocumentおよびPdfWriterの新しいオブジェクトを作成し、空のPDFファイルを作成できるようにします。PDFドキュメントにテキスト、写真、テーブル、その他の種類の素材を含めることができます。 Paragraphを使用して、サンプルテキストを追加してデモンストレーションとします。 重要なステップは、PDFドキュメントにページ番号を追加することです。 iTextSharpのページイベントを使用してこれを行います。 まず、PDF生成プロセス中に特定のイベントが発生したときに呼び出されるメソッドをオーバーライドするために、PdfPageEventHelperクラスから継承するクラスを定義します。
このクラスでは、現在のページ番号を含む1つのセルを持つテーブルを追加するために、OnEndPage関数をオーバーライドします。 最後に、ドキュメントを閉じる前に、PdfWriterオブジェクトにPageNumberEventHandlerクラスのインスタンスを接続する必要があります。 この設定により、PageNumberEventHandlerクラスのOnEndPage関数は、新しいページがPDFドキュメントに追加されるたびに呼び出され、各ページの下部にページ番号を追加します。 既存のPDFドキュメントを使用してページ番号を追加することもできます。

結論
まとめると、IronPDFの専門性、使いやすさ、.NET環境とのスムーズな統合が、HTMLからPDFへの変換や関連機能が必要なシナリオにおいて最適な選択肢として位置付けていますが、iTextSharpもC# PDF操作ライブラリの風景の中で依然として強力な競争相手です。 IronPDFを使用すると、モダンな開発環境で成功するために必要な簡便性、効率性、および適応性を備えた、HTMLコンテンツから請求書、レポート、動的に生成されたドキュメントを作成できます。
IronPDFのLite版には永続ライセンス、アップグレードオプション、1年間のソフトウェアメンテナンスが含まれます。 ウォーターマークのある試用期間は、実際の設定で製品を評価できるようにユーザーに提供されます。 詳細については、ライセンスページをご覧ください。 Iron Softwareについて詳しく知るには、このウェブサイトを訪問してください。
よくある質問
C# を使用して PDF にページ番号を追加するにはどうすればよいですか?
IronPDF を使用して、ページ番号プレースホルダーを含む HTML コンテンツを定義し、AddHtmlFooters メソッドを使用してそれを PDF のフッターとして適用することで、PDF にページ番号を追加できます。
IronPDF を使用することの利点は何ですか?
IronPDF は強力な PDF.NET フレームワーク機能を提供し、HTML5、JavaScript、CSS、画像から PDF への変換をサポートし、カスタムヘッダーとフッターで PDF を簡単に操作できます。
ページ番号を追加する場合、iTextSharp と IronPDF はどのように比較されますか?
iTextSharp はページ番号を処理するために PdfPageEventHelper クラスを使用しますが、IronPDF はページ番号プレースホルダーを持つ HTML フッターを定義するだけで簡単なアプローチを提供します。
既存の PDF ファイルにページ番号を追加することができますか?
はい、IronPDF を使用することで、HTML フッターをページ番号プレースホルダーでレンダリングし、それを元のドキュメントとマージすることにより、既存の PDF ファイルにページ番号を追加できます。
HTML を PDF に変換する際の推奨方法は何ですか?
IronPDF は、.NET 環境とのシームレスな統合と HTML5、JavaScript、CSS の処理能力により、HTML から PDF への変換に推奨されます。
C# プロジェクトで IronPDF を使用するためのインストール手順は何ですか?
Visual Studio の NuGet パッケージマネージャーを使用して、'IronPDF' を検索し、プロジェクトに追加することで、C# プロジェクトに IronPDF をインストールできます。
C# を使用して PDF のページ番号が正確であることをどのように確認しますか?
IronPDF を使用して、ページ番号プレースホルダーを含む HTML テンプレートを定義し、すべての PDF ページに一貫して適用することで、ページ番号の正確性を確保します。
IronPDF のライセンシングオプションはありますか?
IronPDF では、恒久ライセンス、アップグレードオプション、および 1 年間のソフトウェア メンテナンスを備えた 'Lite' エディションが提供されており、評価用の透かし入り試用期間もあります。
IronPDF の詳細な例とドキュメントはどこで見つけられますか?
IronPDF の公式ウェブサイト ironpdf.com で包括的なドキュメントと例を見つけることができます。
IronPDF は .NET 10 と完全に互換性がありますか? また、.NET 10 プロジェクトでページ番号付け機能を使用できますか?
はい、IronPDF は .NET 10 をサポートしており、ヘッダーまたはフッターのプレースホルダーによるページ番号付けを含むすべての機能は、特別な構成や回避策なしで .NET 10 プロジェクトですぐに使用できます。






