製品比較

iTextSharpを使用してC#でPDF文書を読む方法:

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

今日のデジタル時代において、ポータブルドキュメントフォーマット(PDF)プラットフォームに依存せず、フォーマットが一貫しているため、ファイルはドキュメント交換の標準となりました。 iTextSharpライブラリは、C#を使用する開発者向けにPDFとシームレスに連携するための強力なライブラリとして登場します。 この記事では、IronPDFを使用してPDFファイルを読み取るプロセスについて学びます。iTextSharpC#における基本的な手順を探求し、この多用途なライブラリの可能性を引き出すための包括的なガイドを提供します。

iTextSharpを使ってC#でPDF文書を読む方法

  1. 開くまたは作成ビジュアルスタジオプロジェクト

  2. iTextSharpライブラリをインストールします。

  3. 必要な名前空間を追加します。

  4. PDFファイルを選択して読み込みます。

  5. PDFリーダーのインスタンスを作成する。

  6. PDF ドキュメントのインスタンスを作成する。

  7. ドキュメントの各ページをループしてテキストを抽出します。

  8. 抽出したテキストをコンソールに表示します。

iTextSharpとは?

iText 7(アイテックス セブン)以前はiTextSharpとして知られていた、強力で多用途なJavaおよび.NETライブラリは、PDFドキュメントからコンテンツを作成、操作、および抽出するためのものです。 それは、テキストや画像の処理、フォームの入力、デジタル署名、および透かし機能を含む包括的な機能セットを提供します。 請求書、レポート、またはインタラクティブフォームを生成する際に、iText 7 は開発者が効率的にPDFを扱うことを可能にします。

PDFファイルの読み取り

C#でPDFファイルを読み取る例についていくつか説明しましょう。 翻訳を始めるには、iTextSharpライブラリをプロジェクトに追加する必要があります。

iTextSharp PDFライブラリのインストール

Visual Studioを使用してC#プロジェクトを開きます。 トップメニューで「ビュー」に移動し、「パッケージ マネージャー コンソール」を選択します。これにより、Visual Studioウィンドウの下部にパッケージ マネージャー コンソールが開きます。

パッケージマネージャーコンソールで、「既定のプロジェクト」ドロップダウンがiTextSharpパッケージをインストールするプロジェクトに設定されていることを確認してください。

以下のコマンドを実行してiTextSharpライブラリをインストールします:

Install-Package itext7

このコマンドは、NuGetパッケージリポジトリからiTextSharpの最新バージョンを取得し、あなたのプロジェクトにインストールします。 インストールプロセスが完了するのを待ちます。 パッケージ マネージャー コンソールには、インストールの進行状況に関する情報が表示されます。

iTextSharpを使ってC#でPDF文書を読む方法::図1 - Visual StudioのNuGetパッケージマネージャーコンソールを使用してiTextSharpをインストールし、次のコマンドを追加します:Install-package itext7.

iTextSharp PDF Readerを使ってPDF文書を読む

この例では、次のPDFドキュメントを入力として使用します。

C#でiTextSharpを使用してPDFドキュメントを読み取る方法:: 図2 - オリジナルPDFドキュメント

始める前に、次の名前空間を追加してください:

using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports System.Text
VB   C#

以下のコードは、上記のPDFファイルを読み取り、内容を抽出し、抽出した内容をコンソールに出力します。

public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
Public Shared Sub Main(ByVal args() As String)
	Dim text As New StringBuilder()
	Dim fileName As String = "D:/What_is_pdf.pdf"
	If File.Exists(fileName) Then
		Using pdfReader As New PdfReader(fileName)
			Using pdfDocument As New PdfDocument(pdfReader)
				Dim page As Integer = 1
				Do While page <= pdfDocument.GetNumberOfPages()
					Dim currentText As String = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page))
					currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)))
					text.Append(currentText)
					page += 1
				Loop
			End Using
		End Using
	End If
	Console.WriteLine(text.ToString())
End Sub
VB   C#

上記のソースコードはPDFファイルを読み込み、各ページのテキストを抽出し、それをUTF-8に変換してからコンソールに全テキスト内容を出力します。 これは、iTextSharpライブラリを使用してC#でPDFファイルからテキストを抽出する基本的な例です。

