C#でiTextSharpを使用してPDFにページ番号を追加する方法
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
"ポータブルドキュメントフォーマット"、または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 を作成、表示、および編集するために使用する強力な .NET Frameworkです。 IronPDFは、内部でChromiumエンジンを実行する高度なツールです。 HTML5、JavaScript、CSS、および画像ファイルを PDF に変換し、カスタムヘッダーおよびフッターを追加し、ブラウザーで表示されるとおりに正確に PDF を生成できます。 多くのオンラインおよびネットフォーマット、HTML、ASPX、Razor View、MVCを含む、IronPDFに対応しています。
IronPDFの機能
- .NET C# コードを使用して PDF ファイルを作成、読み取り、簡単に編集できます。
- HTML ログイン フォームを使用したログインを可能にするために、ユーザー エージェント、プロキシ、クッキー、HTTP ヘッダー、およびフォーム変数を管理しながら、Web サイトの URL リンクから PDF を作成します。
- 既存の PDF ファイルから画像を抽出します。
- PDF 内に要素を含める: テーブル、テキスト、画像、ブックマーク、透かし、ヘッダー、フッターなど。
- 複数の PDF ドキュメントからページを簡単に分割および結合できます。
IronPDF ドキュメントの詳細については、こちらをご参照ください。
IronPDFのインストール
Visual Studio ツール内で、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 iText7
Install-Package itext7.pdfhtml
Install-Package iText7
Install-Package itext7.pdfhtml
最新バージョンのiText 7を使用しており、ソリューションに採用しています。
IronPDFを使用したページ番号の追加
PDFファイルへのページ番号の追加は、IronPDFの包括的なライブラリを通じて簡単に行われます。 例を示すコードを以下にご覧ください。
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Initialize the IronPdf renderer
var renderer = new IronPdf.HtmlToPdf();
// HTML content to convert to PDF
string header = "<h1>Hello Ironpdf!</h1>";
// Render the HTML content to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the footer with page number placeholders
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the output PDF file
pdf.SaveAs("output.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Initialize the IronPdf renderer
var renderer = new IronPdf.HtmlToPdf();
// HTML content to convert to PDF
string header = "<h1>Hello Ironpdf!</h1>";
// Render the HTML content to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the footer with page number placeholders
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the output PDF file
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize the IronPdf renderer
Dim renderer = New IronPdf.HtmlToPdf()
' HTML content to convert to PDF
Dim header As String = "<h1>Hello Ironpdf!</h1>"
' Render the HTML content to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
' Define the footer with page number placeholders
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 output PDF file
pdf.SaveAs("output.pdf")
End Sub
End Class
説明
1.レンダラーを初期化する: HTML から PDF への変換機能を提供する HtmlToPdf のインスタンスを作成します。
- HTML コンテンツの定義: PDF に変換する必要のある HTML コンテンツを指定します。
- HTML コンテンツのレンダリング:
RenderHtmlAsPdf関数を使用して、HTML を PDF ドキュメントに変換します。 - フッターの定義: ページ番号は HTML フッターテキスト内のプレースホルダーとして表されます。
- フッターを追加して PDF を保存: ドキュメントにフッターを適用し、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 document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
document.Open();
document.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
document.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table for the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
// Add page number to the table cell
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, 150, document.Bottom, writer.DirectContent);
}
}
}
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 document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
document.Open();
document.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
document.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table for the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
// Add page number to the table cell
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, 150, document.Bottom, writer.DirectContent);
}
}
}
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 document As New Document()
Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("output.pdf", FileMode.Create))
' Open the document to add content
document.Open()
document.Add(New Paragraph("Hello, world!"))
' Attach page number event to PDF writer
writer.PageEvent = New PageNumberEventHandler()
' Close the document
document.Close()
End Sub
End Class
Public Class PageNumberEventHandler
Inherits PdfPageEventHelper
Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnEndPage(writer, document)
' Create a table for the page number
Dim table As New PdfPTable(1)
table.TotalWidth = 300F
table.HorizontalAlignment = Element.ALIGN_CENTER
' Add page number to the table cell
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, 150, document.Bottom, writer.DirectContent)
End Sub
End Class
End Namespace
説明
- PDF ドキュメントの作成:新しい
DocumentとPdfWriterを初期化して、空の PDF ファイルを生成します。 - コンテンツの追加: ドキュメントに段落などの基本コンテンツを追加します。
- ページ番号付け: ページ番号を含めるために iTextSharp のイベント ハンドリングを利用します。
PdfPageEventHelperから継承したカスタム クラスを作成します。 OnEndPageをオーバーライドします。カスタム クラスで、OnEndPageメソッドをオーバーライドして、各ページの下部にページ番号を追加します。- ドキュメントのクローズ: ドキュメントを閉じて完成させます。

結論
要約すると、IronPDF の専門性、使いやすさ、および .NET 環境とのシームレスな統合により、HTML から PDF への変換および関連機能を必要とするシナリオにとって最良のオプションとして位置付けられますが、iTextSharp も C# の PDF 操作ライブラリの分野では依然として強力な競争相手です。 IronPDF を使用すれば、最新の開発環境で成功するために必要な簡便さ、効果性、および適応性で、HTML コンテンツから請求書、レポート、および動的に生成されたドキュメントを作成できます。
IronPDF の Lite エディションには、永久ライセンス、アップグレード オプション、および 1 年間のソフトウェア メンテナンスが含まれています。 ウォーターマークのある試用期間は、実際の設定で製品を評価できるようにユーザーに提供されます。 詳しくは、ライセンスページをご覧ください。 Ironソフトウェアに関する詳細は、こちらのウェブサイトをご覧ください。
よくある質問
iTextSharp を使用して C# で PDF にページ番号を追加するにはどうすればよいですか?
C# で iTextSharp を使用してページ番号を追加するには、PdfPageEventHelper を継承するカスタムクラスを作成します。OnEndPage メソッドをオーバーライドしてページ番号を挿入し、このイベントを PdfWriter インスタンスに添付します。
なぜPDFはさまざまな分野で重要なのでしょうか?
PDF は、企業セクター全体での文書作成や請求書発行に必要なテキストと画像の一貫した形式を維持します。文書をプロフェッショナルな方法で提示するために信頼できます。
IronPDFをPDF操作に利用する利点は何ですか?
IronPDF は .NET 環境内で PDF の作成、表示、編集のための強力な機能を提供します。HTML、JavaScript、画像を PDF に変換することに優れ、カスタムヘッダー、フッター、透かしをサポートしています。
IronPDF は JavaScript サポート付きの HTML から PDF への変換に対応していますか?
はい、IronPDF は JavaScript を含む HTML コンテンツを、Web ブラウザに表示されるレイアウトや機能を維持しながら PDF に変換できます。
C# プロジェクトに IronPDF をインストールする方法は?
Visual Studio の NuGet パッケージ マネージャを使用して IronPDF をインストールできます。'IronPDF' を検索してプロジェクトに追加し、機能を利用し始めます。
IronPDF が提供する試用期間の重要性は何ですか?
IronPDF の試用期間により、開発者は実際のアプリケーションでその機能を探索し、ライセンスを購入する前にその適合性を評価するのに役立ちます。
ページ番号を追加する場合、iTextSharp と IronPDF はどのように比較されますか?
iTextSharp はイベントハンドリングを使用してページ番号を追加しますが、IronPDF はヘッダーとフッターのための HTML テンプレートを使用したより簡単なアプローチを提供し、使いやすさを求める .NET 開発者にとって理想的です。
C# プロジェクト用の PDF ライブラリを選択する際に考慮すべき点は何ですか?
各ライブラリが提供する機能を考慮してください。たとえば、IronPDF は HTML から PDF への変換に特化しており .NET Frameworkとよく統合されますが、iTextSharp は強力な暗号化とテキスト抽出機能を提供します。
iTextSharp はページ番号を追加するために .NET 10 と互換性がありますか、それとも iText 7 を使用する必要がありますか?
iTextSharp(バージョン5.x)は正式に非推奨となり、メンテナンスモードとなっています。セキュリティ修正のみが提供されますが、新機能のアップデートはありません。.NET 10を直接ターゲットとしていないため、最新 for .NETリリースで使用すると互換性の制限が発生する可能性があります。新規プロジェクトや.NET 10へのアップグレードを計画しているプロジェクトには、最新のフレームワークをサポートし、iTextSharpよりも改良されたiText 7(またはiText Core)を強くお勧めします。([itextpdf.com](https://itextpdf.com/products/itextsharp?utm_source=openai))



