Pular para o conteúdo principal

Licenciamento e distribuição

O ABBYY FineReader Engine 12 fornece um utilitário de instalação especial para distribuição. Com esse utilitário, você pode instalar a biblioteca do ABBYY FineReader Engine em uma estação de trabalho automaticamente pela linha de comando. Você também pode instalar a biblioteca manualmente, copiando os arquivos necessários. Consulte Distribuição de aplicativos que usam a biblioteca ABBYY FineReader Engine.
Todas as licenças de um projeto compartilham o mesmo ID do projeto do cliente, que é exigido pelas funções que inicializam a biblioteca. A Licença de Runtime do usuário final e a Licença de Desenvolvedor do desenvolvedor de software devem corresponder ao ID do projeto do cliente informado a essas funções.Consulte também Distribuição de aplicativos que usam a biblioteca ABBYY FineReader Engine.
Você deve ativar uma Licença de Runtime na estação de trabalho. Consulte Ativação da biblioteca ABBYY FineReader Engine com a Licença de Runtime.
  • Arquivos necessários para o funcionamento dos módulos compatíveis com a sua aplicação.
  • Arquivos marcados como “obrigatórios” na tabela da seção Kit de distribuição do ABBYY FineReader Engine. Eles são módulos do sistema e bancos de dados principais de reconhecimento.
  • Bancos de dados de reconhecimento para texto manuscrito/em letra de forma, se necessário.
  • Arquivos de recursos para os idiomas da interface que serão usados na sua aplicação.
  • Arquivos de suporte do Dictionary para os idiomas de reconhecimento compatíveis com a sua aplicação. Se os idiomas de reconhecimento incluírem idiomas com alfabeto latino, copie os arquivos Univers.amd e Univers.amm.
  • Módulos do Windows para digitalização, recursos específicos de digitalização e módulos Twain, se a sua aplicação realizar digitalização pela interface do ABBYY FineReader Engine.
  • Módulos do Windows Visual Components e os respectivos recursos específicos, se a sua aplicação usar ABBYY FineReader Engine Visual Components. Registre VisualComponents_dll usando regsvr32.exe.
Você também pode usar o arquivo FREngineDistribution.csv para criar automaticamente uma lista dos arquivos necessários para o funcionamento da sua aplicação.Consulte
Não, isso não é necessário, e é uma forma adequada de restringir o acesso total do grupo ‘Everyone’, para que usuários não autorizados não possam fazer modificações. Basta conceder apenas acesso de ‘Read’ ao grupo ‘Everyone’.
São necessárias permissões de controle total para as seguintes pastas:
  • pasta %TEMP%
  • pasta %ProgramData%\ABBYY\SDK\12\FineReader Engine
  • pasta %ProgramData%\ABBYY\SDK\12\Licenses (necessária para o servidor de licenças, opcional para estações de trabalho)
Todos os usuários que executam a sua aplicação devem ter permissões de leitura e execução, além de gravação, em:
  • pasta %ProgramData%\ABBYY.
Os seguintes ramos do registro devem estar acessíveis na estação de trabalho:
  • “HKEY_CURRENT_USER\Software\ABBYY\SDK\12\FineReader Engine” — controle total
  • “HKEY_CURRENT_USER\Software\ABBYY\SDK\12” — controle total apenas para instalação
  • “HKEY_LOCAL_MACHINE\Software\ABBYY\SDK\12” — controle total apenas para instalação
Consulte Instalação da biblioteca ABBYY FineReader Engine.
Verifique se a Licença de Runtime corresponde ao ID do projeto do cliente com o qual o aplicativo foi compilado. Se a licença não corresponder ao ID do projeto do cliente, o aplicativo não funcionará.O ID do projeto do cliente é passado para os métodos que carregam o FineReader Engine como um dos parâmetros de entrada. Verifique se o ID do projeto do cliente usado por esses métodos está correto.Consulte também Licenciamento, Distribuição de aplicativos que usam a biblioteca ABBYY FineReader Engine.
Verifique as permissões concedidas à pasta %ProgramData%\ABBYY\SDK\12\Licenses com o seguinte comando:
ls -l /var/lib/ABBYY/SDK/12 | grep Licenses
chmod 777 /var/lib/ABBYY/SDK/12/Licenses
Se o comando retornar um valor diferente de drwxrwxrwx, a pasta %ProgramData%\ABBYY\SDK\12\Licenses não tem todas as permissões necessárias.Para conceder permissões de acesso total à pasta %ProgramData%\ABBYY\SDK\12\Licenses, execute o seguinte comando:
Para poder usar métodos de processamento, como IFRDocument::Process, você precisa de uma licença que inclua o módulo Processing. Se a sua licença não oferecer esse suporte, você poderá reconhecer apenas códigos de barras; use o método IFRPage::ExtractBarcodes.
Para poder usar métodos de processamento, como IFRDocument::Process, você precisa de uma licença que inclua o módulo Processing. Se a sua licença não oferecer esse suporte, ainda será possível reconhecer códigos de barras e/ou marcas de seleção usando outros métodos:
Para executar o ABBYY FineReader Engine em um contêiner Docker, use dois contêineres separados, um com o ABBYY FineReader Engine e outro com o Licensing Service.Consulte as instruções para esse cenário em Executar o ABBYY FineReader Engine 12 em um contêiner Docker.
Você pode executar seu aplicativo baseado no ABBYY FineReader Engine no Azure Cloud Service ou no Azure App Service. Use as instruções fornecidas em Executar o ABBYY FineReader Engine no Azure Services.
Perguntas relacionadas a imagens
Use os métodos do objeto ImageDocument que melhoram a qualidade da imagem. Esses métodos permitem selecionar uma região da imagem para trabalhar.
O ABBYY FineReader Engine oferece várias formas de corrigir a resolução da imagem:
  1. Depois de abrir a imagem, usando o método ChangeResolution do objeto ImageDocument.
    Você pode usar o método DetectResolution do objeto FRPage para determinar o valor ideal de resolução.
  2. Durante a etapa de pré-processamento da imagem (que, por padrão, será incluída na chamada de qualquer método que execute o processamento completo da imagem), controlada pela propriedade OverwriteResolutionMode do objeto PagePreprocessingParams. A resolução pode ser corrigida automaticamente ou definida com o valor especificado na propriedade ResolutionToOverwrite.
Para imagens obtidas por captura da tela do computador, recomendamos usar configurações destinadas à extração de texto. Chame o método LoadPredefinedProfile do objeto Engine para carregar um dos perfis predefinidos:
  • TextExtraction_Accuracy — para extrair texto de documentos, otimizado para precisão
  • TextExtraction_Speed — para extrair texto de documentos, otimizado para velocidade
A resolução da imagem obtida por captura de tela deve ser definida como 72 ou 96 dpi (dependendo da resolução da tela).
Estas recomendações se aplicam a imagens digitais criadas usando o sistema operacional ou um software em execução no computador. A resolução de uma foto da tela feita com um dispositivo adicional (por exemplo, uma câmera) deve ficar entre 200 e 300 dpi.
Consulte também Como trabalhar com perfis.

Usando o objeto Engine

Se você usar a função InitializeEngine para inicialização, especifique [STAThread] (modelo de apartamento de thread única) como atributo na função principal do aplicativo:
[STAThread]
public static void Main()
{
  ...
}
Alguns objetos do ABBYY FineReader Engine (por exemplo, ILayout::Blocks) têm propriedades de objeto somente leitura. Isso não significa que essas propriedades não possam ser alteradas, mas apenas que não podem ser modificadas diretamente. Em C++ (C++ raw no Linux), se você quiser alterar uma propriedade desse tipo, precisará passar uma referência ao objeto da propriedade para uma nova variável e, em seguida, usar essa variável para modificá-la. Abaixo, você pode ver um exemplo em C++ da propriedade ILayout::Blocks, que é representada por uma coleção somente leitura:
ILayout* pLayout = 0;
ILayoutBlocks* pLayoutBlocks = 0;
int blockIndex = 0;
// Recebe o layout da FRPage aberta anteriormente
pFRPage->get_Layout( &pLayout );
// A variável pLayoutBlocks recebe uma referência à coleção de blocos de Layout
pLayout->get_Blocks( &pLayoutBlocks );
// Remove um elemento da coleção de blocos
pLayoutBlocks->DeleteAt( blockIndex );
// Trabalha com o layout modificado
...
// Libera os objetos
pLayoutBlocks->Release();
pLayout->Release();
Sim, é possível. Você deve usar o objeto InprocLoader ou OutprocLoader ao criar o objeto Engine. Consulte Different Ways to Load the Engine Object para mais detalhes.Se você usar a função InitializeEngine para carregamento, não será possível usar o objeto Engine em várias threads. Nesse caso, os métodos de todos os objetos do FineReader Engine devem ser chamados apenas na thread em que o objeto Engine foi criado.
Sim, é possível. Consulte Different Ways to Load the Engine Object para mais detalhes.
Essa exceção é gerada se nem todos os objetos criados e usados pelo aplicativo tiverem sido removidos antes da desinicialização do objeto Engine. Se todos os objetos tiverem sido removidos, a exceção poderá ser causada pela execução do coletor de lixo.
Se o aplicativo for desenvolvido no Windows com Visual Basic .NET: todos os objetos com o valor Nothing não são excluídos, apenas marcados para exclusão. Não se sabe o momento exato em que o coletor de lixo exclui o objeto. Portanto, antes de desinicializar o objeto Engine, você deve chamar os métodos a seguir para que o coletor de lixo exclua o objeto:
    GC.Collect()
    GC.WaitForPendingFinalizers()