コードの説明

1. ファイルパスと初期化

コードは、PDFから抽出されたテキストを蓄積するためにtextという名前のStringBuilderを宣言することから始まります。 また、ドキュメントの場所のパスを含む文字列変数 fileName を定義します。 この場合、PDFファイルは「D:/What_is_pdf.pdf」にあります。

ファイル存在チェック

if ステートメント」は、特定の条件がtrueであるかどうかを確認するために使用されます。条件がtrueであれば、ifブロック内のコードが実行されます。例えば:

if (condition) {
    // 条件がtrueの場合、このコードが実行されます
}
if (condition) {
    // 条件がtrueの場合、このコードが実行されます
}
If condition Then
	' 条件がtrueの場合、このコードが実行されます
End If
VB   C#

IronPDFを使用すると、C#で簡単にPDFの読み取りや生成ができます。IronOCRはOCR機能を提供し、画像やPDFからテキストを抽出するのに役立ちます。さらに、IronXLはExcelファイルの操作を簡単にし、IronBarcodeはバーコードの生成と読み取りを可能にします。

Iron Softwareの製品はすべて、開発者が高品質なアプリケーションを迅速に構築するのに役立つツールです。(File.Exists(ファイルネーム))指定されたファイルが存在するかどうかを確認する条件。 ファイルが存在する場合、次のコードブロックが実行されます。

3. PDFドキュメント処理

if ブロック内で、PdfReader オブジェクトを使用してPDFファイルを開きます。 次に、PdfReader を使用して PdfDocument ファイルインスタンスを作成します。 forループはPDFドキュメントの各ページを順に処理します。

4.PDFファイルからのテキスト抽出

各PDFページごとに、クラス PdfTextExtractorGetTextFromPage を使用してテキストコンテンツを抽出します。(pdfDocument.GetPage(ページ))** メソッド 抽出されたテキストは最初にデフォルトのエンコーディングでエンコードされます。

それからテキストをデフォルトのエンコーディングからUTF-8に変換します。Encoding.UTF8.GetStringを使用します。(ASCIIEncoding.Convert(Encoding.Default、Encoding.UTF8、Encoding.Default.GetBytes(現在のテキスト))). 変換されたテキストは、テキスト文字列に追加されます。

蓄積されたテキストの表示

最後に、Console.WriteLineを使って蓄積されたテキストを出力します。()** メソッド

出力

抽出されたPDFテキスト出力は以下の通りです:

iTextSharpを使ってC#でPDF文書を読む方法::図3 - コンソール出力:iTextSharpを使用してPDF文書「What_is_pdf.pdf」からテキストを抽出し、コンソールにプレーンテキストとして表示する。

この方法では、PDFファイルの内容を読み取ることができます。この方法は複雑で、複数のインスタンスが作成されるため効率が悪い。 よりユーザーフレンドリーで効率的な別の方法を探ってみましょう。

IronPDFの紹介

IronPDFの機能と利点について多様で効率的なC#ライブラリであり、これを簡素化し、強化するために設計されました。プログラムによるPDFの作成, PDF編集、およびPDFドキュメントのレンダリング.NETアプリケーション内で。 IronPDFは、開発者が使いやすさと豊富な機能に重点を置いて、PDF関連の機能をプロジェクトにシームレスに統合できるようにします。 ライブラリは、ゼロからPDF文書を作成することや、PDFの変換を含む幅広いPDF操作をサポートしています。HTMLコンテンツをPDFへ、「および」PDFからのテキストと画像の抽出既存のPDFファイルから。 IronPDFの直感的なAPIは、開発者にわかりやすい体験を提供し、動的でインタラクティブなPDFを簡単に生成できるようにします。 透かしの追加、注釈の追加、またはドキュメントの暗号化など、IronPDFは開発者がPDFを特定の要件に合わせてカスタマイズできるようにします。 信頼性のあるソリューションとして、IronPDFはレポート生成やドキュメント管理からウェブ開発に至るまで、.NET環境でのPDF関連タスクを効率化するための包括的なツールセットを提供します。

IronPDFライブラリのインストール

