メインコンテンツへスキップ

ライセンスと配布

ABBYY FineReader Engine 12 には、配布用の専用インストール ユーティリティが用意されています。このユーティリティを使用すると、コマンド ラインから自動モードでワークステーションに ABBYY FineReader Engine ライブラリをインストールできます。必要なファイルをコピーして、ライブラリを手動でインストールすることもできます。詳細は、ABBYY FineReader Engine ライブラリを使用するアプリケーションの配布を参照してください。
1 つのプロジェクト内のすべてのライセンスは、ライブラリを初期化する関数で必要となる同じ Customer Project ID を共有します。エンド ユーザーの Runtime License とソフトウェア開発者の Developer License は、これらの関数に渡す Customer Project ID に対応している必要があります。関連情報については、ABBYY FineReader Engine ライブラリを使用するアプリケーションの配布も参照してください。
ワークステーションでは Runtime License をアクティブ化する必要があります。詳細は、Runtime License を使用した ABBYY FineReader Engine ライブラリのアクティブ化を参照してください。
  • アプリケーションで使用するモジュールの動作に必要なファイル。
  • ABBYY FineReader Engine Distribution Kit セクションの表で「mandatory」と記載されているファイル。これらはシステム モジュールと主要な認識データベースです。
  • 必要に応じて、手書き文字/handprinted テキスト用の認識データベース。
  • アプリケーションで使用するインターフェイス言語のリソース ファイル。
  • アプリケーションがサポートする認識言語用の Dictionary サポート ファイル。認識言語にラテン アルファベットを使用する言語が含まれている場合は、Univers.amd ファイルと Univers.amm ファイルを必ずコピーしてください。
  • アプリケーションが ABBYY FineReader Engine インターフェイス経由でスキャンを実行する場合は、Windows スキャン モジュール、スキャン固有のリソース、および Twain モジュール。
  • アプリケーションで ABBYY FineReader Engine Visual Components を使用する場合は、Windows Visual Components モジュールと対応する固有のリソース。regsvr32.exe を使用して VisualComponents_dll を登録してください。
FREngineDistribution.csv ファイルを使用して、アプリケーションの動作に必要なファイルの一覧を自動的に作成することもできます。参照:
いいえ、必要ありません。また、権限のないユーザーによる変更を防ぐために、‘Everyone’ へのフル アクセスを制限するのは適切です。‘Everyone’ group には ‘Read’ アクセスだけあれば十分です。
次のフォルダーにはフル コントロールのアクセス許可が必要です。
  • %TEMP% フォルダー
  • フォルダー %ProgramData%\ABBYY\SDK\12\FineReader Engine
  • フォルダー %ProgramData%\ABBYY\SDK\12\Licenses (license server では必須、ワークステーションでは任意)
アプリケーションを実行するすべてのユーザーには、次の対象への read&execute 権限および書き込み権限が必要です。
  • %ProgramData%\ABBYY フォルダー。
次のレジストリ ブランチは、ワークステーションからアクセスできる必要があります。
  • “HKEY_CURRENT_USER\Software\ABBYY\SDK\12\FineReader Engine” — フル コントロール
  • “HKEY_CURRENT_USER\Software\ABBYY\SDK\12” — インストール時のみフル コントロール
  • “HKEY_LOCAL_MACHINE\Software\ABBYY\SDK\12” — インストール時のみフル コントロール
詳細は、ABBYY FineReader Engine ライブラリのインストールを参照してください。
Runtime License が、アプリケーションのコンパイル時に使用した Customer Project ID に対応していることを確認してください。ライセンスが Customer Project ID と一致しない場合、アプリケーションは動作しません。Customer Project ID は、FineReader Engine を読み込むメソッドに入力パラメーターの 1 つとして渡されます。これらのメソッドで使用している Customer Project ID が正しいことを確認してください。関連情報: LicensingABBYY FineReader Engine ライブラリを使用するアプリケーションの配布
次のコマンドで、フォルダー %ProgramData%\ABBYY\SDK\12\Licenses に付与されている権限を確認してください。
ls -l /var/lib/ABBYY/SDK/12 | grep Licenses
chmod 777 /var/lib/ABBYY/SDK/12/Licenses
コマンドの実行結果が drwxrwxrwx 以外の場合は、フォルダー %ProgramData%\ABBYY\SDK\12\Licenses に必要な権限の一部が不足しています。フォルダー %ProgramData%\ABBYY\SDK\12\Licenses にフルアクセス権を付与するには、次のコマンドを実行してください。
IFRDocument::Process などの処理メソッドを使用するには、Processing モジュールを含むライセンスが必要です。ライセンスでこれがサポートされていない場合は、バーコードのみ認識できます。その場合は、IFRPage::ExtractBarcodes メソッドを使用してください。
IFRDocument::Process などの処理メソッドを使用するには、Processing モジュールを含むライセンスが必要です。ライセンスでこれがサポートされていない場合でも、他のメソッドを使ってバーコードやチェックマークを認識できます。
Docker コンテナーで ABBYY FineReader Engine を実行するには、ABBYY FineReader Engine と Licensing Service をそれぞれ含む 2 つの別個のコンテナーを使用します。このシナリオの手順については、Docker コンテナー内で ABBYY FineReader Engine 12 を実行する を参照してください。
ABBYY FineReader Engine ベースのアプリケーションは、Azure Cloud Service または Azure App Service で実行できます。Azure Services で ABBYY FineReader Engine を実行する の手順を参照してください。
画像関連の質問
画像品質を改善する ImageDocument オブジェクトのメソッドを使用してください。これらのメソッドでは、処理対象の画像領域を選択できます。
ABBYY FineReader Engine には、画像解像度を補正する方法がいくつかあります。
  1. 画像を開いた後に、ImageDocument オブジェクトの ChangeResolution メソッドを使用する方法。
    最適な解像度を判定するには、FRPage オブジェクトの DetectResolution メソッドを使用できます。
  2. 画像の前処理段階で補正する方法 (既定では、画像の完全処理を実行する各メソッドの呼び出しに含まれます) 。これは、PagePreprocessingParams オブジェクトの OverwriteResolutionMode プロパティで制御します。解像度は自動的に補正することも、ResolutionToOverwrite プロパティで指定した値に設定することもできます。
コンピューター画面をキャプチャして取得した画像には、テキスト抽出用の設定を使用することをお勧めします。Engine オブジェクトの LoadPredefinedProfile メソッドを呼び出して、定義済みプロファイルのいずれかを読み込みます。
  • TextExtraction_Accuracy — 文書からのテキスト抽出用で、精度重視
  • TextExtraction_Speed — 文書からのテキスト抽出用で、速度重視
スクリーンショットから取得した画像の解像度は、72 または 96 dpi (画面解像度に応じて) に設定する必要があります。
これらの推奨事項は、オペレーティングシステムまたはコンピューター上で動作するソフトウェアを使って作成されたデジタル画像に関するものです。別のデバイス (つまりカメラ) で撮影した画面写真の解像度は、200~300 dpi にする必要があります。
関連情報: プロファイルの操作.

Engine オブジェクト の使用

初期化に InitializeEngine 関数を使用する場合は、アプリケーションのメイン関数に属性として [STAThread] (シングルスレッド アパートメント モデル) を必ず指定してください。
[STAThread]
public static void Main()
{
  ...
}
一部の ABBYY FineReader Engine オブジェクト (たとえば ILayout::Blocks) には、読み取り専用のオブジェクト プロパティがあります。これは、そのようなプロパティを変更できないという意味ではなく、直接変更できないという意味です。C++ (Linux の場合は C++ raw) では、そのようなプロパティを変更するには、プロパティ オブジェクトへの参照を新しい変数に渡し、その変数を使って変更する必要があります。以下に、読み取り専用のコレクションとして表される ILayout::Blocks プロパティの C++ サンプルを示します。
ILayout* pLayout = 0;
ILayoutBlocks* pLayoutBlocks = 0;
int blockIndex = 0;
// あらかじめ開いておいた FRPage から Layout を取得
pFRPage->get_Layout( &pLayout );
// pLayoutBlocks 変数は、Layout から blocks コレクションへの参照を受け取る
pLayout->get_Blocks( &pLayoutBlocks );
// blocks コレクションから要素を削除
pLayoutBlocks->DeleteAt( blockIndex );
// 変更した Layout を使用
...
// オブジェクトを解放
pLayoutBlocks->Release();
pLayout->Release();
はい、可能です。Engine object を作成する際は、InprocLoader または OutprocLoader object を使用してください。詳細については、Engine Object を読み込むさまざまな方法 を参照してください。読み込みに InitializeEngine 関数を使用する場合は、複数のスレッドで Engine オブジェクト を使用することはできません。この場合、すべての FineReader Engine オブジェクトのメソッドは、Engine オブジェクト が作成されたスレッドからのみ呼び出す必要があります。
はい、可能です。詳細については、Engine Object を読み込むさまざまな方法 を参照してください。
この例外は、アプリケーションで作成および使用されたすべてのオブジェクトが、Engine オブジェクトのデ初期化前に削除されていない場合にスローされます。すべてのオブジェクトが削除されている場合、この例外はガベージコレクターの動作によって発生している可能性があります。
アプリケーションを Windows 上で Visual Basic .NET を使用して開発している場合: Nothing 値を持つすべてのオブジェクトは削除されず、削除対象としてマークされるだけです。ガベージコレクターがいつ正確にオブジェクトを削除するかは分かりません。そのため、ガベージコレクターがオブジェクトを削除できるよう、Engine オブジェクトをデ初期化する前に次のメソッドを呼び出す必要があります。
    GC.Collect()
    GC.WaitForPendingFinalizers()
ログを使用している場合 (Engine オブジェクトの StartLogging メソッドで有効にできます) 、この状況では “Warning: DeinitializeEngine() has detected external references to FREngine objects. It can indicate a leak if programming platform without automatic garbage collection is used.” というメッセージが表示されることもあります。ガベージコレクター (GC.Collect) を明示的に呼び出していても、オブジェクトが常にすぐ削除されるとは限りません。ガベージコレクターのある環境で作業している場合は、このメッセージは無視してかまいません。ガベージコレクションのない環境 (C++ など) で作業している場合、この例外とメッセージはソースコード内の問題を示している可能性があります。一部のオブジェクトが正しく処理されておらず、メモリリークの原因になっている場合があります。ただし、Engine のデ初期化後は、いずれにしてもすべての FineReader Engine オブジェクトが削除されるため、メモリリークはコードのクライアント側、つまり FineReader Engine オブジェクト用に独自のラッパーを作成し、デ初期化前にそれらを解放しなかった場合に発生する可能性があります。未解放のオブジェクト数を返し、メモリリークの特定に役立つ Engine オブジェクトの TotalObjectsCount プロパティの使用を検討してください。
これを行うには、Engine オブジェクトの StartLogging メソッドを呼び出す必要があります。入力パラメーターとして、ログファイル名と、メソッド呼び出しメッセージを記録するかどうかを指定する Boolean 変数を指定します。このメソッドを呼び出すと、すべてのメッセージが記録されます。logging を停止するには、Engine オブジェクトの StopLogging メソッドを呼び出します。
通常、FREngine.dll を登録する必要はありません。このライブラリは、開発者向けインストールまたはランタイムのインストール時に、既定のパラメーターで自動的に登録されます。ただし、何らかの理由でインストール後に FREngine.dll を登録する必要がある場合 (ランタイムのインストール中に RegisterCOM=No を指定した場合) は、次のコマンドラインを使用してください。
regsvr32 /s /n /i:"<path to the Inc folder>" "<path to FREngine.dll>"
既定の認識言語は英語です。既定の認識言語を変更するには、RecognizerParams オブジェクトの SetPredefinedTextLanguage メソッドを使用する必要があります。
1 つのブロックに異なる種類のテキストが含まれていても、ABBYY FineReader Engine はそれらを同じ種類のテキストとして扱います。OCR の品質を向上させるには、種類ごとに別々のブロックを作成してください。関連情報: Using Text Type Autodetection
対象のドキュメントを認識した後、それを XML 形式でエクスポートできます。ABBYY FineReader Engine で使用される XML schema を使うと、処理済みテキストとその構造、属性、認識候補に関する必要な情報をすべて取得できます。
RecognizerParams オブジェクトの TextTypes プロパティに TT_Matrix、TT_Typewriter、TT_OCR_A、TT_OCR_B のいずれかの組み合わせが含まれている場合、RecognizerParams オブジェクトの ProhibitItalicProhibitSubscriptProhibitSuperscript の各プロパティの値に関係なく、イタリック体および上付き文字/下付き文字は認識されません。関連情報: Using Text Type Autodetection
文字が不確かに認識されており、確認が必要かどうかを調べるには、その文字について PlainText または CharParams オブジェクトの IsSuspicious プロパティを使用します。これは ErrorProbability に基づいて計算されます。より細かな判定を行うには、PlainText または CharParams オブジェクトの ErrorProbability プロパティを使用できます。このプロパティは、その文字が誤認識された推定確率 (0~100 の範囲) を返します。これは、その文字を含む単語が辞書に存在するかどうかなど、その文字が現れる文脈を考慮します。また、認識された文字の文字信頼度 (PlainText オブジェクトの CharConfidence プロパティ) と、すべての認識候補の文字信頼度 (CharacterRecognitionVariant オブジェクトの CharConfidence プロパティ) の両方を取得することもできます。信頼度は、文脈を考慮せず、1 文字の画像のみに基づく精度の推定値です。異なる文字どうしの信頼度推定値は比較できないため、信頼度を安全に使用できるのは、同じ画像 (文字) に対する複数の認識候補を比較する場合だけです。これらのプロパティはいずれも、認識処理を経ずに取得された記号には意味がありません。たとえば、ソース PDF ファイルから直接取得された記号がこれに該当します。
RecognizerParams オブジェクトの SaveCharacterRecognitionVariants または SaveWordRecognitionVariants プロパティが TRUE に設定されていることを確認してください。これらのプロパティは、文字または単語の認識候補を保存するかどうかを指定します。あわせて Using Voting API も参照してください。
お使いのオペレーティングシステムが macOS 10.15 Catalina 以降の場合は、次の手順を実行してください (この手順では Font Book アプリケーションを使用します) 。
  1. フォントが保存されているフォルダーを見つけます (目的のフォントを右クリックし、Show in Finder を選択します) 。
  2. 手順 1 で見つけたフォルダーからローカルフォントをインストールします。
  • アプリケーション設定 (Preferences) を開きます。
  • Default install location プロパティを Computer に設定します。
  • ツールバーの ’+’ ボタンをクリックします (または File - Add fonts を使用します) 。
  • 手順 1 のフォルダーを選択します。
  • ‘Open’ ボタンをクリックします。なお、フォントのインストール中にユーザーパスワードの入力が必要になります。
または、手順 1 のフォルダーから /Library/Fonts フォルダーにフォントをコピーすることもできます。フォントをインストールする予定はないものの、ABBYY FineReader Engine で使用したい場合は、CustomFontSet オブジェクトの Folder プロパティを設定してください。
スキャンのログファイルは scantwain.txt と scanwia.txt の 2 つです。これらは %userprofile%\AppData\Local\ABBYY\ScanManager\12.00 フォルダーに保存されています。
Scan は現在 Windows でのみ実装されています。
ScanSource オブジェクトの ScanSettings プロパティを使用すると、ScanSourceSettings オブジェクトにアクセスできます。このオブジェクトでは、ソースのスキャン設定を参照できます。詳細については、Scanning シナリオの説明を参照してください。
Scan は現在 Windows でのみ実装されています。
エクスポートでサポートされている PDF バージョンは、PDFVersionEnum に列挙されています。指定するエクスポート パラメーターと PDF バージョンが矛盾しないようにしてください。PDF ファイルのバージョンには、指定したエクスポート パラメーターに適合する最も古いバージョンを選択する必要があります。
  • 利用可能な最も古いファイル バージョンは 1.3 です。
  • 次の場合、PDF ファイルのバージョンは 1.4 である必要があります。
    • PDFExportParams オブジェクトの PDFAComplianceMode プロパティが PCM_Pdfa_1a または PCM_Pdfa_1b である
  • 次の場合、PDF ファイルのバージョンは 1.4 以上である必要があります。
    • PDFEncryptionInfo オブジェクトの PermissionFillFormFieldsPermissionExtractTextAndGraphicsExtPermissionAssembleDocPermissionPrintExt プロパティのうち少なくとも 1 つが TRUE である、または
    • 暗号化のキー長が 40 ビットを超える (PDFEncryptionInfo オブジェクトの KeyLength プロパティを参照) 、または
    • WriteTaggedPDF プロパティが TSPV_Yes である、または
    • WriteXmpMetadata プロパティが TSPV_Yes である、または
    • PDFPictureCompressionParams の BwPictureFormats プロパティが BWPF_JBIG2 または BWPF_JBIG2Lossless である。
  • 次の場合、バージョンは 1.5 以上である必要があります。
    • PDFPictureCompressionParams の ColorPictureFormats プロパティが CPF_J2K である、または
    • PDFPictureCompressionParams の GrayPictureFormats プロパティが GPF_J2K である。
  • 次の場合、バージョンは 1.6 以上である必要があります。
    • PDFEncryptionInfo オブジェクトの EncryptionAlgorithm プロパティが PDFEA_AES128 である、または
    • 出力 PDF ファイルで OpenType フォントが使用されている。
  • 次の場合、バージョンは 1.7 以上である必要があります。
    • PDFEncryptionInfo オブジェクトの EncryptionAlgorithm プロパティが PDFEA_AES256 である。
  • 利用可能な最新のファイル バージョンは 2.0 です。
併せて PDFExportFeatures も参照してください。
フォントの使用方法に応じて、次のいずれかの方法で、起動前にオペレーティング システムに登録するか、アプリケーションに追加する必要があります。
  • ABBYY FineReader Engine ベースのアプリケーションの Data/Resources/Font フォルダーに、フォントを手動でコピーします。
  • /usr/share/fonts システム フォルダーに、フォントを手動でコピーします。
  • オペレーティング システムに応じて、フォントをインストールするためのパッケージをインストールします。
詳細については、Working with Fonts を参照してください。
質問への回答が見つからない場合は、ABBYY Technical Support にお問い合わせください。