メインコンテンツへスキップ
このシナリオでは、ABBYY FineReader Engine を使用してバーコードを読み取ります。バーコードの読み取りは、たとえば文書の自動仕分け、Document Management System による文書処理、文書のインデックス作成や分類のために必要になる場合があります。 このシナリオは、他のシナリオの一部として使用することもできます。たとえば、高速プロダクションスキャナーでスキャンした文書をバーコードで仕分けしたり、長期保管用に準備した文書を、バーコード値に基づいてアーカイブ用の Document Management System に格納したりできます。 文書からバーコードを抽出する際、システムはすべてのバーコードを検出することも、特定の種類かつ特定の値を持つバーコードのみを検出することもできます。また、バーコードの値を取得して、そのチェックサムを計算することもできます。バーコード認識で最高の速度と品質を得るには、次の点に注意してください。
  1. 最適な解像度である 300 dpi のカラー画像を使用します。
  2. プロファイルを使用して認識速度を調整します (詳細は Working with Profiles を参照してください) 。
認識したバーコード値は、後続の処理に最も適した形式で保存できます。たとえば、TXT に保存できます。

シナリオの実装

このトピックで提供されるコードサンプルは、Windows 固有です。
以下では、このシナリオで ABBYY FineReader Engine 12 を使用する推奨方法について詳しく説明します。ここで推奨する方法では、このシナリオに最も適していると考えられる処理設定を使用します。
ABBYY FineReader Engine を使用するには、まず Engine オブジェクトを作成する必要があります。Engine オブジェクトは ABBYY FineReader Engine のオブジェクト階層における最上位のオブジェクトであり、各種グローバル設定、一部の処理メソッド、およびその他のオブジェクトを作成するためのメソッドを提供します。Engineオブジェクトを作成するには、InitializeEngine関数を使用します。Engineオブジェクトを読み込む他の方法 (Win) も参照してください。

C#

C++ (COM)

このシナリオに最適な設定は、Engine オブジェクトの LoadPredefinedProfile メソッドを使用して選択できます。このメソッドは、使用する設定プロファイル名を入力パラメーターとして受け取ります。プロファイルの詳細については、Working with Profiles を参照してください。ABBYY FineReader Engine は、このシナリオ向けに 2 種類の設定をサポートしています。
プロファイル名説明
BarcodeRecognition_Accuracyバーコードのみを抽出します (テキスト、画像、表は検出されません)。この設定は精度重視で最適化されています。
このプロファイルを使用するには、ライセンスで Barcode Autolocation モジュールを利用可能にしておく必要があります。
BarcodeRecognition_Speedバーコードのみを抽出します (テキスト、画像、表は検出されません)。この設定は処理速度重視で最適化されています。
このプロファイルを使用するには、ライセンスで Barcode Autolocation モジュールを利用可能にしておく必要があります。

C#

C++ (COM)

処理に使用する設定を変更する場合は、対応する Parameter オブジェクトを使用してください。詳細については、以下の 追加の最適化 セクションを参照してください。
ABBYY FineReader Engine には、複数ページの文書を処理するための FRDocument オブジェクトが用意されています。文書の画像を読み込んで前処理するには、FRDocument オブジェクトを作成し、そこに画像を追加する必要があります。方法は次のいずれかです。
  • Engine オブジェクトの CreateFRDocumentFromImage メソッドを使用して、FRDocument オブジェクトを作成します。このメソッドは、FRDocument オブジェクトを作成し、指定されたファイルから画像を読み込みます。
  • Engine オブジェクトの CreateFRDocument メソッドを使用して FRDocument オブジェクトを作成し、その後、ファイルから作成した FRDocument オブジェクトに画像を追加します (FRDocument オブジェクトの AddImageFileAddImageFileWithPassword、または AddImageFileWithPasswordCallback メソッドを使用します)。

C#

C++ (COM)