Visual Studio のパッケージ マネージャー コンソールを使用する

次のコマンドを使用して、NuGetパッケージマネージャーコンソールからプロジェクトにIronPDFをダウンロードします。

Install-Package IronPdf

このコマンドは、 をダウンロードしてインストールしますIronPDF NuGetパッケージ、その依存関係と共にあなたのプロジェクトに追加します。

iTextSharpを使ってC#でPDFドキュメントを読む方法::図4 - NuGet Package Managerコンソールを使用してIronPDFライブラリをインストールし、以下のコマンドを入力します:Install-package IronPDF を入力してください。

ソリューションのためにNuGetパッケージを管理する

NuGetのブラウズタブで「IronPDF」ライブラリを検索し、インストールをクリックします。

iTextSharpを使ってC#でPDFドキュメントを読む方法::図5 - NuGet Package Managerの検索バーで IronPDF を検索し、プロジェクトを選択してインストールボタンをクリックして、ソリューションのNuGetパッケージの管理を使用してIronPDFをインストールします。

IronPDFを使用してPDFファイルを読み取る

では、同じPDFファイルをIronPDF 総合ガイド. 以下のコードは、入力されたPDFドキュメントからテキストを抽出します。

using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
    string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
    string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
Imports IronPdf
Public Shared Sub Main(ByVal args() As String)
	Dim pdfDocument = PdfDocument.FromFile("D:/What_is_pdf.pdf")
	Dim text As String = pdfDocument.ExtractAllText()
	Console.WriteLine(text)
End Sub
VB   C#

上記のコードは、"What_is_pdf.pdf "という名前のPDFファイルを読み込み、そこからすべてのテキストコンテンツを抽出し、抽出されたテキストをコンソールに表示します。

コードの説明

PDFドキュメントの読み込み

そのコードは「What_is_pdf.pdf」という名前のファイルからPDFドキュメントを読み込むことから始まります。 それは PdfDocument.FromFile を使用します。()指定されたファイルから PdfDocument オブジェクトを作成するための **方法。

全テキストを抽出

次に、読み込んだPDFドキュメントからすべてのテキストコンテンツを抽出します。 以下の内容を日本語に翻訳してください:

string allText = pdfDocument.ExtractAllText();
```()** メソッドは、PDF全体のテキストを単一の文字列として返します。

#### 抽出されたテキストの表示

最後に、抽出されたテキストが **text** 変数に保存されます。 コードは**Console.WriteLine**を使用して抽出されたテキストをコンソールに出力します(テキスト)** メソッド

### 出力

![iTextSharpを使ってC#でPDF文書を読む方法::図6 - コンソール出力:IronPDFを使ってPDFドキュメント "What_is_pdf.pdf "からテキストを抽出し、プレーンテキストとしてコンソールに表示する。](/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-6.webp)

**IronPDF**はまた、PDFファイルからページごとにテキストを抽出する方法を提供します。

### PDFファイルをページごとに読み込む

以下のコードは、IronPDFを使用してPDFドキュメントをページごとに読み取ります。

```cs
using IronPdf;
public static void Main(string [] args)
{
    StringBuilder sb = new StringBuilder();
    using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
    for (int index = 0; index < pdf.PageCount; index++)
    {
        sb.Append (pdf.ExtractTextFromPage(index));
    }
    Console.WriteLine(sb.ToString());
}
string allText = pdfDocument.ExtractAllText();
```()** メソッドは、PDF全体のテキストを単一の文字列として返します。

#### 抽出されたテキストの表示

最後に、抽出されたテキストが **text** 変数に保存されます。 コードは**Console.WriteLine**を使用して抽出されたテキストをコンソールに出力します(テキスト)** メソッド

### 出力

![iTextSharpを使ってC#でPDF文書を読む方法::図6 - コンソール出力:IronPDFを使ってPDFドキュメント "What_is_pdf.pdf "からテキストを抽出し、プレーンテキストとしてコンソールに表示する。](/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-6.webp)

**IronPDF**はまた、PDFファイルからページごとにテキストを抽出する方法を提供します。

### PDFファイルをページごとに読み込む

以下のコードは、IronPDFを使用してPDFドキュメントをページごとに読み取ります。

```cs
using IronPdf;
public static void Main(string [] args)
{
    StringBuilder sb = new StringBuilder();
    using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
    for (int index = 0; index < pdf.PageCount; index++)
    {
        sb.Append (pdf.ExtractTextFromPage(index));
    }
    Console.WriteLine(sb.ToString());
}
Private allText As String = pdfDocument.ExtractAllText()
#### 抽出されたテキストの表示
### 出力
### PDFファイルをページごとに読み込む
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
```()** メソッドは、PDF全体のテキストを単一の文字列として返します。 最後に、抽出されたテキストが **text** 変数に保存されます。 コードは**AddressOf Console.WriteLine**を使用して抽出されたテキストをコンソールに出力します(テキスト)** メソッド (Not (iTextSharpを使ってC#でPDF文書を読む方法::図6 - コンソール出力:IronPDFを使ってPDFドキュメント "What_is_pdf.pdf "からテキストを抽出し、プレーンテキストとしてコンソールに表示する。)(/static-assets/pdf/blog/itextsharp-pdf-reader/itextsharp-pdf-reader-6.webp)) **IronPDF**はまた、PDFファイルからページごとにテキストを抽出する方法を提供します。 以下のコードは、IronPDFを使用してPDFドキュメントをページごとに読み取ります。 ```cs using IronPdf
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'public static void Main(string [] args)
'{
'	StringBuilder sb = New StringBuilder();
'	using PdfDocument pdf = PdfDocument.FromFile("D:/What_is_pdf.pdf");
'	for (int index = 0; index < pdf.PageCount; index++)
'	{
'		sb.Append(pdf.ExtractTextFromPage(index));
'	}
'	Console.WriteLine(sb.ToString());
'}
VB   C#

上記のコードは、「What_is_pdf.pdf」という名前のPDFファイルを読み込み、各ページからテキストコンテンツを抽出し、結合されたテキストをコンソールに出力します。

コードの説明

初期化とPDFの読み込み

PDFから抽出されたテキストを蓄積するために、sbという名前のStringBuilderが作成されます。 using ステートメントは、リソースの適切な破棄を保証します。 PdfDocument オブジェクト名 PDF が PdfDocument.FromFile メソッドを使用して "D:/What_is_pdf.pdf" のパスから PDF ファイルを読み込むことで作成されます。

ページからのテキスト抽出

forループは、読み込まれたPDFドキュメントの各ページを繰り返し処理します。 ページごとに(インデックス化されたインデックスによる)テキストコンテンツを抽出するには、pdf.ExtractTextFromPage を使用します。(インデックス). 抽出されたテキストは、sb.Appendを使用してStringBuilderに追加されます。().

累積テキストの表示

最終的に、蓄積されたテキストは sb.ToString を使用して単一の文字列に変換されます。(). 抽出されたテキスト全体が Console.WriteLine を使用してコンソールに出力されます。()** メソッド

結論

結論として、C#でPDFを操作するには、バイト配列、ドキュメント情報ディクショナリ、クロスリファレンステーブル、新しいファイルインスタンス、および静的バイトなどの基本的な要素を理解することが要求されます。 以下のコードでは、iTextSharpを使用した最初の例は機能的なアプローチを示し、IronPDFを使用した2番目の例はより簡単で効率的な方法を提供します。 IronPDF使いやすいAPIにより、相互参照表、ページ辞書、間接参照などの作業が簡素化されます。 ドキュメント情報のxrefのみを扱う場合でも、セキュアなPDFのためのプライベートキーの側面を扱う場合でも、IronPDFは多用途のソリューションです。

開発者は, 探索することを求めてIronPDFライセンス情報. 顧客満足はIronPDFの提供するサービスの最前線にあり、開発者がPDF関連の作業で価値と効率を見出せるようにしています。これにより、信頼性が高く多機能なPDFライブラリを探している方にとって、魅力的な選択肢となっています。

IronPDFの使い方については、こちらをご参照ください。IronPDF ドキュメントリンク。

< 以前
iTextSharpを使用してC#でPDFにページ番号を追加する方法
次へ >
iTextSharp 読み取りPDF代替(開発者チュートリアル)