Skip to main content
The ABBYY FineReader Engine (FRE) distribution package contains a set of code samples for common FRE usage scenarios. This topic provides general information about the samples and where to find them. These samples which show how to use FRE are provided as follows:
  • macOS
    Samples for C++ and Objective-C are available in the Samples folder under the FineReader Engine installation folder.
  • Linux
    Samples for C++ and Java are available in the Samples folder under the FineReader Engine installation folder.
  • Windows
    Samples for raw C++, C++ with native COM support, C#, Visual Basic .NET, .NET Core, Java, and scripting languages are available in the FineReader Engine data folder. Windows also provides Demo Tools in C# in the Demo Tools subfolder.
For samples in Java, see the list of supported Java Development Kits in System Requirements. To work with the code samples, you should provide your Customer Project ID. It should be specified in the SamplesConfig.h file (for samples in C++) or directly inside the code (for samples in Objective C).
Code Samples
Sample NameDescriptionAvailability
BatchProcessingShows how to use Batch Processor for processing a large amount of one-page documents.Windows: C#, C++ (native COM support), raw C++, Java, Visual Basic .NET Linux: C++, Java
BCRShows how you can extract data from business cards using FineReader Engine.Linux: C++
Business Card RecognitionShows how you can extract data from business cards using FineReader Engine.macOS: Objective-C
ClassificationYou can train ABBYY FineReader Engine to classify any types of documents.Linux: C++ macOS: C++
CommandLineInterfaceProvides the command line interface of ABBYY FineReader Engine. The sample produces a CommandLineInterface utility, which supports most of the ABBYY FineReader Engine API functions through numerous keys.macOS: C++ Linux: C++ Windows: raw C++
CustomLanguageCreates a new recognition language and changes its dictionary to a manually-created sample dictionary. After recognition, it calculates the number of words in the text and how many of them were found in the user dictionary.Windows: C#, C++ (native COM support), raw C++, Visual Basic .NET Linux: C++
Data ExtractionDemonstrates the use of DataExtraction profile to extract as much useful data from a document as possible.Windows: C# for .NET Core
Document ComparisonShows how you can compare a document or page with its copy.Windows: C++ Linux: C++ macOS: C++
EnginesPoolProvides a complete reusable solution for a pool of FineReader Engine objects in a multithreaded application and demonstrates the gain in speed when using multithreaded processing.Windows: C#, Java
EventsHandlingIllustrates the use of the callback interfaces using the FRDocument callback interface (IFRDocumentEvents) as an example. The sample shows the progress of recognition and export during image processing.Windows: C#, C++ (native COM support), raw C++, Java, Visual Basic .NET Linux: C++, Java
HelloPerforms document conversion with just a few lines of code. This sample will help you to start development using the ABBYY SDK.Windows: C#, C++ (native COM support), raw C++, Java, VBScript, JavaScript, Perl, Visual Basic .NET, .NET Core Linux: C++, Java
Hello (Outproc)Performs the basic sample of document conversion in a separate process with ABBYY FineReader Engine.Linux: C++, Java
HelloBCRShows how you can extract data from business cards using FineReader Engine.Windows: C# for .NET Core
ICRPerforms handwritten text recognition.Linux: C++
MRZExtractionShows how you can extract data from a machine-readable zone (MRZ).Windows: C# Linux: C++
MultithreadingDemonstrates image processing in parallel threads.Linux: C++, Java
RecognizedTextProcessingCalculates recognition statistics (e.g., the number of suspicious characters and unrecognized characters, the number of words that are not in the dictionary).Windows: C#, C++ (native COM support), raw C++, Visual Basic .NET
rmiPoolClientShows how to use the com.abbyy.rmi.FREngine and com.abbyy.rmi.pool.FREngine packages to create a single-thread client which works with a processing server as implemented in the rmiPoolServer sample.Linux: Java
rmiPoolServerShows how to use the com.abbyy.rmi.pool.impl.FREngine package to create a server application which manages a pool of worker threads (as implemented by rmiWorker sample), each running a separate instance of FineReader Engine.Linux: Java
rmiWorkerShows how to use the com.abbyy.rmi.server.FREngine package to create a simple single-thread server for processing.Linux: Java
rmiWorkerClientShows how to use the com.abbyy.rmi.FREngine package to create a client which works with a processing server as implemented in the rmiWorker sample.Linux: Java
ScanningProvides a simple implementation of a “scanning computer”.Windows: C#
SAFEARRAY\_HelloDemonstrates the basic sample of document processing with the SAFEARRAY type usage.Linux: C++ macOS: C++
threadPoolClient(Java) Shows how to use the com.abbyy.rmi.FREngine and com.abbyy.rmi.pool.FREngine packages to create a multi-thread client which works with a processing server as implemented in the rmiPoolServer sample. The client uses the standard ExecutorService interface to organise parallel processing of all images in a folder.Linux: Java
TiffToRtfPerforms document conversion with just a few lines of code. This sample will help you to start development using the ABBYY SDK.macOS: (Objective-C)
VisualComponentsFrom the user interface construction blocks, creates a comprehensive tool for document conversion tasks. This sample will help you to start development with the ABBYY Visual Components.Windows: C#, C++ (native COM support), Visual Basic .NET
Windows Demo tools
Sample NameDescription
ClassificationShows how you can train FineReader Engine to classify any types of documents.
Engine Predefined Processing ProfilesShows how you can easily configure FineReader Engine with predefined processing profiles.
PDFExportProfilesShows the advantages of using export profiles during export to PDF.
MultiProcessingRecognitionShows the gain in speed when using multi-processing recognition with FRDocument object.
BatchProcessingRecognitionShows the gain in speed when using multi-processing recognition with Batch Processor.
Document ComparisonShows how you can compare a document or page with its copy.
User Pattern Training Utility for Windows Visual ComponentsShows how you can work with user patterns when processing text sets in decorative fonts, texts containing unusual characters, large volumes of texts of low print quality.