20.2 User's Guide: Document Imaging Solutions
20.2 User's Guide: Document Imaging Solutions
20.2
User's Guide
EN-CSDK-CSDKUG-20.2-20180129
EN-CSDK-CSDKUG-20.2-20180129
i
Nuance Communications, Inc.
SOFTWARE LICENSE AGREEMENT
THIS AGREEMENT STATES THE TERMS AND CONDITIONS UPON WHICH NUANCE COMMUNICATIONS, INC. ("NUANCE")
OFFERS TO LICENSE THE SOFTWARE INCLUDED IN THIS DEVELOPER KIT (THE "KIT") TO YOU. BY INSTALLING OR
OTHERWISE USING THE SOFTWARE, YOU ARE AGREEING TO BECOME BOUND BY THE TERMS OF THIS AGREEMENT. IF
YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, PLEASE PROMPTLY RETURN THE KIT TO WHERE YOU
OBTAINED IT FOR A REFUND. THIS AGREEMENT SHOULD BE READ IN CONJUNCTION WITH THE SECTION IN THE
ACCOMPANYING DOCUMENTATION (THE "DOCUMENTATION") ENTITLED "LICENSING THE PRODUCT".
1. License.
The Kit includes a set of software components (such as source files, binary libraries and data files) designed for integrating Nuance image
processing and recognition technology (such image processing and recognition technology, the "Nuance Technology") into an application
that you develop (the "Developed Application").
a. use one copy of the Kit and the Documentation internally to integrate one copy of the Nuance Technology into the Developed Applic-
ation.
b. use, internally, one copy of the Nuance Technology as and only if integrated in the Developed Application.
In order to (i) sublicense, sell, rent, lease, transfer or distribute the Developed Application containing the Nuance Technology, or (ii) use
more than one copy of the Nuance Technology as part of the Developed Application you need to purchase additional licenses from
Nuance.
c. make one copy of the Kit and/or the Nuance Technology in machine- readable form solely for backup purposes, provided that your
backup is not installed on any computer.
2. Restrictions.
a. SUBLICENSE, MARKET, SELL, RENT, LEASE, TRANSFER OR DISTRIBUTE THE KIT OR THE DOCUMENTATION UNDER ANY
CIRCUMSTANCES;
b. SUBLICENSE, SELL, RENT, LEASE, TRANSFER OR DISTRIBUTE THE NUANCE TECHNOLOGY ON A STAND- ALONE BASIS
UNDER ANY CIRCUMSTANCES;
c. electronically transfer the Kit and/or the Documentation from one computer to another over a network;
d. decompile, reverse engineer, disassemble or otherwise reveal the code of the Kit and/or the Nuance Technology to a human readable
form. Unauthorized copying of the Kit, the Nuance Technology, or the Documentation, including portions thereof, is expressly forbidden.
You understand that Nuance may update or revise the Kit, the Nuance Technology or the Documentation and in so doing incurs no oblig-
ation to furnish such updates to you. Developed Applications containing the Nuance Technology must prominently display the following
Nuance copyright notice sometime during execution ("Nuance™ OCR software © Nuance Communications, Inc. All rights reserved");
EN-CSDK-CSDKUG-20.2-20180129
ii
e. use the Kit to produce applications that may be shared through the world wide web in an Application Service Provider (ASP) model
without the express written authorization of Nuance; or
f. incorporate any Restricted Software in any Developed Application containing the Nuance Technology. As used herein, "Restricted Soft-
ware" means any software that is licensed under terms that could or might require, by virtue of the incorporation or inclusion of such soft-
ware in the Developed Application that any portion of the Kit or the Nuance Technology be made available in source code or human
readable form.
3. Termination.
This Agreement is effective until terminated. Except for Sections 2, 3, 4, 6, 7, and 8, this Agreement shall terminate automatically upon
your breach of your obligations under this Agreement. Upon such termination, you agree to destroy the Kit, including the Nuance Tech-
nology and Documentation, and all copies. This remedy shall be in addition to any other remedies available to Nuance.
4. Export Control.
You cannot use the Kit, the Nuance Technology, and/or Documentation in any way or act in any way in connection with the Kit, the Nuance
Technology, and/or Documentation that violates any laws or regulations of the United States or foreign governments relating to exports
and/or export controls.
This Section applies to all acquisitions of the Kit and/or the Nuance Technology by or for the Federal government or by any prime con-
tractor or subcontractor (at any tier) under any contract, grant, cooperative agreement, or other activity with the Federal government. By
accepting delivery of the Kit and/or the Nuance Technology, the government hereby agrees that this software qualifies as "commercial"
computer software within the meaning of the acquisition regulation(s) applicable to the procurement. The terms and conditions of this
Agreement shall pertain to the government's use and disclosure of the Kit and/or the Nuance Technology. If this Agreement fails to meet
the government's needs or is inconsistent in any respect with Federal law, the government agrees to return the Kit and the Nuance Tech-
nology, unused, to Nuance. The following additional statement applies only to acquisitions governed by DFARS Subpart 227.4 (October
1988): "Restricted Rights-Use, duplication, and disclosure by the Government is subject to restrictions as set forth in subparagraph (c) (1)
(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 (Oct. 1988)." In the event any of the above ref-
erenced agency regulations is amended or replaced, the equivalent successor regulation shall apply instead."
6. WARRANTY DISCLAIMER.
THE KIT, THE NUANCE TECHNOLOGY, AND THE DOCUMENTATION ARE PROVIDED "AS IS". NUANCE DOES NOT WARRANT
THAT THE OPERATION OF THE KIT OR THE NUANCE TECHNOLOGY MEETS YOUR REQUIREMENTS OR OPERATE FREE
FROM ERROR. NUANCE DISCLAIMS ALL OTHER WARRANTIES AND CONDITIONS EITHER EXPRESS OR IMPLIED,
INCLUDING THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
OF THIRD PARTY RIGHTS. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY NUANCE, ITS DEALERS,
DISTRIBUTORS, AGENTS OR EMPLOYEES SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS
WARRANTY, AND YOU MAY NOT RELY ON ANY SUCH INFORMATION OR ADVICE. SOME STATES DO NOT ALLOW THE
EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.
7. LIMITATION OF LIABILITY.
NUANCE SHALL NOT BE LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING
DAMAGES FOR LOST BUSINESS PROFITS, LOSS OF INFORMATION, BUSINESS INTERRUPTION, OR THE LIKE) ARISING OUT
OF THE USE OR INABILITY TO USE THE KIT OR THE NUANCE TECHNOLOGY EVEN IF NUANCE OR ITS REPRESENTATIVES
HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE LIMITATION OR
EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION
EN-CSDK-CSDKUG-20.2-20180129
iii
MAY NOT APPLY TO YOU. NUANCE'S LIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED THE LICENSE
FEE FOR THE KIT.
8. Copyright/Ownership.
The Kit, Nuance Technology and Documentation are the proprietary products of Nuance, all of which are protected by copyright and
other intellectual property laws. You acquire only the right to use the Kit, Nuance Technology and Documentation and do not acquire any
rights, express or implied, in the Kit, Nuance Technology or Documentation other than those specified in this Agreement. Nuance or its
licensors shall at all times retain all right, title, interest, including intellectual property rights, in the Kit, Nuance Technology and Docu-
mentation.
9. General.
This Agreement shall be governed and interpreted in accordance with the laws of the Commonwealth of Massachusetts, USA, without giv-
ing effect to its conflict of laws principles. This Agreement shall not be governed by the United Nations Convention for the International
Sales of Goods, the application of which is expressly excluded. This Agreement contains the entire agreement between the parties with
respect to the subject matter hereof, and supersedes all prior agreements or understandings (oral or written) regarding such subject mat-
ter unless the parties have entered into and signed an OEM License Agreement covering the same Kit, Nuance Technology and Docu-
mentation as is covered by this Agreement, in which event the OEM License Agreement controls if it conflicts with this Agreement.
The following acknowledgments are presented in the alphabetical order of their titles.
Asian OCR capabilities are jointly developed by the Beijing Wintone Information Technology Corporation Ltd and Nuance Com-
munications, Inc. All rights reserved.
Crypto API
Partner: Microsoft CAPICOM 2
Partner: INSO/Vantage Research, Language dictionaries used by the recognition modules MOR, PLUS, DOT and MAT.
Partner: Proximity, Language dictionaries used by the recognition modules MTX and PLUS.
Copyright notice: The Proximity Dictionaries © 2000, all rights reserved. Proximity Technology, Inc.
eBook conversion
Partner: Microsoft Reader
EN-CSDK-CSDKUG-20.2-20180129
iv
Export Options dialog controls
Copyright notice: Zlib copyright © 1995-1998 Jean-loup Gailly and Mark Adler.
Partner: InstallShield
Copyright notice: The Independent JPEG Group's software, JPEG Software, copyright © 1991-1998, Thomas G. Lane. All rights
reserved.
JPEG 2000
Copyright notice: This product was developed using Kakadu software <http://www.kakadusoftware.com>
Copyright notice: This product includes software developed by the OpenSSL project <http://www.openssl.org/> with software written by
Eric Young and Tim Hudson.
Copyright notice: Both items are licensed under the Apache License, version 2. See <http://www.apache.org/licenses/LICENSE-2.0/
Partner: Zebra Crossing
EN-CSDK-CSDKUG-20.2-20180129
v
OCR for CTJK
Copyright notice: Part of this software is derived from the RSA Data Security Inc. MD5 Message-Digest Algorithm.
PDF encryption
PDF encryption
Copyright notice: Portions of this software are copyright © 2006 The FreeType Project <www.freetype.org>. All rights reserved.
PDF rendering
Partner: Palasik P4
Copyright notice: This software is based, in part, on the work of Colosseum Builders, Inc.
Partner: Libpng
XML parsing
Partner: MSXML Microsoft
EN-CSDK-CSDKUG-20.2-20180129
1
1 - Introduction
Welcome to the Nuance® OmniPage® Capture Software Development Kit, released by Nuance
Communications, Inc. This kit provides you with image management and recognition technologies for building
32-bit and 64-bit Microsoft® Windows® applications. We trust you find it a productive tool in your development
work. To those of you examining an evaluation copy, we hope you gain positive experience that leads to a
purchase.
2
n OMR Add-on, Desktop, Fixed Volume, v20.1
n Formatted Output Add-on, Desktop, Fixed Volume, v20.1
n Document Classifier Add-on, Desktop, Fixed Volume, v20.1
n Visual Toolbox Add-on, Desktop, Fixed Volume, v20.1
n FTE and DCTT Desktop, Fixed Volume, v20.1
3
n Document Classifier Add-on, Desktop, OEM, v20.1
n Visual Toolbox Add-on, Desktop, OEM, v20.1
4
The distribution licensing method to be used does not need to be decided until the application is ready for
release. For details, see the OmniPage Capture SDK 20.1 - General Information Help.
All licensing for Linux and Macintosh kits (development and distribution) is handled exclusively through OEM
licenses.
System requirements for the Toolkit can be found in the General Information online help system, or on the
Nuance website under OmniPage Capture SDK.
This guide gives you an overview of the areas listed. For more in-depth information, consult the General
Information Help.
5
3. Browse the downloaded and unzipped content for the latest information: You can find a Release Notes
(ReadMeEng.htm file) and a User’s Guide document (CSDK_UsersGuide.pdf) in the Documentation
subfolder of the unzipped content quoting a section on the new features and changes that summarizes the
additional and improved features compared to earlier versions. You can also find these and other
documents in the Documentation sub-folder after installation, under the destination folder of installation.
4. Check that your system meets the minimum requirements for memory and disk space and be ready to
select install location.
5. Ensure that internet access is available for product license activation which is required to use the SDK:
Internet access can either be available on your developer machine (the computer where you are about to
install the SDK) or on another one that you use for reaching the activation webpage.
In case your developer machine has internet access, it is recommended that you activate your license
directly online. If you choose to activate using a second machine, make sure you can transport files
between this computer and your developer workstation, and use Manual activation. For details see the
section on activation.
6
following seven chapters:
n Introduction: (page 1) Installation, Distribution, etc.
n System Requirements: (page 12) Windows only
n New Features and Changes: (page 14) Overview of innovations and improvements
n RecAPI: (page 30) Overview of the native C++ interface with over 400 entry points
n IPRO: (page 43) Overview of ActiveX controls and the object model, and the use of workflows
n Visual Components: (page 66) Overview of ready-made and customizable UI elements
n Appendix: (page 80) Sample barcode images
The Toolkit is shipped with the following HTML help files:
n General Information: System requirements, Licensing, Testing and Distributing Applications, etc.
n RecAPI: Full reference of all functions, enumerations and parameters for C++ implementation; it also
contains the full RecPDF API reference. This system contains most of the overview and reference
topics not repeated for IPRO or Visuals.
n IPRO: Full reference of the object model, events, methods and properties.
n Visuals: Full description of all visual components. It contains MediumWeight Visuals Namespace and
VisualsLib Namespace along with MediumWeight Visuals Controls and Visuals Controls.
The help includes Tutorials, Sample Codes and Reference topics. Access this through the Windows Start
menu or Help buttons in the programs. Readme files present latest information and solutions to recently
reported problems.
A Porting Guide (available on demand) documents the architectural changes that must be handled when
upgrading from Nuance OmniPage Capture SDK 12 to Nuance OmniPage Capture SDK 15.
All these items are stored in electronic form in the sub-folder Documentation. The full collection is accessible to
those evaluating the Kit, and also to purchasers, regardless of which Kit or Add-ons are purchased.
7
n the version number of the Nuance OmniPage Capture SDK you have just installed
You can safely ignore error messages displayed under Module Information in this window. The program only
generates these messages for demonstration purposes.
The Sample Viewers can be launched from the Windows Start Menu, under Nuance > OmniPage Capture
SDK 20.1 > Samples. Choose the viewer appropriate for the interface you plan to use for development.
n CSharp Class Samples (C# 10.0)
n IPRO Sample Viewer Application (C# 10.0)
n IPRO Sample Viewer Application (C++ 10.0)
EN-CSDK-CSDKUG-20.2-20180129
8
n IPRO Sample Viewer Application (VB.NET 10.0)
n New IPRO Sample Viewer Application (C# 10.0)
n New Visual Controls Sample Application (C# 10.0)
n RECapi Sample Viewer Application (C)
n Visual Controls Sample Application (C# 10.0)
n Visual Controls Sample Application (C++ 10.0)
n Visual Controls Sample Application (VB.NET 10.0)
Note:
To use a scanning device with the Capture SDK, it must be already installed using its own installation software
and functioning correctly. Consult the scanning topics in the documentation.
9
4. Read the hints in the Distribution Wizard log, and make sure the necessary system files are installed on the
target computer.
5. Setup the user's system for scanning, if necessary.
6. Ensure that recognition modules (and the PDF output converter and other Add-ons) used by your integrating
application get licensed.
10
For more details on licensing, see the General Information Help.
For both speed and accuracy the 100% value is for the default configuration (Plus2W). This means the fastest
configuration is slightly over twice as fast as the default. The percentage differences translate into word
accuracy values as follows:
n Most accurate (Plus 3W): 97.2%
n Default (Plus 2W): 96.9%
n Fastest (FRX + Legacy): 92.5
EN-CSDK-CSDKUG-20.2-20180129
11
1.13- Image Size Limits
There are no changes in size limitations compared to earlier versions of Capture SDK.
12
2 - System Requirements
System requirements for a computer used to develop a Capture SDK-enabled application
n Operating Systems:
n Microsoft Windows Server 2008* R2
13
* Nuance OmniPage Capture SDK runs on Server type operating systems when Server license feature is
present in the Nuance OmniPage Capture SDK license.
14
3 - New Features and Changes
This document presents an overview of the innovations, improvements and changes in version 20.1 of the
OmniPage Capture SDK.
The texts include brief references to the most relevant RecAPI functions or IPRO objects or MediumWeight
Visuals controls. The documentation for the chosen platform provides full information on these components.
New features of earlier versions can be found in the documents of the given release.
15
n Control setting in handling JPG images without DPI data
Kernel.Imf.JPG.Resolution (int, default is USE_DEFAULTDPI) USE_DEFAULTDPI if no DPI
data available in the JPG file, CSDK uses Kernel.Imf.DefaultDPI for the actual resolution. Default
USE_EXIF if exif data available in the JPG file, use its resolution number. If no such data exists,
CSDK takes Kernel.Imf.DefaultDPI setting
n kRecLoadImgM has new a setting to the number of colors in the image
Kernel.Imf.MinimizeBitsPerPixel.FromMemory (boolean, default is false for compatibility reason)
kRecLoadImgMC investigates the number of colors in the image (depending on a setting) and adjusts
BitsPerPixel to a minimum (similar to kRecLoadImg)
n New UI tool for handling Fixed Volume Licenses in the redistribution
This program is a MFC application (OPLicMgrUI.exe) that makes the end user's life easier. A simple
UI drives users through the license activation and the process of moving Fixed Volume Licenses from
one computer to another.
n Improvements in Automatic Language Detection, 3D deskew
n Asian language support added to Form Template Processing and FTE
n General bug fixing and stability improvements
n New HTML5 output converter
16
Capture SDK settings. After a OCRService has been processed, a reponse XML string returns to the
application with statistics and errors, if any.
In this Nuance OmniPage Capture SDK release the OCRService is not fully documented yet. The
AssistantApp.exe should be used to create classic workflows (binary xwf file) and a tool XWFToXML.exe to
convert .xwf files to OCRServices. The content of an OCRService file can be given a first parameter of Run()
function.
The OCRService process maintains multiple Nuance OmniPage Capture SDK worker processes. It stops and
restarts workers on a regular basis (default: every 10 OCRService execution) and at every occurrence of a
Nuance OmniPage Capture SDK error, crash, hang or infinite loop. Before a restart, OCRService cleans TEMP
folder of the actual worker. This mechanism ensures the high availability and the safety of the application. No
resource leaks, hangs, or crashes are manifested.
The OCRService Run() function execution is an asynchronous process. There is a done event to notify the
application about the end of an OCRService. OCRService maintains a small queue of OCRServices feeding
the Nuance OmniPage Capture SDK worker processes. The number of workers can be parameterized. Each
Nuance OmniPage Capture SDK process utilizes one to five CPU cores depending of the workflow steps. If
the computer node has many cores, the application can increase (UserCount) the number of the worker
processes (scale-up). In general, the application can set one worker for every two available virtual cores. If the
node has to deal with another task, the application can limit the workers to one or two. Using a parameter in the
OCRService, the application can reduce (throttle) the CPU usage of a single worker if needed.
17
void Cancel(string ID)
void Ping(bool Report)
delegate void IOCRServiceEvents_DoneEventHandler(string ID, int StartError, System.Array
StartErrors, System.Array RuntimeErrors, System.Array RuntimeErrorDescriptions, Sys-
tem.Array ResponseXMLFiles)
.
18
n Project files for samples are now in VS2010 format. This makes it easy to update these files to the
version of Visual Studio you are using. Samples binaries were also built using VS2010. That is why
Nuance OmniPage Capture SDK Installer installs vc_redist for VS2010.
n RecIProPlus API retired: the RecIProPlus component has been removed from this release. If you still
intend to use it, the current Nuance OmniPage Capture SDK release contains the obsolete component
source files. Locate these (RecIproPlus.cpp and RecIproPlus.h) at the following path: <Nuance
OmniPage Capture SDK Installation Path>\Samples\ISApp\MFC.
n AmpLib Barcode Recognition Engine is discontinued BAR_C32, BAR_4STATE, BAR_4STATE_DK1,
BAR_AZTEC bar types are no longer supported.
19
RECERR RECAPIKRN kRecGetCompressionLevel(int sid, int *pCompressionlevel);
typedef enum
{
COMPRESSION_FAST,
COMPRESSION_ADVANCED
} COMPRESSION_TRADEOFF;
RECERR RECAPIKRN kRecSetCompressionTradeoff(int sid, COMPRESSION_TRADEOFF
CompressionTradeoff);
RECERR RECAPIKRN kRecGetCompressionTradeoff(int sid, COMPRESSION_TRADEOFF*
pCompressionTradeoff);
3.5.6 - New API for loading image file page without decompressing the
image inside
See in KernelAPI.h. It is not available on IproPlus in this release. Sample67
RECERR RECAPIKRN kRecLoadImgDataStream(int sid, HIMGFILE hIFile, HPAGE
*phPage, int iPage);
RECERR RECAPIKRN kRecLoadImgDataStreamF(int sid, LPCTSTR pFilename, HPAGE
*phPage, int nPage);
RECERR RECAPIKRN kRecDecompressImgDataStream(int sid, HPAGE hPage);
RECERR RECAPIKRN kRecFreeImgDataStream(int sid, HPAGE hPage);
RECERR RECAPIKRN kRecLoadImgDataStreamMC(int sid, BYTE *lpBuf, size_t bufLen,
LPCOMPRESSED_IMG_INFO lpCImg, HPAGE *phPage);
RECERR RECAPIKRN kRecLoadImgMC(int sid, BYTE *lpBuf, size_t bufLen,
LPCOMPRESSED_IMG_INFO lpCImg, HPAGE *phPage);
Supported compression: IMG_COMPRESSION enum.
20
#define IMF_PDF_AS_IMAGE 1ss="style2"> #define IMF_PDF_AS_IMAGE 1
#define IMF_PDF_NO_TAGS 2
#define IMF_PDF_ANN_FORM (4 << 0)
#define IMF_PDF_ANN_TEXT (4 << 1)
#define IMF_PDF_ANN_HIGHLIGHT (4 << 2)
#define IMF_PDF_ANN_UNDERLINE (4 << 3)
#define IMF_PDF_ANN_CROSSOUT (4 << 4)
#define IMF_PDF_ANN_STAMP (4 << 5)
#define IMF_PDF_ANN_LINE (4 << 6)
#define IMF_PDF_ANN_SQUARE (4 << 7)
#define IMF_PDF_ANN_CIRCLE (4 << 8)
#define IMF_PDF_ANN_POLYGON (4 << 9)
#define IMF_PDF_ANN_POLYLINE (4 << 10)
#define IMF_PDF_ANN_PENCIL (4 << 11)
//! Setting & getting load flags for pdf file loading
/*! The kRecSetImfLoadFlags function set an IMF Load Flags combination
\param[in] sid
Settings Collection ID.
\param[in] fFlag
The IMF Load Flag combination
\retval RECERR
*/
RECERR RECAPIKRN kRecSetImfLoadFlags(int sid, DWORD fFlag);
RECERR RECAPIKRN kRecGetImfLoadFlags(int sid, DWORD *pfFlag);
3.5.9 - ITest is able to run with any Nuance OmniPage Capture SDK Kit
21
n Standard OEM license keys issued by Manufacturing from the beginning of 2014 can be used
n Does not require new API – simply a slight modification in application source code
22
3.7.4 - PDF MRC output improvements
Better layout separation for smaller MRC PDF size.
3.7.10 - New command line switch to get the hardware finger print used by
Nuance Licensing
nuancelt.exe hwfp -> creates a csdk_hwfp.txt file under the user's my documents folder.
23
3.8- Version 19.00 New Features
3.8.1 - Camera Image handling improvements
n Obtaining camera flag from EXIF info (to determine whether an image came from a digital camera)
n Auto-deskew option can be turned on or off (if on, the program determines whether to apply 2D or 3D
deskewing: for normal or camera images)
n Automatic resolution (DPI) estimation
n ½ resolution enhancement (automatic preprocess step: if a camera image contains very large
characters, the II_BW image resolution is decreased to an OCR engine optimized value)
n Shading correction: new shading correction algorithm is performed by the automatic binarization
n Modified workflow for camera images for better OCR results (resolution enhancement and text line
straightening are applied to images coming from a digital camera)
3.8.2 - Major update on BAR engine; several new bar types supported
3.8.2.1 - Existing 2D Types N ewly Supported B y B A R
Note:
The following types used to be supported by BAR_AMP only.
n BAR_QR: QR Code (Quick Response Code); can encode Japanese Kanji and Kana characters,
music, images, URLs, emails. De facto standard for Japanese cell phones. These codes are also the
most frequently used type to scan with smartphones.
n BAR_DMATRIX: Data Matrix; can encode text or numeric data, used in the food industry in
autocoding systems to prevent food products being packaged and dated incorrectly. Increasingly used
throughout the United States.
Note:
The following types used to be supported by BAR_AMP only.
EN-CSDK-CSDKUG-20.2-20180129
24
n BAR_A2of5: Airline 2 of 5; airline tickets and baggage handling
n BAR_2of5: Standard 2 of 5, Industrial 2 of 5; used in the photofinishing and warehouse sorting
industries, as well as sequentially numbering airline tickets. Digits are encoded with 5 bars, 2 of which
are always wide.
n BAR_C93: alphanumeric, variable length symbology; used primarily by Canada Post to encode
supplementary delivery information.
n BAR_C39_NSS: Code 39 without start-stop delimiters (denoted '*')
n BAR_MAT25: Code 2 of 5 Matrix; usage of code 2 of 5 Matrix has strongly decreased; it has high
information density, but low tolerance and also not self-checking.
n BAR_PATCH: set of 6 barcodes used to separate documents during scanning; does not actually
contain data; it is simply a code which provides information to document processing.
n BAR_PLANET: Postal Alpha Numeric Encoding Technique (PLANET) barcode; used by the United
States Postal Service to identify and track pieces of mail during deliver.
n identifies mail piece class and shape
25
n BAR_SSCC18: (Serial Shipping Container Code); used throughout the supply chain as an identifier for
item tracing and internal control; It is fix 18 length UCC 128 barcode with prefix 00. Its structure is: 00
[17 digit data] [1 digit checksum]. Therefore the real result string length of this symbology is 20.
n BAR_DATABAR_LIMITED: GS1 DataBar Limited, RSS-14 Limited; designed for very small item
identification and mainly used in the healthcare industry, specifically designed to be read by wands and
handheld laser scanners, and cannot be read efficiently by omni-directional scanners
n BAR_DATABAR_EXPANDED: GS1 DataBar Expanded, RSS-14 Expanded; expanded version of the
DataBar barcode symbology which is capable of encoding the 14-digit GTIN, and additional data such
as expiration dates, country of origin and serial numbers - up to 74 numeric or 41 alphabetic characters.
n BAR_4STATE_ONECODE: USPS Intelligent Mail; allows both PLANET and POSTNET barcode
information to be combined into a single barcode to track mailings, request address-quality services
(including updated address-change information) and return-mail service.
n BAR_4STATE_AUSTRALIA: used by Australia Post for Postal code and automatic mail sorting
Note:
The following types are not supported by BAR.
n BAR_4STATE_DK1
n BAR_AZTEC
n BAR_C32
The BAR_4STATE barcode family includes the following barcode types:
n OneCode
n AustraliaPost
n RoyalMail
n RoyalDutch
n Singapure
n CanadianPost
26
Kernel.IMF.PDF.SplitMaxPages
for DTXT/PDF output:
Kernel.DTXT.Pdf.SplitMaxSize
Kernel.DTXT.PDF.SplitMaxPages
for all Formatted outputs:
Converters.Text.ConverterName.SplitMaxSize
Converters.Text.ConverterName.SplitMaxPages
27
3.8.5.2 - Template D efinition Step
Scanned empty or filled form images can be used for template creation using the new Form Template Editor
standalone desktop application. The Logical Form Recognition (LFR) module helps the creation phase by
automatically detecting form fields. The created form templates can be tested within the Form Template Editor.
28
3.8.9 - Layout Retention and Document formatting improvements
3.8.9.1 - Make PD F File Searchable
A new workflow step is available inside DocuDirect. Input is a set of PDF files of any flavor. This step
discovers image-only parts or pages, runs OCR and adds the text to the PDF, leaving notes and annotations
intact. This functionality exists in the ‘eDiscovery Assistant for searchable PDF’, but is now available for a job,
allowing for timed, recurring and unattended job running, plus the use of watched folders.
29
3.8.14 - MP3 Audio output format
n Converters.Text.Audiomp3 added as a new converter
n Converters.Text.Audio modified to create MP3 instead of WAV
3.8.15 - DocX, XlsX, PptX improvement for Google Docs and Apple Pages
Better aftermarket OXML application support
30
4 - RecAPI
The OmniPage Capture SDK 20.1 lets developers access a broad range of algorithms and workflows
developed and utilized by Nuance Communications, Inc. as well as integrate them into their own applications.
Version 20.1 comes with a series of new features, as detailed in the previous chapter ("New Features and
Changes" on page 14). This entails the introduction of a small number of new RecAPI functions, but the
underlying architecture is unchanged from version 16 to 20. Therefore, the term Nuance OmniPage Capture
SDK (without version number) used in this chapter refers to versions 16 or 20, Nuance OmniPage Capture
SDK 20.1 refers to version 20.1 only.
Throughout the documentation we frequently refer to Nuance OmniPage Capture SDK as Engine meaning all
the modules of RecAPI.
This chapter is intended to give you an overview of RecAPI, discussing the following:
n Introducing RecAPI
n KernelAPI Modules
n RecAPIPlus
n Alternate Linking of RecAPI
For those upgrading to version 20.1 from a pre-Nuance OmniPage Capture SDK 15 version, a Porting Guide is
available on demand in PDF format, found on the Nuance website, providing guidance on the modifications
necessary to port applications from version 12 to 16 to 20.1.
4.1.1 - KernelAPI
This is a page-oriented interface providing plain text output (DirectTXT) with high throughput. It has three page
parsing choices: Legacy, Fast and Standard.
The latter is the default and gives the most thorough and accurate results.
4.1.2 - KernelAPIS
This is a wrapper for KernelAPI to provide it with alternate linking, so the application and the Nuance OmniPage
Capture SDK engine can be separated, to provide more robust functioning.
EN-CSDK-CSDKUG-20.2-20180129
31
4.1.3 - RecAPIPlus
This is a document-oriented extension to KernelAPI that provides a full range of formatted outputs. It includes
document-level layout consolidation and has the same page parsing choices as KernelAPI. It allows multi-page
high-volume processing to be done efficiently, particularly on multi-core systems. It offers composite one-step
functions to perform a succession of tasks from just one command.
4.1.4 - RecAPIPlus S
This is a wrapper for RecAPIPlus to provide it with alternate linking, so the application and the Nuance
OmniPage Capture SDK engine can be separated.
32
performed in this module. You can get useful information about the OmniPage Nuance OmniPage Capture
SDK (for instance accessible modules, etc.).
Most RecAPI operations work through Settings Collections. A Settings Collection acts as a kind of profile. It
stores a set of operational settings (handled by the Settings Manager Module).
Distinct Settings Collections can store different values for given settings. A Settings Collection is authorized
by an identifier that must be passed to all operations using that Settings Collection. Settings Collections can be
user-created or deleted.
33
Both this and the Image Handling Module support B/W, grayscale and color images. Nuance OmniPage
Capture SDK can read the following multi-page image file formats: DCX, MAX, PDF, TIFF and TIFF-FX. Loading
input can be an image file, or the memory of the integrating application. After the file is loaded, the image is
forwarded to the Image Handling Module. Saving input is also provided by the Image Handling Module.
To achieve faster image file handling for multi-page TIF and PDF files, call kRecOpenImgFile prior to calling
kRecLoadImg. This way there is no need to lose time opening the same image file repeatedly for each page.
The open, load, close (kRecOpenImgFile, kRecLoadImg, kRecCloseImgFile) functions are connected by the
HIMGFILE handle in an already familiar way. To load single-page images, or to load single pages from multi-
page files, you can use the kRecLoadImgF function, thus the need to use the HIMGFILE handle here is
eliminated.
Note:
During scanning the integrating application should disable all functionalities that can interfere with the
scanning. For example, the application should not allow the user to terminate it by any means. The whole
scanning module is now thread safe, so it is possible to initiate two scanning processes in parallel, using two
Scanners. Calls from two different threads to a single Scanner are queued.
34
the image (zones). The Image handling module enables the Engine to handle several pages at the same time.
The Engine can only manage and process pages within its own memory space: images must be loaded into the
Engine first (by the Image File Handling Module, or the Scanning Module). Possible image sources include
files, scanning devices or the memory of the integrating application. The best resolution for B/W images is 300
or 400 dpi. For grayscale or color images the optimal recognition resolution is 150 to 300 dpi.
Nuance OmniPage Capture SDK offers pre-recognition functions to apply image preprocessing procedures to
images. These enhance their quality, and yield more accurate auto-zoning (carried out by the Zone Handling
Module) and recognition (carried out by the Recognition Module). Preprocessing can include any or all of the
following steps:
n Inversion: automatic, programmed or none
n Rotation: automatic, programmed or none
n Deskewing: automatic, programmed or none
n 3D DESKEW: automatic, programmed or none
n Use of SET tools via the ActiveX Image Viewer Control (IVC)
In addition, image despeckling and resolution enhancements are performed internally to render better results,
with or without the above transformations.
Additional tasks in this module include
n user modification of the loaded images,
n detection and cutting book pages (when the image contains two book pages),
n auto-detection of table location and structure for the Table Recognition Module,
n line information detection,
n auto-detection of border, box or frame location and styling.
35
You can start auto-zoning directly or it automatically runs at the beginning of the recognition process provided
that there are no OCR zones already defined.
You can also influence the method and performance of auto-zoning via different settings. When you use user-
zones, you can specify whether to have auto-zoning also run or not. Individual user zones are transformed into
one or more OCR zones prior to recognition. Recognition is ALWAYS carried out on OCR zones and it may
also change them due to post-processing.
n Based on their content, zones can be classified as follows:
n flowing text (horizontal or vertical with three rotations)
n table (handled by the Table Recognition Module)
n graphics (no recognition performed)
n form (handled by the Form Recognition Module).
36
4. Inspect the auto-detected form objects in the TEC visual control. Move, resize or delete them as required.
Add new objects if needed. TEC also lets you view and modify form object attributes.
5. Save the results to a format that supports active form elements: formatted XML, RTF (Microsoft Word) and
PDF (optionally with Acro-Form-like fillable field definitions).
6. Form object attributes can also be modified in the target application.
37
form-field identifiers and attributes to be attached to the user zones. These include restrictions to zone content
from the checking subsystem - such as regular expressions, dictionaries, character filters like 'numbers-only',
or other user-defined checking routines.
The Save Template function saves the zone set, including the attached items and the anchor bitmaps into a
template file. This is a standard Nuance OmniPage Capture SDK zone file extended with anchor data.
Processing filled forms:
Use the Nuance Form Template Editor for this task. Consult the How to Use? section of the Nuance Form
Template Editor Help for details.
38
PDF files can be separated into two basic classes: image-only PDF, normal PDF. Recognition of image-only
PDF is exactly the same as that of any other image format. The normal PDF contains both image and text data.
The Nuance OmniPage Capture SDK can extract this textual information to boost OCR accuracy. In general,
text in a PDF file is reliable, so accurate results are possible even when the quality of the imaged text is low.
See "New Features and Changes" on page 14 or improvements in PDF handling. The fullest description of PDF
functionality in the Nuance OmniPage Capture SDK is found in the ’Related Pages’ section of the RecAPI
online help system.
Note:
User-written callbacks are deprecated.
You can combine any of these during the recognition process: these are steps in determining the acceptability
of words. The use of these checks can still be enabled or disabled separately at the zone level.
The Nuance OmniPage Capture SDK is delivered with over 20 different language dictionary files. These are
generic language dictionaries; typically they contain between 100,000 and 200,000 entries.
Vertical dictionaries are based on specific professions. They can be treated as extensions to the language
dictionaries, but they can also be used when no language dictionary is specified. The Capture SDK is delivered
with nine different vertical dictionaries:
n Dutch Legal Professional Dictionary
n Dutch Medical Professional Dictionary
n English Financial Professional Dictionary
n English Legal Professional Dictionary
EN-CSDK-CSDKUG-20.2-20180129
39
n English Medical Professional Dictionary
n French Legal Professional Dictionary
n French Medical Professional Dictionary
n German Legal Professional Dictionary
n German Medical Professional Dictionary
A User dictionary is a list of words , so-called UDItems. User Dictionaries can be created or modified by the
user manually or through KernelAPI calls. User-written checking callback functions are parts of the integrating
application. They receive the string to be checked and the index of the zone where this string comes from. The
application must evaluate the string; express its opinion on the recognized string's acceptability, then return
this to the Engine. The Recognition Module uses feedback from the Spell Checker module along with other
data to make its assessment of recognition confidence.
Note:
The confidence reporting system works best when the 3-way voting engine runs. If other machine print
recognition modules are used, confidence information is still available, but the system’s ability to report on
confidence properly is reduced. This results in a higher level of false negative and false positive reporting of
suspicious recognition results.
40
n DirectTXT Binary output: used for creating files directly from the recognition data without any character
conversion and formatting. It is the most usable output format for barcodes containing binary data (for
example Code128 or PDF417 barcodes containing encrypted data).
When you specify an already existing file name, the TXT type outputs are appended.
The DTXT module can be especially useful for applications that do not require formatting but speed is an
important factor, for example: indexing, archiving, or some form processing applications. When programming
with KernelAPI this is your only output choice. It is possible to purchase distribution licenses that exclude
formatted output (see "Preparing a Distribution File Set" on page 8 of Chapter 1).
4.3- RecAPIPlus
RecAPIPlus - as a part of RecAPI - contains a programming interface based on a document-oriented approach
and provides formatted page output.
41
n True Page®
n Flowing Page
n Spreadsheet.
Not every converter can realize each level of output formatting. For example, an outputted Word document or a
PDF document can use Flowing Page and True Page levels, which are very similar to the original layout. There
are also simple text converters, which can retain only the text (in Plain Text mode) or the text and its attributes
(in Formatted Text mode). In addition, final output results can be influenced by adjusting settings. A help topic
table lists which formatting levels are supported by each output converter.
42
Debug version of KernelAPIS
n KrnAPISd.LIB - single-threaded C run-time library - statically linked,
n KrnAPIS_MSd.LIB - multi-threaded C run-time library - statically linked,
n KrnAPIS_MDynd.LIB - multi-threaded C run-time library - dynamically linked.
Debug version of RecAPIPlusS
n RecAPIPlusSd.LIB - single-threaded C run-time library - statically linked,
n RecAPIPlusS_MSd.LIB - multi-threaded C run-time library - statically linked,
n RecAPIPlusS_MDynd.LIB - multi-threaded C run-time library - dynamically linked.
EN-CSDK-CSDKUG-20.2-20180129
43
5 - IPRO
This chapter introduces IPRO. It contains an overview of the structure of IPRO, with particular emphasis on
the object model. The object model diagram is followed by brief summaries on the objects themselves. For
detailed reference, see the IPRO Online Help system.
The chapter "New Features and Changes" on page 14 of this Guide includes some topics on innovations to the
IPRO functionality.
This chapter discusses the following:
n About RecIPRO
n ComKit Libraries
n Error Handling in RecIPRO
n Avoiding Potential Deadlock Situations
n Supported Development Environments
n The IPRO Object Model
n Object Model Overview
n Object Summaries
44
How to use IPRO and Visual Toolbox in a safe approach:
n Avoid calling back to IPRO in event handlers. Many IPRO events receive IPRO object references. If it
is really important, use the received object reference to query basic properties, but never initiate
massive processing which causes hard IPRO usage or additional event firing (which might be in a
different threading context).
n Avoid calling the SendMessage API targeting windows that were created in different threads. E.g.
never send messages from a worker thread to a window that was created in the main UI thread. This is
a typical reason for deadlocks in multi-threaded windows applications even without any IPRO, or other
COM object usage.
n Avoid accessing objects that were created in a particular thread from a different thread. If possible,
encapsulate all IPRO-related object creation and processing into a single thread, or ensure proper
interface marshalling if multiple thread usage is necessary and you need to access objects in a
different thread than the creator.
n Ensure that during an IPRO call the program does not enter into another parallel call. This might
happen, for example, if you have a UI button associated with some processing and click it a second
time before the processing initiated by the first click has finished. Because the IPRO Workflow
manager has its own message loop to enable the integrator application's UI to be responsive and
painted correctly, this type of encapsulation is possible. A good approach is disabling the related UI
elements during any processing so that the user cannot click the button at the wrong time even if the
interface is responsive at the time.
45
EN-CSDK-CSDKUG-20.2-20180129
46
5.4- Object Summaries
Below is the brief summary on the characteristics of IPRO objects. For detailed information on each of them,
see the IPRO Online Help system.
The BarcodeType object contains information about the particular barcode type.
The BarcodeTypes collection is a sorted set of BarcodeType objects. Each element represents a
recognizable barcode type. Using its properties, the BarcodeTypes collection enables you to gather information
about the supported bar code types.
This collection serves multiple purposes. Under the Engine objects it provides barcode type information for
listing purposes. If the parent of this collection is a Document object, the contained barcodes can be enabled or
disabled for recognition. By default the following barcode types are enabled: EAN, ITF, Code 39, Code 128 and
Codabar.
The Character object provides information about a single recognized character, such as the character code,
coordinates of the character on the image, confidence information etc. The character coordinates are treated as
OCR image coordinates.
The Characters collection is a sorted set of Character objects, where each element represents a single
character in the recognition result. By accessing its properties, the Characters collection enables you to gather
information about the recognition result. The collection is sorted by the OCR zone indices (OCRZoneIndex
property).
EN-CSDK-CSDKUG-20.2-20180129
47
By default, this collection is empty. After the Recognize method of the Document or Page object is called, it is
filled with the recognition result. The returned Characters can be filtered by zone index and cell number.
The Converter object provides properties and methods to customize the layout of the output files created by
the Document and Page objects’ ConvertResult method. The converter settings are organized into a tree-
structure, and they are available through the ConverterProperty object, which represent a setting node in the
tree.
There are three types of converters: text converters, image converters, and form converters. Text converters
create a (formatted or unformatted) text file from the recognition results. Image converters create image files
from the input images, so they do not require the input pages to be recognized. Form converters are used in
form data extraction.
There is a multitude of possibilities to set converter parameters. Use ConverterProperty to customize them.
To query them, use the Item method of the Converters collection. Converter names and parameter setting
possibilities are detailed in the RecAPI documentation under List of all Converter settings of RecAPI.
The Converters collection is a sorted set of output Converter objects. Using its properties, the Converters
collection enables retrieving information about the supported converters.
A converter can be 'cloned' using the CloneConverter method. It makes an exact copy of the source
converter and is useful to make customized converters for the same output format. The cloned converters can
later be deleted using the RemoveClonedConverter method if no longer needed. 'Factory' converters cannot
be deleted.
EN-CSDK-CSDKUG-20.2-20180129
48
5.4.4 - ConverterEnumValue / ConverterEnumValues
5.4.5 - ConverterProperty
This object represents a single converter setting. The converter settings are represented by a hierarchical tree
structure isolating the different setting groups, so that each tree node represents a converter setting which
might have an associated value (and/or might have children settings). To read or manipulate a setting that
connects to a particular ConverterProperty object, use Name, FullName, DisplayName, Type, Value and
EnumValues properties.
Note:
EnumValues returns a valid object only if the related setting is of type PROPERTY_ENUM and it can be used to
query the valid enum values the particular property supports. In order to access the children settings of the
object (if any), use the Count and the Item properties.
EN-CSDK-CSDKUG-20.2-20180129
49
5.4.6 - Document / Documents
The Document object represents an IPRO document which encapsulates the data and the parameters
required during OCR related procedures. To create a new document, invoke the Documents collection’s Add
method. To open an existing document, invoke the Open method. To save a document for later reference,
invoke the Save method. The Document object has numerous properties and settings. You can save or load all
settings by using the SaveSettings and LoadSettings methods.
Note:
The Save method also saves all document level settings to the document file automatically.
The Documents collection is a sorted set of Document objects, where each element represents a document
handled by the Engine. Through its properties, the Documents collection returns information about the currently
open IPRO documents.
EN-CSDK-CSDKUG-20.2-20180129
50
5.4.7 - Engine
The Engine object represents the main OCR Engine class which
serves many purposes such as scanning, image preprocessing,
recognition, text formatting and output.
This object and its functions are referred to as the 'Engine'.
The Engine object is the top of the object hierarchy and controls all
other objects in the object hierarchy. The integrating application must
always explicitly create an instance of the Engine object. When it is
created, the Engine object analyzes the configuration of available
sub-modules and performs initialization. The valid licensing of the
required modules at this time is vital, otherwise either the Engine
object creation fails or one or more modules become unavailable.
The Engine must be initialized with the Init method. All properties
and methods return an error code if initialization is improper.
5.4.8 - Image
EN-CSDK-CSDKUG-20.2-20180129
51
The Image object stores the page image (original) either scanned, loaded from image file or memory together
with the engine-managed additional, generated images (primary (pre-processed), OCR and thumbnail). The role
of this object is to facilitate access to the managed images, and also, to provide a basic operation set for image
manipulation. Note that a large image manipulation library is available through the ImageFile object.
The original image is the main image, acquired from some external image source. Image preprocessing and
image manipulation occurs on that image, resulting in a primary image. The thumbnail image is a smaller
version of the current image. The OCR image (black-and-white) is created by the first operation that requires it
(preprocessing, page-parsing, recognition). The OCR image is only available after the recognition.
Redaction is a special case for image handling. This operation writes back to primary, OCR and original images
(those stored in the program). Only the original image stored in file outside the program remains untouched. In
the case of scanning, no unredacted image is available. Therefore we strongly suggest that you apply redaction
to a copy.
The ImageFile object represents an image file in the file system. Use this object to get information on,
manipulate or convert image files using a wide set of image manipulation methods. Note that most image-
processing methods are available only for particular multi-page tiff images as documented in the descriptions
for the particular methods. To process other images using the available methods, save them in tiff format first,
perform the operations and convert them back to the original format.
The supported image resolution is in the range of 75-2400 DPI. When accessing bitmap pixel data, every image
stored is in bottom-up line order and the pixel order is BGR.
The ImageFiles collection contains the list of the available ImageFile objects. Using this collection, the
available images can be loaded, enumerated or closed. You can find details about the image file manipulation
and usage in the description of the ImageFile object in this document.
5.4.10 - ImageInfo
The ImageInfo object provides basic image information (size, resolution etc.) about the page image. Although
this creatable object has read/write properties, these properties cannot be used to change the properties of an
existing image or image file.
Images in IPRO are always retrieved in the following format:
EN-CSDK-CSDKUG-20.2-20180129
52
n byte order: BGR
n line order: bottom-up
n line padding: double word (4 bytes) aligned
The role of the Link object is to provide workflows with loading sources and saving targets that are not present
on the local computer. These links (file sources and destinations) include document management systems
(such as different versions of SharePoint, ODMA) and FTP locations.
The Links collection contains the list of the available Link objects.
The ModuleInfo object contains information about a specific Engine recognition module even if the particular
module is not available due to the lack of the appropriate licensing. Use the Version property to decide
whether the module is available or not. Use the InitCode property to determine the reason if the module is
unavailable.
The ModuleInfos collection is a sorted set of ModuleInfo objects. Each element in the collection represents
an Engine module. Using these objects you can retrieve information about the available Engine modules.
Some modules must always be distributed with the integrating application, since their existence is a
prerequisite of any Engine operation. Others, such as some recognition modules, the scanning module, etc.
must be distributed only if the integrating application requires their services. This flexibility allows the integrator
to scale the capability of the distribution file set for disk footprint sensitive applications. Using this collection
can be used to log diagnostic information to help solve problems or to provide users with runtime feedback
when an application is designed to optionally use a variable set of Engine modules.
EN-CSDK-CSDKUG-20.2-20180129
53
5.4.13 - MemoryBitmap / MemoryBitmaps
The MemoryBitmap object represents an image stored in the memory. This object manages bitmaps as raw
data. This object can be passed to the LoadBitmap method of the Document object. This allows the integrating
code to load an image which is stored in the memory into a particular document. All bitmaps stored by the IPRO
object model are bottom-up, BGR color order, and double-word aligned bitmaps.
The MemoryBitmaps collection is a sorted set of MemoryBitmap objects. Using this collection, bitmaps
stored in memory can be created and destroyed.
The OCRZone object contains information about a specific OCR zone in a page. The OCRZone object
provides access to the coordinates of an OCR zone, its content type, etc. All coordinates in this object refer to
the OCR image.
The OCRZones collection is a sorted set of OCRZone objects. The order of the OCRZone objects is the
same as the reading order of the recognized paragraphs.
EN-CSDK-CSDKUG-20.2-20180129
54
Note:
The reading order takes effect only when exporting with converters using the Formatted Text formatting level
(formerly Retain Fonts and Paragraphs mode).
The Page object represents a document page. In addition to a set of processing operations, you can use the
Page object to access zone, character, statistical and image objects. The UserZones collection maintains the
zone set available for modification and it provides the input zone set for the recognition. The OCRZones
collection is created by decomposition and recognition processes, the OCR recognized character results are
assigned to the OCR-zones.
After processing methods such as LocateZones and Recognize have run, the UserZone collection is
synchronized with the OCRZones collection. The OCRZone objects are read-only. Using the Image object,
you can access a set of image versions maintained by the engine (such as the original, the b/w and the
thumbnail images). By using the Characters collection you can access the whole recognized and optionally
filtered character set. The Statistics object provides details about the recognition processes.
The Pages collection is a sorted set of Page objects, where each element represents a page in the document.
Through its properties and methods, the Pages collection enables you to gather information about the
document pages.
EN-CSDK-CSDKUG-20.2-20180129
55
5.4.16 - RecognitionLanguage / RecognitionLanguages
The RecognitionLanguage object contains information about the particular recognition language.
The RecognitionLanguages collection returns the collection of available recognition languages that can be
switched on/off independently. The recognizable characters can be increased with additional characters by
using the LanguagePlus property, and can be narrowed by using the Filter property. By default, only the
English language is used for recognition (enabled).
The Recognize method of either the Document or the Page object uses this setting.
When the Asian OCR add-on is purchased, this Language collection includes Chinese (Traditional and
Simplified), Japanese and Korean.
The RemovedLine object represents a line, which was removed from the BW version of the original image.
Through this object, the position and the orientation of the line can be accessed.
The RemovedLines collection is a set of RemovedLine objects representing the lines that were removed
from the related BW image. The RemoveLines method of the Page object returns this collection.
EN-CSDK-CSDKUG-20.2-20180129
56
Scanner objects represent a physical scanner. The Name property uniquely identifies the scanner. Prior to
invoking scanner methods, or accessing scanner properties, the particular scanner must be initialized calling
the Init method. Depending on the scanner model, this may take several seconds. Each scanner manages
its scanning properties individually. To load or save a scanning profile using external files, invoke the
LoadSettings and SaveSettings methods. Using the Scanner object you can either scan images into image
files – using the ScanPages method – or you can pass the Scanner object to the Document object’s ScanImage
method to scan pages directly into a particular document.
The Scanners collection lists the set of available Scanner objects. Each element represents a physical
scanner. The scanner list is loaded from an .ini file. The .ini file can be altered using the Scanner Wizard.
To run the wizard, invoke the ScannerWizard method. Using the wizard you can add, remove and
parameterize the available scanners. By default, the ini file is called scanner.ini and stored in the current
user’s application data. The scanner.ini file can optionally be saved to the All Users application data folder, or
into the application binary folder. To change the ini file location, update the ConfigFileLocation property
accordingly. If the ConfigFileLocation property changes, the actual scanner list is destroyed, and the new
scanner.ini file is loaded. Use the SaveSettings and LoadSettings methods to save / restore scanner
parameters – like resolution or color mode – stored in the external setting file.
During scanning, the scanner drivers may show their own progress dialogs. To specify a parent window for
these dialog boxes, set the WindowHandle property of the Engine object accordingly. Providing a valid window
handle is highly recommended to avoid the situation when a window or message is displayed behind the main
application window. The WindowHandle property should be set before initializing the scanning subsystem. If
the parent window is subject to change after you initialized the scanning system, you need to re-init the
scanning for the new setting to take effect. Update the value of the ConfigFileLocation property to achieve
this.
Note:
Changing the ConfigFileLocation property also resets all scanner properties to their default values.
EN-CSDK-CSDKUG-20.2-20180129
57
5.4.19 - SearchText
The role of the SearchText object is to allow you to carry out parameterized text searches (such as finding
whole words only, searching with case matching, searching from the beginning or the end of the document
etc.); navigate through your results and process them using the text marking and redaction facilities.
5.4.20 - SettingManager
The SettingManager object allows you to manage the settings of the Engine and the Documents. Settings are
named values which control the behavior of different functions on the lower levels of the SDK. They are
organized in a tree-structure. The setting tree contains a large number of settings, but you should use the
SettingManager only to manipulate those that are documented in the RecAPI online help.
In a setting tree, every setting is attached to a node. (The nodes do not necessarily have associated setting
values. For example, some nodes might be created to act as the parent of a set of child nodes having
associated setting values.) Individual settings are unambiguously identified by their 'path' name, which is made
up by concatenating the names of the nodes from the root node down to the setting node. The node names are
separated by dots.
Several setting trees can co-exist at a time. Upon its creation, the Engine creates the first setting tree. All other
setting trees are created as copies of the current settings of the Engine. Each newly created Document
receives such a copy of the Engine's settings. This way the settings of the individual documents are
independent of each other and also from the settings of the Engine.
When a document is saved to an OPD file, the Document settings active at that time are also saved
automatically. However, you should explicitly save the Engine settings if needed.
EN-CSDK-CSDKUG-20.2-20180129
58
Scanner and Converter object settings present special cases. Although they do appear in setting trees, several
of their individual setting values may depend on others. Therefore it is recommended that you work with
Scanner and Converter object settings via these objects themselves, and not by utilizing the SettingManager.
Scanner and Converter objects can be queried only from the Engine. These objects modify the Engine settings.
For document-specific Scanner and Converter setting modification these objects provide some helper
methods. To let document-specific Scanner and Converter settings have an effect in your workflows, you must
set SP_EXP_USEENGINECONVERTERS and SP_EXP_USEENGINESSCANNERS workflow step parameters to false.
The setting manager supports the following setting types: integer, floating point, Boolean, string, integer array,
floating point array, Boolean array and enumerated. Saving and loading the entire setting tree or an arbitrary
sub-tree is also supported.
5.4.21 - SettingNode
The SettingNode object provides access to a particular node and its setting if it exists. You can use it to get or
set the value of a setting, retrieve information about a setting’s flags and the default value, and to enumerate
the child nodes.
59
5.4.23 - Statistics
The Statistics object provides statistical information (general, accuracy and timing information) about the
processing of the page.
If the page has not been recognized, all properties of the related Statistics object return zero (0). The Statistics
object does not reflect the time spent in the Progress or ProgressEx events fired by Document object.
60
The TableCell object represents a single cell in a table.
The TableCells collection is a sorted set of TableCell objects.
If the parent of this collection is a UserZone object, the content of the collection can be modified. If the parent of
this collection is an OCRZone object, the collection’s items are available for enumeration in read-only mode,
but they cannot be modified. The members of the collection are sorted by the top and left coordinates.
The UDItem object contains information about a specific User Dictionary item associated with a particular
UDSection.
The UDItems collection is a sorted list of the UDItem objects (string literals) that are assigned to a user
dictionary section. Through its properties, the UDItems collection enables you to retrieve information about the
underlying UDItem objects. The string literals contained by the collection are sorted alphabetically and followed
by the regular expressions.
5.4.26 - UDManager
The UDManager object is used for creating and maintaining user dictionaries. Note that only a single user
dictionary can be opened for maintenance at a time. This user dictionary is referred to as active.
Each user dictionary contains one or more UDSections and each UDSection contains a number of UDItems.
Any UDItems can be a literal string. Each valid dictionary must contain at least one UDSection and UDItem
object.
EN-CSDK-CSDKUG-20.2-20180129
61
User dictionaries are used with the Document object’s SetUserDictionary method. However, be sure that the
checking subsystem is enabled.
Note:
The checking subsystem can only use a single user dictionary, optionally with more than one section. A
particular section can be specified when setting a user dictionary for a document or a zone.
The UILanguage object contains information about a specific Visual Toolbox User Interface language.
The UILanguages collection is a sorted set of the available UILanguage objects. Each member item
represents an available Visual Toolbox User Interface language (currently English, French and German).
Through its properties, the UILanguages collection enables you to retrieve information about the available User
Interface languages. This property primarily controls the Visual Toolbox UI language, although it also sets the
IPRO related UI language for the ScannerWizard.
EN-CSDK-CSDKUG-20.2-20180129
62
5.4.29 - UserZone / UserZones
The UserZone object contains information about a particular user zone on the page. The UserZone object
provides access to the coordinates of a user zone, its content type, etc. All coordinates of this object refer to
the original image.
The UserZones collection is a sorted set of UserZone objects, where each element represents a user zone on
the related page. Through its properties, the UserZones collection enables you to access and manipulate the
user zone set which provides input for recognition.
After zone location or recognition, the OCRZones collection is created and the UserZones collection is
synchronized accordingly.
Note:
In processing methods that alter the user zone set, the collection is stored for later reference automatically to
provide a way to recall the original UserZones set using the RestoreUserZones method.
EN-CSDK-CSDKUG-20.2-20180129
63
5.4.30 - VerticalDictionary / Vertical Dictionaries
The VerticalDictionary object contains the name and the description of the particular vertical dictionary. Each
vertical dictionary can either be disabled or enabled if the parent of the containing VerticalDictionaries collection
is a Document object.
The Capture SDK supports the following vertical dictionary set:
n Dutch Legal Professional Dictionary
n Dutch Medical Professional Dictionary
n English Financial Professional Dictionary
n English Legal Professional Dictionary
n English Medical Professional Dictionary
n French Legal Professional Dictionary
n French Medical Professional Dictionary
n German Legal Professional Dictionary
n German Medical Professional Dictionary
The VerticalDictionaries collection is a sorted set of the available VerticalDictionary objects. This collection
can be accessed through the Engine and Document objects. Through the Engine object, you can only query the
available dictionary set and its properties. Through the Document object, you can enable or disable an arbitrary
combination of the available vertical (also referred to as professional) dictionaries.
EN-CSDK-CSDKUG-20.2-20180129
64
5.4.31 - WFDescInfo
The WFDescInfo object is provided by the WFHandler object. It is used to acquire various kinds of static
information about the current workflow (information that remains unchanged even while the workflow is
running).
5.4.32 - WFHandler
The WFHandler object contains a wide range of workflow handling related functionality. Its two main
purposes are
n running existing workflows created with the Workflow Assistant
n programmatically compiling and running workflows.
In either case, you can specify parameters for individual workflow steps. In addition to the traditional steps
(loading, scanning, recognizing, exporting, etc.) the current application version offers additional ones, such as
Form Data Extraction and Text Marking, including redaction.
To query dynamic workflow information (execution state) or static information (origin, friendly and full file name,
etc.), you can also use WFProcInfo and WFDescInfo provided by this object.
EN-CSDK-CSDKUG-20.2-20180129
65
5.4.33 - WFProcInfo
The WFProcInfo object is provided by the WFHandler object. It is used to acquire various kinds of dynamic
(changing) information about the currently running workflow.
EN-CSDK-CSDKUG-20.2-20180129
66
6 - Visual Components
6.1- Changes
With the introduction of the MediumWeight Visuals in SDK v18, you are likely to face the most comprehensive
set of changes in case you used the Visual Toolbox of earlier SDK versions. This chapter gives you an
overview of both legacy controls from v18 on and the new ones.
6.2- Introduction
This help system provides a description of the Visual Toolbox (also known as 'Visuals') as well as a recently
developed set of ActiveX controls named MediumWeightVisuals. These provide all the visual controls
necessary to create customized user interfaces for Windows applications benefiting from the services of the
IPRO interfaces. While IPRO provides invisible imaging, recognition and document management services,
these ActiveX controls focus on typical user interface elements requiring complex programming tasks to
display images, correct preprocessing and decomposition mistakes or view and modify recognition results. The
controls visualize the contents of the objects managed by IPRO (image, recognized text, and so forth). They
provide different levels of presentation, adjusted to the underlying object hierarchy. In addition to their basic
tasks, the controls work in harmony with IPRO and with each other on multiple multi-page documents.
The interfaces of the Visual Controls are available in English, French and German. See the IPRO topic on
"UILanguage / UILanguages" on page 61.
6.3- Overview
As stated above, these ActiveX controls can be divided into the following main groups:
n Visuals
n MediumWeightVisuals
Legacy visual controls work only with an in-process IPRO server, whereas MediumWeight Visuals enable the
integration of and out-process IPRO server as well.
To facilitate the proper interworking, a control (either legacy or MediumWeight) needs to be attached to the
relevant IPRO object (in practice, either a document or an engine), and it is ready to go. There are a few issues
to consider when attaching a control to an engine or a document:
n Controls providing document view (for example, Thumbnail and Details) can be attached only to a
Document object.
n Controls attachable to both engines and documents (for example, Setting view, Recognition
language view, or Dictionary view) provide information depending on what they are attached to.
Controls attached to an engine show all engine-specific information, while those attached to
documents show document-specific information. The information displayed can differ between the
engine-attached and document-attached version of the same control.
EN-CSDK-CSDKUG-20.2-20180129
67
The system-level information of IPRO is the session 0, stored as a template. Each document is provided a
session from the current document session and there is no inter-visibility among document sessions. The
sessions requested from the various engines can show values that differ from the document session values.
The default interfaces of the framework are simple, and are mostly not used. For both types of controls, the
main type of interface is the event interface. This interface has two types, both providing the same tasks: the
disp interface and the custom interface. The main differences between these are:
n Disp interface: usually denotes an ActiveX control. Its advantage is security; it is always called on a
UI thread, the client-side does not have to be thread-safe. Its disadvantage is the very slow execution.
n Custom interface: this type provides very quick action, but as the call does not necessarily arrive on a
UI thread, there is a slight possibility of the event becoming lost.
The disp interface is considered to be the default interface offered for objects.
All controls of the program implement a number of pre-defined interfaces, thus providing a unified user interface
for the various controls.
The actual visual appearance of the visual controls takes its defaults from the operating system.
6.3.1 - Visuals
This section lists the Visuals controls (dropped ones in italics), the still-available ones complete with their
default interfaces and CLSIDs.
n Character Set Control (CSC): dropped from v18.0. Its functionality is covered by the MediumWeight
Visual Control Character Bar.
n Converter Manager Control (CMC): dropped from v18.0. Its functionality is covered by the
MediumWeight Visual Control ConverterView.
n Document ManagerControl (DMC): dropped from v18.0. dropped. Its functionality is covered by the
MediumWeight Visual Control DetailView.
n Font Matching Control (FMC): supported in v18 and point releases as well with a change of CLSID.
l default interface: IFmc
l CLSID: {CD9FDAAF-5C7C-40CC-80F2-1487FF7D9EBD}
n Image View Control (IVC): supported in v18 and point releases as well with a change of CLSID.
l default interface: IIvc
l CLSID: {1E2420A3-7BA3-4E84-84CB-03AFBE689F96}
n Scanner Parameter Control (SPC): supported in v18 and point releases as well with a change of
CLSID.
l default interface: ISpc
l CLSID: {462EF4BE-787E-4ED1-BEE2-EF1CD37F4863}
n Text Editor Control (TEC): supported in v18 and point releases as well with a change of CLSID.
EN-CSDK-CSDKUG-20.2-20180129
68
l default interface: ITec
l CLSID: {219A1D06-3B8F-4EE1-BF15-C257A2CE623C}
n Thumbnail View Control (TVC): dropped from v18.0. Its functionality is covered by the
MediumWeight Visual Control ThumbnailView.
n WorkflowControl (WFC): supported in v18 and point releases as well with a change of CLSID.
l default interface: IWfc
l CLSID: {6C3DBC07-594F-4161-A9D4-D5F1400E42F7}
n Workflow Viewer Control (WFVC): supported in v18 and point releases as well with a change of
CLSID.
l default interface: IWfvc
l CLSID: {4FBD86A3-A56F-4302-88EC-3BC37BBCECA8}
69
l CLSID: {BB012969-EB2D-4777-922E-27F1F5D93DC8}
n SettingView:
l default interface: ISettingView
l CLSID: {AD3AFC3E-6BFE-41D4-A8A2-45E6AEA44500}
n ThumbnailView (former TVC):
l default interface: IThumbnailView
l CLSID: {9A9041B0-3938-467D-9A12-66FE06BD8D78}
n WFInfoView:
l default interface: IWFInfoView
l CLSID: {65C23F0A-2346-42B4-8CBA-68C650EFDDCF}
n WorkflowBar:
l default interface: IWorkflowBar
l CLSID: {26872619-DBE2-4abc-B982-5D072AED9677}
EN-CSDK-CSDKUG-20.2-20180129
70
7 - Index
3
3D deskew 34
A
Abbreviations 1
Accessing Help 5
Accuracy 59
Accuracy vs speed data 10
Activation steps 3
ActiveX Image Viewer Control 34
Alternatives for recognized characters 38
Anchors 36
Appending TXT outputs 40
Auto-zoning 34
B
BAR 37
BAR_AMP 37
Barcode Types 46
Barcodes 40
Batch Manager 40
Before installing 4
Binary output 40
C
Call-back functions 38
Cells in tables 37
Changes 66
Character Set Module 38
Character tips 38
Characters 46
Check boxes 35
EN-CSDK-CSDKUG-20.2-20180129
71
Checking module availability 9
Circle texts 35
Code Page Handling Module 38
Comb fields 35
Concurrent scanning processes 33
Confidence reporting 38-39
Converter objects 58
Converters 47
CSV output 39
Cutting book pages 34
D
Deadlock situations 43
Default speed-accuracy trade-off 10
Deskewing 34
Detection of lines and frames 34
Development Kit choices 1
DirectTXT Output Converter Module 30, 39
Distributing Applications 8
Distribution file set 9
Distribution log file 9
DOC 40
DocuDirect 40
Document-level processing 31, 40
Documentation 5
Documents 49
DOT 37
Dutch Vertical Dictionaries 38
Dynamic Linking of RecAPI 41
E
Electronic documentation 6
Empty forms 35
Engine 50
Engine combinations 10
EN-CSDK-CSDKUG-20.2-20180129
72
Engine settings 57
English Vertical Dictionaries 38
Error Handling Module 32
EULA i
Evaluation Kits 3
F
Fast parsing 31
Fast recognition output 39
Faster image file handling 33
Fastest recognition 10
Fillable fields 36
Filled form recognition 36
Filling method 37
Financial Dictionary 63
Fixed Volume licensing 3
Flavors of PDF 38
Flowing Page 41
Flowing text zones 35
Form converters 47
Form Data Extraction (FDE) 64
Form Recognition Module 35
Form templates 35-36
Form zones 35
Formatted page output 31, 40
Formatted Text 40
Frame and border detection 34
Framework .NET 5
French Vertical Dictionaries 39
FRX 37
FTP 52
G
General Operations Module 31
German Vertical Dictionaries 39
EN-CSDK-CSDKUG-20.2-20180129
73
Getting Help 5
Graphics zones 35
H
Help 5
HIMGFILE handle 33
Hint file for scanning 33
HNR 37
HyperThreading 31
I
Identifiers for Settings Collections 32
Ignore zones 36
Image-on-text PDF 39
Image-only PDF 38
Image Converters 47
Image despeckling 34
Image File Handling Module 32
Image Handling Module 33
Image pre-processing 34
Image resolution 51
ImageFiles 51
Insert recognized pages 40
Installation 5
Inversion 34
IPRO 43
IPRO Object Model 44
ITest 40
K
KernelAPI 30
KernelAPI Modules 31
KernelAPIS 30
Kit variants 1
kRecScanInit 33
EN-CSDK-CSDKUG-20.2-20180129
74
L
Language dictionaries 38
Language Module 38
Languages 61
Layout retention 40
Legacy parsing 31
Legal Dictionary 63
License agreement 5
License Handling Tool 3
Licensing the product 3
Line detection 34
Linking of RecAPI 41
Links 52
Logical Form Recognition 35
M
Manual zoning 34
Manual zoning for forms 36
MAT 37
Medical Dictionary 63
Memory space 34
MemoryBitmaps 53
Microsoft .NET 5
Modifying images 34
Modules - checking availability 9
Modules in KernelAPI 31
MOR 37
Most accurate recognition 10
MTX 37
Multi-core processors 31
Multi-language recognition 37
Multi-page document handling 40
Multi-page image file formats 33
Multiple scanning processes 33
EN-CSDK-CSDKUG-20.2-20180129
75
N
Node 32, 57
Non-setting nodes 32
Normal PDF 38
O
Object Model 44
OCR zones 34
OCRZones 53
ODMA 52
OEM Licenses 3-4
OmniForm 35
OMR 37
One-step functions 40
Online help 3, 6
OPD files 40, 57
Optimal recognition resolution 34
Overview 1
P
Page-level processing 31
Page operations 40
Pages 54
Parallel scanning processes 33
Parsing choices 31
Path 32
PDF 40
PDF output 39
PDF recognition 37
Performance comparison 10
Pixel order 51
Pizzabox shape 34
Plain Text 30, 40
PLUS2W 37
EN-CSDK-CSDKUG-20.2-20180129
76
PLUS3W 37
Predetermined paths 41
Preparing a distribution file set 8
Preparing for installation 4
Preprocessing of images 34
Processing filled forms 37
Professional dictionaries 38
Q
Queuing scanner calls 33
R
Readme files 6
RecAPI 30
RecAPI .NET support 31
RecAPI dynamically linked 41
RecAPI statically linked 41
RecAPIPlus 31, 40
RecAPIPlusS 31
RECERR 32
Recognition Data Handling Module 38
Recognition Modules 9, 37, 52
Recognition of filled forms 36
RecognitionLanguages 55
Recognized character alternatives 38
Release Notes 4
RemovedLines 55
RER 37
Resolution 34
Resolution enhancement 34
Root node 57
Rotation 34
RTF 40
Running workflows 64
EN-CSDK-CSDKUG-20.2-20180129
77
S
Scanner Setup Wizard 33
Scanners 56
Scanning 9
Scanning Module 33
SearchText 57
SET tools 34
Setting node 57
Setting tree 57
Setting types 58
SettingManager 57
Settings Collections 32
Settings Manager Module 32
Settings values 32
SharePoint 52
Single-page images 33
Software License Agreement i, 9
Speed vs accuracy data 10
Spell Checking Module 38
Spelling languages 58
Spreadsheet 41
Standard parsing 31
Static libraries 41
Statistics 59
Steps for installation 5
Suggestions for recognized words 38
Superior parsing 31
Suspicious recognition results 39
System Requirements 12
T
Table detection 34
Table Recognition Module 37
Table zones 35
EN-CSDK-CSDKUG-20.2-20180129
78
TableCells 59
Templates for zoning 34
Temporary Fixed Volume Licenses 9
Testing Applications 9
Text Converters 47
Text Marking 64
Text output 39
Thread safe scanning 33
Time-limited licenses 3
Timing information 59
Trade-off settings 10
True Page 41
Types of settings 32
U
User-written callback functions 38
User Interface language 61
User zones 34, 62
V
Variants of kit 1
Vertical Dictionaries 38, 63
Voting engines 37
W
WFDescInfo 64
WFHandler 64
Wizard for Scanning 33
Word accuracy values 10
Word suggestions 38
WordML 40
WordPerfect 40
Workflows 40, 64
EN-CSDK-CSDKUG-20.2-20180129
79
X
XLS 40
XML output 39
XML output for form processing 36
Z
Zone file 34
Zone Handling Module 34
Zone types 35
Zones 34, 53, 62
Zoning for forms handling 36
www.nuance.com
Copyright © 2017 Nuance Communications, Inc. All rights reserved. Subject to change without prior notice. Nuance,
the Nuance logo, and OmniPage are trademarks or registered trademarks of Nuance Communications Inc. in the
United States and/or other countries. Microsoft and Windows are registered trademarks and/or trademarks of
Microsoft Corporation in the United States and other countries. All other company names or product names may be
trademarks of their respective owners. This program is protected by US and International copyright laws.
EN-CSDK-CSDKUG-20.2-20180129
80
8 - Appendix - Sample Barcode Images
8.1- Existing 2D types newly supported by BAR
8.1.1 - BAR_QR: QR Code (Quick Response Code)
8.1.2 - BAR_DMATRIX
8.1.3 - BAR_A2of5
8.1.4 - BAR_2of5
EN-CSDK-CSDKUG-20.2-20180129
81
8.1.5 - BAR_C93
8.1.6 - BAR_C39_NSS
8.1.7 - BAR_MAT25
EN-CSDK-CSDKUG-20.2-20180129
82
8.1.8 - BAR_PATCH
8.1.9 - BAR_PLANET
EN-CSDK-CSDKUG-20.2-20180129
83
8.2- New 1D barcode types supported by BAR only
8.2.1 - BAR_CODE11
8.2.2 - BAR_ITALIAN25
8.2.3 - BAR_MSI
8.2.4 - BAR_BOOKLAND
EN-CSDK-CSDKUG-20.2-20180129
84
8.2.5 - BAR_ITF14
8.2.6 - BAR_EAN14
8.2.7 - BAR_SSCC18
8.2.8 - BAR_DATABAR_LIMITED
EN-CSDK-CSDKUG-20.2-20180129
85
8.2.9 - BAR_DATABAR_EXPANDED
8.2.10 - BAR_4STATE_ONECODE
8.2.11 - BAR_4STATE_AUSTRALIA
EN-CSDK-CSDKUG-20.2-20180129
86
8.2.12 - BAR_4STATE States and Values
87
8.3.2 - BAR_AZTEC
8.3.3 - BAR_C32