Saltar al contenido principal

Licencias y distribución

ABBYY FineReader Engine 12 incluye una utilidad de instalación especial para la distribución. Con esta utilidad puede instalar la biblioteca de ABBYY FineReader Engine en una estación de trabajo en modo automático desde la línea de comandos. También puede instalar la biblioteca manualmente copiando los archivos necesarios. Consulte Distribución de aplicaciones que utilizan la biblioteca de ABBYY FineReader Engine.
Todas las licencias de un proyecto comparten el mismo Customer Project ID, que es requerido por las funciones que inicializan la biblioteca. La Runtime License del usuario final y la License de Developer del desarrollador de software deben corresponder al Customer Project ID que se pasa a estas funciones.Consulte también Distribución de aplicaciones que utilizan la biblioteca de ABBYY FineReader Engine.
Debe activar una Runtime License en la estación de trabajo. Consulte Activación de la biblioteca de ABBYY FineReader Engine con la Runtime License.
  • Archivos para el funcionamiento de los módulos que admitirá su aplicación.
  • Archivos marcados como “obligatorios” en la tabla de la sección ABBYY FineReader Engine Distribution Kit. Corresponden a los módulos del sistema y las bases de datos de reconocimiento principales.
  • Bases de datos de reconocimiento para texto manuscrito/impreso a mano, si es necesario.
  • Archivos de recursos para los idiomas de interfaz que se utilizarán en su aplicación.
  • Archivos de compatibilidad de diccionarios para los idiomas de reconocimiento que admitirá su aplicación. Si los idiomas de reconocimiento incluyen idiomas con el alfabeto latino, asegúrese de copiar los archivos Univers.amd y Univers.amm.
  • Módulos de escaneado de Windows, recursos específicos de escaneado y módulos Twain, si su aplicación realizará el escaneado a través de la interfaz de ABBYY FineReader Engine.
  • Módulos de Visual Components de Windows y los recursos específicos correspondientes, si su aplicación utiliza Visual Components de ABBYY FineReader Engine. Registre VisualComponents_dll mediante regsvr32.exe.
También puede utilizar el archivo FREngineDistribution.csv para crear automáticamente una lista de los archivos necesarios para el funcionamiento de su aplicación.Consulte
No, no es necesario. Limitar el acceso total para el grupo ‘Everyone’ es la práctica recomendada para impedir que usuarios no autorizados realicen modificaciones. Es suficiente con que el grupo ‘Everyone’ tenga únicamente acceso de lectura (‘Read’).
Se requieren permisos de control total para las siguientes carpetas:
  • Carpeta %TEMP%
  • Carpeta %ProgramData%\ABBYY\SDK\12\FineReader Engine
  • Carpeta %ProgramData%\ABBYY\SDK\12\Licenses (obligatoria para el servidor de licencias, opcional para las estaciones de trabajo)
Todos los usuarios que ejecuten su aplicación deben tener permisos de lectura, ejecución y escritura en:
  • La carpeta %ProgramData%\ABBYY.
Las siguientes ramas del registro deben ser accesibles desde la estación de trabajo:
  • “HKEY_CURRENT_USER\Software\ABBYY\SDK\12\FineReader Engine” — control total
  • “HKEY_CURRENT_USER\Software\ABBYY\SDK\12” — control total solo para la instalación
  • “HKEY_LOCAL_MACHINE\Software\ABBYY\SDK\12” — control total solo para la instalación
Consulte Instalación de la biblioteca de ABBYY FineReader Engine.
Asegúrese de que la Runtime License corresponda al Customer Project ID con el que se compiló la aplicación. Si la licencia no coincide con el Customer Project ID, la aplicación no funcionará.El Customer Project ID se pasa a los métodos que cargan FineReader Engine como uno de los parámetros de entrada. Verifique que el Customer Project ID utilizado por los métodos sea correcto.Consulte también Licensing, Distribución de aplicaciones que utilizan la biblioteca de ABBYY FineReader Engine.
Compruebe los permisos otorgados a la carpeta %ProgramData%\ABBYY\SDK\12\Licenses con la siguiente línea de comandos:
ls -l /var/lib/ABBYY/SDK/12 | grep Licenses
chmod 777 /var/lib/ABBYY/SDK/12/Licenses
Si la línea de comandos devuelve un valor distinto de drwxrwxrwx, la carpeta %ProgramData%\ABBYY\SDK\12\Licenses no cuenta con los permisos necesarios.Para otorgar permisos de acceso completo a la carpeta %ProgramData%\ABBYY\SDK\12\Licenses, ejecute la siguiente línea de comandos:
Para poder usar métodos de procesamiento como IFRDocument::Process, necesita una licencia que incluya el módulo Processing. Si su licencia no lo admite, solo puede reconocer códigos de barras; utilice el método IFRPage::ExtractBarcodes.
Para poder usar métodos de procesamiento como IFRDocument::Process, necesita una licencia que incluya el módulo Processing. Si su licencia no lo admite, aún puede reconocer códigos de barras y/o marcas de verificación mediante otros métodos:
Para ejecutar ABBYY FineReader Engine en un Docker container, utilice dos contenedores separados, cada uno con ABBYY FineReader Engine y el servicio de licencias en su interior.Consulte las instrucciones para este escenario en Running ABBYY FineReader Engine 12 inside a Docker container.
Puede ejecutar su aplicación basada en ABBYY FineReader Engine en Azure Cloud Service o Azure App Service. Siga las instrucciones disponibles en Running ABBYY FineReader Engine in Azure Services.
Preguntas relacionadas con imágenes
Utilice los métodos del objeto ImageDocument que mejoran la calidad de la imagen. Estos métodos permiten seleccionar una región de la imagen con la que trabajar.
ABBYY FineReader Engine ofrece varias formas de corregir la resolución de la imagen:
  1. Después de abrir la imagen, mediante el método ChangeResolution del objeto ImageDocument.
    Puede usar el método DetectResolution del objeto FRPage para determinar el valor de resolución óptimo.
  2. Durante la etapa de preprocesamiento de la imagen (que, de forma predeterminada, se incluye en la llamada a cualquiera de los métodos que realizan el procesamiento completo de la imagen), controlada por la propiedad OverwriteResolutionMode del objeto PagePreprocessingParams. La resolución puede corregirse automáticamente o establecerse con el valor especificado en la propiedad ResolutionToOverwrite.
Para las imágenes obtenidas al capturar la pantalla del equipo, recomendamos usar ajustes destinados a la extracción de texto. Llame al método LoadPredefinedProfile del objeto Engine para cargar uno de los perfiles predefinidos:
  • TextExtraction_Accuracy — para extraer texto de documentos, optimizado para la precisión
  • TextExtraction_Speed — para extraer texto de documentos, optimizado para la velocidad
La resolución de la imagen obtenida de la captura de pantalla debe establecerse en 72 o 96 dpi (según la resolución de la pantalla).
Estas recomendaciones se refieren a imágenes digitales creadas mediante el sistema operativo o un software que se ejecuta en el equipo. La resolución de una foto de la pantalla tomada con cualquier dispositivo adicional (es decir, una cámara) debe ser de 200 a 300 dpi.
Consulte también Trabajo con perfiles.

Uso del objeto Engine

Si usa la función InitializeEngine para la inicialización, asegúrese de especificar [STAThread] (modelo de apartamento de un solo subproceso) como atributo en la función principal de su aplicación:
[STAThread]
public static void Main()
{
  ...
}
Algunos objetos de ABBYY FineReader Engine (por ejemplo, ILayout::Blocks) tienen propiedades de objeto de solo lectura. Esto no significa que esas propiedades no se puedan modificar, sino únicamente que no pueden modificarse directamente. En C++ (C++ raw en Linux), si desea cambiar una propiedad de este tipo, debe pasar una referencia al objeto de la propiedad a una variable nueva y, a continuación, usar esa variable para modificarla. A continuación, consulte un ejemplo de C++ para la propiedad ILayout::Blocks, que se representa como una colección de solo lectura:
ILayout* pLayout = 0;
ILayoutBlocks* pLayoutBlocks = 0;
int blockIndex = 0;
// Obtener el layout de la FRPage abierta previamente
pFRPage->get_Layout( &pLayout );
// La variable pLayoutBlocks recibe una referencia a la colección de bloques de Layout
pLayout->get_Blocks( &pLayoutBlocks );
// Eliminar un elemento de la colección de bloques
pLayoutBlocks->DeleteAt( blockIndex );
// Trabajar con el layout modificado
...
// Liberar los objetos
pLayoutBlocks->Release();
pLayout->Release();
Sí, es posible. Debe usar el objeto InprocLoader o OutprocLoader al crear el objeto Engine. Consulte Different Ways to Load the Engine Object para obtener más información.Si usa la función InitializeEngine para la carga, no es posible usar el objeto Engine en varios subprocesos. En ese caso, los métodos de todos los objetos de FineReader Engine deben llamarse únicamente desde el subproceso en el que se creó el objeto Engine.
Sí, es posible. Consulte Different Ways to Load the Engine Object para obtener más información.
Esta excepción se lanza cuando no todos los objetos creados y utilizados por la aplicación han sido eliminados antes de la desinicialización del objeto Engine. Si todos los objetos han sido eliminados, la excepción puede deberse a la operación del recolector de basura.
Si la aplicación se desarrolla en Windows con Visual Basic .NET: los objetos con el valor Nothing no se eliminan, sino que solo se marcan para su eliminación. El momento exacto en que el recolector de basura elimina el objeto es indeterminado. Por lo tanto, debe llamar a los siguientes métodos antes de desinicializar el objeto Engine para que el recolector de basura elimine el objeto:
    GC.Collect()
    GC.WaitForPendingFinalizers()