Se você estiver usando o log (que pode ser ativado com o método StartLogging do objeto Engine), a mensagem “Warning: DeinitializeEngine() has detected external references to FREngine objects. It can indicate a leak if programming platform without automatic garbage collection is used.” também poderá aparecer nessa situação. Mesmo que você chame explicitamente o coletor de lixo (GC.Collect), isso nem sempre significa que os objetos serão excluídos imediatamente. Ao trabalhar em ambientes com coletor de lixo, você pode ignorar essa mensagem.Ao trabalhar em ambientes sem coleta de lixo (como C++), essa exceção e essa mensagem podem indicar um problema no seu código-fonte. Alguns objetos podem estar sendo manipulados incorretamente, causando um vazamento de memória. No entanto, após a desinicialização do Engine, todos os objetos do FineReader Engine serão excluídos de qualquer forma, portanto o vazamento de memória pode ocorrer na parte cliente do código, isto é, se você criar seus próprios wrappers para os objetos do FineReader Engine e não os liberar antes da desinicialização.Considere usar a propriedade TotalObjectsCount do objeto Engine, que retorna o número de objetos não liberados e pode ajudar você a localizar o vazamento de memória.
Para isso, você precisa chamar o método StartLogging do objeto Engine. Como parâmetros de entrada, especifique o nome do arquivo de log e a variável booleana que determina se as mensagens de chamada de método devem ser registradas ou não. Depois que esse método for chamado, todas as mensagens serão registradas. Para interromper o registro, chame o método StopLogging do objeto Engine.
Normalmente, não é necessário registrar a FREngine.dll. A biblioteca é registrada automaticamente durante a instalação Developer ou a instalação Runtime com os parâmetros padrão.No entanto, se por algum motivo você precisar registrar a FREngine.dll após a instalação (durante a instalação Runtime você especificou RegisterCOM=No), use a seguinte linha de comando:
regsvr32 /s /n /i:"<path to the Inc folder>" "<path to FREngine.dll>"
O inglês é o idioma de reconhecimento padrão. Se você quiser alterar o idioma de reconhecimento padrão, deverá usar o método SetPredefinedTextLanguage do objeto RecognizerParams.
Se um bloco contiver textos de tipos diferentes, o ABBYY FineReader Engine ainda os tratará como se fossem do mesmo tipo. Para melhorar a qualidade do OCR, desenhe um bloco separado para cada tipo de texto.Consulte também Uso da autodetecção do tipo de texto.
Após reconhecer o documento de destino, você pode exportá-lo para o formato XML. O esquema XML usado no ABBYY FineReader Engine permite obter todas as informações necessárias sobre o texto processado, sua estrutura, seus atributos e as variantes de reconhecimento.
Se a propriedade TextTypes do objeto RecognizerParams contiver qualquer combinação de TT_Matrix, TT_Typewriter, TT_OCR_A e TT_OCR_B, fontes em itálico e sobrescrito/subscrito não serão reconhecidos, independentemente dos valores das propriedades ProhibitItalic, ProhibitSubscript e ProhibitSuperscript do objeto RecognizerParams.Consulte também Uso da autodetecção do tipo de texto.
Para descobrir se um caractere foi reconhecido de forma pouco confiável e precisa ser verificado, use a propriedade IsSuspicious dos objetos PlainText ou CharParams para o caractere em questão. Ela é calculada com base em ErrorProbability.Para fazer distinções mais refinadas, você pode usar a propriedade ErrorProbability dos objetos PlainText ou CharParams, que retorna a probabilidade estimada (no intervalo de 0 a 100) de que o caractere tenha sido reconhecido incorretamente. Ela leva em conta o contexto em que o caractere aparece, por exemplo, se a palavra que contém esse caractere está no dicionário.Você também pode obter a confiança do caractere, tanto para um caractere reconhecido (a propriedade CharConfidence do objeto PlainText) quanto para todas as variantes de reconhecimento (a propriedade CharConfidence do objeto CharacterRecognitionVariant). A confiança fornece uma estimativa de precisão baseada apenas na imagem de um único caractere, sem considerar o contexto. As estimativas de confiança de caracteres diferentes não são comparáveis, e o único uso seguro da confiança é comparar várias variantes de reconhecimento da mesma imagem (caractere).Nenhuma dessas propriedades faz sentido para símbolos obtidos sem reconhecimento, por exemplo, aqueles extraídos diretamente do arquivo PDF de origem.
Certifique-se de definir as propriedades SaveCharacterRecognitionVariants ou SaveWordRecognitionVariants do objeto RecognizerParams como TRUE. Essas propriedades especificam se as variantes de reconhecimento de caracteres ou palavras devem ser salvas. Veja também Using Voting API.
Se o seu sistema operacional for macOS 10.15 Catalina ou superior, siga estas etapas (nestas instruções, usamos o aplicativo Font Book):
  1. Encontre a pasta com as fontes (clique com o botão direito na fonte desejada e selecione Show in Finder).
  2. Instale as fontes locais da pasta encontrada:
  • Abra as configurações do aplicativo (Preferences).
  • Defina a propriedade Default install location como Computer.
  • Clique no botão ’+’ na barra de ferramentas (ou use File - Add fonts).
  • Selecione a pasta da etapa 1.
  • Clique no botão ‘Open’. Observe que, durante a instalação das fontes, será necessário inserir a senha do usuário.
Como alternativa, você pode copiar as fontes da pasta da etapa 1 para a pasta /Library/Fonts.Se você não pretende instalar as fontes, mas quer usá-las no ABBYY FineReader Engine, defina a propriedade Folder do objeto CustomFontSet.
Há dois arquivos de log de digitalização: scantwain.txt e scanwia.txt. Eles são armazenados na pasta %userprofile%\AppData\Local\ABBYY\ScanManager\12.00.
O Scan está implementado atualmente apenas no Windows.
Você pode usar a propriedade ScanSettings do objeto ScanSource para acessar o objeto ScanSourceSettings. Esse objeto fornece acesso às configurações de digitalização de uma fonte.Veja os detalhes na descrição do cenário Scanning.
O Scan está implementado atualmente apenas no Windows.
As versões de PDF compatíveis com exportação são enumeradas por PDFVersionEnum.Observe que a versão não deve entrar em conflito com os parâmetros de exportação especificados. Deve ser selecionada a versão mais antiga do arquivo PDF que atenda aos parâmetros de exportação especificados:
  • A versão de arquivo mais antiga disponível é a 1.3.
  • A versão do arquivo PDF deve ser 1.4, se:
    • a propriedade PDFAComplianceMode do objeto PDFExportParams for PCM_Pdfa_1a ou PCM_Pdfa_1b
  • A versão do arquivo PDF deve ser 1.4 ou superior, se:
  • A versão deve ser 1.5 ou superior, se:
  • A versão deve ser 1.6 ou superior, se:
    • a propriedade EncryptionAlgorithm do objeto PDFEncryptionInfo for PDFEA_AES128, ou
    • fontes OpenType forem usadas no arquivo PDF de saída.
  • A versão deve ser 1.7 ou superior, se:
  • A versão de arquivo mais recente disponível é a 2.0.
Consulte também PDFExportFeatures.
Dependendo de como você pretende usar as fontes, é necessário registrá-las no sistema operacional ou adicioná-las ao aplicativo antes de iniciá-lo, usando um dos seguintes métodos:
  • copie manualmente as fontes para a pasta Data/Resources/Font no aplicativo baseado em ABBYY FineReader Engine.
  • copie manualmente as fontes para a pasta do sistema /usr/share/fonts.
  • instale o pacote de instalação das fontes, de acordo com o seu sistema operacional.
Consulte Working with Fonts para mais detalhes.
Se você não encontrar a resposta para a sua pergunta, entre em contato com o Suporte Técnico da ABBYY.