BarcodeRecognition プロファイルが読み込まれている場合は、FRDocument オブジェクトの Process メソッドを使用して、バーコードだけを抽出できます。この場合、ABBYY FineReader Engine が検出するのはバーコードを含むブロックのみで、その他のブロックは検出されません。認識されたバーコードブロックには、文書のページを表す FRPage オブジェクトのサブオブジェクトである Layout オブジェクトからアクセスできます。特定の種類のバーコードを読み取るには、BarcodeParams オブジェクトで適切なパラメーターを指定し、上記のいずれかの関数に BarcodeParams オブジェクトをパラメーターとして渡します。

C#

C++ (COM)

認識されたバーコードの値をファイルに保存するには、FRDocument オブジェクトの Export メソッドを使用し、FileExportFormatEnum 定数をパラメーターの 1 つとして指定します。このシナリオでは、たとえば TXT 形式にエクスポートできます。対応するエクスポートオブジェクトを使用して、エクスポートの既定のパラメーターを変更することもできます。詳細については、以下の 特定のタスク向けの追加最適化 を参照してください。FRDocument オブジェクトの使用が完了したら、このオブジェクトで使用していたすべてのリソースを解放してください。IFRDocument::Close メソッドを使用します。

C#

C++ (COM)

ABBYY FineReader Engine での作業が完了したら、Engine オブジェクトをアンロードする必要があります。これを行うには、エクスポート関数 DeinitializeEngine を使用します。

C#

C++ (COM)

必要なリソース

FREngineDistribution.csv ファイルを使用すると、アプリケーションの動作に必要なファイルの一覧を自動的に作成できます。このシナリオで処理を行う場合は、列 5 (RequiredByModule) で次の値を選択してください。 Core Core.Resources Opening Opening, Processing Processing Processing.OCR Processing.OCR, Processing.ICR Processing.OCR.NaturalLanguages Processing.OCR.NaturalLanguages, Processing.ICR.NaturalLanguages Export Export, Processing 標準シナリオを変更する場合は、それに応じて必要なモジュールも変更してください。また、インターフェイス言語、認識言語、およびアプリケーションで使用する追加機能も指定する必要があります (たとえば、PDF ファイルを開く必要がある場合は Opening.PDF、CJK languages のテキストを認識する必要がある場合は Processing.OCR.CJK など) 。詳細については、Working with the FREngineDistribution.csv File を参照してください。

追加の最適化

以下は、各処理段階のパラメーター設定に関する追加情報を参照できるヘルプファイル内のセクションです。
  • バーコードの抽出と読み取り
    • BarcodeParams オブジェクト
      このオブジェクトでは、バーコードの解析および読み取りのパラメーターを設定できます。
    • バーコードの認識
      バーコード認識における特殊なケースを説明し、バーコードを扱う際のヒントを紹介します。
    • バーコードの種類
      ABBYY FineReader Engine 12 でサポートされているバーコードの一覧と、その簡単な説明です。
    • FRDocument オブジェクト
      バーコードの値以外にも、文書に含まれるほかの情報を抽出する必要がある場合があります。その場合は、FRDocument オブジェクトのメソッドを使用できます。
    • PageProcessingParams オブジェクト
      このオブジェクトでは、文書全体に対する解析および認識のパラメーターを設定できます。このオブジェクトを使用すると、バーコードの値を認識するかどうかを指定できます。バーコード読み取りのパラメーターには、PageAnalysisParams サブオブジェクトの BarcodeParams プロパティおよび DetectBarcodes プロパティからアクセスできます。
    • Layout と Blocks の操作
      バーコードブロックを手動でマークし、その解析および読み取りのパラメーターを指定することもできます。このセクションでは、ブロックの操作について詳しく説明します。
  • 認識されたバーコード値の操作
    • BarcodeBlock オブジェクト
      このオブジェクトの Text プロパティおよび BarcodeText プロパティには、認識によって取得されたバーコードの値が格納されます。このオブジェクトのその他のプロパティを使用すると、バーコードの種類、向き、その他のパラメーターを取得できます。
  • エクスポート

関連項目

基本的な使用シナリオの実装