Si está utilizando el registro (que puede activarse con el método StartLogging del objeto Engine), en esta situación también puede aparecer el mensaje “Warning: DeinitializeEngine() has detected external references to FREngine objects. It can indicate a leak if programming platform without automatic garbage collection is used.” Aunque llame explícitamente al recolector de basura (GC.Collect), esto no garantiza que los objetos se eliminen de inmediato. Al trabajar en entornos con recolección de basura, puede ignorar este mensaje.Al trabajar en entornos sin recolección de basura (como C++), esta excepción y este mensaje pueden indicar un problema en el código fuente. Algunos objetos pueden estar siendo gestionados incorrectamente, lo que provoca una fuga de memoria. No obstante, tras la desinicialización del Engine, todos los objetos de FineReader Engine se eliminarán en cualquier caso, por lo que la fuga de memoria puede producirse en la parte del cliente del código; es decir, si crea sus propios wrappers para los objetos de FineReader Engine y no los libera antes de la desinicialización.Considere utilizar la propiedad TotalObjectsCount del objeto Engine, que devuelve el número de objetos no liberados y puede ayudarle a localizar la fuga de memoria.
Para ello, debe llamar al método StartLogging del objeto Engine. Como parámetros de entrada, especifique el nombre del archivo de registro y la variable booleana que determina si los mensajes de llamadas a métodos deben registrarse o no. Una vez invocado este método, todos los mensajes quedarán registrados. Para detener el registro, llame al método StopLogging del objeto Engine.
Por lo general, no es necesario registrar FREngine.dll. La biblioteca se registra automáticamente durante la instalación para Developer o la Runtime installation con los parámetros predeterminados.Sin embargo, si por algún motivo necesita registrar FREngine.dll después de la instalación (por ejemplo, si durante la Runtime installation especificó RegisterCOM=No), utilice la siguiente línea de comandos:
regsvr32 /s /n /i:"<path to the Inc folder>" "<path to FREngine.dll>"
El inglés es el idioma de reconocimiento predeterminado. Si desea cambiarlo, debe usar el método SetPredefinedTextLanguage del objeto RecognizerParams.
Si un bloque contiene texto de distintos tipos, ABBYY FineReader Engine lo seguirá tratando como si fuera del mismo tipo. Para mejorar la calidad del Reconocimiento óptico de caracteres (OCR), dibuje un bloque independiente para el texto de cada tipo.Consulte también Uso de la autodetección del tipo de texto.
Después de reconocer el documento de destino, puede exportarlo en formato XML. El esquema XML utilizado en ABBYY FineReader Engine le permite obtener toda la información necesaria sobre el texto procesado, su estructura, sus atributos y las variantes de reconocimiento.
Si la propiedad TextTypes del objeto RecognizerParams contiene cualquier combinación de TT_Matrix, TT_Typewriter, TT_OCR_A y TT_OCR_B, las fuentes en cursiva y el superíndice/subíndice no se reconocerán, independientemente de los valores de las propiedades ProhibitItalic, ProhibitSubscript y ProhibitSuperscript del objeto RecognizerParams.Consulte también Uso de la autodetección del tipo de texto.
Para saber si un carácter se ha reconocido de forma poco fiable y necesita verificación, use la propiedad IsSuspicious de los objetos PlainText o CharParams correspondiente a ese carácter. Esta propiedad se calcula a partir de ErrorProbability.Si necesita distinciones más precisas, puede usar la propiedad ErrorProbability de los objetos PlainText o CharParams, que devuelve la probabilidad estimada (en un rango de 0 a 100) de que el carácter se haya reconocido incorrectamente. Tiene en cuenta el contexto en el que aparece el carácter; por ejemplo, si la palabra que lo contiene se encuentra en el diccionario.También puede obtener el nivel de confianza del carácter, tanto para un carácter reconocido (la propiedad CharConfidence del objeto PlainText) como para todas las variantes de reconocimiento (la propiedad CharConfidence del objeto CharacterRecognitionVariant). Este valor proporciona una estimación de precisión basada únicamente en la imagen de un carácter, sin tener en cuenta el contexto. Los niveles de confianza de distintos caracteres no son comparables, y el único uso fiable de este valor es comparar varias variantes de reconocimiento de la misma imagen (carácter).Ninguna de estas propiedades tiene sentido para los símbolos obtenidos sin reconocimiento, por ejemplo, los tomados directamente del archivo PDF de origen.
Asegúrese de haber establecido en TRUE las propiedades SaveCharacterRecognitionVariants o SaveWordRecognitionVariants del objeto RecognizerParams. Estas propiedades especifican si deben guardarse las variantes de reconocimiento de caracteres o palabras. Consulte también Uso de Voting API.
Si su sistema operativo es macOS 10.15 Catalina o una versión posterior, siga estos pasos (en estas instrucciones usamos la aplicación Font Book):
  1. Busque la carpeta con las fuentes (haga clic con el botón derecho en la fuente deseada y seleccione Show in Finder).
  2. Instale las fuentes locales desde la carpeta encontrada:
  • Abra la configuración de la aplicación (Preferences).
  • Establezca la propiedad Default install location en Computer.
  • Haga clic en el botón ’+’ de la barra de herramientas (o use File - Add fonts).
  • Seleccione la carpeta del paso 1.
  • Haga clic en el botón ‘Open’. Tenga en cuenta que, durante la instalación de las fuentes, deberá introducir la contraseña del usuario.
