このトピックは FRE for Windows を対象としています。
FineReader Engine ライブラリを Java プロジェクトに追加する
FineReader Engine の読み込みと解放
| 関数 | Engine クラスのメソッド | Engine クラスのメソッドのシグネチャ |
|---|---|---|
| InitializeEngine | InitializeEngine | csharp static public IEngine InitializeEngine( String dllFolder, String customerProjectId, String licensePath, String licensePassword, String dataFolder, String tempFolder, boolean isSharedCPUCoresMode ) throws Exception; |
| DeinitializeEngine | DeinitializeEngine | static public void DeinitializeEngine() throws Exception; |
コード例
コード例
InprocLoader を使用するコード例
InprocLoader を使用するコード例
OutprocLoader を使用するコード例
OutprocLoader を使用するコード例
| メソッド | シグネチャ | コメント |
|---|---|---|
| MarshalInterface | long MarshalInterface(); | CoMarshalInterface COM 関数を呼び出して、IEngine インターフェイスをマーシャリングします。このメソッドは、別のスレッドでプロキシ オブジェクトを作成するために必要なデータを利用可能にするため、engine が作成されたスレッドで呼び出す必要があります。マーシャリング データへのハンドルを返します。 |
| UnmarshalInterface | csharp IEngine UnmarshalInterface( long handle ); | CoUnmarshalInterface COM 関数を呼び出して、IEngine インターフェイスのマーシャリングを解除します。つまり、client process が engine 自体と同じようにやり取りできるプロキシ オブジェクトを作成します。入力パラメーターとしてマーシャリング データへのハンドル (MarshalInterface メソッドが返す値) を受け取り、IEngine インターフェイスへのポインターを返します。 |
com.abbyy.FREngine-%BUILD_ID%.jar ファイルは自己展開型アーカイブで、FineReader Engine Java API を初めて使用する際に、お使いのマシン上で展開されます。内容の展開先となる既定のフォルダーは、Windows では Inc\Java です。別のフォルダーを使用する必要がある場合は、上記で説明したいずれかの方法で Engine をロードする前に、Engine.SetJNIDllFolder メソッドを呼び出してください。現在アーカイブの展開先として設定されているフォルダーを確認するには、Engine.GetJNIDllFolder を呼び出してください。
マルチスレッドの Java アプリケーションで Engine を使用する
EnginesPool クラスを使用できます。このクラスは、FineReader Engine オブジェクトのプールを作成および管理するための包括的なソリューションを提供します。java.lang.Runnable インターフェイスを実装しています。
| メソッド | シグネチャ | コメント |
|---|---|---|
| constructor | public EnginesPool( int enginesCount, int waitingEngineTimeout, String customerProjectId, String licensePath, String licensePassword, String dataFolder, String tempFolder, boolean isSharedCPUCoresMode ) throws Exception; | enginesCount 個の Engine で構成される新しいプールを作成します。waitingEngineTimeout は EnginesPool.GetEngine のタイムアウトを設定します。その他のパラメーターは InitializeEngine と同じです。 |
| GetEngine | csharp public IEngine GetEngine() throws Exception; | プールから Engine インスタンスを取得します。waitingEngineTimeout を超えると例外をスローします。 |
| ReleaseEngine | csharp public void ReleaseEngine( IEngine engine, boolean isRecycleRequired ) throws Exception; | Engine インスタンスをプールに戻します。isRecycleRequired が true の場合、このインスタンスを削除し、新しいインスタンスに置き換えます (使用回数の上限に達していない場合や、自動リサイクルが無効な場合でも) 。 |
| SetAutoRecycleUsageCount | public void SetAutoRecycleUsageCount( int value ); | このプール内の 1 つの Engine インスタンスを、リサイクル (削除して新しいインスタンスに置き換え) されるまでに何回再利用できるかを設定します。自動リサイクルを無効にするには、回数を 0 に設定します (この場合、ReleaseEngine による手動リサイクルのみ可能です) 。既定値は 0 です (自動リサイクルなし) 。 |
| GetAutoRecycleUsageCount | public int GetAutoRecycleUsageCount(); | このプールにおける Engine インスタンスの再利用回数の上限を取得します。 |
| UnloadEngines | public void UnloadEngines() throws Exception; | すべての Engine をアンロードし、プールを終了します。 |
エラー処理
- java.lang.OutOfMemoryError
- com.abbyy.FREngine.EngineException
outパラメーターを持つメソッドの呼び出し
outパラメーターのコード例
outパラメーターのコード例
in/outパラメーターのコード例
in/outパラメーターのコード例
配列の outパラメーターのコード例
配列の outパラメーターのコード例
リソースの解放
try 文を使用してオブジェクトに割り当てられたリソースを扱うことができます。これにより、try ブロックを抜けると、クローズ用のメソッドを明示的に呼び出さなくても、割り当てられたすべてのリソースが自動的に閉じられます。コード内のすべてのオブジェクトで try 文を使用することをお勧めします (以下の例を参照) 。
コード例
コード例
byte[] として受け取ります。該当するメソッドは次のとおりです。
- LoadImageDocFromMemory メソッドと OpenImageFileFromMemory メソッド (Engine オブジェクト)
- 多くのオブジェクトで提供される LoadFromMemory メソッド
- FRDocument オブジェクトの AddImageFileFromMemory メソッド
- PDFAttachments オブジェクトの AddFromMemory メソッド
列挙型の扱い
int 値をメソッドまたはプロパティに渡す必要があります。列挙定数の int 値を取得するには、すべての列挙型でサポートされている getValue メソッドを使用します。
以下は、PDFPictureCompressionParams オブジェクトの BwPictureFormats プロパティを設定する方法を示すサンプルコードです。
