Aquaforest OCR 
SDK for .Net
Reference Guide Version 1.20
August 2010
© Copyright 2010 Aquaforest Limited 
http://www.aquaforest.com/
Cut paste pdf pages - control Library system:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Cut paste pdf pages - control Library system:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
1
CONTENTS
1
INTRODUCTION..........................................................................................................................3
1.1
SDKO
VERVIEW
........................................................................................................................3
1.2
T
ECHNICAL 
S
UPPORT
.................................................................................................................3
2
SDK OVERVIEW..........................................................................................................................4
2.1
S
YSTEM 
R
EQUIREMENTS
...........................................................................................................4
2.1.1
Supported Environments...................................................................................................4
2.1.2
.Net Framework................................................................................................................4
2.1.3
Visual C++ Runtime.........................................................................................................4
2.2
F
OLDERS
....................................................................................................................................4
2.3
A
SIMPLE EXAMPLE
....................................................................................................................4
2.3.1
References.........................................................................................................................4
2.3.2
Classes..............................................................................................................................4
2.3.3
Processing Steps...............................................................................................................5
2.3.4
C# Example......................................................................................................................6
2.3.5
VB.Net Example................................................................................................................7
3
APPLICATION DEVELOPMENT AND DEPLOYMENT.......................................................8
3.1
R
EFERENCES
..............................................................................................................................8
3.2
D
EPLOYING 
C#
AND 
VB.N
ET 
A
PPLICATIONS
.............................................................................8
3.3
D
EPLOYING 
ASP.N
ET 
A
PPLICATIONS
........................................................................................8
3.4
L
ICENSING
.................................................................................................................................8
3.5
64
BIT SUPPORT
.........................................................................................................................8
4
SAMPLE APPLICATIONS...........................................................................................................9
4.1
S
IMPLE
......................................................................................................................................9
4.2
C
ONVERT
F
OLDER
O
F
F
ILES
.........................................................................................................9
4.3
Z
ONAL
OCR...............................................................................................................................9
4.4
ASP.N
ET
...................................................................................................................................9
5
API REFERENCE........................................................................................................................10
5.1
P
RE
P
ROCESSOR 
C
LASS
............................................................................................................10
5.1.1
Constructor.....................................................................................................................10
5.1.2
Properties.......................................................................................................................10
5.1.3
Methods..........................................................................................................................11
5.2
OCRC
LASS
.............................................................................................................................12
5.2.1
Constructor.....................................................................................................................12
5.2.2
Properties.......................................................................................................................12
5.2.3
Methods..........................................................................................................................13
5.2.4
Events.............................................................................................................................15
5.2.5
Subscribing to StatusUpdate using C#...........................................................................15
5.2.6
Subscribing to StatusUpdate using VB.NET...................................................................16
5.2.7
Enumerations..................................................................................................................16
5.3
S
TATUS
U
PDATE
E
VENT
A
RGS 
C
LASS
........................................................................................17
5.3.1
Constructor.....................................................................................................................17
5.3.2
Properties.......................................................................................................................17
5.3.3
Words Class....................................................................................................................18
5.3.4
Constructor.....................................................................................................................18
5.3.5
Properties.......................................................................................................................18
5.3.6
Methods..........................................................................................................................18
5.3.7
WordData Class..............................................................................................................19
5.3.8
Properties.......................................................................................................................19
5.4
P
DF
M
ERGER 
C
LASS
.................................................................................................................19
control Library system:VB.NET PDF copy, paste image library: copy, paste, cut PDF images
VB.NET PDF - Copy, Paste, Cut PDF Image in VB.NET. Copy, paste and cut PDF image while preview without adobe reader component installed.
www.rasteredge.com
control Library system:C# PDF copy, paste image Library: copy, paste, cut PDF images in
C#.NET PDF SDK - Copy, Paste, Cut PDF Image in C#.NET. C# Guide cutting. C#.NET Project DLLs: Copy, Paste, Cut Image in PDF Page. In
www.rasteredge.com
2
5.4.1
Constructor.....................................................................................................................19
5.4.2
Methods..........................................................................................................................19
5.5
E
RROR 
H
ANDLING
...................................................................................................................20
5.6
D
ISPOSAL AND 
T
EMPORARY 
F
ILES FOLDERS
............................................................................20
5.7
M
ULTI
-
THREADED APPLICATIONS
............................................................................................20
6
BACKGROUND - SEARCHABLE PDFS.................................................................................21
6.1
W
HAT IS A 
S
EARCHABLE 
PDF?...............................................................................................21
6.2
I
NSIDE A 
S
EARCHABLE 
PDF....................................................................................................21
6.3
OCRA
CCURACY
.....................................................................................................................21
6.3.1
Original Image Quality...................................................................................................21
6.3.2
Image DPI and Format...................................................................................................21
6.3.3
Despeckle........................................................................................................................21
6.3.4
Deskew............................................................................................................................22
6.3.5
Auto-Rotate.....................................................................................................................22
6.3.6
Graphics Areas...............................................................................................................22
6.3.7
Language Settings...........................................................................................................22
6.4
H
ARDWARE AND 
P
ERFORMANCE
.............................................................................................22
6.4.1
CPU Power.....................................................................................................................22
6.4.2
Exploiting Multiple CPUs...............................................................................................22
6.4.3
Memory...........................................................................................................................22
7
ACKNOWLEDGEMENTS.........................................................................................................23
control Library system:VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Page: Delete Existing PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Delete PDF Page. How to VB.NET: Delete Consecutive Pages from PDF.
www.rasteredge.com
control Library system:C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Page: Delete Existing PDF Pages. Provide C# Users with Mature .NET PDF Document Manipulating Library for Deleting PDF Pages in C#.
www.rasteredge.com
3
1
I
NTRODUCTION
1.1
SDK Overview
The Aquaforest OCR SDK for .Net incorporates the same high performance OCR engine that is 
included in the Aquaforest TIFF Junction and Autobahn DX products.  
The SDK API allows developers full control over OCR processing to enable customized integration of 
OCR within .Net applications.  
OCR Bitmap or multi-page TIFF and PDF Files.
Create Searchable PDF, RTF or Text output files.
Control pre-processing options such as despeckle, deskew, line removal and autorotate.
Specify one of the following supported document languages:
English
German
French 
Russian 
Swedish 
Spanish 
Italian 
Russian English 
Ukrainian 
Serbian 
Croatian 
Polish 
Danish 
Portuguese 
Dutch 
Czech 
Roman 
Hungar 
Bulgar 
Slovenian 
Latvian 
Lithuanian 
Estonian 
Turkish
Enumerate the OCR results, examining the words and characters recognized along with their 
co-ordinates.
Process multi-page TIFF and PDF files one page at a time or all in one operation
1.2
Technical Support
Please contact Aquaforest Technical Support with any queries by email  support@aquaforest.com
.  If 
required, telephone support is also available; please contact Aquaforest using the telephone contact
details provided on the company website contact page.
control Library system:VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using VB.
www.rasteredge.com
control Library system:How to C#: Basic SDK Concept of XDoc.PDF for .NET
example, you may easily create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut, rotate, and save PDF page(s
www.rasteredge.com
4
2
SDKO
VERVIEW
The SDK is provided as a set of .Net Assemblies, Native DLLs and configuration files designed to 
allow for straightforward integration into .Net applications.
2.1
System Requirements
2.1.1
Supported Environments
Windows 2003, 2008, Vista, Windows XP.
2.1.2
.Net Framework
.Net Version 3.5
2.1.3
Visual C++ Runtime
TheVisual C++ 2008 Redistributable packageis required for deployment as well as development.
2.2
Folders
The SDK contains the following folders :
Bin– This contains all the assemblies, DLLs and configurations files.
Docs– SDK Documentation
Samples– Sample C#, VB.Net and ASP.Net samples
2.3
A simple example
The full API reference is in section 5 of this guide, but as a starting point a simple example of a C# and 
VB.Net console application that creates a searchable PDF from a source TIFF file is shown below.
2.3.1
References
A reference to the Aquaforest.OCR.Api DLL should be added in your application.
If you wish to access the results of the OCR on a word by word basis, for example to obtain word and 
character results including positional information then you will also need to reference 
Aquaforest.OCR.Definitions DLL.
2.3.2
Classes
There are two classes usedfor the OCR :
PreProcessor– This class configures and performs image pre-processing (such as deskewing images) 
to ensure optimal OCR performance.
Ocr– This is the class that configures and performs the Optical Character Recognition.
Additionally, for accessing the OCR results at an individual word level the following classes are used:
Words–This class contains a collection of words in which is contained all the data available for the 
words and characters for any given page.
WordData– This class contains a collection of characters that make up the word along with the 
positional information for each character and the whole word.
StatusUpdateEventArgs– This class is available for each page processed when subscribing to the 
StatusUpdate event and provides information relating to the processing outcome for the page.
control Library system:C# PDF Page Insert Library: insert pages into PDF file in C#.net
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› C# PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using C#.
www.rasteredge.com
control Library system:C# PDF Image Extract Library: Select, copy, paste PDF images in C#
PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document. Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document.
www.rasteredge.com
5
2.3.3
Processing Steps
The following steps are involved in this example 
1. Create the Ocr and PreProcessor objects
2. Specify the location of the OCR bin folder
3. Specify Pre-Processor options 
4. Specify OCR Options 
5. Read the source file
6. Perform the recognition
7. Save the searchable PDF
8. Delete temporary files (these are by default stored in %TEMP% but the location can be 
specified using ocr.TempFolder)
6
2.3.4
C# Example
using System;
using Aquaforest.OCR.Api;
namespace ocr
{
class Program
{
static void Main(string[] args)
{
try
{
// 1. Create Ocr and Preprocessor Objects
// and enable console output
Ocr _ocr = new Ocr();
PreProcessor _preProcessor = new PreProcessor();
_ocr.EnableConsoleOutput = true;
// 2. OCR bin folder Location
// The bin files can be copied to the application bin 
// folder.  Alternatively the System Path and ocr 
// Resource folder can be set as shown below and 
// then just the files in the bin_add folder added 
// to the application bin folder.
string OCRFiles = @"C:\Aquaforest\OCRSDK\bin";
System.Environment.SetEnvironmentVariable("PATH"
System.Environment.GetEnvironmentVariable("PATH") + ";" + OCRFiles);
_ocr.ResourceFolder = OCRFiles;
// 3. Set PreProcessor Options
_preProcessor.Deskew = true;
_preProcessor.Autorotate = false;
// 4. Set OCR Options 
_ocr.Language = SupportedLanguages.English;
_ocr.EnablePdfOutput = true;
// 5. Read Source TIFF File
_ocr.ReadTIFFSource(   
@"C:\Aquaforest\OCRSDK\docs\tiffs\sample.tif");
// 6. Perform OCR Recognition
if (_ocr.Recognize(_preProcessor))
{
// 7. Save Output as Searchable PDF
_ocr.SavePDFOutput(
@"C:\Aquaforest\OCRSDK\docs\tiffs\sample.pdf"true);
}
// 8. Clean Up Temporary Files
_ocr.DeleteTemporaryFiles();
}
catch (Exception e)
{
Console.WriteLine("Error in OCR Processing :" + e.Message);
}
}
}
}
7
2.3.5
VB.Net Example
Module Module1
Sub Main()
' 1. Create Ocr and Preprocessor Objects
Dim _ocr As New Aquaforest.OCR.Api.Ocr()
Dim _preProcessor As New Aquaforest.OCR.Api.PreProcessor()
_ocr.EnableConsoleOutput = True
' 2. OCR bin folder Location
' The bin files can be copied to the application bin folder.
' Alternatively the System Path and ocr Resource folder 
' can be set as shown below.
Dim OCRFiles As String
' 2. OCR bin folder Location
' The bin files can be copied to the application bin 
' folder.  Alternatively the System Path and ocr 
' Resource folder can be set as shown below and 
' then just the files in the bin_add folder added 
'to the application bin folder.
OCRFiles = "C:\\Aquaforest\\OCRSDK\\bin"
System.Environment.SetEnvironmentVariable("PATH"
System.Environment.GetEnvironmentVariable("PATH") + ";" + OCRFiles)
_ocr.ResourceFolder = OCRFiles
' 3. Set PreProcessor Options
_preProcessor.Deskew = True
_preProcessor.Autorotate = False
' 4. Set OCR Options 
_ocr.Language = Aquaforest.OCR.Api.SupportedLanguages.English
_ocr.EnablePdfOutput = True
' 5. Read Source TIFF File
_ocr.ReadTIFFSource("C:\\Aquaforest\\OCRSDK\\docs\\tiffs\\sample.tif")
' 6. Perform OCR Recognition
If _ocr.Recognize(_preProcessor) Then
' 7. Save Output as Searchable PDF        
_ocr.SavePDFOutput("C:\\Aquaforest\\OCRSDK\\docs\\tiffs\\sample.pdf"True)
End If
'8. Clean Up Temporary Files
_ocr.DeleteTemporaryFiles()
End Sub
End Module
8
3
A
PPLICATION 
D
EVELOPMENT AND 
D
EPLOYMENT
3.1
References
To use the API a reference to Aquaforest.Ocr.Api must be included in your application. If you wish to 
enumerate the OCR results rather than simply generate PDF, RTF or TXT outputs then you will also 
need to add a reference to Aquaforest.Ocr.Definitions.
3.2
Deploying C# and VB.Net Applications
Any deployment method should ensure that the target system meets the requirements (see section 2.1) 
and install the Visual C++ 2008 Redistributable package and Net Version 3.5 framework if necessary in 
addition to the the full contents of the SDK bin folder.
There are two approaches to handling the contents of the SDK bin folder that can be used when 
building and deploying C# and VB.Net applications.
Approach 1
The entire contents of the SDK bin folder can be copied to the application bin folder.
Approach 2
The contents of the SDK bin_add folder can be copied to the application bin folder and the ocr 
resource folder and path of the full bin folder must be specified as shown in the sample code in section 
2 above. In certain cases, e.g. deploying as a service, this approach is not suitable.
3.3
Deploying ASP.Net Applications
The same two approaches that work for C# and VB.Net can also be employed for ASP.Net applications.  
Note thatwith trial licenses a pop-up dialog box appears on the server.
3.4
Licensing
Production system deployment requires that a license string is defined in the code.  The license string 
defines the number of concurrent OCR processes that can be run.  
For example :
ocr.License = 
"MT0xMjM0NTY7BLk4uT3RoZXOzM9NDs0PVRydWEYzMDRFOEQxMzg0QkQ5ODREQTk3RQ";
If the string is not specified the SDK will run in evaluation mode.  In evaluation mode : 
A trial “pop-up” will appear for each document processed
Generated searchable PDFs will include indelible watermarks
Only 3 pages are generated for text or RTF files.
3.5
64 bit support
Whilst applications built using the SDK will run on 64 bit systems, they must currently be built as 32 
bit.
9
4
S
AMPLE 
A
PPLICATIONS
The samples folder includes a number of sample applications in C#, VB.Net and ASP.Net.  The project 
files are for Visual Studio 2008.  The sample applications are as described below.
4.1
Simple
This includes VB and C# version of the simple application listed in section 2.
4.2
ConvertFolderOfFiles
This forms-based application demonstrates converting a folder of TIFF or Bitmap files.  Both VB.Net 
and C# versions are included.
4.3
ZonalOCR
This forms-based application demonstrates converting a folder of TIFF or Bitmap files.  Both VB.Net 
and C# versions are included.
4.4
ASP.Net
This demonstrates a simple web-based application that allows uploading an image file for OCR and 
conversion to text, RTF or searchable PDF.
Documents you may be interested
Documents you may be interested