Como alternativa, puede copiar las fuentes de la carpeta del paso 1 a la carpeta /Library/Fonts.Si no tiene previsto instalar las fuentes, pero desea utilizarlas en ABBYY FineReader Engine, establezca la propiedad Folder del objeto CustomFontSet.
Hay dos archivos de registro del escaneo: scantwain.txt y scanwia.txt. Se almacenan en la carpeta %userprofile%\AppData\Local\ABBYY\ScanManager\12.00.
Actualmente, la función de escaneo solo está implementada en Windows.
Puede usar la propiedad ScanSettings del objeto ScanSource para acceder al objeto ScanSourceSettings. Este objeto proporciona acceso a la configuración de escaneo de un origen.Consulte los detalles en la descripción del escenario Scanning.
Actualmente, la función de escaneo solo está implementada en Windows.
Las versiones de PDF compatibles con la exportación están enumeradas en PDFVersionEnum.Tenga en cuenta que la versión no debe entrar en conflicto con los parámetros de exportación especificados. Se debe seleccionar la versión más antigua del archivo PDF que sea compatible con los parámetros de exportación indicados:
  • La versión de archivo más antigua disponible es la 1.3.
  • La versión del archivo PDF debe ser 1.4 si:
  • La versión del archivo PDF debe ser 1.4 o superior si:
  • La versión debe ser 1.5 o superior si:
  • La versión debe ser 1.6 o superior si:
    • la propiedad EncryptionAlgorithm del objeto PDFEncryptionInfo es PDFEA_AES128, o
    • se utilizan fuentes OpenType en el archivo PDF de salida.
  • La versión debe ser 1.7 o superior si:
  • La versión de archivo más reciente disponible es la 2.0.
Consulte también PDFExportFeatures.
Según el uso que vaya a dar a las fuentes, debe registrarlas en el sistema operativo o agregarlas a su aplicación antes de iniciarla, mediante uno de los métodos siguientes:
  • copie las fuentes manualmente en la carpeta Data/Resources/Font de su aplicación basada en ABBYY FineReader Engine.
  • copie las fuentes manualmente en la carpeta del sistema /usr/share/fonts.
  • instale el paquete correspondiente a su sistema operativo para la instalación de fuentes.
Consulte Trabajar con fuentes para obtener más información.
Si no encuentra la respuesta a su pregunta, póngase en contacto con el Soporte técnico de ABBYY.