製品比較

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

公開済み 2024年4月3日
共有:

イントロダクション

「Portable Document Format」、またはPDFは、Adobeによって作成されたファイル形式です。 PDFは、文書や写真の形式を整える必要がある論文を提示するときに便利です。 現在の世界では、PDFファイルは必需品となっており、あらゆる企業分野で文書の作成や請求書発行に利用されています。 PDFライブラリが多数市場に出ているおかげで、PDFの作成はほぼ直感的になりました。プロジェクトで使用する前に、それぞれの利点と特徴を比較し、適切なPDFライブラリを選ぶことが重要です。

この記事では、iTextSharp C#を使用してPDFにページ番号を追加する方法を紹介します。 また、###を比較します iTextSharp(アイテックシャープ)と一緒にIronPDF.

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

  1. 任意のIDEを使用して、新しいC#プロジェクトを作成します。

  2. 新しいPDFオブジェクトを作成します。

  3. HTMLフッターにページ番号を追加します。

  4. HTML素材からPDFを作成します。

  5. PDFファイルをコンピューターに保存します。

IronPDFとは

IronPDFは、開発者が簡単にPDFを作成、表示、編集するために使用する強力なPDF .NETフレームワークです。 IronPDFは、内部でクロムエンジンを使用して稼働する高度なツールです。 HTML5、JavaScript、CSS、および画像ファイルをPDFに変換し、カスタムヘッダーおよびフッターを追加し、ブラウザで表示される通りにPDFを正確に生成できます。 IronPDFは、多くのオンラインおよびネットフォーマット(HTML、ASPX、Razor View、MVCなど)をサポートしています。

IronPDFの機能

  • .NET C#コードを利用して、PDFファイルを作成、読み取り、および簡単に編集する。
  • ユーザーエージェント、プロキシ、クッキー、HTTPヘッダー、およびフォーム変数を管理し、HTMLログインフォームを使用してログインを有効にするために、ウェブサイトURLリンクからPDFを作成するプロセス。
  • 既存のPDFファイルから画像を削除するプロセス。
  • PDFの要素の含有:テーブル、テキスト、写真、ブックマーク、ウォーターマーク、ヘッダー、フッター、その他。
  • 多数のPDFドキュメントのページを簡単に分離および結合する能力。

    IronPDFのドキュメントについて詳しく知るには、参照してください[以下の内容を日本語に翻訳します:

ここに

ご希望のイディオムや技術用語が追加されることによって、より適切な翻訳が提供できる場合もありますので、詳細なコンテキストを教えていただけると幸いです。](/docs/).

IronPDFのインストール

Visual Studio ツール内で、NuGet パッケージ マネージャーを選択し、ツールの下にある Visual コマンドライン インターフェイスを見つけることができます。 以下のコマンドをパッケージ管理ターミナルタブに入力してください。

Install-Package IronPdf

または、パッケージマネージャーの方法を使用することもできます。 パッケージを直接ソリューションにインストールするには、Visual StudioのNuGetパッケージマネージャーオプションを使用できます。 NuGetサイト上でパッケージを検索するための検索ボックスが利用可能です。以下のスクリーンショットに示されているように、パッケージマネージャで「IronPDF」を検索するだけで済みます。

PDFにページ番号を追加する方法(C#でiTextSharpを使用):図1 - パッケージマネージャーからIronPDFをインストールする

上記の画像には関連する検索結果の一覧が表示されています。 パッケージをシステムにインストールするために、必要な選択を行ってください。

パッケージのダウンロードとインストールが完了したので、現在のプロジェクトで利用できます。

iTextSharpとは何ですか

**テキストシャープは、C#でPDFドキュメントを生成および修正するための柔軟なライブラリです。 それは暗号化、PDF結合、テキストおよび画像の抽出など、いくつかの機能を提供します。 iTextSharpは、PDFにページ番号を追加するなど、さまざまなタスクに効率的に対応できるツールです。

iTextSharpの機能

  • PDFドキュメントを生成するためのAPIは、iTextライブラリを通じて利用可能です。
  • HTMLおよびXML文字列は、iTextプログラムを使用してPDFファイルに変換することができます。
  • iTextライブラリを使用して、PDFドキュメントにブックマーク、ページ番号、およびマーカーを追加できます。
  • iTextライブラリを使用して、PDFドキュメントを複数のPDFに分割したり、複数のPDFドキュメントを1つのPDFに結合することもできます。
  • iTextを使用してPDFフォームを変更できます。

iTextSharpをインストールする

NuGetパッケージマネージャーを使用してiTextを探します。 iText7およびiText.pdfhtmlは、iTextの機能が多くのパッケージに分かれているため、インストールが必要です。

ビジュアルコマンドラインインターフェースを選択する場合、以下のパッケージをインストールする必要があります:

Install-Package iTextSharp

最新バージョンであるiText 7を、私たちのソリューションで使用しています。

IronPDFを使用してページ番号を追加

PDFファイルにページ番号を追加することは、IronPDFの包括的なライブラリを使用することで簡単になります。 例として、以下のコードをご覧ください。

using IronPdf;
static void main(string [] args)
{ 
    var renderer = new IronPdf.HtmlToPdf();
    private string header = "<h1>Hello Ironpdf!<h1>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
    HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
    {
        HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
    };
    // Add footer
    pdf.AddHtmlFooters(htmlFooter);
    pdf.SaveAs("output.pdf");
}
using IronPdf;
static void main(string [] args)
{ 
    var renderer = new IronPdf.HtmlToPdf();
    private string header = "<h1>Hello Ironpdf!<h1>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
    HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
    {
        HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
    };
    // Add footer
    pdf.AddHtmlFooters(htmlFooter);
    pdf.SaveAs("output.pdf");
}
Imports IronPdf
Shared Sub main(ByVal args() As String)
	Dim renderer = New IronPdf.HtmlToPdf()
	private String header = "<h1>Hello Ironpdf!<h1>"
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
	Dim htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}
	' Add footer
	pdf.AddHtmlFooters(htmlFooter)
	pdf.SaveAs("output.pdf")
End Sub
VB   C#

まず、PDFに変換する必要があるHTMLテキストを定義します。 このHTMLコンテンツは、単一のHTML段落または全体のHTMLページで構成される場合があります。 次に、HTMLからPDFへの変換機能RenderHtmlAsPdfを提供するHTMLToPdfクラスのインスタンスを作成します。

HTMLコンテンツはRenderHtmlAsPdf関数への引数として渡されます。 PDFに変換する必要があるHTML素材を指定します。 ページ番号はプレースホルダーとして表されます、または**_{ページ}以下の内容を日本語に翻訳してください:

{総ページ数}フッタ部分のこのHTMLテキストに_** _を挿入してください。

このメソッドによって作成されたPDFドキュメントは、PdfDocumentオブジェクトとして返されます。 SaveAs メソッドを使用して、PDF ドキュメントを「output.pdf」という名前のファイルに保存します。 または、OpenInDefaultPDFViewer関数を使用して、作成されたPDFドキュメントをシステムのデフォルトのPDFリーダーで開くことができます。 また、上記の方法を使用して既存のPDFファイルにページ番号を追加することもできます。

iTextSharpを使用してPDFにページ番号を追加する方法 (C# 使用): 図2 - IronPDF: ページ番号付き出力PDF

IronPDFのコードについて詳しく知るには、次を参照してください[以下の内容を日本語に翻訳します:

ここに

ご希望のイディオムや技術用語が追加されることによって、より適切な翻訳が提供できる場合もありますので、詳細なコンテキストを教えていただけると幸いです。](/examples/using-html-to-create-a-pdf/).

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(document, new FileStream("output.pdf", FileMode.Create));
            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);
            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);
            table.WriteSelectedRows(0, -1, 150, 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(document, new FileStream("output.pdf", FileMode.Create));
            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);
            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);
            table.WriteSelectedRows(0, -1, 150, 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(document, New FileStream("output.pdf", FileMode.Create))
			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)
			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)
			table.WriteSelectedRows(0, -1, 150, 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
VB   C#

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

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

C#でiTextSharpを使用してPDFにページ番号を追加する方法: 図3 - iTextSharp: ページ番号が付いた出力されたPDF

結論

まとめると、IronPDF「HTMLからPDFへの変換および関連機能を必要とするシナリオにおいて、その専門性、使いやすさ、および.NET環境とのシームレスな統合により、iTextSharpが未だにC#のPDF操作ライブラリの分野で強力な競争相手であるにもかかわらず、最良のオプションとして位置づけられます。」 IronPDFを使用すると、最新の開発環境で成功するために必要な容易さ、効果的な操作、そして柔軟性を持って、HTMLコンテンツから請求書、レポート、動的に生成された文書を作成することができます。

IronPDFの$749 Liteエディションには、永久ライセンス、アップグレードオプション、そして1年間のソフトウェアメンテナンスが含まれています。 透かし入りの試用期間により、ユーザーは実際の環境で製品を評価することができます。 ライセンス訪問ページ. こちらへ移動ウェブサイトIron Softwareについて詳しく知るために。

< 以前
C#レポート作成ツール(機能比較)
次へ >
iTextSharpを使用してC#でPDF文書を読む方法: