メインコンテンツへスキップ
このトピックは Windows 用 FRE に適用されます。
異なるオペレーティング システムやコンテナーで .NET Core アプリケーションを実行するために、ABBYY FineReader Engine には、Engine ライブラリ用のそのまま使える .NET Core ラッパーが用意されています。このラッパーを使用すると、ABBYY FineReader Engine API に直接アクセスできます。この API は、いくつかの小さな例外を除き、すべてのプラットフォームで共通です。主な制限の 1 つとして、IEngineLoader を実装するオブジェクトは Linux では使用できません (相違点の一覧については、ABBYY FineReader Engine 12 for Windows and for Linux の違いを参照してください) 。
このリリースでは、.NET Core ラッパーは InprocLoader および OutprocLoader オブジェクトを使用した処理をサポートしていません。
アプリケーションをコンテナーで使用するには、.NET Core ランタイムとともにコンテナー イメージに含めてください。Docker コンテナーで ABBYY FineReader Engine を展開する方法の詳細については、Docker コンテナー内で ABBYY FineReader Engine 12 を実行するを参照してください。

ABBYY FineReader Engine ライブラリを .NET Core プロジェクトに追加する

ABBYY FineReader Engine には、FineReader Engine 用の .NET Core ラッパーを含む FREngine.DotNet.Interop.dll ファイルが含まれています。このファイルは、インストール フォルダー内の Bin フォルダーまたは Bin64 フォルダーにあります。FREngine.DotNet.Interop.dll をプロジェクトの依存関係にあるアセンブリとして追加し、ABBYY FineReader Engine ベースのアプリケーションと共に再頒布する必要があります。
サポートされている .NET Core のバージョンは 6 のみです。

ABBYY FineReader Engine のロードとアンロード

Engine オブジェクトを初期化するには、まず静的な FREngine クラスの SetFREnginePath メソッドを使用して FREngine.dll へのパスを設定し、次に同じクラスの InitializeEngine 関数を使用します。Engine オブジェクトをアンロードするには、DeinitializeEngine 関数を使用します。
// 初期化の前に
// ABBYY FineReader Engine ライブラリへのパス (freRootPath) を指定します
FREngine.FREngine.SetFREnginePath ( freRootPath );
// Engine オブジェクトをロードします
engine = FREngine.FREngine.InitializeEngine( customerProjectId, licensePath, licensePassword, "", "", false );    
...
// Engine オブジェクトをアンロードします
if ( engine == null )
{
   // Engine はロードされていません
   return;
}
 
engine = null;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
 
FREngine.FREngine.DeinitializeEngine();

ガベージコレクション

.NET Core ラッパー内のすべてのオブジェクトは IDisposable インターフェイスから派生しており、このインターフェイスはオブジェクトに割り当てられたリソースを解放する役割を担います。このインターフェイスを実装することで、オブジェクトが不要になったときにガベージが自動的に回収されます。オブジェクトの使用を終える際には、using ステートメントを使用する必要があります。特に、文書処理、合成、またはエクスポートに関連する負荷の高いオブジェクト、たとえば IFRDocumentIFRPagesPDFExportParams などでは重要です (以下の例を参照) 。
using (FREngine.FRDocument document = engineLoader.Engine.CreateFRDocument()) 
{
   try 
   {
     // 画像ファイルを文書に追加
     Console.WriteLine("Loading image...");
     document.AddImageFile(imagePath, null, null);
     ...
     // 'balanced' シナリオを使用して結果を PDF に保存
     using (FREngine.PDFExportParams pdfParams = engineLoader.Engine.CreatePDFExportParams()) 
     {
       pdfParams.Scenario = FREngine.PDFExportScenarioEnum.PES_Balanced;
       document.Export(Path.Combine(FreConfig.GetSamplesFolder(), @"SampleImages\Demo.pdf"),
       FREngine.FileExportFormatEnum.FEF_PDF, pdfParams);
     }
   }
}
using ステートメントを使用しない場合は、Dispose メソッドを明示的に呼び出してください。 サンプル .NET Core での ABBYY FineReader Engine の動作を示す Hello コードサンプルを参照してください。