이 항목은 Windows용 FRE에 적용됩니다.
ABBYY FineReader Engine 12는 COM 인터페이스에서 동적 바인딩을 지원합니다.
- ABBYY FineReader Engine 12의 거의 모든 인터페이스는 IDispatch에서 파생됩니다(예외는 클라이언트 측에서 구현되는 일부 콜백 인터페이스입니다).
- 스크립팅 언어(예: VBScript 및 JScript)는 동적 바인딩만 지원합니다. 따라서 이러한 인터페이스가 IDispatch를 상속하므로, 이들 언어에서 ABBYY FineReader Engine API를 사용하는 데 추가로 필요한 작업은 거의 없습니다. 다만 Engine 객체만은 COM 메서드 CoCreateObject로 생성할 수 없습니다. Engine을 로드하려면 IEngineLoader 인터페이스의 메서드 중 하나를 사용하십시오. 이 인터페이스는 Engine을 각각 인프로세스 및 아웃오브프로세스로 로드하는 두 객체, InprocLoader와 OutprocLoader에서 구현됩니다. 스크립팅 언어에서 제공하는 방법으로 이들 객체 중 하나를 만든 다음, InitializeEngine 메서드를 호출해 Engine을 로드할 수 있습니다.
- 이제 Engine 객체의 “Create…” 또는 “Load…” 메서드로 생성되는 다른 객체는 스크립팅 언어에서 직접 생성하고 사용할 수 있습니다.
- IEngineLoader 인터페이스는 null 객체에 대한 참조를 반환하는 NullObject 속성도 제공합니다. 스크립팅 언어에서 null 자체는 객체가 아니지만, 일부 메서드는 기본 동작을 위해 null 매개변수를 받아야 합니다. (예를 들어, IFRDocument::Analyze 메서드는 매개변수 객체 대신 null을 받을 수 있으며, 이 경우 로드된 프로필의 기본 설정으로 분석이 수행됩니다.)
최종 사용자 컴퓨터에 애플리케이션을 설치할 때는 FREngine.dll을 등록해야 합니다. FREngine.dll을 등록하려면 다음 명령줄을 사용하십시오.
regsvr32 /s /n /i:"<path to the Inc folder>" "<path to FREngine.dll>"
예를 들어, JavaScript ActiveXObject 함수를 사용하여 Engine 객체를 생성할 수 있습니다.
// EngineLoader 객체 생성
var EngineLoader = new ActiveXObject( "FREngine.OutprocLoader" );
...
// Engine 객체 가져오기
var Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", false );
// Customer Project ID, 온라인 라이선스 파일 경로 및 온라인 라이선스 비밀번호를 입력하세요
VBScript에서는 CreateObject 메서드를 사용하세요:
' EngineLoader 객체 생성
Set EngineLoader = CreateObject( "FREngine.OutprocLoader" )
...
' Engine 객체 가져오기
Set Engine = EngineLoader.InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, "", "", False )
Perl에서는 CreateObject 메서드를 사용합니다:
# EngineLoader 객체 생성
$EngineLoader = $WScript->CreateObject( 'FREngine.OutprocLoader' );
...
# Engine 객체 가져오기
$Engine = $EngineLoader->InitializeEngine( CustomerProjectId, LicensePath, LicensePassword, '', '', 0 );
스크립팅 언어에서 ABBYY FineReader Engine 사용 방법을 보여 주는 간단한 애플리케이션 예제는 JavaScript, VBScript, Perl용 Hello 샘플을 참조하세요.
IEngineLoader