Ir para o conteúdo do rodapé
COMPARAR COM OUTROS COMPONENTES

ABBYY FineReader Engine vs IronOCR: OCR .NET

O XImage.OCR cobra taxas de licenciamento comercial por uma biblioteca OCR que oferece o mesmo mecanismo Tesseract que você pode acessar gratuitamente — e depois pede que você instale um pacote NuGet separado para cada idioma necessário, criando uma cadeia de dependências que começa com 2 pacotes para um aplicativo somente em inglês e chega a 11 pacotes para um aplicativo multilíngue de tamanho modesto. Essa fragmentação não é uma peculiaridade da embalagem; é a decisão central de arquitetura no XImage.OCR, e molda todos os aspectos do trabalho com a biblioteca: seu arquivo .csproj, seu pipeline CI/CD, seu gerenciamento de versões e, por fim, sua resposta à pergunta sobre qual valor comercial você está realmente comprando.

Entendendo o XImage.OCR

XImage.OCR é uma biblioteca OCR comercial para .NET da RasterEdge, parte de seu Suite mais amplo de SDKs para processamento de imagens de documentos. A biblioteca utiliza o mecanismo de código aberto Tesseract do Google para fornecer vinculações .NET gerenciadas para operações de OCR. A RasterEdge o comercializa como uma solução OCR Enterprise para desenvolvedores, integrada ao seu ecossistema de processamento de imagens de documentos já existente.

A biblioteca é compatível com .NET Standard 2.0 e .NET Framework 4.5+, o que a torna acessível a projetos legados. Seu foco principal de suporte é o Windows, com cobertura multiplataforma consideravelmente mais limitada do que as alternativas modernas.

Principais características arquitetônicas:

  • Empacotamento de idiomas fragmentado: Cada idioma suportado é distribuído como um pacote NuGet separado (XImage.OCR.Language.English, XImage.OCR.Language.German, etc.), exigindo instalação individual e manutenção sincronizada de versões
  • Mecanismo principal do Tesseract: A tecnologia OCR subjacente é idêntica à oferecida por wrappers gratuitos — Tesseract com licença Apache 2.0, disponível gratuitamente.
  • Sem pré-processamento integrado: acesso ao Tesseract em formato bruto sem correção automática de distorção, redução de ruído, aprimoramento de contraste ou correção de resolução; poor-quality input produces poor output
  • Limitações de segurança de threads: Como um wrapper do Tesseract, o XImage.OCR não é seguro para uso em múltiplas threads; cada thread concorrente requer sua própria instância OCRHandler, multiplicando o consumo de memória proporcionalmente
  • Integração com o ecossistema RasterEdge: o processamento de PDFs requer o SDK de PDF da RasterEdge separadamente — o OCR nativo de PDF não está incluído no próprio XImage.OCR.
  • Cobertura linguística limitada: Existem aproximadamente 10 a 15 pacotes de idiomas, muito menos do que os mais de 100 idiomas disponíveis gratuitamente nas distribuições padrão do tessdata.

Fragmentação de Pacotes de Linguagem na Prática

A consequência de um pacote por idioma se manifesta concretamente no arquivo do seu projeto. Para um aplicativo que processa documentos em cinco idiomas europeus, o manifesto do pacote se parece com isto:


<PackageReference Include="RasterEdge.XImage.OCR" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.English" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.German" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.French" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Spanish" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Italian" Version="12.4.0" />

<PackageReference Include="RasterEdge.XImage.OCR" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.English" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.German" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.French" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Spanish" Version="12.4.0" />
<PackageReference Include="XImage.OCR.Language.Italian" Version="12.4.0" />
XML

Incompatibilidades de versão entre os pacotes principais e os pacotes de idioma causam erros de inicialização em tempo de execução. Quando RasterEdge.XImage.OCR está na versão 12.4.0 e XImage.OCR.Language.English na 12.3.0 — um cenário realista após qualquer atualização parcial — a biblioteca falha em tempo de execução com erros que não identificam claramente a sincronização de versão como a causa. Seu pipeline de CI/CD agora possui 6 operações de restauração distintas e 6 pontos de falha independentes. A inclusão de idiomas asiáticos para uma implementação global adiciona pacotes CJK: chinês simplificado, chinês tradicional, japonês e coreano exigem cada um seu próprio pacote, elevando um aplicativo de 10 idiomas para 11 dependências NuGet separadas.

Entendendo o IronOCR

IronOCR é uma biblioteca OCR comercial para .NET , construída sobre um mecanismo Tesseract 5 otimizado, com extensões proprietárias de pré-processamento e saída. É distribuído como um único pacote NuGet (IronOcr) que inclui o motor OCR, todas as capacidades de pré-processamento, entrada nativa de PDF e saída de PDF pesquisável, leitura de código de barras e suporte completo de tempo de execução multiplataforma.

Principais características:

  • Implantação de pacote único: Um comando dotnet add package IronOcr instala tudo; Sem gerenciamento de binários nativos, sem configuração da pasta tessdata, sem coordenação de DLLs específicas da plataforma.
  • Pipeline de pré-processamento automático: Filtros embutidos Deskew(), DeNoise(), Contrast(), Binarize(), e EnhanceResolution() aplicam-se diretamente a OcrInput antes do reconhecimento — não é necessária biblioteca de processamento de imagem externa
  • Suporte nativo a PDF: input.LoadPdf() lê PDFs diretamente; result.SaveAsSearchablePdf() escreve PDFs pesquisáveis; Os PDFs protegidos por senha são tratados com um único parâmetro.
  • Design seguro para threads: Uma única instância IronTesseract lida com solicitações concorrentes em vários threads sem exigir instanciação por thread
  • 125+ idiomas via pacotes NuGet opcionais: Idiomas são instalados como pacotes IronOcr.Languages.* separados quando necessário; O inglês básico vem incluído por padrão.
  • Ambiente de execução multiplataforma:Windows(x86, x64),Linuxx64, macOS, Docker, Azure App Service e AWS Lambda são todos suportados pelo mesmo pacote.
  • Modelo de resultado estruturado: OcrResult expõe Pages, Paragraphs, Lines, Words, e coordenadas e pontuações de confiança por palavra através de um único objeto de resultado
  • Preços: $999 Lite (perpétua), $1,499 Plus, $2,999 Professional — compra única com um ano de atualizações incluídas

Comparação de recursos

Recurso XImage.OCR IronOCR
Pacotes NuGet para 5 idiomas 6 1
Pré-processamento integrado Não Sim
Entrada nativa de PDF Requer o SDK de PDF da RasterEdge Sim
Saída em PDF pesquisável Requer SDK separado Sim
Seguro contra roscas Não Sim
Multiplataforma principalmenteWindows Windows, Linux, macOS, Docker
Idiomas disponíveis ~15 125+

Comparação Detalhada de Recursos

Recurso XImage.OCR IronOCR
Gerenciamento de Pacotes
Pacotes NuGet (somente em inglês) 2 1
Pacotes NuGet (10 idiomas) 11 1
Requisito de sincronização de versão Todos os pacotes devem ser iguais. Versão única
operações de restauração de CI/CD 1 por embalagem 1 no total
Motor OCR
Motor principal Tesseract (igual aos wrappers gratuitos) Tesseract 5 otimizado
Versão do motor 4.x/5.x Tesseract 5
Pontuações de confiança Parcial (via Tesseract) Sim (result.Confidence)
Pré-processamento
Desvio Não Sim (input.Deskew())
Remoção de ruído Não Sim (input.DeNoise())
Aprimoramento de contraste Não Sim (input.Contrast())
Binarização Não Sim (input.Binarize())
Melhoria de resolução Não Sim (input.EnhanceResolution(300))
Suporte a documentos
Entrada de imagem Sim Sim
Entrada nativa de PDF Requer SDK adicional Sim
PDF protegido por senha Requer SDK adicional Sim (parâmetro único)
Saída em PDF pesquisável Requer SDK adicional Sim
Saída hOCR Não Sim
Suporte de Idiomas
Total de idiomas disponíveis ~15 125+
Inglês incluído no currículo básico Sim Sim
24 línguas oficiais da UE Incompleto Tudo incluído
Línguas CJK 4 embalagens separadas Disponível
Arquitetura
Segurança da rosca Não é seguro para threads Seguro contra roscas
Memória por thread concorrente ~100 MB por instância instância única compartilhada
OCR baseado em região Limitado (ProcessRegion) Sim (CropRectangle)
Leitura de código de barras durante OCR Não Sim
Modelo de resultado estruturado Saída de string básica Páginas, Linhas, Palavras, coordenadas
Implantação
Windows Sim Sim
Linux Não Sim
macOS Não Sim
Docker Não Sim
Azure/AWS Não Sim

Fragmentação de Pacotes vs. NuGet Único

A diferença estrutural mais evidente entre o XImage.OCR e o IronOCR reside na forma como lidam com o suporte a idiomas. Não se trata de um detalhe insignificante — afeta todos os membros da equipe que trabalham no projeto, todos os processos de compilação e todas as implantações.

Abordagem XImage.OCR

O XImage.OCR distribui cada idioma como um pacote NuGet separado. O comando de instalação principal instala apenas o mecanismo de OCR. Em seguida, instale cada idioma necessário:

# XImage.OCR: Install sequence for a multilingual application
dotnet add package RasterEdge.XImage.OCR
dotnet add package XImage.OCR.Language.English
dotnet add package XImage.OCR.Language.German
dotnet add package XImage.OCR.Language.French
dotnet add package XImage.OCR.Language.Spanish
dotnet add package XImage.OCR.Language.Italian
dotnet add package XImage.OCR.Language.Portuguese
dotnet add package XImage.OCR.Language.ChineseSimplified
dotnet add package XImage.OCR.Language.ChineseTraditional
dotnet add package XImage.OCR.Language.Japanese
# 10 languages = 11 package commands
# XImage.OCR: Install sequence for a multilingual application
dotnet add package RasterEdge.XImage.OCR
dotnet add package XImage.OCR.Language.English
dotnet add package XImage.OCR.Language.German
dotnet add package XImage.OCR.Language.French
dotnet add package XImage.OCR.Language.Spanish
dotnet add package XImage.OCR.Language.Italian
dotnet add package XImage.OCR.Language.Portuguese
dotnet add package XImage.OCR.Language.ChineseSimplified
dotnet add package XImage.OCR.Language.ChineseTraditional
dotnet add package XImage.OCR.Language.Japanese
# 10 languages = 11 package commands
SHELL

O próprio código reflete a mesma complexidade. A configuração do OCR multilíngue requer que todos os pacotes de idioma já estejam instalados — a biblioteca não pode validar isso em tempo de compilação:

// XImage.OCR: Language codes must match installed packages exactly
// If XImage.OCR.Language.German is not installed, this fails at runtime

var ocrHandler = new OCRHandler();

// Ativação de licença required before any OCR operation
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-license-key");

// Set multiple languages — each requires its own NuGet package installed
ocrHandler.Languages = new[] { "eng", "deu", "fra", "spa", "ita" };

string result = ocrHandler.Process(imagePath);
// XImage.OCR: Language codes must match installed packages exactly
// If XImage.OCR.Language.German is not installed, this fails at runtime

var ocrHandler = new OCRHandler();

// Ativação de licença required before any OCR operation
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-license-key");

// Set multiple languages — each requires its own NuGet package installed
ocrHandler.Languages = new[] { "eng", "deu", "fra", "spa", "ita" };

string result = ocrHandler.Process(imagePath);
Imports RasterEdge.XImage.OCR

' XImage.OCR: Language codes must match installed packages exactly
' If XImage.OCR.Language.German is not installed, this fails at runtime

Dim ocrHandler As New OCRHandler()

' Ativação de licença required before any OCR operation
License.LicenseManager.SetLicense("your-license-key")

' Set multiple languages — each requires its own NuGet package installed
ocrHandler.Languages = New String() {"eng", "deu", "fra", "spa", "ita"}

Dim result As String = ocrHandler.Process(imagePath)
$vbLabelText   $csharpLabel

Se um pacote de idioma estiver faltando ou em uma versão incorreta, a falha ocorrerá em tempo de execução durante a chamada OCR, e não em tempo de compilação ou durante a restauração do pacote. Em um pipeline de implantação, isso significa descobrir o problema em ambientes de produção ou pré-produção, em vez de na máquina do desenvolvedor.

Abordagem IronOCR

O IronOCR é instalado como um único pacote. O suporte para os idiomas ocidentais mais comuns está incluído por padrão; Os pacotes de idiomas adicionais são instalados como pacotes opcionais, seguindo o mesmo padrão de pacote único, mas você começa de um estado funcional em vez de um estado corrompido:

# IronOCR: Install everything in one command
dotnet add package IronOcr
# English included. Add specific language packs only when needed.
dotnet add package IronOcr.Languages.German
# IronOCR: Install everything in one command
dotnet add package IronOcr
# English included. Add specific language packs only when needed.
dotnet add package IronOcr.Languages.German
SHELL

O código para OCR multilíngue usa valores enum OcrLanguage tipados, não códigos de string, o que elimina a classe de erros de tempo de execução resultantes de identificadores de idioma digitados incorretamente:

// IronOCR: Type-safe languages, single package
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
ocr.AddSecondaryLanguage(OcrLanguage.German);
ocr.AddSecondaryLanguage(OcrLanguage.French);

var result = ocr.Read("multilingual-document.jpg");
Console.WriteLine(result.Text);
// IronOCR: Type-safe languages, single package
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
ocr.AddSecondaryLanguage(OcrLanguage.German);
ocr.AddSecondaryLanguage(OcrLanguage.French);

var result = ocr.Read("multilingual-document.jpg");
Console.WriteLine(result.Text);
Imports IronOcr

' IronOCR: Type-safe languages, single package
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
ocr.AddSecondaryLanguage(OcrLanguage.German)
ocr.AddSecondaryLanguage(OcrLanguage.French)

Dim result = ocr.Read("multilingual-document.jpg")
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

O guia de configuração do IronTesseract aborda a configuração de idioma em detalhes. O guia prático sobre vários idiomas mostra como combinar idiomas primários e secundários em documentos com conteúdo em idiomas mistos.

Para uma aplicação de 10 idiomas: XImage.OCR requer 11 pacotes, 11 linhas em .csproj, e sincronização contínua de versão em todos os 11 quando chegam as atualizações.IronOCR requer 1 pacote em .csproj, além de pacotes opcionais por idioma quando necessário. Essa diferença se acentua entre as equipes.

Pré-processamento: Tesseract bruto vs. Pipeline integrado

A principal limitação técnica do XImage.OCR é a ausência de capacidade de pré-processamento. Como a biblioteca utiliza o Tesseract sem adicionar aprimoramento de imagem, a qualidade do documento limita diretamente a qualidade do OCR. Essa é uma restrição decisiva em qualquer implementação real.

Abordagem XImage.OCR

O XImage.OCR envia imagens diretamente para o Tesseract. Uma fatura digitalizada com inclinação de 2 graus, ruído do scanner e resolução de 150 DPI é processada tal como está. O OCRHandler não tem métodos para correção de imagem:

// XImage.OCR: Não preprocessing available
// A skewed, noisy, low-DPI scan goes straight to Tesseract

var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

// Direct OCR on problematic image — skew, noise, and low resolution
// all degrade accuracy with no mitigation available in the library
string result = ocrHandler.Process(imagePath);

// To improve results, you would need:
// - External library (OpenCV.NET, ImageSharp, etc.)
// - 100-200 lines of deskew and noise-reduction code
// - Per-document-type tuning
// - Image processing expertise your OCR developer may not have
// XImage.OCR: Não preprocessing available
// A skewed, noisy, low-DPI scan goes straight to Tesseract

var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

// Direct OCR on problematic image — skew, noise, and low resolution
// all degrade accuracy with no mitigation available in the library
string result = ocrHandler.Process(imagePath);

// To improve results, you would need:
// - External library (OpenCV.NET, ImageSharp, etc.)
// - 100-200 lines of deskew and noise-reduction code
// - Per-document-type tuning
// - Image processing expertise your OCR developer may not have
' XImage.OCR: Não preprocessing available
' A skewed, noisy, low-DPI scan goes straight to Tesseract

Dim ocrHandler As New OCRHandler()
ocrHandler.Language = "eng"

' Direct OCR on problematic image — skew, noise, and low resolution
' all degrade accuracy with no mitigation available in the library
Dim result As String = ocrHandler.Process(imagePath)

' To improve results, you would need:
' - External library (OpenCV.NET, ImageSharp, etc.)
' - 100-200 lines of deskew and noise-reduction code
' - Per-document-type tuning
' - Image processing expertise your OCR developer may not have
$vbLabelText   $csharpLabel

A solução alternativa é utilizar uma biblioteca de processamento de imagens separada, escrever o código de pré-processamento manualmente e manter esse código atualizado mesmo após atualizações da biblioteca. Para equipes já imersas no ecossistema da RasterEdge, algumas ferramentas estão disponíveis por meio de outros componentes do SDK da RasterEdge — mas isso requer a compra e integração de produtos adicionais.

Abordagem IronOCR

IronOCR aplica pré-processamento como métodos encadeáveis em OcrInput, entre o carregamento do documento e a execução do OCR. Não é necessária nenhuma biblioteca externa:

// IronOCR: Pré-processamento integrado pipeline
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Apply corrections in sequence
input.Deskew();              // Detect and correct rotation angle
input.DeNoise();             // Remove scanner artifacts and noise
input.Contrast();            // Enhance contrast for faded text
input.Binarize();            // Convert to clean black-and-white
input.EnhanceResolution(300); // Scale low-DPI images to 300 DPI

var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);
Console.WriteLine($"Confidence: {result.Confidence}%");
// IronOCR: Pré-processamento integrado pipeline
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Apply corrections in sequence
input.Deskew();              // Detect and correct rotation angle
input.DeNoise();             // Remove scanner artifacts and noise
input.Contrast();            // Enhance contrast for faded text
input.Binarize();            // Convert to clean black-and-white
input.EnhanceResolution(300); // Scale low-DPI images to 300 DPI

var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr

' IronOCR: Pré-processamento integrado pipeline
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

Using input As New OcrInput()
    input.LoadImage("low-quality-scan.jpg")

    ' Apply corrections in sequence
    input.Deskew()              ' Detect and correct rotation angle
    input.DeNoise()             ' Remove scanner artifacts and noise
    input.Contrast()            ' Enhance contrast for faded text
    input.Binarize()            ' Convert to clean black-and-white
    input.EnhanceResolution(300) ' Scale low-DPI images to 300 DPI

    Dim result = New IronTesseract().Read(input)
    Console.WriteLine(result.Text)
    Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
$vbLabelText   $csharpLabel

O guia de correção da qualidade da imagem abrange o conjunto completo de filtros de pré-processamento. Para correções específicas de orientação, o guia de correção de orientação de imagem e a detecção de rotação de página lidam com documentos de múltiplos ângulos.

O impacto prático do pré-processamento em documentos do mundo real é significativo. O Tesseract, sem pré-processamento, em um documento digitalizado a 150 DPI com inclinação de 5 graus, produz uma precisão na faixa de 60 a 75%. Com a correção de distorção e o aprimoramento da resolução, o mesmo documento a 300 DPI com a rotação corrigida atinge uma precisão de 93 a 97%. O XImage.OCR não consegue preencher essa lacuna sem código externo. O IronOCR finaliza a chamada com 5 métodos.

Proposta de valor versus wrappers Tesseract gratuitos

Para definir o preço comercial de uma embalagem Tesseract, é necessário responder claramente a uma pergunta: o que a compra do produto comercial oferece que a embalagem gratuita não oferece? Para o XImage.OCR, essa pergunta é mais difícil de responder do que deveria ser.

A lacuna da alternativa gratuita

O wrapper charlesw/tesseract no NuGet tem mais de 8 milhões de downloads, manutenção ativa e licença Apache 2.0 — gratuito para uso comercial. Ele fornece essencialmente a mesma saída de OCR que o XImage.OCR, pois ambos utilizam o mesmo mecanismo Tesseract. As diferenças são:

  • Suporte a idiomas: O tessdata gratuito oferece suporte a mais de 100 idiomas; O XImage.OCR oferece suporte a cerca de 15 pacotes pagos.
  • Comunidade: charlesw/tesseract tem mais de 3.000 perguntas no Stack Overflow e uma extensa documentação da comunidade; XImage.OCR tem menos de 100
  • Pré-processamento: Nenhuma das bibliotecas oferece pré-processamento integrado — ambas passam as imagens diretamente para o Tesseract.
  • Threads: Ambos possuem a mesma restrição de segurança de threads (instâncias por thread são necessárias).

Quando o produto comercial possui menos idiomas, uma comunidade menor , a mesma lacuna de pré-processamento e o mesmo modelo de threading que a alternativa gratuita, a proposta de valor comercial torna-se difícil de articular além do suporte do fornecedor e da integração com o ecossistema RasterEdge.

IronOCR como alternativa comercial

O IronOCR justifica seu preço comercial por meio de recursos que nem o XImage.OCR nem as alternativas gratuitas oferecem: pré-processamento automatizado, suporte nativo a PDF, design à prova de threads e implementação multiplataforma. A licença $999 Lite é uma compra perpétua única. A questão não é se vale a pena pagar por um OCR comercial — muitas vezes vale. A questão é o que você recebe em troca do dinheiro.

// What the IronOCR Lite license buys vs what commercial pricing buys with XImage.OCR

// IronOCR: Preprocessing, PDF, thread safety, cross-platform in one call
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");   // Native PDF — no extra SDK
input.Deskew();                          // Built-in preprocessing
input.DeNoise();                         // Não external library needed
var result = ocr.Read(input);
result.SaveAsSearchablePdf("output.pdf"); // Searchable PDF output
Console.WriteLine($"Confidence: {result.Confidence}%");

// XImage.OCR: Same Tesseract core, no preprocessing, no PDF, not thread-safe
// Requires purchasing and integrating RasterEdge PDF SDK for PDF operations
// What the IronOCR Lite license buys vs what commercial pricing buys with XImage.OCR

// IronOCR: Preprocessing, PDF, thread safety, cross-platform in one call
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");   // Native PDF — no extra SDK
input.Deskew();                          // Built-in preprocessing
input.DeNoise();                         // Não external library needed
var result = ocr.Read(input);
result.SaveAsSearchablePdf("output.pdf"); // Searchable PDF output
Console.WriteLine($"Confidence: {result.Confidence}%");

// XImage.OCR: Same Tesseract core, no preprocessing, no PDF, not thread-safe
// Requires purchasing and integrating RasterEdge PDF SDK for PDF operations
Imports IronOcr

' What the IronOCR Lite license buys vs what commercial pricing buys with XImage.OCR

' IronOCR: Preprocessing, PDF, thread safety, cross-platform in one call
Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadPdf("scanned-invoice.pdf")   ' Native PDF — no extra SDK
    input.Deskew()                         ' Built-in preprocessing
    input.DeNoise()                        ' Não external library needed
    Dim result = ocr.Read(input)
    result.SaveAsSearchablePdf("output.pdf") ' Searchable PDF output
    Console.WriteLine($"Confidence: {result.Confidence}%")
End Using

' XImage.OCR: Same Tesseract core, no preprocessing, no PDF, not thread-safe
' Requires purchasing and integrating RasterEdge PDF SDK for PDF operations
$vbLabelText   $csharpLabel

O tutorial de leitura de texto a partir de imagens e o guia de OCR do Tesseract em C# documentam o conjunto completo de funcionalidades. Para equipes que avaliam por que o IronOCR é preferível a um wrapper básico do Tesseract, a página dedicada "Por que IronOCR e não Tesseract" aborda os diferenciais técnicos em detalhes.

Processamento de PDF

O reconhecimento de OCR em PDF é onde a diferença arquitetônica entre o XImage.OCR e o IronOCR se torna mais custosa em termos operacionais.

Abordagem XImage.OCR

O XImage.OCR não processa PDFs nativamente. O fluxo de trabalho requer o SDK PDF da RasterEdge — uma compra comercial separada — para renderizar páginas PDF em imagens, que o XImage.OCR processa uma página por vez por meio de arquivos temporários:

// XImage.OCR: PDF requires RasterEdge PDF SDK (additional purchase)
// Workflow: PDF -> render to image -> temp file -> OCR -> delete temp file

var pdfDocument = new PDFDocument(pdfPath); // Requires separate RasterEdge SDK

var results = new System.Text.StringBuilder();
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

for (int i = 0; i < pdfDocument.PageCount; i++)
{
    // Render PDF page to image at 200 DPI
    var pageImage = pdfDocument.RenderPage(i, 200);

    string tempPath = Path.GetTempFileName() + ".png";
    pageImage.Save(tempPath);

    try
    {
        string pageText = ocrHandler.Process(tempPath);
        results.AppendLine($"--- Page {i + 1} ---");
        results.AppendLine(pageText);
    }
    finally
    {
        File.Delete(tempPath); // Manual cleanup required
    }
}

return results.ToString();
// XImage.OCR: PDF requires RasterEdge PDF SDK (additional purchase)
// Workflow: PDF -> render to image -> temp file -> OCR -> delete temp file

var pdfDocument = new PDFDocument(pdfPath); // Requires separate RasterEdge SDK

var results = new System.Text.StringBuilder();
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";

for (int i = 0; i < pdfDocument.PageCount; i++)
{
    // Render PDF page to image at 200 DPI
    var pageImage = pdfDocument.RenderPage(i, 200);

    string tempPath = Path.GetTempFileName() + ".png";
    pageImage.Save(tempPath);

    try
    {
        string pageText = ocrHandler.Process(tempPath);
        results.AppendLine($"--- Page {i + 1} ---");
        results.AppendLine(pageText);
    }
    finally
    {
        File.Delete(tempPath); // Manual cleanup required
    }
}

return results.ToString();
Imports System.Text
Imports System.IO

' XImage.OCR: PDF requires RasterEdge PDF SDK (additional purchase)
' Workflow: PDF -> render to image -> temp file -> OCR -> delete temp file

Dim pdfDocument As New PDFDocument(pdfPath) ' Requires separate RasterEdge SDK

Dim results As New StringBuilder()
Dim ocrHandler As New OCRHandler()
ocrHandler.Language = "eng"

For i As Integer = 0 To pdfDocument.PageCount - 1
    ' Render PDF page to image at 200 DPI
    Dim pageImage = pdfDocument.RenderPage(i, 200)

    Dim tempPath As String = Path.GetTempFileName() & ".png"
    pageImage.Save(tempPath)

    Try
        Dim pageText As String = ocrHandler.Process(tempPath)
        results.AppendLine($"--- Page {i + 1} ---")
        results.AppendLine(pageText)
    Finally
        File.Delete(tempPath) ' Manual cleanup required
    End Try
Next

Return results.ToString()
$vbLabelText   $csharpLabel

Este padrão introduz o gerenciamento de arquivos temporários, a limpeza explícita e a dependência de um segundo produto comercial. A resolução de renderização de 200 DPI neste padrão também fica abaixo do limite de 300 DPI, onde a precisão do Tesseract é ideal, o que afeta ainda mais a qualidade. As equipes que usam o XImage.OCR para fluxos de trabalho em PDF estão, na prática, pagando por dois produtos para fazer o que um deles já cobre em outro lugar.

Abordagem IronOCR

O IronOCR processa PDFs nativamente. Sem etapas intermediárias, sem arquivos temporários, sem um segundo SDK:

// IronOCR: Native PDF input, no extra dependencies
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");  // Direct PDF loading
var result = new IronTesseract().Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Console.WriteLine(result.Text);
// IronOCR: Native PDF input, no extra dependencies
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

using var input = new OcrInput();
input.LoadPdf("scanned-invoice.pdf");  // Direct PDF loading
var result = new IronTesseract().Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Console.WriteLine(result.Text);
Imports IronOcr

' IronOCR: Native PDF input, no extra dependencies
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

Using input As New OcrInput()
    input.LoadPdf("scanned-invoice.pdf")  ' Direct PDF loading
    Dim result = New IronTesseract().Read(input)
    result.SaveAsSearchablePdf("searchable-output.pdf")
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Os PDFs protegidos por senha adicionam um parâmetro:

using var input = new OcrInput();
input.LoadPdf("encrypted.pdf", Password: "secret");
var result = new IronTesseract().Read(input);
using var input = new OcrInput();
input.LoadPdf("encrypted.pdf", Password: "secret");
var result = new IronTesseract().Read(input);
Imports IronOcr

Using input As New OcrInput()
    input.LoadPdf("encrypted.pdf", Password: "secret")
    Dim result = New IronTesseract().Read(input)
End Using
$vbLabelText   $csharpLabel

O guia de entrada de PDF aborda PDFs com várias páginas, seleção de intervalo de páginas e configuração de DPI. O guia em PDF pesquisável documenta as opções de saída. Para equipes que desenvolvem fluxos de trabalho de arquivamento de documentos, a página de casos de uso de OCR de PDF em C# aborda todo o processo.

Referência de Mapeamento de API

XImage.OCR Equivalente de IronOCR Notas
new OCRHandler() new IronTesseract() Classe principal de OCR
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("key") IronOcr.License.LicenseKey = "key" Ativação de licença
ocrHandler.Language = "eng" ocr.Language = OcrLanguage.English enum com segurança de tipos versus string
ocrHandler.Languages = new[] { "eng", "deu" } ocr.AddSecondaryLanguage(OcrLanguage.German) Multilíngue
ocrHandler.Process(imagePath) ocr.Read("image.jpg").Text Operação principal de OCR
ocrHandler.ProcessRegion(path, rect) input.LoadImage(path, new CropRectangle(x, y, w, h)) OCR baseado em região
ocrHandler.SetVariable("tessedit_char_whitelist", "0123456789") ocr.Configuration.WhiteListCharacters = "0123456789" Filtragem de caracteres
result.Text result.Text Saída de texto bruto
result.MeanConfidence result.Confidence Percentual de confiança
Não existe equivalente result.Words / result.Lines / result.Pages Resultados estruturados
Não existe equivalente input.Deskew() Pré-processamento integrado
Não existe equivalente input.DeNoise() Pré-processamento integrado
Não existe equivalente input.EnhanceResolution(300) Pré-processamento integrado
Requer o SDK de PDF da RasterEdge input.LoadPdf(pdfPath) Entrada nativa de PDF
Requer o SDK de PDF da RasterEdge result.SaveAsSearchablePdf("out.pdf") Saída em PDF pesquisável
Instâncias OCRHandler por thread Instância única IronTesseract Modelo de segurança da rosca

Quando as equipes consideram migrar do XImage.OCR para o IronOCR

O gerenciamento de pacotes tornou-se um fardo de manutenção.

Equipes que começaram com dois ou três pacotes de idiomas XImage.OCR geralmente chegam a um ponto crítico quando o aplicativo se expande para 8 ou 10 idiomas. O arquivo do projeto agora possui de 9 a 11 referências a pacotes, todas exigindo sincronização de versão. O desenvolvedor que atualizou apenas o pacote principal quebrou silenciosamente o OCR para todos os idiomas. O pipeline CI/CD falha intermitentemente porque o cache de pacotes restaurou um pacote de idioma antigo. Nessa fase, a sobrecarga da sincronização de versões supera qualquer valor que o empacotamento por idioma possa oferecer, e a consolidação em uma solução de pacote único torna-se a decisão arquitetônica óbvia.

A qualidade de documentos no mundo real exige pré-processamento.

As equipes que utilizam o XImage.OCR em digitalizações controladas e de alta qualidade inicialmente não encontram problemas de precisão. O problema surge quando o fluxo de documentos se expande — uploads de fotos de dispositivos móveis, digitalizações de arquivos antigos, documentos enviados por fax, formulários preenchidos à mão e digitalizados a 150 DPI. Sem pré-processamento, a precisão do Tesseract nesses dados de entrada é baixa, independentemente do wrapper utilizado. As equipes então se deparam com uma escolha: construir e manter sua própria integração de biblioteca de pré-processamento ou migrar para uma solução com pré-processamento integrado. Os recursos integrados de correção de distorção, redução de ruído e aprimoramento de resolução do IronOCR eliminam completamente a dependência externa e proporcionam a melhoria na precisão sem exigir conhecimento especializado em processamento de imagens por parte do desenvolvedor de OCR.

Os fluxos de trabalho em PDF exigem a compra de um segundo SDK.

Quando o fluxo de trabalho de documentos de uma equipe se expande de arquivos de imagem para PDFs — o caminho de escalonamento mais comum para aplicativos de processamento de documentos — o XImage.OCR força a compra de um segundo produto RasterEdge. O SDK de PDF possui uma licença comercial separada. As equipes que pagam o preço comercial pelo OCR não incluíram em seu orçamento uma segunda licença comercial para que o OCR funcionasse no formato de documento mais comum em ambientes Enterprise . O suporte nativo do IronOCR para PDF torna essa preocupação irrelevante desde o primeiro dia, e o exemplo de OCR em PDF demonstra exatamente o quão direta é a integração.

A implantação multiplataforma torna-se um requisito.

A arquitetura do XImage.OCR, que é primariamente baseada em Windows, torna-se uma limitação importante quando se considera a implementação em contêineres noLinuxou em um ambiente de desenvolvimento macOS. As equipes modernas de desenvolvimento .NET utilizam oDockerpara desenvolvimento local e fazem a implantação em infraestrutura de contêineres baseada em Linux. Uma biblioteca OCR exclusiva paraWindowsnão pode participar dessa pilha. O IronOCR é compatível com Windows, Linux,macOSeDockera partir do mesmo pacote, sem necessidade de alterações de configuração — o guia de implantação do Docker e o guia de implantação do Linux explicam a configuração em detalhes.

Limitações de segurança de threads limitam a taxa de transferência em aplicações de servidor.

O reconhecimento óptico de caracteres (OCR) em uma aplicação de servidor, o processamento de tarefas em lote ou o tratamento de solicitações HTTP simultâneas exigem multithreading. O modelo de gerenciamento por thread do XImage.OCR significa que cada thread concorrente carrega sua própria instância do mecanismo Tesseract, consumindo de 40 a 100 MB por idioma por thread. Um servidor com 4 threads que processa documentos em 5 idiomas carrega aproximadamente 900 MB a 1,2 GB apenas para instâncias do manipulador de OCR. O design thread-safe do IronOCR compartilha uma única instância entre todas as threads — essa única instância lida com solicitações simultâneas sem multiplicar o consumo de memória. Equipes que enfrentam limitações de memória ou de capacidade de processamento em produção frequentemente atribuem a causa raiz a essa diferença arquitetônica.

Considerações Comuns de Migração

Substituindo OCRHandler por IronTesseract

A substituição do código principal é simples. Substitua OCRHandler por IronTesseract, substitua códigos de idioma de string ("eng", "deu") por valores enum OcrLanguage tipados, e envolva o carregamento de imagem em OcrInput. A ativação da licença move-se de LicenseManager.SetLicense() para a propriedade estática IronOcr.License.LicenseKey, que pode ser definida a partir de uma variável de ambiente para segurança de implantação:

// Before: XImage.OCR
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-key");
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";
string text = ocrHandler.Process(imagePath);

// After: IronOCR
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE");
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage(imagePath);
var result = ocr.Read(input);
string text = result.Text;
// Before: XImage.OCR
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-key");
var ocrHandler = new OCRHandler();
ocrHandler.Language = "eng";
string text = ocrHandler.Process(imagePath);

// After: IronOCR
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE");
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage(imagePath);
var result = ocr.Read(input);
string text = result.Text;
Imports System
Imports IronOcr

' Before: XImage.OCR
RasterEdge.XImage.OCR.License.LicenseManager.SetLicense("your-key")
Dim ocrHandler As New OCRHandler()
ocrHandler.Language = "eng"
Dim text As String = ocrHandler.Process(imagePath)

' After: IronOCR
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE")
Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadImage(imagePath)
    Dim result = ocr.Read(input)
    text = result.Text
End Using
$vbLabelText   $csharpLabel

O guia completo de entrada de imagens abrange todos os tipos de entrada: caminhos de arquivos, matrizes de bytes, fluxos e URLs.

Adicionando pré-processamento onde não existia nenhum

As equipes que estão migrando do XImage.OCR têm a oportunidade imediata de adicionar recursos de pré-processamento que não estavam disponíveis anteriormente. A migração não é apenas uma troca de nomes de classes — é uma oportunidade para corrigir problemas de precisão que foram aceitos tacitamente por não existir uma opção melhor. Após carregar os dados de entrada, adicione os filtros apropriados para os seus tipos de documento:

using var input = new OcrInput();
input.LoadImage(imagePath);

// Add these lines immediately after loading — no other changes needed
input.Deskew();
input.DeNoise();
input.EnhanceResolution(300);

var result = new IronTesseract().Read(input);
using var input = new OcrInput();
input.LoadImage(imagePath);

// Add these lines immediately after loading — no other changes needed
input.Deskew();
input.DeNoise();
input.EnhanceResolution(300);

var result = new IronTesseract().Read(input);
Imports IronOcr

Using input As New OcrInput()
    input.LoadImage(imagePath)

    ' Add these lines immediately after loading — no other changes needed
    input.Deskew()
    input.DeNoise()
    input.EnhanceResolution(300)

    Dim result = New IronTesseract().Read(input)
End Using
$vbLabelText   $csharpLabel

O tutorial sobre filtros de imagem fornece orientações sobre quais filtros aplicar para problemas específicos de qualidade de documentos. Aplique-os apenas a documentos cuja qualidade seja variável — digitalizações limpas e de alta resolução não se beneficiam do pré-processamento, e a etapa adicional aumenta o tempo de processamento.

Simplificando a lista de pacotes

Remova todos os pacotes XImage.OCR do projeto. A remoção do pacote é a parte mais demorada do processo para aplicativos com muitos idiomas instalados:

# Remove all XImage.OCR packages
dotnet remove package RasterEdge.XImage.OCR
dotnet remove package XImage.OCR.Language.English
dotnet remove package XImage.OCR.Language.German
dotnet remove package XImage.OCR.Language.French
# ... remove all language packages

# Add IronOCR
dotnet add package IronOcr
# Remove all XImage.OCR packages
dotnet remove package RasterEdge.XImage.OCR
dotnet remove package XImage.OCR.Language.English
dotnet remove package XImage.OCR.Language.German
dotnet remove package XImage.OCR.Language.French
# ... remove all language packages

# Add IronOCR
dotnet add package IronOcr
SHELL

Atualize o pipeline de CI/CD para remover as múltiplas operações de restauração e simplificar as etapas de verificação de dependências de pacotes. A lógica de sincronização de versões — caso fosse automatizada — pode ser completamente eliminada.

Lidando com OCR baseado em região

XImage.OCR expõe processamento de região via ProcessRegion(imagePath, rectangle).IronOCR lida com isso por meio de CropRectangle passado no momento do carregamento de entrada:

//IronOCR region-based OCR
var region = new CropRectangle(x: 0, y: 0, width: 600, height: 100);
using var input = new OcrInput();
input.LoadImage("invoice.jpg", region);
var text = new IronTesseract().Read(input).Text;
//IronOCR region-based OCR
var region = new CropRectangle(x: 0, y: 0, width: 600, height: 100);
using var input = new OcrInput();
input.LoadImage("invoice.jpg", region);
var text = new IronTesseract().Read(input).Text;
Imports IronOcr

Dim region As New CropRectangle(x:=0, y:=0, width:=600, height:=100)
Using input As New OcrInput()
    input.LoadImage("invoice.jpg", region)
    Dim text As String = New IronTesseract().Read(input).Text
End Using
$vbLabelText   $csharpLabel

O guia de OCR baseado em região e o exemplo de recorte de região documentam a abordagem para documentos de layout fixo, como faturas e formulários.

Funcionalidades adicionais do IronOCR

Além dos principais pontos de comparação, o IronOCR oferece recursos que não têm equivalente no XImage.OCR:

  • OCR assíncrono : Execução de OCR não bloqueante para aplicações ASP.NET que processam documentos em pipelines de requisição.
  • Tipos de documentos especializados : Fluxos de processamento específicos para passaportes, placas de veículos, cheques MICR e reconhecimento de escrita à mão.
  • Otimização de velocidade : Perfis de configuração otimizados para taxa de transferência quando os requisitos de precisão permitem concessões, abrangendo o modo de segmentação de página e a seleção do modo do mecanismo.
  • Processamento de TIFF com múltiplos quadros : Todos os quadros de um TIFF com várias páginas são lidos em uma única chamada, com resultados por página — sem necessidade de iteração manual entre os quadros.
  • Pacote NuGet : Disponível no NuGet com controle de versão completo e ferramentas padrão de gerenciamento de pacotes.

Compatibilidade com .NET e Preparação para o Futuro

O IronOCR é compatível com .NET 6, .NET 7, .NET 8 e .NET 9, com suporte ativo para .NET Standard 2.0 e .NET Framework 4.6.2+ para compatibilidade com projetos legados. A biblioteca fornece binários de tempo de execução multiplataforma que funcionam de forma idêntica no Windows,Linuxe macOS, sem compilação condicional ou empacotamento específico para cada plataforma. O XImage.OCR tem como alvo o .NET Standard 2.0 e o .NET Framework 4.5+, o que preserva a compatibilidade com versões anteriores, mas não se estende de forma significativa a ambientes de implantação modernos — a conteinerização com Docker, a infraestrutura de nuvem baseada emLinuxe o desenvolvimento paramacOSestão todos fora do escopo dos testes realizados. O IronOCR recebe atualizações regulares alinhadas com o ciclo de lançamentos do .NET , e a arquitetura de pacote único significa que as atualizações de compatibilidade são aplicadas uniformemente em todos os idiomas e recursos, sem a coordenação por pacote exigida pelo modelo fragmentado do XImage.OCR.

Conclusão

O XImage.OCR apresenta a mesma limitação fundamental que outros wrappers comerciais do Tesseract: cobra por uma camada gerenciada sobre tecnologia gratuita, sem diferenciá-la claramente do que os wrappers gratuitos já oferecem. O modelo fragmentado de pacotes de linguagem agrava isso, introduzindo uma sobrecarga operacional real — sincronização de versões em 11 pacotes para um aplicativo de 10 idiomas, 11 pontos de falha de CI/CD em vez de 1 e cobertura de linguagem limitada a cerca de 15 idiomas, enquanto as distribuições gratuitas do tessdata incluem mais de 100. As equipes já integradas ao ecossistema RasterEdge têm uma justificativa sólida para usar o XImage.OCR; As equipes que avaliarem o produto de forma independente como uma solução OCR autônoma terão dificuldades para justificar o preço comercial.

O pré-processamento é o ponto técnico onde a comparação é mais evidente. Documentos reais — digitalizados com resolução variável, fotografados em ângulos ligeiramente inclinados, impressos em equipamentos antigos — exigem correção de imagem antes que o OCR produza resultados confiáveis. O XImage.OCR não realiza nenhum pré-processamento. Para obter uma precisão aceitável nesses dados de entrada, é necessário escrever e manter um código externo de processamento de imagens. O IronOCR resolve isso com cinco chamadas de método e sem dependências externas.

O suporte a PDF e a implementação multiplataforma representam os dois cenários em que a arquitetura do XImage.OCR gera custos cumulativos. O processamento de PDFs requer uma segunda compra comercial do RasterEdge. A implantação emLinuxeDockernão é suportada. Para equipes cujos requisitos incluem qualquer um desses dois aspectos — e o desenvolvimento .NET Enterprise moderno normalmente inclui ambos — o IronOCR é a solução funcionalmente adequada, enquanto o XImage.OCR exige soluções alternativas de arquitetura que aumentam o custo e a complexidade.

Para as equipes que atualmente utilizam o XImage.OCR, a decisão se baseia principalmente em avaliar se o ecossistema RasterEdge justifica a dependência da plataforma. Para equipes que estão escolhendo uma biblioteca OCR do zero, o modelo de pacote único do IronOCR, o pré-processamento integrado, o suporte nativo a PDF e o ambiente de execução multiplataforma representam uma oferta comercial mais completa a preços comparáveis.

ObserveTesseract e xImage.OCR são marcas registradas de seus respectivos proprietários. Este site não é afiliado, endossado ou patrocinado pelo Google ou RasterEdge. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.

Perguntas frequentes

O que é xImage.OCR?

O xImage.OCR é uma solução de OCR usada por desenvolvedores e empresas para extrair texto de imagens e documentos. É uma das várias opções de OCR avaliadas juntamente com o IronOCR para desenvolvimento de aplicações .NET.

Como o IronOCR se compara ao xImage.OCR para desenvolvedores .NET?

IronOCR é uma biblioteca OCR .NET nativa do NuGet que utiliza o IronTesseract como mecanismo principal. Comparada ao xImage.OCR, oferece implantação mais simples (sem instaladores de SDK), preço fixo e uma API C# limpa, sem interoperabilidade COM ou dependências de nuvem.

O IronOCR é mais fácil de configurar do que o xImage.OCR?

O IronOCR é instalado por meio de um único pacote NuGet. Não há instaladores de SDK, arquivos de licença para copiar, componentes COM para registrar ou binários de tempo de execução separados para gerenciar. Todo o mecanismo de OCR está incluído no pacote.

Quais são as diferenças de precisão entre o xImage.OCR e o IronOCR?

O IronOCR alcança alta precisão de reconhecimento para documentos comerciais padrão, faturas, recibos e formulários digitalizados. Para documentos muito degradados ou com escritas incomuns, a precisão varia de acordo com a qualidade da fonte. O IronOCR inclui filtros de pré-processamento de imagem para melhorar o reconhecimento em entradas de baixa qualidade.

O IronOCR suporta extração de texto de PDFs?

Sim. O IronOCR extrai texto tanto de PDFs nativos quanto de imagens digitalizadas de PDFs em uma única chamada. Ele também suporta arquivos TIFF com várias páginas, imagens e fluxos de dados. Para PDFs digitalizados, o OCR é aplicado página por página, com objetos de resultado por página.

Como se compara o licenciamento do xImage.OCR ao do IronOCR?

O IronOCR utiliza uma licença perpétua com preço fixo, sem cobranças por página ou por digitalização. Organizações que processam grandes volumes de documentos pagam o mesmo valor de licença, independentemente do volume. Detalhes e preços por volume estão disponíveis na página de licenciamento do IronOCR.

Quais idiomas o IronOCR suporta?

O IronOCR suporta 127 idiomas através de pacotes de idiomas NuGet separados. Adicionar um idioma requer um único comando 'dotnet add package IronOcr.Languages.{Idioma}'. Não é necessário inserir arquivos manualmente nem configurar caminhos.

Como faço para instalar o IronOCR em um projeto .NET ?

Instale via NuGet: 'Install-Package IronOcr' no Console do Gerenciador de Pacotes ou 'dotnet add package IronOcr' na CLI. Pacotes de idiomas adicionais são instalados da mesma forma. Não é necessário instalar o SDK nativo.

O IronOCR é adequado para Docker e implantações em contêineres, ao contrário do xImage.OCR?

Sim. O IronOCR funciona em contêineres Docker por meio de seu pacote NuGet. A chave de licença é definida por meio de uma variável de ambiente. Não são necessários arquivos de licença, caminhos de SDK ou montagens de volume para o próprio mecanismo de OCR.

Posso experimentar o IronOCR antes de comprar, em comparação com o xImage.OCR?

Sim. O modo de avaliação do IronOCR processa documentos e retorna resultados de OCR com uma marca d'água sobreposta. Você pode verificar a precisão em seus próprios documentos antes de adquirir uma licença.

O IronOCR suporta leitura de código de barras juntamente com extração de texto?

O IronOCR concentra-se na extração de texto e OCR. Para leitura de código de barras, a Iron Software fornece o IronBarcode como uma biblioteca complementar. Ambos estão disponíveis individualmente ou como parte do pacote Iron Suite.

É fácil migrar do xImage.OCR para o IronOCR?

A migração do xImage.OCR para o IronOCR normalmente envolve a substituição das sequências de inicialização pela instanciação do IronTesseract, a remoção do gerenciamento do ciclo de vida COM e a atualização das chamadas de API. A maioria das migrações reduz significativamente a complexidade do código.

Kannaopat Udonpant
Engenheiro de Software
Antes de se tornar Engenheiro de Software, Kannapat concluiu um doutorado em Recursos Ambientais pela Universidade de Hokkaido, no Japão. Durante o doutorado, Kannapat também integrou o Laboratório de Robótica Veicular, que faz parte do Departamento de Engenharia de Bioprodução. Em 2022, ele utilizou suas habilidades ...
Leia mais

Equipe de Suporte Iron

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim