Este tema se aplica a FRE for Windows.
Agregar la biblioteca de FineReader Engine a un proyecto Java
ABBYY FineReader Engine incluye un archivo com.abbyy.FREngine-%BUILD_ID%.jar, que contiene la biblioteca de clases de Java para FineReader Engine. Puede encontrarlo en la carpeta IncJava. La ruta de acceso a este archivo se puede especificar en el parámetro classpath de la línea de comandos y en la configuración del proyecto en distintos entornos de desarrollo de Java. Ejemplo:Carga y descarga de FineReader Engine
Puede usar la clase estática Engine para cargar el objeto Engine. La clase Engine proporciona métodos que corresponden a las funciones de ABBYY FineReader Engine para cargar y descargar el Engine: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
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
Para las aplicaciones Java multihilo, puede usar la clase EnginesPool, que proporciona una solución completa para crear y administrar un pool de objetos de FineReader Engine. Esta clase implementa la interfaz java.lang.Runnable.
Consulte el sample de código de EnginesPool para ver un ejemplo de uso de la clase EnginesPool.
Manejo de errores
ABBYY FineReader Engine puede lanzar excepciones de los siguientes tipos:- java.lang.OutOfMemoryError
- com.abbyy.FREngine.EngineException
Llamada a métodos con parámetros de salida
Hay varios métodos en la API de ABBYY FineReader Engine que tienen parámetros de salida que reciben un nuevo valor después de la llamada al método y deben pasarse por referencia. Estos parámetros están marcados en la biblioteca de tipos y en las descripciones de los métodos de esta ayuda para desarrolladores como [out] o [in, out]. Al trabajar con ABBYY FineReader Engine en Java, debe usar una clase Ref especial para pasar un parámetro por referencia. Consulte los ejemplos a continuación. Ejemplo en el que los parámetros de salida se pasan por referencia al método IFRPage::FindPageSplitPosition: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
FineReader Engine es compatible con la interfaz AutoCloseable, que le permite usar la instrucción try para gestionar los recursos asignados a los objetos. Esto significa que, una vez que el bloque try llega a su fin, todos los recursos asignados se cerrarán automáticamente, sin necesidad de llamar explícitamente a métodos de cierre. Le recomendamos que use la instrucción try para todos los objetos de su código (consulte el ejemplo siguiente):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
Los métodos y las propiedades que aceptan una combinación de constantes de enumeración requieren que se pase al método o a la propiedad el valorint. 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:
