Este tema se aplica a FRE for Windows.
Agregar la biblioteca de FineReader Engine a un proyecto Java
Carga y descarga de FineReader Engine
| Función | Método de la clase Engine | Firma del método de la clase 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; |
Código de ejemplo
Código de ejemplo
Código de ejemplo con InprocLoader
Código de ejemplo con InprocLoader
Código de ejemplo con OutprocLoader
Código de ejemplo con OutprocLoader
| Método | Firma | Comentario |
|---|---|---|
| MarshalInterface | long MarshalInterface(); | Llama a la función COM CoMarshalInterface para serializar la interfaz IEngine. Este método debe llamarse en el hilo donde se creó el Engine, para garantizar que estén disponibles los datos necesarios para crear un objeto proxy en otro hilo. Devuelve el handle de los datos de serialización. |
| UnmarshalInterface | csharp IEngine UnmarshalInterface( long handle ); | Llama a la función COM CoUnmarshalInterface para deserializar la interfaz IEngine, es decir, crear un objeto proxy con el que el proceso cliente podrá interactuar del mismo modo que con el propio Engine. Toma el handle de los datos de serialización (devuelto por el método MarshalInterface) como parámetro de entrada y devuelve un puntero de interfaz a IEngine. |
El archivo com.abbyy.FREngine-%BUILD_ID%.jar es un archivo autoextraíble que se descomprime en su equipo la primera vez que usa la API de Java de FineReader Engine. La carpeta predeterminada donde se extrae el contenido es Inc\Java para Windows. Si necesita usar otra carpeta, llame al método Engine.SetJNIDllFolder antes de cargar el componente Engine mediante cualquiera de los métodos descritos anteriormente. Para saber qué carpeta está configurada actualmente para extraer el archivo, llame a Engine.GetJNIDllFolder.
Uso de Engine en aplicaciones Java multihilo
| Método | Firma | Comentario |
|---|---|---|
| constructor | public EnginesPool( int enginesCount, int waitingEngineTimeout, String customerProjectId, String licensePath, String licensePassword, String dataFolder, String tempFolder, boolean isSharedCPUCoresMode ) throws Exception; | Crea un nuevo pool de enginesCount Engines. waitingEngineTimeout establece el tiempo de espera de EnginesPool.GetEngine. Los demás parámetros son los mismos que en InitializeEngine |
| GetEngine | csharp public IEngine GetEngine() throws Exception; | Obtiene una instancia de Engine del pool. Genera una excepción si se supera waitingEngineTimeout. |
| ReleaseEngine | csharp public void ReleaseEngine( IEngine engine, boolean isRecycleRequired ) throws Exception; | Devuelve una instancia de Engine al pool. Si isRecycleRequired es true, elimina esta instancia y la sustituye por una nueva (incluso si no se ha alcanzado el límite de uso o si el reciclaje automático está deshabilitado). |
| SetAutoRecycleUsageCount | public void SetAutoRecycleUsageCount( int value ); | Establece cuántas veces puede reutilizarse una misma instancia de Engine en este pool antes de reciclarse, es decir, de eliminarse y sustituirse automáticamente por una nueva. El valor puede establecerse en 0 para no reciclarla nunca automáticamente (solo será posible el reciclaje manual mediante ReleaseEngine). El valor predeterminado es 0 (sin reciclaje automático). |
| GetAutoRecycleUsageCount | public int GetAutoRecycleUsageCount(); | Obtiene el límite de reutilización de una instancia de Engine para este pool. |
| UnloadEngines | public void UnloadEngines() throws Exception; | Descarga todos los Engines y desinicializa el pool. |
Manejo de errores
- java.lang.OutOfMemoryError
- com.abbyy.FREngine.EngineException
Llamada a métodos con parámetros de salida
Código de ejemplo para parámetros de salida
Código de ejemplo para parámetros de salida
Código de ejemplo para parámetros de entrada/salida
Código de ejemplo para parámetros de entrada/salida
Código de ejemplo para parámetros de salida de tipo array
Código de ejemplo para parámetros de salida de tipo array
Recolección de basura
Código de ejemplo
Código de ejemplo
- Métodos LoadImageDocFromMemory y OpenImageFileFromMemory del objeto Engine
- Método LoadFromMemory disponible en muchos objetos
- Método AddImageFileFromMemory del objeto FRDocument
- Método AddFromMemory del objeto PDFAttachments
Trabajar con enumeraciones
int. Para obtener el valor int de una constante de enumeración, use el método getValue, compatible con todas las enumeraciones.
A continuación se muestra un código de ejemplo de cómo establecer la propiedad BwPictureFormats del objeto PDFPictureCompressionParams:
