푸터 콘텐츠로 바로가기
다른 구성 요소와 비교

OCR 소프트웨어 체험판: 주요 옵션 살펴보기

Kofax OmniPage SDK를 사용하여 OCR을 실행하려면 Tungsten Automation 영업팀에 연락하여 4~12주 동안의 사전 상담, 개념 증명 세션, 계약 협상 및 구매 승인을 거쳐야 비로소 한 줄의 코드도 작성할 수 있습니다. SDK는 NuGet 에 존재하지 않습니다. 사용자 정의 설치 프로그램으로 도착하여 특정 컴퓨터 또는 네트워크 라이선스 서버에 라이선스 파일을 첨부하고, 시작 시 100MB 이상의 언어 사전과 신경망 모델을 로드하며, 명시적 engine.Shutdown() 호출을 요구하거나 해당 서버의 모든 프로세스에 라이선스를 잠그게 될 위험이 있습니다. 대부분의 .NET OCR 워크로드(송장, 계약서, 스캔한 PDF, 신분증)의 경우, 구매 및 배포에 드는 추가 비용은 30초 만에 설치할 수 있는 라이브러리에 비해 정확도 면에서 뚜렷한 이점을 제공하지 않습니다.

Kofax OmniPage 이해하기

Kofax OmniPage(2024년 브랜드 변경 후 현재 Tungsten Automation에서 판매)는 30년 역사를 가진 Enterprise 문서 캡처 및 OCR Suite 입니다. 소유권 변동 내역은 다음과 같습니다: Caere Corporation → Nuance Communications (2001) → Kofax (2019) → Tungsten Automation (2024). 소유권 이력은 플랫폼의 장기적인 안정성을 평가하는 팀에게 중요한 요소입니다.

OmniPage는 최고 수준의 정확도를 제공하며, 수백만 페이지를 처리하는 양식 처리 센터, 정부 문서 디지털화 프로그램, 필기 입력란에 ICR(지능형 문자 인식)이 필요한 금융 워크플로 등 대용량 Enterprise 문서 처리를 주요 대상으로 합니다. .NET 개발자에게 OCR 기능을 제공하는 Capture SDK는 데스크톱 제품인 OmniPage Ultimate(소비자 가격 499달러)과는 별개의 제품입니다. SDK는 별도의 구매가 필요하며, 기업 가격이 적용됩니다. Kofax/Tungsten Automation에 문의하여 견적을 받으십시오. 연간 유지보수 비용이 라이선스 비용 외에 요구됩니다.

OmniPage Capture SDK의 주요 아키텍처 특징:

  • NuGet 배포 없음: SDK는 판매 계약 후 맞춤형 설치 프로그램을 통해 제공됩니다. 프로젝트에 수동으로 추가된 DLL 참조
  • 엔진 수명 주기 관리: OmniPageEngine는 사용 전에 초기화되어야 하고 사용 후 명시적으로 종료해야 합니다; Shutdown() 호출 실패 시 라이선스를 잠글 수 있습니다
  • 라이선스 파일 배포: .lic 파일은 SDK를 실행하는 각 컴퓨터의 특정 경로에 있어야 합니다; 네트워크/플로팅 라이선스 구성에는 방화벽 포트가 열려 있는 별도의 라이선스 서버 설치가 필요합니다.
  • 하드웨어 지문 인식: 활성화는 하드웨어와 연동됩니다. 하드웨어 변경 시 재활성화 필요
  • 다중 구성 요소 네이티브 설치: OCR 엔진 DLL, ICR 필기 모듈, OMR 마크 인식 모듈 및 120개 이상의 언어 사전이 엔진 초기화 시 로드됩니다.
  • 다양한 출력 형식 및 인식 모드: OCR, ICR(필기), OMR(체크박스), 바코드 및 MRZ 인식을 지원합니다. 각 모드는 문서별로 영역별로 구성할 수 있습니다
  • 2025.3 버전에 Linux지원 추가: 2026년 1월 SDK 릴리스에서 Linux서버 지원이 추가되었습니다. macOS는 여전히 지원되지 않습니다.

엔진 초기화 패턴

모든 OmniPage 통합은 애플리케이션의 전체 문서 처리 기간을 아우르는 엔진 수명 주기로 시작됩니다.

// OmniPage: Engine must be initialized before any operations
// License file must exist at this path on every target machine
using var engine = new OmniPageEngine();
engine.SetLicenseFile(@"C:\Program Files\OmniPage\license.lic");
engine.Initialize();  // Contacts license server; loads 100MB+ of native components

// Configure recognition settings for the document
var settings = new RecognitionSettings
{
    PrimaryLanguage = "English",
    SecondaryLanguages = new[] { "German", "French" },
    AccuracyMode = "Maximum",
    PreserveLayout = true,
    DetectTables = true,
    DespeckleLevel = 2,
    ContrastEnhancement = true,
    AutoRotate = true,
    DeskewImage = true
};

// Document-centric workflow
var document = engine.CreateDocument();
document.AddPage(imagePath);
document.Recognize(settings);
string text = document.GetText();

// Explicit cleanup — omitting this can lock the license
document.Dispose();
engine.Shutdown();
// OmniPage: Engine must be initialized before any operations
// License file must exist at this path on every target machine
using var engine = new OmniPageEngine();
engine.SetLicenseFile(@"C:\Program Files\OmniPage\license.lic");
engine.Initialize();  // Contacts license server; loads 100MB+ of native components

// Configure recognition settings for the document
var settings = new RecognitionSettings
{
    PrimaryLanguage = "English",
    SecondaryLanguages = new[] { "German", "French" },
    AccuracyMode = "Maximum",
    PreserveLayout = true,
    DetectTables = true,
    DespeckleLevel = 2,
    ContrastEnhancement = true,
    AutoRotate = true,
    DeskewImage = true
};

// Document-centric workflow
var document = engine.CreateDocument();
document.AddPage(imagePath);
document.Recognize(settings);
string text = document.GetText();

// Explicit cleanup — omitting this can lock the license
document.Dispose();
engine.Shutdown();
Imports OmniPage

' OmniPage: Engine must be initialized before any operations
' License file must exist at this path on every target machine
Using engine As New OmniPageEngine()
    engine.SetLicenseFile("C:\Program Files\OmniPage\license.lic")
    engine.Initialize()  ' Contacts license server; loads 100MB+ of native components

    ' Configure recognition settings for the document
    Dim settings As New RecognitionSettings With {
        .PrimaryLanguage = "English",
        .SecondaryLanguages = {"German", "French"},
        .AccuracyMode = "Maximum",
        .PreserveLayout = True,
        .DetectTables = True,
        .DespeckleLevel = 2,
        .ContrastEnhancement = True,
        .AutoRotate = True,
        .DeskewImage = True
    }

    ' Document-centric workflow
    Dim document = engine.CreateDocument()
    document.AddPage(imagePath)
    document.Recognize(settings)
    Dim text As String = document.GetText()

    ' Explicit cleanup — omitting this can lock the license
    document.Dispose()
    engine.Shutdown()
End Using
$vbLabelText   $csharpLabel

이 패턴은 모든 통합 지점에서 재현되어야 합니다. ASP.NET 요청 처리기, Windows 서비스, 배치 처리 작업 및 단위 테스트 모두 엔진 수명 주기를 관리해야 합니다. 플로팅 라이선스 구성에서는 오류 경로에서 Shutdown()를 잊는 경우 서버가 재시작될 때까지 다른 모든 프로세스에 대해 라이선스 좌석을 잠급니다.

IronOCR이해하기

IronOCR 은 최적화된 Tesseract 5 엔진을 기반으로 구축된 상 for .NET OCR 라이브러리로, 자동 전처리, 네이티브 PDF 지원, 단일 NuGet 패키지를 통한 크로스 플랫폼 배포 기능을 제공합니다. 이 솔루션은 Enterprise 차원의 구매 비용이나 Tesseract 원본에 필요한 수동 전처리 파이프라인 없이 바로 사용 가능한 OCR 기능을 필요로 하는 개발자를 대상으로 합니다.

주요 특징:

  • 단일 NuGet 패키지: dotnet add package IronOcr — 설치 프로그램 없음, DLL 참조 없음, 네이티브 구성 요소 관리 없음
  • 문자열 기반 라이선싱: 애플리케이션 시작 시 한 줄만 입력하면 됩니다. 배포할 파일이나 구성할 라이선스 서버, 하드웨어 지문 인식이 필요 없습니다.
  • 자동 전처리: OCR 엔진 실행 전에 기울기 보정, 노이즈 제거, 대비 향상, 이진화 및 해상도 정규화가 자동으로 적용됩니다.
  • 네이티브 PDF 입력: input.LoadPdf()는 스캔된 PDF를 직접 처리합니다; PDF 모듈에 대한 별도 라이선스가 필요하지 않습니다.
  • 검색 가능한 PDF 출력: result.SaveAsSearchablePdf()는 모든 스캔된 입력에서 텍스트 레이어 PDF를 생성합니다
  • 설계적으로 스레드 안전: 여러 IronTesseract 인스턴스가 조정 오버헤드 없이 병렬로 실행됩니다
  • 크로스 플랫폼: Windows, Linux, macOS, Docker, Azure 및 AWS Lambda 모두 동일한 NuGet 패키지에서 지원됩니다.
  • 125개 이상의 언어: 각 언어는 별도의 NuGet 패키지 (IronOcr.Languages.French 등)로 제공됩니다
  • 영구 라이선싱: $999 Lite / $1,499 Plus / $2,999 Professional / $5,999 Unlimited; 연간 유지 관리 필요 없음

기능 비교

기능 Kofax OmniPage SDK IronOCR
분포 사용자 지정 설치 프로그램, 수동 DLL 참조 NuGet 패키지
설치 시간 4~12주(조달) + 시간(설치) 30초
시작 가격 Kofax/Tungsten Automation 영업 부서에 연락하십시오. $999 Lite (공개됨)
라이선스 모델 Enterprise 계약, 연간 유지보수 영구적이며 유지보수가 필요 없습니다.
라이선스 메커니즘 .lic 파일 + 선택적 라이선스 서버 문자열 키 또는 환경 변수
macOS 지원 지원되지 않음 전체 지원
리눅스 지원 예 (2025.3 버전에 추가됨) 예 (모든 버전)

상세 기능 비교

기능 Kofax OmniPage SDK IronOCR
인수
NuGet 사용 가능 여부 아니요
셀프 서비스 체험 아니요 (판매 실적에 따라 평가가 제한됩니다) 예 (무료 체험 가능)
게시된 가격 아니요
판매 프로세스 필수 사항 네 (일반적으로 4~12주 소요) 아니요
라이선스
라이선스 메커니즘 디스크의 .lic 파일 문자열 키
라이선스 서버 지원 예 (플로팅/네트워크) 필요하지 않음
하드웨어 지문 인식 아니요
연간 유지 보수 비용 라이선스 비용의 18~25% 선택적
페이지당 런타임 요금 사용 가능 (가변적) 아니요
플랫폼 지원
윈도우 x64
Linux 예 (2025.3+) 예 (모든 버전)
macOS 아니요
Docker 제한적 전체
Azure / AWS Lambda 복잡함 직관적
OCR 기능
OCR(인쇄체 텍스트) 네, 120개 이상의 언어 네, 125개 이상의 언어
ICR(필기체) 제한적
OMR(체크박스/버블) 아니요
MRZ 인식
MICR(은행 수표)
바코드 판독 추가 모듈 내장형
문서 입력
이미지 파일
PDF 입력(기본) 예 (추가 모듈이 필요할 수 있습니다) 네, 내장되어 있습니다.
비밀번호로 보호된 PDF 파일 구성에 따라 다릅니다 예 (Password 매개변수)
여러 페이지로 구성된 TIFF 파일
스트림 입력
산출
일반 텍스트
검색 가능한 PDF
hOCR
단어 수준 좌표
신뢰도 점수
전처리
자동 기울기 보정 설정 기반 자동 + 명시적 API
소음 감소 설정 기반 자동 + 명시적 API
명암 대비 강화 설정 기반 자동 + 명시적 API
명시적 필터 제어 예 (Deskew(), DeNoise() 등)
개발
엔진 수명주기 관리 필요함 필요하지 않음
나사 안전 복합적인 (엔진 재사용) 내장형
배포 복잡성 높음 (라이선스 파일, 네이티브 구성 요소) 단일 NuGet 패키지

Enterprise 조달 vs. 개발자 접근성

OmniPage와IronOCR의 가장 중요한 실질적인 차이점은 정확도가 아니라 "OCR이 필요하다"는 시점부터 "내 애플리케이션에서 OCR이 실행된다"는 시점까지의 시간입니다.

Kofax OmniPage 접근 방식

OmniPage 획득 프로세스는 개발자가 단축할 수 없는 고정된 순서를 따릅니다.

OmniPage 배포 단계(kofax-enterprise-ocr.cs 소스 코드에서 발췌):

1. 전체 판매 프로세스 (4~12주)
2. Tungsten에서 SDK 설치 프로그램을 받으세요
3. 개발 환경에 SDK를 설치합니다.
4. 라이선스 파일 구성 (기기별 또는 플로팅)
5. 라이선스 서버를 설정합니다(네트워크 라이선싱을 사용하는 경우).
6. 프로덕션 서버에 런타임 구성 요소를 설치합니다.
7. 라이선스 파일을 프로덕션 환경에 배포합니다.
8. 라이선스 서버 통신을 위한 방화벽을 구성합니다.
9. 라이선스 가용성 모니터링을 설정하십시오.
10. 라이선스 해제를 위한 문서 종료 절차

5단계, 8단계, 9단계는 개발자 작업이 아니며, 인프라 및 보안 팀과의 협업이 필요합니다. 7단계는 모든 프로덕션 배포가 하드 코딩된 경로에 .lic 파일을 필요로 한다는 것을 의미합니다. 10단계는 어떤 코드 경로에서든 Shutdown()를 잊는 경우 플로팅 라이선스 좌석을 무기한 잠그기 때문에 필요합니다.

페이지별 라이선스 모델은 운영상의 복잡성을 한층 더 높입니다. 사용량 보고는 라이선스 서버로 전송되고, 청구서 대조는 매월 또는 분기별로 이루어지며, 예상치 못한 문서량 급증(신규 고객 유치, 밀린 업무 처리 등)이 발생하면 누구도 예산에 반영하지 않았던 초과 청구서가 생성됩니다.

IronOCR접근법

// Step 1: Install
// dotnet add package IronOcr

// Step 2: Configure license (one line at startup)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

// Step 3: Read a document
var text = new IronTesseract().Read("document.jpg").Text;
// Step 1: Install
// dotnet add package IronOcr

// Step 2: Configure license (one line at startup)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

// Step 3: Read a document
var text = new IronTesseract().Read("document.jpg").Text;
' Step 1: Install
' dotnet add package IronOcr

' Step 2: Configure license (one line at startup)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

' Step 3: Read a document
Dim text As String = (New IronTesseract()).Read("document.jpg").Text
$vbLabelText   $csharpLabel

설치 프로그램이 없습니다. DLL 참조가 없습니다. 디스크에 라이선스 파일이 없습니다. 라이선스 서버가 아닙니다. 방화벽 규칙이 없습니다. 종료 절차가 없습니다. 라이선스 키는 문자열입니다 — 환경 변수, appsettings.json, 또는 Azure Key Vault에 저장하세요. 배포 대상을 변경하는 경우(예: Windows VM에서 LinuxDocker컨테이너로) 라이선스를 재구성할 필요가 없습니다.

IronTesseract 설정 가이드는 환경 변수 기반 키 주입을 포함한 모든 구성 옵션을 다루며, 이를 통해 소스 코드에서 라이선스 문자열을 완전히 제거할 수 있습니다.

SDK 설치 vs. NuGet 설치

배포 모델은 CI/CD 파이프라인, Docker컨테이너 및 클라우드 함수가 제대로 작동하는지 여부를 결정하는 요소이며, 단순히 설정 난이도에만 좌우되는 것이 아닙니다.

Kofax OmniPage 접근 방식

OmniPage의 설치 기반 배포 모델은 현대의 배포 파이프라인의 모든 단계에서 마찰을 일으킵니다. Docker컨테이너를 빌드하려면 커스텀 SDK 설치 프로그램이 이미지 내에서 실행되고, 라이선스 파일이 런타임에 포함되거나 마운트되어, 컨테이너가 중지되기 전에 engine.Shutdown()가 실행되어야 합니다. Kubernetes Pod 재시작 시 OmniPage 엔진이 제대로 종료되지 않으면, 라이선스 서버의 체크아웃 시간 초과(일반적으로 30~60분)가 만료될 때까지 플로팅 라이선스 시트가 잠긴 상태로 유지될 수 있습니다.

CI/CD 파이프라인에서 통합 테스트를 실행하는 모든 에이전트는 SDK가 설치되어 있어야 하고 유효한 라이선스 파일이 있어야 합니다. 시험 병렬 처리는 허가된 좌석 수에 따라 제한됩니다. OmniPage의 페이지별 모델에서는 자동화된 테스트 실행 시 유료 페이지가 소모됩니다.

이름 공간 Kofax.OmniPage.CSDK은 패키지 관리자가 아닌 수동으로 추가된 DLL 경로를 통해 참조됩니다. 새로운 SDK 버전으로 업데이트하는 것은 모든 개발용 컴퓨터, 빌드 에이전트, 프로덕션 서버에서 설치 프로그램을 다시 실행해야 한다는 것을 의미합니다 — .csproj 파일의 버전 번호를 증가시키는 것이 아닙니다.

IronOCR접근법


<PackageReference Include="IronOcr" Version="2024.x.x" />

<PackageReference Include="IronOcr" Version="2024.x.x" />
XML
# Docker: no installer, no license file mount required
FROM mcr.microsoft.com/dotnet/aspnet:8.0
RUN apt-get update && apt-get install -y libgdiplus
COPY --from=build /app/publish /app
WORKDIR /app
ENTRYPOINT ["dotnet", "YourApp.dll"]

Docker 배포 가이드는 하나의 Linux종속성 (libgdiplus 이미지 렌더링용)과 그 외 아무것도 다루지 않습니다. 동일한 NuGet 패키지가 플랫폼별 구성 없이 Linux , AWS LambdaAzure App Service 에서 실행됩니다. CI/CD 파이프라인은 모든 다른 종속성이 복원되는 방식과 동일하게 dotnet restore를 통해 패키지를 복원합니다 — 설치 프로그램 단계 없음, 라이선스 파일 관리 없음, 테스트 병행 처리에 대한 좌석 수 제한 없음.

라이선스 서버 vs. 문자열 키

라이선스 아키텍처는 운영 환경에서 문제가 발생했을 때 새벽 3시에 발생할 수 있는 운영 위험을 결정합니다.

Kofax OmniPage 접근 방식

OmniPage의 라이선스 유효성 검사 시퀀스는 OCR과는 전혀 관련 없는 여러 가지 오류 발생 원인을 만들어냅니다.

// OmniPage: License validation at engine startup
// Each of these can fail independently
public static void InitializeWithLicense(string licensePath)
{
    // Failure mode 1: File missing (deployment error, path misconfiguration)
    if (!File.Exists(licensePath))
        throw new LicenseException("License file not found");

    // Failure mode 2: File permissions (service account lacks read access)
    try { using var stream = File.OpenRead(licensePath); }
    catch (UnauthorizedAccessException)
    {
        throw new LicenseException("Cannot read license file — check permissions");
    }

    // Failure mode 3: License server unreachable (network partition, server restart)
    var engine = new OmniPageEngine();
    engine.SetLicenseFile(licensePath);

    try
    {
        engine.Initialize(); // Network call to license server
    }
    catch (LicenseValidationException ex)
    {
        // Could be: expired, invalid hardware, concurrent seat limit exceeded,
        // license server unreachable, or maintenance window
        throw new LicenseException($"License validation failed: {ex.Message}");
    }
}
// OmniPage: License validation at engine startup
// Each of these can fail independently
public static void InitializeWithLicense(string licensePath)
{
    // Failure mode 1: File missing (deployment error, path misconfiguration)
    if (!File.Exists(licensePath))
        throw new LicenseException("License file not found");

    // Failure mode 2: File permissions (service account lacks read access)
    try { using var stream = File.OpenRead(licensePath); }
    catch (UnauthorizedAccessException)
    {
        throw new LicenseException("Cannot read license file — check permissions");
    }

    // Failure mode 3: License server unreachable (network partition, server restart)
    var engine = new OmniPageEngine();
    engine.SetLicenseFile(licensePath);

    try
    {
        engine.Initialize(); // Network call to license server
    }
    catch (LicenseValidationException ex)
    {
        // Could be: expired, invalid hardware, concurrent seat limit exceeded,
        // license server unreachable, or maintenance window
        throw new LicenseException($"License validation failed: {ex.Message}");
    }
}
Imports System.IO

' OmniPage: License validation at engine startup
' Each of these can fail independently
Public Shared Sub InitializeWithLicense(licensePath As String)
    ' Failure mode 1: File missing (deployment error, path misconfiguration)
    If Not File.Exists(licensePath) Then
        Throw New LicenseException("License file not found")
    End If

    ' Failure mode 2: File permissions (service account lacks read access)
    Try
        Using stream = File.OpenRead(licensePath)
        End Using
    Catch ex As UnauthorizedAccessException
        Throw New LicenseException("Cannot read license file — check permissions")
    End Try

    ' Failure mode 3: License server unreachable (network partition, server restart)
    Dim engine As New OmniPageEngine()
    engine.SetLicenseFile(licensePath)

    Try
        engine.Initialize() ' Network call to license server
    Catch ex As LicenseValidationException
        ' Could be: expired, invalid hardware, concurrent seat limit exceeded,
        ' license server unreachable, or maintenance window
        Throw New LicenseException($"License validation failed: {ex.Message}")
    End Try
End Sub
$vbLabelText   $csharpLabel

응용 프로그램 서버와 라이선스 서버 간의 네트워크 분할은 해당 분할이 해결될 때까지 모든 engine.Initialize() 호출을 실패시킵니다, 이전에 라이선스가 해당 컴퓨터에서 검증되었는지 여부와 상관없이. 페이지별 라이선싱은 네 번째 실패 모드를 추가합니다: 배치 중간에 소진된 페이지 할당량.

IronOCR접근법

// One line at application startup
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

// Optional: verify license status
bool isLicensed = IronOcr.License.IsLicensed;

// Works offline — no license server, no network calls at runtime
var text = new IronTesseract().Read("document.jpg").Text;
// One line at application startup
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

// Optional: verify license status
bool isLicensed = IronOcr.License.IsLicensed;

// Works offline — no license server, no network calls at runtime
var text = new IronTesseract().Read("document.jpg").Text;
Imports IronOcr

' One line at application startup
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

' Optional: verify license status
Dim isLicensed As Boolean = IronOcr.License.IsLicensed

' Works offline — no license server, no network calls at runtime
Dim text As String = New IronTesseract().Read("document.jpg").Text
$vbLabelText   $csharpLabel

IronOCR 라이선스 키를 로컬에서 검증합니다. OCR 작업 중에는 네트워크 호출이 발생하지 않습니다. 시작 후 인터넷 연결이 끊어진 운영 서버는 중단 없이 문서 처리를 계속합니다. 라이선스 페이지는 모든 계층을 다룹니다: 단일 개발자 단일 프로젝트 사용을 위한 $999 Lite에서 개발자 또는 프로젝트 제한이 없는 팀을 위한 $5,999 Unlimited까지.

키는 환경 변수 (IRONOCR_LICENSE_KEY)에서 코드 변경 없이 가져올 수 있으며, 배포된 바이너리를 수정하지 않고도 개발, 스테이징 및 프로덕션 전반에 걸쳐 다양한 키를 사용하기 쉽게 만듭니다.

로드맵 안정성

소유권이 네 번이나 변경된 이력은 인프라 및 보안 팀에서 문의하는 조달 위험 요소이며, 개발자는 이에 대한 솔직한 답변을 준비해야 합니다.

Kofax OmniPage 접근 방식

2001년 이후 OmniPage의 소유권 변동 내역: Caere → Nuance → Kofax → Tungsten Automation. 각 인수합병은 문서 URL이 깨지고, 지원 채널이 변경되고, 파트너 네트워크가 재편되고, Enterprise 라이선스 계약을 새로운 조건으로 재협상해야 하는 전환기를 가져왔습니다. 2026년 1월에 출시된 OmniPage Capture SDK 2025.3(리눅스 지원 추가)은 활발한 개발이 진행 중임을 보여주지만, Tungsten Automation으로 브랜드가 변경된 지 2년도 채 되지 않았고, 그 전환 기간 동안 제품 로드맵 문서는 "검토 중"으로 표시되었습니다.

3~5년 Enterprise 계약을 체결하려는 팀에게 중요한 질문은 OmniPage가 현재 제대로 작동하는지 여부가 아니라(실제로 잘 작동합니다), Tungsten Automation의 2028년 전략적 우선순위가 제품의 현재 로드맵과 일치하는지 여부입니다. Enterprise 소프트웨어 인수는 인수 기업의 로드맵 우선순위가 자사 플랫폼 구성 요소로 Shift 에 따라 인수된 제품이 유지보수 모드로 전환되는 경우가 빈번합니다.

문서 마이그레이션 자체만으로도 운영상의 마찰이 발생합니다. Kofax 시대의 지원 티켓, 문서 북마크, 이전 URL 구조를 참조하는 커뮤니티 포럼 게시물이 더 이상 올바르게 연결되지 않아 개발자가 가장 도움이 필요한 시점(문제 발생 및 복잡한 통합 작업 중)에 지원 경험에 불편함을 초래합니다.

IronOCR접근법

Iron Software는 완전 제품 라인이 .NET 라이브러리인 개발자 도구 회사입니다. IronOCR, IronPDF, IronBarcode 및 관련 제품은 회사의 핵심 사업이며, 더 큰 Enterprise 자동화 플랫폼에 흡수되는 인수 제품이 아닙니다. 릴리스 기록은 .NET 릴리스 주기에 맞춰 지속적으로 업데이트되었음을 ​​보여줍니다( .NET 8, .NET 9 지원 및 .NET 10 호환성 목표). 문서 허브튜토리얼은 버전별 콘텐츠가 포함된 안정적인 URL에서 관리됩니다.

API 매핑 참조

코팍스 옴니페이지 컨셉 IronOCR에 상응하는
using Kofax.OmniPage.CSDK; using IronOcr;
OmniPageEngine 필수 사항이 아닙니다 (엔진 수명 주기가 없음).
engine.SetLicenseFile(path) IronOcr.License.LicenseKey = "key";
engine.Initialize() 필요하지 않음
engine.Shutdown() 필요하지 않음
engine.CreateDocument() new OcrInput()
document.AddPage(imagePath) input.LoadImage(imagePath)
engine.OpenPDF(pdfPath) input.LoadPdf(pdfPath)
document.Recognize(settings) new IronTesseract().Read(input)
document.GetText() result.Text
document.Dispose() using var input = new OcrInput() (자동)
engine.LoadLanguageDictionary("German") dotnet add package IronOcr.Languages.German
settings.PrimaryLanguage = "English" ocr.Language = OcrLanguage.English;
settings.SecondaryLanguages = new[] { "German" } ocr.AddSecondaryLanguage(OcrLanguage.German);
settings.AccuracyMode = "Maximum" input.EnhanceResolution(300); + 전처리 필터
settings.DeskewImage = true input.Deskew();
settings.ContrastEnhancement = true input.Contrast();
settings.DespeckleLevel = 2 input.DeNoise();
pdfDocument.SaveAs(path, outputSettings) result.SaveAsSearchablePdf(path)
페이지별 라이선스 계산 해당 사항 없음 (페이지당 수수료 없음)
디스크의 .lic 파일 적용 안 됨
라이선스 서버 포트 구성 적용 안 됨

Kofax OmniPage에서IronOCR로 전환을 고려하는 팀

예산 상한선에 도달했습니다

계약서 처리를 위해 OmniPage를 사용하는 Enterprise 팀은 문서량이 증가하고 페이지당 라이선스 비용이 그에 따라 증가함에 따라 자연스럽게 한계에 도달하게 됩니다. 런타임 수수료는 SDK 라이선스와 유지보수 비용 외에 매년 누적됩니다. 한 번의 $2,999IronOCR Professional 라이선스에 대한 비즈니스 케이스가 간단해집니다: 영구 라이선스는 지속적인 페이지별 요금에 비해 빠르게 자체 비용을 상쇄합니다. 이러한 직책을 맡은 팀은 일반적으로 1,000개의 대표 문서를 대상으로 병렬 정확도 검증을 실행하여 표준 송장 및 계약서 콘텐츠에서 OmniPage와IronOCR간의 정확도 차이가 1% 미만임을 확인하고 2주 이내에 마이그레이션을 완료합니다.

조달 일정 문제로 제품 납품이 지연됨

문서 디지털화 기능을 개발 중인 스타트업이나 중소기업이 4~12주간의 영업 협업을 요구하는 OCR 공급업체의 제품 출시일이 미뤄진다는 사실을 알게 됩니다. 제품 관리자는 구매에 8주라는 시간이 없습니다.IronOCR NuGet 에서 30초 만에 설치됩니다. IronOCR 제품 페이지 에서 라이선스 키를 직접 발급받을 수 있습니다. 해당 기능은 이미 출시되어 있습니다. 이 시나리오는 가상이 아닙니다. 개발팀이 기술 선택을 엔지니어링 리더십에게 사후에 설명할 때 문서화하는 가장 흔한 이유입니다.

배포 토폴로지가 변경됩니다

Windows 서버에서 OmniPage를 실행하던 팀이 Kubernetes 기반 컨테이너 배포로 마이그레이션하기로 결정했습니다. OmniPage SDK 설치 프로그램은 Docker빌드 파이프라인에 깔끔하게 통합되지 않으며, 라이선스 파일을 마운트하거나 이미지에 포함시켜야 합니다(둘 다 보안상의 문제가 있음). 또한 컨테이너 재시작 시 엔진 종료/시작 라이프사이클을 깔끔하게 처리해야 합니다. 컨테이너를 10개로 수평 확장하려면 플로팅 라이선스 10개 또는 노드 고정 라이선스 10개가 필요합니다. IronOCR의 NuGet 배포 모델, 환경 변수 기반 라이선스 키 및 오프라인 라이선스 유효성 검사를 통해 컨테이너 기반 배포가 간편해집니다. Docker 배포 문서에는 전체 설정 과정이 자세히 설명되어 있으며, 수평 확장을 위해 추가적인 라이선스 조치가 필요하지 않습니다. 무제한 라이선스는 무제한 배포를 지원합니다.

ICR 요구사항이 사라집니다

많은 팀이 처음에 OmniPage를 도입하는 이유는 이해관계자의 요구 사항에 "필기 인식" 기능이 포함되어 있었기 때문입니다. 요구사항이 구체화되어 실제 필요한 것이 자유로운 손글씨 입력란이 아니라 체크박스가 있는 인쇄된 양식이라는 것이 밝혀지면, ICR의 Enterprise 가격 책정에 대한 정당성은 사라집니다.IronOCR OMR과 유사한 기능을 통해 체크박스를 감지하고 구조화된 데이터를 추출하여 훨씬 저렴한 비용으로 처리합니다. 실제 문서들을 재검토하는 팀들은 종종 전체 문서량의 95% 이상이 인쇄된 PDF 파일과 스캔한 송장으로 구성되어 있으며, 이러한 문서들에서는 OmniPage의 ICR 기능이 전혀 활용되지 않는다는 사실을 발견합니다.

텅스텐 구매 불확실성으로 인해 위험 검토가 시작되었습니다.

Enterprise 구매팀은 정기적으로 공급업체 위험 평가를 실시합니다. 툴 제공업체가 25년 동안 소유권이 네 번이나 바뀌었고, 가장 최근의 브랜드 개편이 2년도 채 되지 않았으며, 전환 기간 동안 제품 로드맵 문서가 "검토 중"으로 표시되어 있었다면, 일부 팀은 안정적이고 전문성을 갖춘 개발자 툴 제공업체로 워크로드를 이전하여 벤더 집중 위험을 줄이는 것을 선택할 수 있습니다. 이는 기술적인 결정인 동시에 비즈니스적인 결정이기도 합니다. IronOCR의 표준 비즈니스 문서 OCR 정확도는 OmniPage와 경쟁력이 있으며, 이번 마이그레이션을 통해 연간 예산 편성 과정에서 Enterprise 계약 갱신 논의를 생략할 수 있게 되었습니다.

일반적인 마이그레이션 고려사항

엔진 수명 주기에서 상태 비저장 호출까지

OmniPage 통합은 시작 시 초기화하고 프로세스 종료 시 종료해야 하는 장수 OmniPageEngine 인스턴스를 중심으로 구축됩니다.IronOCR에는 이와 동등한 생명주기가 없습니다. IronTesseract 클래스는 호출마다 인스턴스화되거나 장기 서비스로 공유됩니다 — 두 패턴 모두 작동합니다.

// OmniPage pattern: service class with engine lifecycle
public class KofaxDocumentService : IDisposable
{
    private OmniPageEngine _engine;

    public KofaxDocumentService(string licensePath)
    {
        _engine = new OmniPageEngine();
        _engine.SetLicenseFile(licensePath);
        _engine.Initialize();
    }

    public string ProcessDocument(string imagePath)
    {
        var document = _engine.CreateDocument();
        document.AddPage(imagePath);
        document.Recognize(new RecognitionSettings { Language = "English" });
        string text = document.GetText();
        document.Dispose();  // Must not be forgotten
        return text;
    }

    public void Dispose()
    {
        _engine.Shutdown();  // Must not be forgotten
    }
}

//IronOCR equivalent: no lifecycle management needed
public class IronOcrDocumentService
{
    private readonly IronTesseract _ocr;

    public IronOcrDocumentService()
    {
        _ocr = new IronTesseract();
        _ocr.Language = OcrLanguage.English;
    }

    public string ProcessDocument(string imagePath)
    {
        using var input = new OcrInput();
        input.LoadImage(imagePath);
        return _ocr.Read(input).Text;
    }
    // 아니요 Dispose — no unmanaged resources to release
}
// OmniPage pattern: service class with engine lifecycle
public class KofaxDocumentService : IDisposable
{
    private OmniPageEngine _engine;

    public KofaxDocumentService(string licensePath)
    {
        _engine = new OmniPageEngine();
        _engine.SetLicenseFile(licensePath);
        _engine.Initialize();
    }

    public string ProcessDocument(string imagePath)
    {
        var document = _engine.CreateDocument();
        document.AddPage(imagePath);
        document.Recognize(new RecognitionSettings { Language = "English" });
        string text = document.GetText();
        document.Dispose();  // Must not be forgotten
        return text;
    }

    public void Dispose()
    {
        _engine.Shutdown();  // Must not be forgotten
    }
}

//IronOCR equivalent: no lifecycle management needed
public class IronOcrDocumentService
{
    private readonly IronTesseract _ocr;

    public IronOcrDocumentService()
    {
        _ocr = new IronTesseract();
        _ocr.Language = OcrLanguage.English;
    }

    public string ProcessDocument(string imagePath)
    {
        using var input = new OcrInput();
        input.LoadImage(imagePath);
        return _ocr.Read(input).Text;
    }
    // 아니요 Dispose — no unmanaged resources to release
}
Imports System

' OmniPage pattern: service class with engine lifecycle
Public Class KofaxDocumentService
    Implements IDisposable

    Private _engine As OmniPageEngine

    Public Sub New(licensePath As String)
        _engine = New OmniPageEngine()
        _engine.SetLicenseFile(licensePath)
        _engine.Initialize()
    End Sub

    Public Function ProcessDocument(imagePath As String) As String
        Dim document = _engine.CreateDocument()
        document.AddPage(imagePath)
        document.Recognize(New RecognitionSettings With {.Language = "English"})
        Dim text As String = document.GetText()
        document.Dispose()  ' Must not be forgotten
        Return text
    End Function

    Public Sub Dispose() Implements IDisposable.Dispose
        _engine.Shutdown()  ' Must not be forgotten
    End Sub
End Class

' IronOCR equivalent: no lifecycle management needed
Public Class IronOcrDocumentService

    Private ReadOnly _ocr As IronTesseract

    Public Sub New()
        _ocr = New IronTesseract()
        _ocr.Language = OcrLanguage.English
    End Sub

    Public Function ProcessDocument(imagePath As String) As String
        Using input As New OcrInput()
            input.LoadImage(imagePath)
            Return _ocr.Read(input).Text
        End Using
    End Function
    ' No Dispose — no unmanaged resources to release
End Class
$vbLabelText   $csharpLabel

using var input = new OcrInput() 패턴은 입력 데이터에 대한 리소스 정리를 처리합니다. IronTesseract 인스턴스 자체는 명시적인 종료가 필요한 관리되지 않는 상태를 가지지 않습니다.

별도 모듈 라이선스 없이 PDF 처리 가능

OmniPage의 PDF 처리에는 일반적으로 특정 출력 형식 구성이 필요하며, SDK 버전에 따라 별도의 PDF 모듈 라이선스가 필요할 수 있습니다. IronOCR의 PDF 입력 지원 기능 은 기본 NuGet 패키지에 포함되어 있습니다. 스캔한 PDF, 원본 PDF, 암호로 보호된 PDF는 모두 동일한 API 인터페이스를 사용합니다.

// Extract text from a scanned PDF — no extra module or license
using var input = new OcrInput();
input.LoadPdf("scanned-contract.pdf");
var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);

// Create a searchable PDF from a scanned-only PDF
result.SaveAsSearchablePdf("contract-searchable.pdf");

// Process specific pages from a large PDF
using var input = new OcrInput();
input.LoadPdfPages("large-report.pdf", 1, 10);  // Pages 1–10 only
var result = new IronTesseract().Read(input);
// Extract text from a scanned PDF — no extra module or license
using var input = new OcrInput();
input.LoadPdf("scanned-contract.pdf");
var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);

// Create a searchable PDF from a scanned-only PDF
result.SaveAsSearchablePdf("contract-searchable.pdf");

// Process specific pages from a large PDF
using var input = new OcrInput();
input.LoadPdfPages("large-report.pdf", 1, 10);  // Pages 1–10 only
var result = new IronTesseract().Read(input);
Imports IronOcr

' Extract text from a scanned PDF — no extra module or license
Using input As New OcrInput()
    input.LoadPdf("scanned-contract.pdf")
    Dim result = New IronTesseract().Read(input)
    Console.WriteLine(result.Text)
End Using

' Create a searchable PDF from a scanned-only PDF
result.SaveAsSearchablePdf("contract-searchable.pdf")

' Process specific pages from a large PDF
Using input As New OcrInput()
    input.LoadPdfPages("large-report.pdf", 1, 10)  ' Pages 1–10 only
    Dim result = New IronTesseract().Read(input)
End Using
$vbLabelText   $csharpLabel

검색 가능한 PDF 출력 가이드에서는 스캔한 PDF를 문서 관리 시스템에서 색인화할 수 있도록 텍스트 레이어를 삽입하는 방법을 다룹니다. 이는 OmniPage가 배포되는 워크플로에서 흔히 요구되는 사항입니다.

언어 팩 배포

OmniPage 언어 사전은 SDK 설치의 일부이며 현재 문서에 필요한지 여부와 관계없이 엔진 시작 시 로드됩니다.IronOCR언어 팩은 별도의 NuGet 패키지입니다. 설치되고 참조된 언어만 로드됩니다.

// Add language packs as NuGet packages, not installer components
// dotnet add package IronOcr.Languages.German
// dotnet add package IronOcr.Languages.French

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

using var input = new OcrInput();
input.LoadImage("multilingual-document.jpg");
var result = ocr.Read(input);
// Add language packs as NuGet packages, not installer components
// dotnet add package IronOcr.Languages.German
// dotnet add package IronOcr.Languages.French

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

using var input = new OcrInput();
input.LoadImage("multilingual-document.jpg");
var result = ocr.Read(input);
Imports IronOcr

' Add language packs as NuGet packages, not installer components
' dotnet add package IronOcr.Languages.German
' dotnet add package IronOcr.Languages.French

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

Using input As New OcrInput()
    input.LoadImage("multilingual-document.jpg")
    Dim result = ocr.Read(input)
End Using
$vbLabelText   $csharpLabel

다국어 가이드에서는 언어 조합 패턴을 다룹니다. 언어 팩은 설치 프로그램 개입 없이 CI/CD 파이프라인에서 dotnet restore를 통해 복원됩니다. 전체 언어 카탈로그에는 이용 가능한 125개 이상의 팩이 모두 나열되어 있습니다.

전처리: 설정 객체 vs. 메서드 파이프라인

OmniPage는 엔진에 전달되는 RecognitionSettings 또는 PreprocessingSettings 객체를 통해 전처리를 구성합니다. IronOCR는 OcrInput의 메서드 파이프라인으로 전처리를 노출합니다. 그 행동은 동일합니다. 호출 모델이 다릅니다.

// OmniPage: preprocessing embedded in RecognitionSettings
var preprocessSettings = new PreprocessingSettings
{
    AutoRotate = true,
    Deskew = true,
    DespeckleLevel = 2,
    ContrastEnhancement = true,
    NoiseReduction = true
};
var recognitionSettings = new RecognitionSettings
{
    Language = "English",
    Preprocessing = preprocessSettings
};

// IronOCR: preprocessing as method pipeline on OcrInput
using var input = new OcrInput();
input.LoadImage(imagePath);
input.Deskew();
input.DeNoise();
input.Contrast();
input.Binarize();
input.EnhanceResolution(300);
var result = new IronTesseract().Read(input);
// OmniPage: preprocessing embedded in RecognitionSettings
var preprocessSettings = new PreprocessingSettings
{
    AutoRotate = true,
    Deskew = true,
    DespeckleLevel = 2,
    ContrastEnhancement = true,
    NoiseReduction = true
};
var recognitionSettings = new RecognitionSettings
{
    Language = "English",
    Preprocessing = preprocessSettings
};

// IronOCR: preprocessing as method pipeline on OcrInput
using var input = new OcrInput();
input.LoadImage(imagePath);
input.Deskew();
input.DeNoise();
input.Contrast();
input.Binarize();
input.EnhanceResolution(300);
var result = new IronTesseract().Read(input);
Imports IronOcr

' OmniPage: preprocessing embedded in RecognitionSettings
Dim preprocessSettings As New PreprocessingSettings With {
    .AutoRotate = True,
    .Deskew = True,
    .DespeckleLevel = 2,
    .ContrastEnhancement = True,
    .NoiseReduction = True
}
Dim recognitionSettings As New RecognitionSettings With {
    .Language = "English",
    .Preprocessing = preprocessSettings
}

' IronOCR: preprocessing as method pipeline on OcrInput
Using input As New OcrInput()
    input.LoadImage(imagePath)
    input.Deskew()
    input.DeNoise()
    input.Contrast()
    input.Binarize()
    input.EnhanceResolution(300)
    Dim result = New IronTesseract().Read(input)
End Using
$vbLabelText   $csharpLabel

이미지 품질 보정 가이드에는 사용 가능한 모든 필터가 포함되어 있습니다. 기본 자동 전처리만으로 충분한 문서의 경우 명시적인 함수 호출이 필요하지 않습니다.IronOCR기울기 보정, 노이즈 감소 및 대비 향상을 자동으로 적용합니다.

IronOCR의 추가 기능

위 비교 섹션에서 다룬 기능 외에도IronOCR다음과 같은 기능을 제공합니다.

  • 영역 기반 OCR: 특정 문서의 부분에서 텍스트를 추출하기 위해 CropRectangle 영역을 정의합니다 — 송장 번호 필드, 헤더 영역, 서명 블록 — 전체 페이지를 처리하지 않고
  • 비동기 OCR : ASP.NET 요청 처리기 및 백그라운드 서비스에서 비차단 OCR을 위한 네이티브 비동기 지원
  • 진행 상황 추적 : 여러 페이지로 구성된 문서 처리는 장시간 실행되는 일괄 작업에서 사용자 인터페이스에 피드백을 제공하기 위한 진행 상황 콜백을 제공합니다.
  • 스캔 문서 처리 : Enterprise 문서 캡처 워크플로에서 가장 일반적인 스캔 품질 프로필에 대한 자세한 안내 제공
  • 표 추출 : 스캔한 문서에서 구조화된 표를 읽어 행과 열 위치를 포함한 셀 수준 데이터를 반환합니다.

.NET 호환성 및 미래 준비

IronOCR .NET 8 및 .NET 9를 대상으로 하며, .NET 10 호환성은 표준 릴리스 일정에 따라 제공될 예정입니다. 라이브러리는 플랫폼별로 관리할 패키지가 필요 없는 크로스 플랫폼 NuGet 패키지로 제공되며 — 같은 <PackageReference Include="IronOcr" /> 항목으로 Windows, Linux및 macOSCI 빌드에서 작동합니다. Kofax OmniPage SDK2025.3은 2026년 1월에 Linux지원을 추가했지만 macOS는 지원하지 않아 Apple Silicon 하드웨어를 사용하는 팀의 개발 환경에 제약이 있습니다.IronOCR프레임워크별 변형 없이 동일한 패키지에서 MAUI, Blazor Server, ASP.NET Core, Worker Services, Azure Functions 및 콘솔 애플리케이션을 지원합니다. 클라우드 네이티브 배포 아키텍처(컨테이너 기반 마이크로서비스, 서버리스 함수, Kubernetes 워크로드)를 목표로 하는 팀은 IronOCR의 종속성 모델(설치 프로그램이나 라이선스 파일이 필요 없는 단일 NuGet 패키지)이 인프라스트럭처 코드 및 불변 배포 패턴과 훨씬 더 호환된다는 것을 알게 될 것입니다.

결론

Kofax OmniPage는 특히 ICR 필기 인식 및 OMR 양식 처리 분야에서 대용량 Enterprise 문서 캡처를 위한 진정한 정확도 기준입니다. 수백만 페이지에 달하는 문서를 양식 처리 센터, 정부 디지털화 프로그램 또는 은행 문서 워크플로를 통해 처리하는 조직, 그리고 이미 Enterprise 조달 인프라를 구축한 조직은 타당한 이유로 이를 사용합니다. 30년간의 정확도 기록은 사실입니다.

2005년 Enterprise 문서 관리 소프트웨어에 적합했던 조달 모델과 배포 아키텍처는 2026년에는 상당한 문제를 야기합니다. OmniPage의 SDK 배포 모델이 설계될 당시에는 NuGet 존재하지 않았습니다. CI/CD 파이프라인, Docker컨테이너 및 서버리스 함수는 배포 대상이 아니었습니다. .lic 파일, 하드웨어 핑거프린팅 및 네트워크 라이선스 서버에 기반한 라이선스 아키텍처는 불변 컨테이너 이미지 및 자동 확장 클라우드 인프라와 구조적으로 호환되지 않습니다.

대부분의 .NET OCR 워크로드(송장, 계약서, 스캔한 PDF, 신분증, 영수증)에서 OmniPage와IronOCR간의 정확도 차이는 깨끗하거나 중간 정도로 손상된 문서에서 1% 미만입니다. 그 1%는 4-12주 구매 일정, 상당한 진입 가격, 연간 유지보수 요금, 페이지당 런타임 비용, 라이선스 서버 운영 오버헤드, 컨테이너화된 인프라와 갈등하는 배포 모델을 정당화하지 않습니다. $999 영구 IronOCR는 표준 비즈니스 문서 콘텐츠에서 95% 이상의 정확도를 제공하고, 30초 안에 설치되며, 설치 프로그램 단계 없이 Docker및 Linux에 배포하고, 런타임에 네트워크 종속성 없이 문자열 키로 라이선스를 제공합니다.

중요한 비교는 OmniPage의 손상된 과거 문서에 대한 ICR 정확도와 IronOCR의 정확도를 비교하는 것이 아니라, 실제로 그러한 정밀도가 필요한 프로젝트가 Enterprise 조달 인프라, 라이선스 서버 운영 용량, 그리고 설치 프로그램 기반 SDK 배포에 대한 허용 범위를 갖추고 있는지 여부입니다. 세 가지 질문에 모두 '예'라면 OmniPage는 합리적인 선택입니다. 만약 하나라도 '아니오'라면IronOCR문서에서 필요한 모든 정보를 확인할 수 있으며, 이를 통해 당일 바로 서비스를 시작할 수 있습니다.

참고해 주세요Kofax OmniPage, OpenPDF, 및 Tesseract는 각각의 소유주가 등록한 상표입니다. 이 사이트는 Google, Kofax 또는 LibrePDF와 관련이 없으며, 그들의 인증이나 후원을 받지 않았습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

자주 묻는 질문

Kofax OmniPage란 무엇인가요?

Kofax OmniPage는 개발자와 기업에서 이미지와 문서에서 텍스트를 추출하는 데 사용하는 OCR 솔루션입니다. 이 솔루션은 .NET 애플리케이션 개발용 IronOCR과 함께 평가된 여러 OCR 옵션 중 하나입니다.

IronOCR은 .NET 개발자를 위한 Kofax OmniPage와 어떻게 비교되나요?

IronOCR은 IronTesseract를 핵심 엔진으로 사용하는 NuGet 네이티브 .NET OCR 라이브러리입니다. Kofax OmniPage에 비해 배포가 간편하고(SDK 설치 프로그램 없음), 정액제 요금제를 제공하며, COM 상호 운용이나 클라우드 종속성이 없는 깔끔한 C# API를 제공합니다.

IronOCR이 Kofax OmniPage보다 설정이 더 쉬운가요?

IronOCR은 단일 NuGet 패키지를 통해 설치됩니다. SDK 설치 프로그램, 복사할 라이선스 파일, 등록할 COM 구성 요소 또는 관리해야 할 별도의 런타임 바이너리가 없습니다. 전체 OCR 엔진이 패키지에 번들로 제공됩니다.

Kofax OmniPage와 IronOCR 간에는 어떤 정확도 차이가 있나요?

IronOCR은 표준 비즈니스 문서, 송장, 영수증, 스캔 양식에 대해 높은 인식 정확도를 달성합니다. 품질이 많이 저하된 문서나 일반적이지 않은 스크립트의 경우 정확도는 소스 품질에 따라 달라집니다. IronOCR에는 이미지 전처리 필터가 포함되어 있어 저품질 입력에 대한 인식률을 향상시킵니다.

IronOCR은 PDF 텍스트 추출을 지원하나요?

예. IronOCR은 한 번의 호출로 원본 PDF와 스캔한 PDF 이미지 모두에서 텍스트를 추출합니다. 또한 여러 페이지의 TIFF 파일, 이미지, 스트림도 지원합니다. 스캔한 PDF의 경우 OCR은 페이지별 결과 개체를 사용하여 페이지별로 적용됩니다.

Kofax OmniPage 라이선싱은 IronOCR과 어떻게 비교되나요?

IronOCR은 페이지당 또는 스캔당 요금이 없는 정액제 영구 라이선스를 사용합니다. 대량의 문서를 처리하는 조직은 문서 양에 관계없이 동일한 라이선스 비용을 지불합니다. 자세한 내용과 볼륨 가격은 IronOCR 라이선스 페이지에서 확인할 수 있습니다.

IronOCR 어떤 언어를 지원하나요?

IronOCR은 별도의 NuGet 언어 팩을 통해 127개 언어를 지원합니다. 언어를 추가하려면 '닷넷 추가 패키지 IronOcr.Languages.{Language}' 명령 하나만 있으면 됩니다. 수동으로 파일을 배치하거나 경로를 구성할 필요가 없습니다.

.NET 프로젝트에 IronOCR 설치하는 방법은 무엇인가요?

NuGet을 통해 설치합니다: 패키지 관리자 콘솔에서 '설치-패키지 IronOcr' 또는 CLI에서 '닷넷 추가 패키지 IronOcr'을 실행합니다. 추가 언어 팩도 같은 방법으로 설치됩니다. 기본 SDK 인스톨러가 필요하지 않습니다.

IronOCR은 Kofax OmniPage와 달리 Docker 및 컨테이너화된 배포에 적합한가요?

예. IronOCR은 NuGet 패키지를 통해 Docker 컨테이너에서 작동합니다. 라이선스 키는 환경 변수를 통해 설정됩니다. OCR 엔진 자체에는 라이선스 파일, SDK 경로 또는 볼륨 마운트가 필요하지 않습니다.

구매하기 전에 Kofax OmniPage와 비교하여 IronOCR을 사용해 볼 수 있나요?

예. IronOCR 평가판 모드는 문서를 처리하고 출력물에 워터마크 오버레이가 포함된 OCR 결과를 반환합니다. 라이선스를 구매하기 전에 자신의 문서에서 정확성을 확인할 수 있습니다.

IronOCR은 텍스트 추출과 함께 바코드 판독을 지원하나요?

IronOCR은 텍스트 추출과 OCR에 중점을 둡니다. 바코드 판독을 위해 Iron Software는 동반 라이브러리로 IronBarcode를 제공합니다. 두 가지 모두 개별적으로 또는 Iron Suite 번들의 일부로 사용할 수 있습니다.

Kofax OmniPage에서 IronOCR로 쉽게 마이그레이션할 수 있나요?

Kofax OmniPage에서 IronOCR로의 마이그레이션에는 일반적으로 초기화 시퀀스를 IronTesseract 인스턴스화로 대체하고, COM 수명 주기 관리를 제거하며, API 호출을 업데이트하는 작업이 포함됩니다. 대부분의 마이그레이션은 코드 복잡성을 크게 줄여줍니다.

칸나오팟 우돈판트
소프트웨어 엔지니어
카나팟은 소프트웨어 엔지니어가 되기 전 일본 홋카이도 대학교에서 환경 자원학 박사 학위를 취득했습니다. 학위 과정 중에는 생물생산공학과 소속 차량 로봇 연구실에서 활동하기도 했습니다. 2022년에는 C# 기술을 활용하여 Iron Software의 엔지니어링 팀에 합류했고, 현재 IronPDF 개발에 집중하고 있습니다. 카나팟은 IronPDF에 사용되는 대부분의 코드를 직접 작성하는 개발자로부터 배울 수 있다는 점에 만족하며, 동료들과의 소통을 통해 배우는 것 외에도 Iron Software에서 일하는 즐거움을 누리고 있습니다. 코딩이나 문서 작업을 하지 않을 때는 주로 PS5로 게임을 하거나 The Last of Us를 다시 시청하는 것을 즐깁니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해