C#でスキャンしたPDFからテキストを抽出する方法

このステップバイステップのチュートリアルでは、C#でスキャンしたPDFからテキストを抽出する方法を示します。ドキュメントをスキャンしてPDFにすると、それらのページはスキャンされた画像としてPDFファイル内に追加されます。したがって、スキャンしたPDFファイルからテキストを抽出するには、実際には、光学式文字認識(OCR)を適用してC#でPDFの画像からテキストを抽出する必要があります。

C#でスキャンしたPDFからテキストを抽出する手順

  1. NuGet.orgパッケージマネージャーからAspose.OCR for .NETを取得します
  2. Aspose.OCR namespaceへの参照を追加します
  3. SetLicenseメソッドを使用してライセンスコードを適用する
  4. AsposeOcrクラスのインスタンスを開始します
  5. DocumentRecognitionSettings classを使用して認識設定を指定します
  6. RecognizePDFメソッドを使用してすべてのPDFページを抽出します
  7. RecognitionTextプロパティを使用して各PDFページからテキストを取得します

上記の手順を使用すると、C#でスキャンしたPDFからテキストをすばやく簡単に読み取ることができます。以前、C#で画像からテキストを抽出するの方法を説明しました。ただし、この例は、C#でPDFからテキストを取得するのに役立ちます。

C#でスキャンしたPDFからテキストを抽出するコード

using System;
using System.Collections.Generic;
//Use following namespace to extract text from scanned PDF
using Aspose.OCR;
namespace ExtractTextFromScannedPDFFile
{
class Program
{
static void Main(string[] args)
{
//Set license before extracting text from scanned PDF file
Aspose.OCR.License AsposeOCRLicense = new Aspose.OCR.License();
AsposeOCRLicense.SetLicense(@"c:\asposelicense\license.lic");
//create AsposeOcr object
AsposeOcr ScannedPDFFile = new AsposeOcr();
//set recognition settings
DocumentRecognitionSettings RecognitionSettings = new DocumentRecognitionSettings();
RecognitionSettings.StartPage = 1;
RecognitionSettings.PagesNumber = 3;
//when set true, improves accuracy but reduces speed
RecognitionSettings.DetectAreas = false;
//extract text from specified pages
List<RecognitionResult> ExtractedResults = ScannedPDFFile.RecognizePdf("InputScannedPDFFile.pdf", RecognitionSettings);
//fetch extracted text of each page
int PageCounter = 1;
foreach(RecognitionResult SinglePage in ExtractedResults)
{
Console.WriteLine("Page: {0}, Extracted Text:{1}", PageCounter, SinglePage.RecognitionText);
PageCounter++;
}
}
}
}

上記のC#のPDFからのテキストの取得例は、シンプルで理解しやすいものです。スキャンしたPDFファイルを読み取り、各ページからテキストを抽出するだけです。ただし、ここで理解しておくべき重要なポイントの1つは、DetectAreaプロパティです。 trueに設定すると、精度は向上しますが、PDFの処理速度は低下します。ただし、falseに設定すると、速度が向上し、精度が少し低下する場合があります。したがって、状況に基づいて2つのオプションから選択する必要があります。

 日本語