Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This Java library is intended to simplify the development of image recognition solutions with ABBYY Cloud OCR SDK API. This repo contains the client library enabling simple access to high-quality recognition technologies. For more information about the product visit ABBYY Cloud OCR SDK website.


To simplify project building, Maven wrapper is used. One just needs to run

mvnw.cmd clean package

for Windows systems, and

./mvnw clean package

for Unix. This procedure will also run set of tests. Most of them are deactivated until names of input files are specified in ClientTest class. However, test method applicationInfoTest() will run anyway. To complete this test successfully, one should enable option Allow getting application info in application settings.

Running tests can take up to several minutes, so tests can be disabled by adding key -DskipTests:

mvnw.cmd clean package -DskipTests

The build result is located in target/releases.


The following sample demonstrates how to process image with the specified parameters and export the result to TXT and DOCX using the ABBYY Cloud OCR SDK client library. Start your developement with the following steps.

Provide your authentication info and the HTTP server URL address, used for API calls (see Data processing location for details):

AuthInfo authInfo = new AuthInfo(host, applicationId, password);

Create the main OcrClient object:

OcrClient client = new OcrClient(authInfo)

Set the processing and result options (you can find all the settings here:

ImageProcessingParams imageProcessingParams = new ImageProcessingParams();
imageProcessingParams.setExportFormats(new ExportFormat[]{ExportFormat.Docx, ExportFormat.Txt});

Open file as input stream:

FileInputStream fileStream = new FileInputStream(new File(filePath))

Pass the parameters to a new task. Set waitTaskFinished flag to true to wait for the results in current method. If waitTaskFinished is false, the method will not wait for the task finish. Method processImageAsync of class OcrClient creates asynchronous method, its result can be obtained via get():

CompletableFuture<TaskInfo> asyncMethod = ocrClient.processImageAsync(imageProcessingParams, fileStream, file.getName(), true);
TaskInfo taskInfo = asyncMethod.get();

Obtaining result of asynchronous method can cause InterruptedException and ExecutionException, so one should process method get() appropriately.

Display the URL addresses of the result documents:

for (String resultUrl : taskInfo.getResultUrls()) {

See more examples in test class ClientTest.


Copyright © 2019 ABBYY Production LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.