여러 운영 체제와 컨테이너에서 .NET Core 애플리케이션을 실행할 수 있도록 ABBYY FineReader Engine은 엔진 라이브러리용 즉시 사용 가능한 .NET Core 래퍼를 제공합니다. 이 래퍼를 사용하면 ABBYY FineReader Engine API에 직접 액세스할 수 있습니다. 이 API는 몇 가지 사소한 예외를 제외하면 모든 플랫폼에서 동일합니다. 주목할 만한 제한 사항 중 하나는 IEngineLoader를 구현하는 객체를 Linux에서는 사용할 수 없다는 점입니다(차이점의 전체 목록은 Windows용 ABBYY FineReader Engine 12와 Linux용 버전의 차이점을 참조하세요).
ABBYY FineReader Engine에는 FineReader Engine용 .NET Core 래퍼가 포함된 FREngine.DotNet.Interop.dll 파일이 제공됩니다. 이 파일은 설치 폴더의 Bin 또는 Bin64 폴더에서 찾을 수 있습니다. 프로젝트의 종속성 어셈블리에 FREngine.DotNet.Interop.dll을 추가하고, ABBYY FineReader Engine 기반 애플리케이션과 함께 이 파일도 재배포해야 합니다.
Engine 객체를 초기화하려면 먼저 정적 FREngine 클래스의 SetFREnginePath 메서드로 FREngine.dll 경로를 설정한 다음, 같은 클래스의 InitializeEngine 함수를 사용합니다. Engine 객체를 언로드하려면 DeinitializeEngine 함수를 사용합니다.
.NET Core 래퍼의 모든 객체는 IDisposable 인터페이스를 상속하며, 이 인터페이스는 객체에 할당된 리소스를 해제하는 역할을 합니다. 이 인터페이스를 구현하면 객체가 더 이상 필요하지 않을 때 가비지 컬렉션이 자동으로 수행됩니다. 객체 사용을 마칠 때는 using 문을 사용해야 하며, 특히 IFRDocument, IFRPages, PDFExportParams 등과 같이 문서 처리, 합성 또는 내보내기와 관련된 리소스를 많이 사용하는 객체의 경우 더욱 중요합니다(아래 예 참조).
C# 코드
using (FREngine.FRDocument document = engineLoader.Engine.CreateFRDocument()) { try { // 이미지 파일을 문서에 추가 Console.WriteLine("Loading image..."); document.AddImageFile(imagePath, null, null); ... // 'balanced' 시나리오를 사용하여 결과를 PDF로 저장 using (FREngine.PDFExportParams pdfParams = engineLoader.Engine.CreatePDFExportParams()) { pdfParams.Scenario = FREngine.PDFExportScenarioEnum.PES_Balanced; document.Export(Path.Combine(FreConfig.GetSamplesFolder(), @"SampleImages\Demo.pdf"), FREngine.FileExportFormatEnum.FEF_PDF, pdfParams); } }}
using 문을 사용하지 않으려면 Dispose 메서드를 명시적으로 호출하세요.샘플.NET Core에서 ABBYY FineReader Engine이 작동하는 방식을 보여 주는 Hello 코드 샘플을 참조하세요.