フッターコンテンツにスキップ
製品比較

C#でiTextSharpを使用して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 を作成、表示、および編集するために使用する強力な .NET フレームワークです。 IronPDFは、内部でクロミウムエンジンを実行する高度なツールです。 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を使用した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 iText7
Install-Package itext7.pdfhtml
Install-Package iText7
Install-Package itext7.pdfhtml
SHELL

最新バージョンの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");
    }
}
$vbLabelText   $csharpLabel

説明

  1. レンダラーの初期化: HTML から PDF への変換機能を提供する HtmlToPdf のインスタンスを作成します。
  2. HTML コンテンツの定義: PDF に変換する必要のある HTML コンテンツを指定します。
  3. HTML コンテンツのレンダリング: RenderHtmlAsPdf 関数を使用して HTML を PDF ドキュメントに変換します。
  4. フッターの定義: ページ番号は HTML フッターテキスト内のプレースホルダーとして表されます。
  5. フッターを追加して PDF を保存: ドキュメントにフッターを適用し、PDF ファイルとして保存します。

iTextSharpでPDFにページ番号を追加する方法C#: 図 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 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);
        }
    }
}
$vbLabelText   $csharpLabel

説明

  1. PDF ドキュメントの作成: 新しい DocumentPdfWriter を初期化して空の PDF ファイルを生成します。
  2. コンテンツの追加: ドキュメントに段落などの基本コンテンツを追加します。
  3. ページ番号付け: ページ番号を含めるために iTextSharp のイベント ハンドリングを利用します。 カスタム クラスを PdfPageEventHelper から継承して作成します。
  4. OnEndPage をオーバーライド: カスタム クラスで、各ページの下部にページ番号を追加するように OnEndPage メソッドをオーバーライドします。
  5. ドキュメントのクローズ: ドキュメントを閉じて完成させます。

iTextSharpを使用したC#でPDFにページ番号を追加する方法: 図3 - iTextSharp: ページ番号付き出力済みPDF

結論

要約すると、IronPDF の専門性、使いやすさ、および .NET 環境とのシームレスな統合により、HTML から PDF への変換および関連機能を必要とするシナリオにとって最良のオプションとして位置付けられますが、iTextSharp も C# の PDF 操作ライブラリの分野では依然として強力な競争相手です。 IronPDF を使用すれば、最新の開発環境で成功するために必要な簡便さ、効果性、および適応性で、HTML コンテンツから請求書、レポート、および動的に生成されたドキュメントを作成できます。

IronPDF の Lite エディションには、永久ライセンス、アップグレード オプション、および 1 年間のソフトウェア メンテナンスが含まれています。 ウォーターマークのある試用期間は、実際の設定で製品を評価できるようにユーザーに提供されます。 詳しくは、ライセンスページをご覧ください。 Ironソフトウェアに関する詳細は、こちらのウェブサイトをご覧ください。

BRACKET-i-OPEN--iTextSharpは各所有者の登録商標です。 このサイトはiTextSharpと関係がない、または推奨、スポンサーされていません。すべての製品名、ロゴ、およびブランドは、それぞれの所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

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 フレームワークとよく統合されますが、iTextSharp は強力な暗号化とテキスト抽出機能を提供します。

iTextSharp はページ番号を追加するために .NET 10 と互換性がありますか、それとも iText 7 を使用する必要がありますか?

iTextSharp(バージョン5.x)は正式に非推奨となり、メンテナンスモードとなっています。セキュリティ修正のみが提供されますが、新機能のアップデートはありません。.NET 10を直接ターゲットとしていないため、最新の.NETリリースで使用すると互換性の制限が発生する可能性があります。新規プロジェクトや.NET 10へのアップグレードを計画しているプロジェクトには、最新のフレームワークをサポートし、iTextSharpよりも改良されたiText 7(またはiText Core)を強くお勧めします。([itextpdf.com](https://itextpdf.com/products/itextsharp?utm_source=openai))

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

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

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