フッターコンテンツにスキップ
IRONPDFの使用

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

"ポータブルドキュメントフォーマット"、またはPDFは、Adobeによって作成されたファイル形式です。 PDFは、文書や写真の形式を整える必要がある書類を提示する際に便利です。 現在の世界では、PDFファイルは重要であり、すべての企業部門で文書作成や請求書作成に利用されています。 現在市場に出回っているいくつかのPDFライブラリのおかげで、PDFの作成はほぼ直感的になりました。プロジェクトでPDFライブラリを利用する前に、それぞれの利点や特徴を比較することが重要です。

この記事では、iTextSharp C#を使用してPDFにページ番号を追加する方法を見ていきます。 また、iTextSharpIronPDFを比較します。

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

  1. 任意のIDEを使用して新しいC#プロジェクトを作成します。
  2. 新しいPDFオブジェクトを作成します。
  3. HTMLフッターにページ番号を追加します。
  4. HTML素材からPDFを作成します。
  5. 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を使用したC#でPDFにページ番号を追加する方法: 図1 - パッケージマネージャからの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");
    }
}
$vbLabelText   $csharpLabel

最初に、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ファイルにページ番号を追加することもできます。

iTextSharpを使用したC#でPDFにページ番号を追加する方法: 図2 - IronPDF: ページ番号付き出力済み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);
        }
    }
}
$vbLabelText   $csharpLabel

最初に、DocumentおよびPdfWriterの新しいオブジェクトを作成し、空のPDFファイルを作成できるようにします。PDFドキュメントにテキスト、写真、テーブル、その他の種類の素材を含めることができます。 Paragraphを使用して、サンプルテキストを追加してデモンストレーションとします。 重要なステップは、PDFドキュメントにページ番号を追加することです。 iTextSharpのページイベントを使用してこれを行います。 まず、PDF生成プロセス中に特定のイベントが発生したときに呼び出されるメソッドをオーバーライドするために、PdfPageEventHelperクラスから継承するクラスを定義します。

このクラスでは、現在のページ番号を含む1つのセルを持つテーブルを追加するために、OnEndPage関数をオーバーライドします。 最後に、ドキュメントを閉じる前に、PdfWriterオブジェクトにPageNumberEventHandlerクラスのインスタンスを接続する必要があります。 この設定により、PageNumberEventHandlerクラスのOnEndPage関数は、新しいページがPDFドキュメントに追加されるたびに呼び出され、各ページの下部にページ番号を追加します。 既存のPDFドキュメントを使用してページ番号を追加することもできます。

iTextSharpを使用したC#でPDFにページ番号を追加する方法: 図3 - iTextSharp: ページ番号付き出力済み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 プロジェクトですぐに使用できます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。