Barcode Xpress User Assistance Dashboard

Accusoft.BarcodeXpress10.ActiveX
Barcode Xpress User Assistance Dashboard

Welcome

  • Overview of Barcode Xpress
  • What is Barcode Xpress

Getting Started

  • Operating Requirements & Installation
    • Operating Requirements
    • Verify You're Using the Latest Service Pack
    • Installing on a Development Machine
    • Upgrading from Barcode Xpress 8 to Barcode Xpress 9
    • Barcode Xpress Samples
  • Licensing & Deployment
    • Licensing
    • Distributing Barcode Xpress
    • Software License Agreement
    • Accusoft Corporation Copyrights & Trademarks

Developer's Guide

  • User Guide

    • Concepts

      • Barcode Specifications
      • Checksums
      • Supported Barcode Types
      • Glossary
    • How To
      • Recognize a Barcode
      • Access Results
      • Create a Barcode
      • Debug Your Application
    • API Reference Guide
      • AccusoftBarcodeXpress10 ActiveX DLL

Additional Resources

  • Online Demo & Video Tutorial
  • White papers & Case Studies
  • FAQs, Barcode Xpress FAQs
  • Support Overview
  • Support Plans/Agreement

Provide Feedback

  • Email us
  • Take our survey

Send Feedback


Barcode Xpress 10 for ActiveX - User Guide

Accusoft.BarcodeXpress10.ActiveX
Barcode Xpress 10 for ActiveX - User Guide

Barcode Xpress online help includes:

  • Introduction
  • Getting Started
  • Licensing
  • Distributing Applications and Deployment
  • Concepts
  • How To


Introduction

Accusoft.BarcodeXpress10.ActiveX
Introduction
Barcode Xpress 10 for ActiveX - User Guide > Introduction

The Introduction section provides information on:

  • What is Barcode Xpress?
  • Getting Support
  • Accusoft Corporation Copyrights Trademarks
  • The Barcode Xpress Team


What is Barcode Xpress?

Accusoft.BarcodeXpress10.ActiveX
What is Barcode Xpress?
Barcode Xpress 10 for ActiveX - User Guide > Introduction > What is Barcode Xpress?

Barcode Xpress™ is a powerful control which reads most commonly used 1D barcodes, detecting them anywhere on the page, in any orientation. It also writes most 1D barcodes and some 2D barcodes.

Barcode Xpress ships with ImagXpress which provides world class image cleanup capability for use with Barcode Xpress. Configurable speed settings are available to suit various application and budget requirements.

New Features in Version 10.0

  • Allows setting a minimum size that barcodes must meet to be returned by the Analyze method by using the Reader.MinimumBarcodeSize parameter.
  • Tracks the internal states of the QR Code as it is being read at any point in the output stream (e.g., Kanji, Numeric, etc).

Primary Features

  • Detect, read, and write 1D and 2D barcodes
  • Recognize barcodes located anywhere on a page
  • Report confidence values for detected barcodes
  • Provides image input, output, and handling by the included ImagXpress component
  • ImagXpress provides pre-process functionality for image cleanup and modification prior to analysis

Supported Barcode Types

For the list of supported barcodes, please refer the table in Supported Barcode Types.

Barcode Xpress Editions

BarcodeXpress is offered in four editions, 1D Standard, 1D Professional, 1D/2D Standard, and 1D/2D Professional. BarcodeXpress 1D/2D Professional is the default edition which has the maximum functionality available.

  • Standard Editions are for deploying a moderate speed scanning solution, with up to a few barcodes per page.
    • 1D Standard – It reads and writes 1D barcodes, including Postal Code, at a speed limit of 40 pages per minute.
    • 1D/2D Standard – It includes the 1D Standard edition capabilities, with reading of all 2D barcodes (PDF417, Data Matrix, QR code, and Aztec), along with writing of some 2D barcodes (PDF417 and Data Matrix). The recognition rate is 40 pages per minute.
  • Professional Editions comprise the unlimited speed barcode engines. They are for high-end, high-volume imaging applications where speed is critical for the success of the application. They support all reading speeds, allowing integrators to sell various speed and price options. They read as fast as the processor allows.
    • 1D Professional – It reads and writes 1D barcodes, including Postal Code, with unlimited processing speed.
    • 1D/2D Professional – The 1D/2D Standard edition capabilities with unlimited processing speed.

Caution: When using trial (unpaid) licensing, the words " UNLICENSED accusoft.com " will appear in the middle of every DataMatrix and PDF417 barcode created, taking up 25 bytes of space including a space before and after. When testing the contents of generated barcodes, be aware of the extra space requirements.

Additional Accusoft Components in Barcode Xpress

  • ImagXpress™ for image import from various formats and advanced image enhancement and clean up.
  • TwainPRO™ to acquire images from TWAIN devices.
  • ISIS® Xpress™ supports ISIS image acquisition. License sold separately.
Barcode Xpress requires 1, 8, or 24-bit images. Conversion from other formats is also available by using the included ImagXpress ColorDepth method or other methods of the included ImagXpress component.

For information on how to register and license all your Accusoft components, see Licensing.

See Also

Licensing

Software License Agreement


Getting Support

Accusoft.BarcodeXpress10.ActiveX
Getting Support
Barcode Xpress 10 for ActiveX - User Guide > Introduction > Getting Support
For information about Accusoft Support, please refer to the Software Support and Maintenance Policy on the Accusoft web site or call Accusoft at 813-875-7575.
See Also
Software License Agreement


Accusoft Corporation Copyrights Trademarks

Accusoft.BarcodeXpress10.ActiveX
Accusoft Corporation Copyrights Trademarks
Barcode Xpress 10 for ActiveX - User Guide > Introduction > Accusoft Corporation Copyrights Trademarks

©2014 Accusoft Corporation. All rights reserved.

Information in this document is subject to change without notice. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Accusoft® Corporation.

This manual and the software described in it are both products of the USA.

Accusoft Corporation
4001 North Riverside Drive
Tampa, FL 33603
Sales: 813-875-7575
www.accusoft.com

Accusoft Trademarks

The following are trademarks (™) or registered marks (®) of Accusoft Corporation:

  • Accusoft®
  • Accusoft Logo™
  • Accusoft Pegasus Logo™
  • Adeptol®
  • AIMTools™
  • Barcode Xpress™
  • Accusoft® Barcode Scanner™
  • Barcode Xpress Mobile™
  • CapturePro™
  • Digital Mark Recognition® (DMR)
  • FolderBots™
  • FormAssist™
  • FormDirector™
  • FormFix™
  • FormSuite™
  • ImageGear® for .NET
  • ImageGear® for .NET Compact Framework
  • ImageGear® for Silverlight
  • ImageGear® for Java
  • ImageGear® Medical
  • ImageGear® Professional
  • ImageGear®
  • ImageTransport MD™
  • ImagXpress®
  • ISIS® Xpress™
    • ISIS is a registered trademark of EMC Corporation
    • ISIS Xpress is a trademark of Accusoft Corporation
  • MICR Xpress™
  • NetVue™
  • NotateXpress™
  • PDF Xpress™
  • Pegasus®
  • PICTools™
  • PICTools™ Document
  • PICTools™ Fingerprint
  • PICTools™ Medical
  • PICTools™ Photo
  • PICVideo™ M-JPEG Codec
  • PrintPRO™
  • Prizm®
  • Prizm® Content Connect™
  • Prizm® Content Connect™ for SharePoint
  • Prizm® Content Connect™ for Documentum
  • Prizm® Document Converter™
  • Prizm® Viewer™
  • Prizm® ActiveX Viewer™
  • Prizm® Cloud™
  • Prizm® Share™
  • Prizm® Image™
  • Prizm® Capture™
  • ScanFix® Xpress™
  • SmartZone™
  • The JPEG Wizard™
  • ThinPic™
  • ThumbnailXpress™
  • TwainPRO™
  • USB Scanner™
  • USB Scanner SDK™

Accusoft and/or its agents use these marks and brand names in connection with its goods and/or services, in the United States and other countries.

Microsoft, Internet Explorer, Microsoft.NET, Silverlight, Visual Basic, Visual Studio, and Visual Studio.NET are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Itanium is a registered trademark of Intel Corporation in the United States and other countries.

All other product and brand names are the property of their respective owners.

Accusoft Patents

Barcode Xpress utilizes technology owned by Accusoft Corporation that is protected by U.S. Patents 8,351,699; 8,634,651 and U.S. Patents Pending.


The Barcode Xpress Team

Accusoft.BarcodeXpress10.ActiveX
The Barcode Xpress Team
Barcode Xpress 10 for ActiveX - User Guide > Introduction > The Barcode Xpress Team

The following individuals contributed to the development and release of Barcode Xpress:

  • Michael Archambault, Support Engineer
  • Joe Carioti, Software Engineer
  • Louis Elton, Release Engineer
  • Alexander Gluschenko, Software Engineer in Test
  • Ed Krajcik, Sr. Software Engineer
  • Vatsal Patel, Software Development Manager
  • John Reynolds, Software Engineer
  • Rachel Samuel, Technical Writer
  • Tom Setzer, Director of Recognition & Native Groups
  • Jody Shumaker, Software Configuration Architect
  • Sylvia Traxler, Quality Assurance Lead

There were two other team members who were integral to our success, and who opted not to be listed.


Getting Started

Accusoft.BarcodeXpress10.ActiveX
Getting Started
Barcode Xpress 10 for ActiveX - User Guide > Getting Started

The Getting Started section provides information on:

  • Operating Requirements
  • Using Accusoft 64-bit ActiveX Components
  • Installing on a Development Machine
  • Importing Barcode Xpress as a COM Object
  • Upgrading from Barcode Xpress 8 to Barcode Xpress 10
  • Upgrading Runtime Licensing
  • Barcode Xpress Samples


Operating Requirements

Accusoft.BarcodeXpress10.ActiveX
Operating Requirements
Barcode Xpress 10 for ActiveX - User Guide > Getting Started > Operating Requirements

Operating Systems

Barcode Xpress runs on 32-bit or 64-bit Microsoft Windows operating systems:

  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows Server 2010
  • Windows Server 2008
  • Windows Server 2008 R2
Although it may run, it is not supported on previous Windows versions (for example, Windows 95 and Windows 98).

Threading

Accusoft considers thread-safe to be when an application using this component can use multiple controls running in the same process, where they don't interfere with each other. The thread creating the control owns the control and is the only thread that can interact with it.

Development Environments

  • Microsoft Visual Basic 6
  • Microsoft Visual C++ 6 or higher
  • Any other development environment that supports ActiveX/COM (Currently supported Microsoft development platforms only.)
See Also
Getting Support and Samples


Using Accusoft 64-bit ActiveX Components

Accusoft.BarcodeXpress10.ActiveX
Using Accusoft 64-bit ActiveX Components
Barcode Xpress 10 for ActiveX - User Guide > Getting Started > Using Accusoft 64-bit ActiveX Components

Accusoft 64-bit ActiveX components are built for maximum compatibility with our 32-bit ActiveX counterparts, providing the customer ease of upgrading an existing 32-bit application. The primary development platforms that we tested are Visual Studio C++, VBScript, JavaScript, C#, and VB.Net.

Upon inspection of these controls, you will notice that filenames will end in ActiveX for traditional 32-bit ActiveX controls or end in ActiveX64 for newer 64-bit ActiveX controls. If you use a tool such as OLEView, you will notice that when the control is registered they share the same GUID which allows the operating system ease of automatic selection.

Visual Studio is still a 32-bit development environment. The Accusoft installer will automatically place the 32-bit versions of the ActiveX in the toolbox. Since the components share the same interface and the same GUID, you can use all the ease of the Visual Studio development environment and still have all the power of 64-bit under the hood.

C++

When developing a C++ application you can #import in the progid, and compile targeting either Win64 or Win32. While progid is the recommended approach, if you #import by filename, we suggest you use the Sysnative redirector instead of the System32 directory as Visual Studio may get confused.

When creating a C++ dialog application, you can “Insert ActiveX Control…” onto the dialog. You will be presented with a dialog showing all the registered 32-bit controls. Select the desired ActiveX from the dialog. The second step of “Add Variable…” will automatically create accusoftcontrol1.h and accusoftcontrol1.cpp files that are compatible in both Win32 and Win64. The compiler will automatically use the correct version of the ActiveX based on the targeted platform.

Scripting

When using a scripting environment such as VBScript and JavaScript, the ActiveX controls will be able to seamlessly run under both Internet Explorer 32-bit and Internet Explorer 64-bit. Just code your HTML as you always have. Register both ActiveX and ActiveX64 on the target machine. You will be able to run under either the 32-bit or 64-bit version of Internet Explorer.

.Net

When creating a .Net AnyCPU application, you can import the ActiveX controls and have the application automatically switch if you are on a 32 or 64-bit machine. Just drag and drop the ActiveX control on your form as normal. Make sure the application is set for AnyCPU. Register both ActiveX and ActiveX64 on the target machine. The application will run as native code on any 32-bit or 64-bit machine (except Itanium).

If your application will only run on 64-bit machines, you can set the application to target x64, and only distribute the ActiveX64.

Handles

All handles are treated as 32-bit values. This creates full compatibility between all Accusoft controls, freeing the developer from worrying about what bit depth they are running in. If you use a third party control that has 64-bit handles, it is mandatory that you use the Microsoft provided LongToHandle and HandleToLong macros.


Installing on a Development Machine

Accusoft.BarcodeXpress10.ActiveX
Installing on a Development Machine
Barcode Xpress 10 for ActiveX - User Guide > Getting Started > Installing on a Development Machine

To Install the Barcode Xpress Component

Run the downloaded setup program which installs the development kit on your development machine.

The downloaded development kit includes code samples for supported platforms. Samples are available through the Start|Programs|Accusoft|BarcodeXpress v10.0 menu.

By default, this will register trial licensing which allows you to develop applications but not to distribute them. The trial license allows testing of all the functions and features.

Please see Distributing Barcode Xpress to understand the limits and details to convert licensing editions.
In order to distribute your finished application you must purchase and install a fully paid license from Accusoft. The paid licenses override trial licenses.

To Use Barcode Xpress Help Files

Stand-alone Help file "Accusoft.BarcodeXpress10.ActiveX.chm"

Access the Barcode Xpress stand-alone help through the Windows Start menu: Start | Programs | Accusoft | BarcodeXpress v10.0

The stand-alone file is created with MS Help system version 1. To view stand-alone help files, you must have:

  • Windows 2000 or higher (to view the file via the Windows HTML Help Viewer)
  • Internet Explorer 6.0 or higher
  • MS HTML Help Viewer


Importing Barcode Xpress as a COM Object

Accusoft.BarcodeXpress10.ActiveX
Importing Barcode Xpress as a COM Object
Barcode Xpress 10 for ActiveX - User Guide > Getting Started > Importing Barcode Xpress as a COM Object

Barcode Xpress can be used as an ActiveX control in development environments that provide container support like Visual Basic or Visual C++. In this case, the BarcodeXpress control is placed on a form or dialog box.

You can also import BarcodeXpress as a COM object in development environments like Visual C++. In this case, BarcodeXpress is not restricted to a dialog box and it does not require container support. The following discussion assumes that your development environment is Visual C++.

Starting with version 5 of Visual C++, Microsoft has provided support for a new #import compiler directive that enables developers to import components directly as native COM objects, by-passing the ActiveX trappings. The following is a quote from a brief section of the Fourth Edition of Inside Visual C++ (Microsoft Press): "The #import directive is the future of COM programming. With each new version of Visual C++, you’ll see COM features moving into the compiler…"

How to use Barcode Xpress as an Imported COM Object in Visual C++.

References made to files in the Visual C++ sample, ReadBarcodeFromDIB, and pertinent statements are shown in boldface.

1. #importing a control into Visual C++

Importing a control via the #import directive is a simple process. The #import directive line can be added to the Stdafx.h file to provide the appropriate functionality to all source files in the project. The following example shows the #import directive used in the Stdafx.h file from the ReadBarcodeFromDIB project:

C++ ReadBarcodeFromDIB Sample Project
Copy Code
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently

#if !defined(AFX_STDAFX_H__73AF9569_D12A_49D1_82D7_9662053EE69A__INCLUDED_)
#define AFX_STDAFX_H__73AF9569_D12A_49D1_82D7_9662053EE69A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers

#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

#import "Accusoft.ImagXpress12.ActiveX.dll"
#import "Accusoft.BarcodeXpress10.ActiveX.dll"
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__73AF9569_D12A_49D1_82D7_9662053EE69A__INCLUDED_)

The #import directive simply points to the BarcodeXpress control. When the BarcodeXpress control is imported with the #import directive, the compiler produces 2 files – a .tli and a .tlh file – that together create the necessary COM wrapper for the control’s properties and methods. Since the directive is in your stdafx.h file, the wrappers are immediately available to your other modules. The wrapper code defines COM smart pointers to your .IDL-defined interfaces. To use this COM object, you simply create an instance of the interface you want and then call methods directly by using this instance pointer.

2. Define a pointer to the COM object

After the #import directive is added, a pointer to the BarcodeXpress COM object must be defined. In the ReadBarcodeFromDIB project, the pointer is called and it is implemented in the ReadBarcodeFromDIBDlg.h file as follows:

C++ example to define a pointer to the COM object
Copy Code
using namespace AccusoftBarcodeXpress10;
#include "..\Include\BarcodeXpress10_Events.h"
...
class CReadBarcodeFromDIBDlg : public CDialog
{
private:
...
//ImagXpress pointers
CImagXpress*        m_ppCImagXpress;
IImagXpressPtr       m_pImagXpress;

CBarcodeXpress*    m_ppIBarcodeXpress;
IBarcodeXpressPtr   m_pBarcodeXpress;
...

3. Initialize COM

The COM library must be initialized before COM functions can be called and it must be closed before the program exits. This is illustrated in the ReadBarcodeFromDIB.cpp file as follows:

C++ example to initialize and close COM library
Copy Code
/////////////////////////////////////////////////////////////////////////////
// CReadBarcodeFromDIBApp initialization
BOOL CReadBarcodeFromDIBApp::InitInstance()
{
// Initialize the COM library on the current apartment and identify
// the currency model as single-thread apartment (STA). Applications
// must initialize the COM
// library before they can call COM library functions other than
// CoGetMalloc and memory allocation functions.
HRESULT hRes = CoInitialize(NULL);
AfxEnableControlContainer();

// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.

#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

CReadBarcodeFromDIBDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}

// Closes the COM library on the current apartment,
// unloads all DLLs loaded by apartment,
// frees any other resources that the apartment maintains, and
// forces all RPC connections on the apartment to close.
CoUninitialize();

// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}

4. Create the BarcodeXpress COM Object

To use BarcodeXpress, an instance of the BarcodeXpress COM object must be created. After the object is created, the object’s properties and methods can be used to create your scanning application. In the ReadBarcodeFromDIB project, the COM object is created in the ReadBarcodeFromDIBDlg.cpp file as follows:

Before you distribute applications that use the BarcodeXpress COM object, you need to edit the BarcodeXpress10_Open.cpp file and change the values passed to SetSolutionName, SetSolutionKey, and (if applicable) SetOEMLicenseKey. Obtain distribution codes from Accusoft.

Example to create the BarcodeXpress object
Copy Code
/////////////////////////////////////////////////////////////////////////////
// CReadBarcodeFromDIBDlg message handlers
BOOL CReadBarcodeFromDIBDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here
CWnd* pControl = NULL;
pControl = GetDlgItem(Description);
if (pControl)
{
pControl->SetWindowText(lpctstrDescription);
}

CRect oIXArea;
oIXArea.left = 25;
oIXArea.top = 215;
oIXArea.right = 725;
oIXArea.bottom = 636;

// Create an ImagXpress Object
m_ppCImagXpress = new CImagXpress(this, 1, (long) m_hWnd,
oIXArea.left, oIXArea.top, oIXArea.Width(), oIXArea.Height());
m_pImagXpress = m_ppCImagXpress->pImagXpress;
m_pImagXpress->PutCtlVisible(true);
m_pImagXpress->AutoSize = ISIZE_BestFit;
m_pImagXpress->ScrollBars = SB_Both;
m_pImagXpress->MenuSetEnabled(Menu_Context,TOOL_None, true);

// **Initialize Barcode. You must call BC_Open before
// **creating the first BarcodeXpress COM object. You cannot distribute applications using
// **BarcodeXpress COM objects without valid unlock codes.
// Create a BarcodeXpress class object. The BarcodeXpress
// class object automatically creates a Barcode Xpress
// COM object.
m_ppIBarcodeXpress = new CBarcodeXpress(this, 1);

// The SetSolutionName, SetSolutionKey and possibly the SetOEMLicenseKey method must be
// called to distribute the runtime.  Note that the SolutionName, SolutionKey and
// OEMLicenseKey values shown below are only examples.
//
//m_pBarcodeXpress->SetSolutionName("YourSolutionName");
//m_pBarcodeXpress->SetSolutionKey(12345, 12345, 12345, 12345);
//m_pBarcodeXpress->SetOEMLicenseKey("1.0.AStringForOEMLicensingContactAccusoftSalesForMoreInformation...");
//
//m_pImagXpress->SetSolutionName("YourSolutionName");
//m_pImagXpress->SetSolutionKey(12345, 12345, 12345, 12345);
//m_pImagXpress->SetOEMLicenseKey("1.0.AStringForOEMLicensingContactAccusoftSalesForMoreInformation...");

// Get the pointer to the created BarcodeXpress Barcode COM object.
// This is the pointer that you will use to access BarcodeXpress
// Barcode properties and methods.
m_pBarcodeXpress = m_ppIBarcodeXpress->pBarcodeXpress;

// Close the BarcodeXpress Barcode initialization.
// You must call this AFTER creating the first BarcodeXpress Barcode
// COM object

m_1D.SetCheck(BST_CHECKED);
m_selection = 0;

m_pImagXpress->FileName = "..\\..\\..\\..\\..\\..\\Common\\Images\\Barcode All Supported Types.tif";

return TRUE; // return TRUE unless you set the focus to a control
}

The arguments for the CBarcodeXpress constructor are ignored as the BarcodeXpress control does not implement any user interface interaction mechanics.

5. Use the BarcodeXpress COM Object to Set Properties and Call Methods

After an instance of the BarcodeXpress COM object is created, the object can be used to set BarcodeXpress properties and call BarcodeXpress methods. In the ReadBarcodeFromDIB project, this is illustrated in the OnDetectButton function shown below. This function is called when the user clicks the Recognized Barcode button.

C++ example to set BarcodeXpress properties and call methods
Copy Code
void CReadBarcodeFromDIBDlg::OnDetectButton()
{
// TODO: Add your control notification handler code here
// Set barcode classification type based on selected radio button
switch(m_selection)
{
case 0:
{
barcodetype = 0; //1D
break;
}
case 1:
{
barcodetype = 524288; //Patch
break;
}
case 2:
{
barcodetype = 0x4000000; //OneCode
break;
}
case 3:
{
barcodetype = 2097152; //PDF
break;
}
case 4:
{
barcodetype = 4194304; //DataMatrix
break;
}
case 5:
{
barcodetype = 0x8000000; //Royal Post
break;
}
case 6:
{
barcodetype = 1048576; //Post net
break;
}
case 7:
{
barcodetype = 0x2000000; //QR
break;
}
case 8:
{
barcodetype = 0x10000000; //Aus
break;
}
}

m_pBarcodeXpress->BarcodeType = barcodetype;

m_pBarcodeXpress->ImageSource = BC_ImageSourceDIB;
m_pBarcodeXpress->hDIB = m_pImagXpress->CopyDIB();
m_pBarcodeXpress->AnalyzeBC(0,0,0,0);
int numBC = m_pBarcodeXpress->NumBarcodes;
CString bcName;
CString bcResult;
CString result;
CString strBarcodeInformation;

if ((m_pBarcodeXpress->SSError == 0) & (m_pBarcodeXpress->NumBarcodes > 0))
{
int i;
for (i = 0 ; i < numBC ; i++)
{
m_pBarcodeXpress->GetBarcode(i);
bcName = (BSTR) m_pBarcodeXpress->BarcodeCodeName;
bcResult = (BSTR) m_pBarcodeXpress->BarcodeResult;
strBarcodeInformation.FormatMessage(szBarcodeInfoFormat, i, bcResult, bcName);
result += strBarcodeInformation;
}
MessageBox(result,"Barcode Result", MB_OK);
}
else
{
if (m_pBarcodeXpress->SSError != 0)
{
MessageBox("Error #" + m_pBarcodeXpress->SSError,"Error",MB_OK);
}
else
{
MessageBox("No barcodes found","Barcode Result", MB_OK);
}
}
//Must Free the DIB passed into the Analyze method to avoid memory issues
GlobalFree((HGLOBAL)m_pBarcodeXpress->hDIB);
}

6. Delete the BarcodeXpress COM Object

The BarcodeXpress COM object must be deleted when it is no longer needed. The object is usually deleted before the application exits. In the ReadBarcodeFromDIB project, the COM object is deleted as follows:

C++ example to delete the COM object
Copy Code
BOOL CReadBarcodeFromDIBDlg::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
CDialog::OnDestroy();
if (m_pImagXpress)
{
m_pImagXpress = NULL;
if (m_ppCImagXpress)
{
delete m_ppCImagXpress;
}
}
if (m_pBarcodeXpress)
{
m_pBarcodeXpress = NULL;
if (m_ppIBarcodeXpress)
{
delete m_ppIBarcodeXpress;
}
}
return CDialog::DestroyWindow();
}


Upgrading from Barcode Xpress 8 to Barcode Xpress 10

Accusoft.BarcodeXpress10.ActiveX
Upgrading from Barcode Xpress 8 to Barcode Xpress 10
Barcode Xpress 10 for ActiveX - User Guide > Getting Started > Upgrading from Barcode Xpress 8 to Barcode Xpress 10

This section describes how to upgrade from Barcode Xpress 8 to Barcode Xpress 10. While generally you'll be able to replace Barcode Xpress 8 with Barcode Xpress 10, there are a few important changes you may need to consider. This section provides information about those changes.

Changes and New Properties/Methods

To replace Barcode Xpress V8 with V10, you need to make some code changes as .described below.

Required Changes

DLL Name, Library Name, GUID, and ProgID

DLL Name

The DLL name must be changed to reflect the new version.

Change from:

Accusoft.BarcodeXpress8.ActiveX.dll

Accusoft.BarcodeXpress8.ActiveX64.dll (64-bit version of the control)

Change to:

Accusoft.BarcodeXpress10.ActiveX.dll

Accusoft.BarcodeXpress10.ActiveX64.dll (64-bit version of the control)

Library Name

Change from:

AccusoftBarcodeXpress8

Change to:

AccusoftBarcodeXpress10

GUID

Change from:

{C05DE677-0650-45F6-9D8A-AF5553606816}

Change to:

{598F38D2-B505-42AB-B967-B25510D90D13}

ProgId

Change from:

Accusoft.BarcodeXpress.8

Change to:

Accusoft.BarcodeXpress.10

If you are upgrading from Barcode Xpress v7 or earlier, please refer to Upgrading Runtime Licensing for important information.


Upgrading Runtime Licensing

Accusoft.BarcodeXpress10.ActiveX
Upgrading Runtime Licensing
Barcode Xpress 10 for ActiveX - User Guide > Getting Started > Upgrading Runtime Licensing

This section describes how to upgrade to Accusoft’s new Runtime Licensing.

Prior to Barcode Xpress 8, runtime licensing was accomplished using the UnlockRuntime method.

In Barcode Xpress 8 and later, the default licensing model is Automatically Reported Runtime Licensing. However, based on your contracted usage of this software, you may be eligible for Manually Reported Runtime Licensing. Your Accusoft Sales Representative (sales@accusoft.com) can help you determine which model is appropriate.

Refer to the following sections for information about upgrading to the new Runtime Licensing models:

  • Changing to the Automatically Reported Runtime Licensing
  • Changing to the Manually Reported Runtime Licensing

Changing to the Automatically Reported Runtime Licensing

Automatically Reported Runtime Licensing requires a license to be installed on the end-user's machine. See the Licensing section for more information.

In your Barcode Xpress 7 codebase, find any existing calls to the UnlockRuntime or UnlockWeb method.

C++
Copy Code
 barcodeXpress1->UnlockRuntime(12345,12345,12345,12345);
VB6
Copy Code
 BarcodeXpress1.UnlockRuntime 12345,12345,12345,12345
JavaScript
Copy Code
BarcodeXpress1.UnlockWeb("ServerLicenseString…");

In your Barcode Xpress 10 codebase, replace the UnlockRuntime or UnlockWeb method with calls to the SetSolutionName and SetSolutionKey methods.

C++
Copy Code
 barcodeXpress1->SetSolutionName("YourSolutionName");
 barcodeXpress1->SetSolutionKey(12345,12345,12345,12345);
VB6
Copy Code
 BarcodeXpress1.SetSolutionName "YourSolutionName"
 BarcodeXpress1.SetSolutionKey 12345,12345,12345,12345
JavaScript
Copy Code
BarcodeXpress1.SetSolutionName("YourSolutionName");
BarcodeXpress1.SetSolutionKey(12345,12345,12345,12345);

Changing to the Manually Reported Runtime Licensing

In your Barcode Xpress 7 codebase, find any existing calls to the UnlockRuntime or UnlockWeb method.

C++
Copy Code
barcodeXpress1->UnlockRuntime(12345,12345,12345,12345);
VB6
Copy Code
BarcodeXpress1.UnlockRuntime 12345,12345,12345,12345
JavaScript
Copy Code
BarcodeXpress1.UnlockWeb("ServerLicenseString…");

In your Barcode Xpress 10 codebase, replace the UnlockRuntime or UnlockWeb method with calls to the SetSolutionName, SetSolutionKey, and SetOEMLicenseKey methods.

C++
Copy Code
barcodeXpress1->SetSolutionName("YourSolutionName");
barcodeXpress1->SetSolutionKey(12345,12345,12345,12345);
barcodeXpress1->SetOEMLicenseKey("1.0.AStringForOEMLicensing…");
VB6
Copy Code
BarcodeXpress1.SetSolutionName "YourSolutionName"
BarcodeXpress1.SetSolutionKey 12345,12345,12345,12345
BarcodeXpress1.SetOEMLicenseKey "1.0.AStringForOEMLicensing…"
JavaScript
Copy Code
BarcodeXpress1.SetSolutionName("YourSolutionName");
BarcodeXpress1.SetSolutionKey(12345,12345,12345,12345);
BarcodeXpress1.SetOEMLicenseKey("1.0.AStringForOEMLicensing…");

There is no longer a separate method for web licensing. That functionality has been integrated into the SetOEMLicenseKey method.

If you encounter any porting issues, please contact support@accusoft.com for assistance.


Barcode Xpress Samples

Accusoft.BarcodeXpress10.ActiveX
Barcode Xpress Samples
Barcode Xpress 10 for ActiveX - User Guide > Getting Started > Barcode Xpress Samples

Barcode Xpress has the following samples:

VB6 C++ Name Description
þ þ

ReadBarcodesFromDIB

Allows you to open a 1 bit, 8 bit, or 24 bit image and search it for barcodes. Searching may be configured to look for a number of possible types of barcodes.
þ ý

Write1DBarcodes

Allows you to create any 1D barcode for which writing is supported using the Barcode Xpress toolkit. You can set the barcode contents and the fields which that barcode type supports. You can view the barcode as a screen image, write it to a file, or print it.

A list of 1D Barcodes for which writing is supported is provided in Supported Barcode Types.
þ ý

Write2DBarcodes

Allows you to create QR Code, DataMatrix, and PDF417 2D barcodes using the Barcode Xpress toolkit. You can set the barcode contents and the fields which that barcode type supports. You can view the barcode as a screen image, write it to a file, or print it.

Note that 2D barcode creation is only available in the 1D/2D Standard Edition or 1D/2D Professional Edition of Barcode Xpress.


Licensing

Accusoft.BarcodeXpress10.ActiveX
Licensing
Barcode Xpress 10 for ActiveX - User Guide > Licensing

Accusoft has introduced a new licensing structure, which provides the following benefits:

  • Toolkit Licensing (also known as Developer or SDK licensing) has been simplified, no longer requiring manual entry of license registration codes.
  • Runtime Licensing (also known as Deployment licensing) has been made more flexible, enabling support for a number of different deployment scenarios.

During evaluation of Accusoft products, Evaluation Toolkit licenses can be used to try out products. However, the product behavior is limited by trial dialog pop-ups, timeouts, or evaluation watermarks.

Accusoft requires customers to purchase licenses for both development and deployment.

  • Development/Toolkit Licensing: When you determine the product is a good fit, you can purchase a Toolkit license to eliminate trial dialog pop-ups, timeouts, and evaluation watermarks while you develop your application.
  • Deployment/Runtime Licensing: Once you have an application that is ready for distribution, you have several options for deployment. Your own deployment scenario will dictate which option is the most appropriate. There are also cost considerations for each licensing model; see the product's "pricing" page or speak with an Accusoft Sales Representative (sales@accusoft.com) for more information.
    • Manually Reported Runtime Licensing: In this model, you embed all of the licensing information directly into your application. You must manually provide royalty reporting to Accusoft for the actual licenses deployed. This model will be the best choice for you if you are not connected to the Internet at runtime, as might be the case in an defense or financial application.
    • Automatically Reported Runtime Licensing using the Server Licensing Utility (SLU): In this model, you run a small GUI tool one time on each deployment target to configure licensing. This model will be the best choice for you if you handle the deployments yourself.
    • Automatically Reported Runtime Licensing using the Licensing Development Kit (LDK): In this model, you embed function calls into your application that perform the license verification at runtime. This model will be the best choice for you if you wish to hide licensing from your end users.

See Also
Licensing Glossary


Evaluation Licensing

Accusoft.BarcodeXpress10.ActiveX
Evaluation Licensing
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Evaluation Licensing

The default installation for Barcode Xpress includes Evaluation licensing. This allows you to test all component features and functions and develop applications, but not distribute them. Installing Barcode Xpress in evaluation mode provides access to all features and functionality of the Barcode Xpress component. E-mail support is available with the evaluation license.

During evaluation of Accusoft products, Evaluation Toolkit licenses can be used to try out products. However, the product behavior is limited by trial dialog pop-ups, timeouts, or evaluation watermarks. When you determine the product is a good fit, you can purchase a Toolkit license to eliminate trial dialog pop-ups, timeouts, and evaluation watermarks.

Applications built with an evaluation license can only be run on a computer that has Barcode Xpress Licensing installed on it. See Runtime Licensing for information on licensing requirements to deploy applications built using Barcode Xpress.

An evaluation dialog similar to the following is displayed when you have a valid evaluation license:

However, if you attempt to execute a function that is not licensed in the edition license you are using (e.g., if you have a paid license for ImagXpress Standard and attempt to execute a function available only in ImagXpress Professional), an evaluation dialog similar to the following is displayed.

If no license is found in the registry, a dialog similar to the following will be displayed.

Changing Evaluation Mode Behavior

You have the flexibility to change the behavior of Barcode Xpress in evaluation mode. Evaluation mode behavior can be defined by setting the EvaluationMode property in the License object to one of these values:

  • TrialDialog (default value) – A dialog box will be displayed at the first use of Barcode Xpress and periodically thereafter. This evaluation mode is suitable for use in applications that have a visible user interface.
  • Timeout – After a period of time (5 minutes) the Barcode Xpress control will stop working and will return errors. This evaluation mode is suitable for use in applications that do or do not have a visible user interface.
  • Watermark – The images produced by Barcode Xpress will be stamped with the word "Evaluation". This evaluation mode is suitable for use in applications that do or do not have a visible user interface.


Toolkit Licensing

Accusoft.BarcodeXpress10.ActiveX
Toolkit Licensing
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing

Accusoft requires customers who are developing code that uses Accusoft components to have a Toolkit license for each developer.

This section provides information about the following:

  • Assigned Toolkit License
  • License Manager
  • Product Editions
  • Registration
    • Registering When Connected to the Internet
    • Registering When Disconnected from the Internet
  • Developing Code


Assigned Toolkit License

Accusoft.BarcodeXpress10.ActiveX
Assigned Toolkit License
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing > Assigned Toolkit License

When licenses are purchased for developers at an organization, a representative is designated to assign the licenses to developers at the organization. Each developer must create an account on Accusoft’s website prior to the assignment of licenses. The organization’s designated representative may request that licenses be reassigned as a result of personnel changes.


License Manager

Accusoft.BarcodeXpress10.ActiveX
License Manager
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing > License Manager

The License Manager is a GUI application that is used by a developer to register and activate Toolkit licenses on their development system. When a paid Toolkit license is registered, the License Manager:

  • Communicates the developer credentials and the hardware information for the development system to the licensing web service.
  • Installs the returned license key on that system.

Activation involves choosing a Toolkit license, either evaluation or paid, so that the license is active on the system.


Product Editions

Accusoft.BarcodeXpress10.ActiveX
Product Editions
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing > Product Editions

Accusoft products may have multiple editions, each of which supports different features. Products that support multiple editions are installed with multiple evaluation Toolkit licenses, one evaluation Toolkit license per edition.

Selecting An Edition (Activating a Toolkit License)

Evaluation licenses allow developers to try features in different product editions. Since each license supports only a single edition of a product, the developer can switch between editions by activating the corresponding Toolkit license, either purchased or evaluation, using the License Manager.

When a customer downloads an evaluation Toolkit, the evaluation Toolkit license for the edition with the most features is installed by default. However, the developer may run the License Manager to change the Toolkit license to a lower edition in order to determine if that edition will serve their needs.

If a customer has purchased multiple editions of the same product, they may install both editions on a development system, but only one edition may be active at a time. Once a license has been activated for a particular system, it may be deactivated (replaced by activating another edition) or reactivated at any time. Similarly, customers who own a lower featured edition may activate a higher featured edition evaluation Toolkit license and then switch back to their paid, lower-featured Toolkit edition license at any time. For example, you can go from a paid Standard edition to an evaluation Professional edition by activating the Professional edition evaluation Toolkit license.


Registration

Accusoft.BarcodeXpress10.ActiveX
Registration
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing > Registration

Registration is the process of creating a paid Toolkit license key for a particular system. Registration for Toolkit licenses is always done through the License Manager. This enables the features for the purchased edition to operate without nag dialogs or watermarks. Registration for each license is only required to be performed once per development system. After a license has been registered on a system, you can use the license without further interaction with the License Manager.

Also refer to the following sections:

  • Registering When Connected to the Internet
  • Registering When Disconnected from the Internet


Registering When Connected to the Internet

Accusoft.BarcodeXpress10.ActiveX
Registering When Connected to the Internet
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing > Registration > Registering When Connected to the Internet

When the development system is connected to the Internet, registration is a fairly simple process.

  1. Start the License Manager.
  2. When prompted, enter your Accusoft login and password.

    The License Manager then displays the available evaluation and purchased licenses assigned to you.

  3. Select a toolkit and click the link to activate the license for that toolkit.

    The License Manager then requests a new license key from the licensing web service and installs it; this completes the registration process.

    If the selected license cannot be installed on the development system due to connection failures or other reasons, a temporary, 15 day "grace" license is installed so as not to interrupt development while a new license is obtained for the development system.


Registering When Disconnected from the Internet

Accusoft.BarcodeXpress10.ActiveX
Registering When Disconnected from the Internet
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing > Registration > Registering When Disconnected from the Internet

When the development system is not connected to the Internet during registration, as is the case in some defense or financial institutions, registration is only slightly less simple.

  1. Run the License Manager and attempt to log in.
    The License Manager detects that the system is not registered and displays the following dialog:

  2. Select the Install Offline option to begin the offline registration process.

  3. Copy the URL to removable media, such as a thumb drive.

  4. Take the thumb drive to a system that is connected to the Internet.
  5. From the connected system, paste the URL into a browser, which automatically displays the toolkits available.
  6. Upon selecting a toolkit, a license is generated, which you then save to the removable media device.
  7. Return to the offline system where the new license is to be installed.
  8. Use the License Manager to browse to the file and install the Toolkit license.


Developing Code

Accusoft.BarcodeXpress10.ActiveX
Developing Code
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Toolkit Licensing > Developing Code

Once an evaluation or paid Toolkit license has been activated on the development system, no additional code is required to use the Accusoft products on this system. If moving the resulting executable code to a new system, you will need to install Toolkit licenses or incorporate Runtime licenses into your code.


Runtime Licensing

Accusoft.BarcodeXpress10.ActiveX
Runtime Licensing
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing

When an application that uses one or more Accusoft products is deployed, it requires a Runtime License for each installation. There are three main types of Runtime Licenses:

  • Automatically Reported. Distribution of Automatically Reported Runtime licenses is handled automatically through the use of licensing software components and web services.
  • Manually Reported. Manually Reported Runtime licensing requires you to provide the number of licenses distributed on a contractually agreed upon basis.
  • ActiveX Website Runtime Licensing. Using an Accusoft ActiveX on a webpage is similar to Manually Reported Runtime (Non-Node-Locked), as it requires calls to SetSolutionName, SetSolutionKey, and SetOEMLicenseKey. However, the web licenses are not node-locked to particular hardware but are node-locked to a set of specific domains or sub-domains.

These licensing types are each described in detail in the following sections:

  • Automatically Reported Runtime (Node-Locked)
    • Licensing API
    • License Pools
    • License Configuration Files
    • LDK vs. SLU
      • Server Licensing Utility (SLU)
      • Licensing Development Kit (LDK)
    • Deployment Proxy Service (DPS)
  • Manually Reported Runtime (Non-Node-Locked)
    • Solution Name
    • Solution Key
    • OEM License Key
  • ActiveX Website Runtime Licensing
If you are upgrading from an earlier version of ImagXpress, please see the Upgrading Runtime Licensing section for important information.


Automatically Reported Runtime (Node-Locked)

Accusoft.BarcodeXpress10.ActiveX
Automatically Reported Runtime (Node-Locked)
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked)

Automatically Reported Runtime licenses use a mechanism similar to Toolkit licensing to activate a license for a particular system. In this case, each installation has a unique license that is pulled from the pool of licenses purchased by the customer. When the license key is generated, it contains hardware information that identifies the system on which the license is to be installed.

The Licensing Development Kit component, which interacts with the licensing web service and installs the newly generated license key, may be used directly by the application or it may be used through a simple tool known as the Server Licensing Utility.

  • The Licensing Development Kit requires integration with the application or installation utility to perform license activation.
  • The Server Licensing Utility is a stand-alone application that integrates the Licensing Development Kit to perform the registration.

This topic provides information about the following:

  • Licensing API
  • License Pools
  • License Configuration Files
  • LDK vs. SLU
    • Server Licensing Utility (SLU)
    • Licensing Development Kit (LDK)
  • Deployment Proxy Service (DPS)


Licensing API

Accusoft.BarcodeXpress10.ActiveX
Licensing API
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked) > Licensing API

The Licensing API is used in the developer’s code to specify Runtime Licensing deployment information. This is used to unlock the Accusoft products and enable all licensed features at runtime. Both the "Solution Name" and "Solution Key" values used in the API described below are provided by Accusoft, along with the License Configuration file, at the time of purchase of a Runtime License.

Solution Name

The solution name is the name assigned by Accusoft to the licenses purchased for runtime deployment. It is a character string that is set for a component prior to use in a deployment environment and is typically the name of the organization that purchased the runtime licenses. It is set via the SetSolutionName method. For example:

Copy Code
BarcodeXpress1.SetSolutionName("ACMEImaging");

The Solution Name must be set in order to use runtime licensing.

Solution Key

The Solution Key is a set of four numbers assigned when the licenses are purchased for runtime deployment; the Solution Key also identifies the organization that purchased the runtime licenses. The Solution Key is set via the SetSolutionKey method. For example:

Copy Code
BarcodeXpress1.SetSolutionName("ACMEImaging");
BarcodeXpress1.SetSolutionKey(0x1C3A023F, 0xA018F260, 0x37AF0E51, 0x557F2389);

The Solution Key must be set in order to use runtime licensing.


License Pools

Accusoft.BarcodeXpress10.ActiveX
License Pools
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked) > License Pools

When Automatically Reported Runtime licenses are purchased, they are organized into pools of a specific version and platform for a particular toolkit. For example, if a customer developed two applications using ImagXpress, one using 32-bit ActiveX and the other using .NET, they would purchase two pools of runtime licenses, one for the ActiveX platform and one for the .NET platform. At installation, a new license would be pulled from the appropriate pool, depending upon which platform the application is using.


License Configuration Files

Accusoft.BarcodeXpress10.ActiveX
License Configuration Files
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked) > License Configuration Files

When an Automatically Reported Runtime license is purchased, a License Configuration file is created and distributed to the customer along with their assigned Solution Name and Solution Key. The License Configuration file contains information about the Runtime licenses for a particular platform and version of a toolkit. It is used by the Server Licensing Utility or License Development Kit to activate licenses when the customer’s application is installed on their users' systems.

See Also
Licensing API


LDK vs. SLU

Accusoft.BarcodeXpress10.ActiveX
LDK vs. SLU
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked) > LDK vs. SLU

Both the Licensing Deployment Kit and the Server Licensing Utility perform the same function of registering the Runtime license for the system on which it will be run. Both are provided in order to give you some options.

When installing the license, the user you are running as must have Administrator access so that the Registry can be accessed and the license can be added to the system.
  • If you are deploying to your own systems (e.g., for enterprise IT staff), the use of an Accusoft branded Server Licensing Utility may meet your needs. Similarly, if you handle the deployment onto end users systems, you may also find the Server Licensing Utility to be sufficient.
  • If you wish to hide this licensing registration from end users, you will likely choose the Licensing Deployment Kit, which allows you to integrate the registration process into your application. The Licensing Deployment Kit also allows for the optional assignment of Access Keys to specific users, which lets you manage your licenses more directly and limits the distribution of licenses.


Server Licensing Utility (SLU)

Accusoft.BarcodeXpress10.ActiveX
Server Licensing Utility (SLU)
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked) > LDK vs. SLU > Server Licensing Utility (SLU)

The Server Licensing Utility is a simple Windows application that uses License Configuration Files to request a license key from the purchased Runtime licenses. The Server Licensing Utility registers that Runtime license on the system where your application will be running. This utility can be used by developers for testing, by your deployment team, or by your end users to register their Runtime license.

When installing the license, the user you are running as must have Administrator access so that the Registry can be accessed and the license can be added to the system.

In the Server Licensing Utility dialog, add your License Configuration file(s) as follows:

  1. Click Add and navigate to your License Configuration file(s).
  2. Select the appropriate License Configuration file(s) and click Open.
  3. After all applicable License Configuration files have been added, click Auto Register or Manually Register, depending on whether or not you are connected to the Internet. Refer to the sections below for more information.

Auto Register Toolkit (Connected to Internet)

Automatic registration works in much the same way as connected Toolkit registration and requires an Internet connection on the system where your application software will be deployed. The license information along with the system’s hardware information is sent over the Internet to the Accusoft licensing web service. If an unused license is available, a new license key containing information for the system is generated, returned, and is then automatically installed by the Server Licensing Utility.

Manually Register Toolkit (Disconnected from Internet)

Manual registration is used when the system where your application software will be deployed is not connected to the Internet and therefore cannot be registered automatically. This operation is similar to Disconnected Registration with the License Manager.

  1. Copy the Hardware Key and URL to a removable media device, such as a thumb drive, and then take it to a system that is connected to the Internet.
  2. From the connected system, paste the URL into a browser. A page will appear that contains a field into which you enter the hardware key.
  3. After this hardware key is entered, a license file with the license key is downloaded, which you then save to the removable media device.
  4. Return to the offline system with the removable media device onto which you have saved the license file.
  5. Click Open License File and navigate to the license file. Click OK in the file selection dialog.
    Alternatively, you can open the license file with a text editor, copy the license key to the clipboard, and click Paste License Key to paste the new license key into the License Key field.
  6. Click the License button; the new license will be installed.


Licensing Development Kit (LDK)

Accusoft.BarcodeXpress10.ActiveX
Licensing Development Kit (LDK)
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked) > LDK vs. SLU > Licensing Development Kit (LDK)

The Licensing Development Kit is an ActiveX component that may be used instead of the Server Licensing Utility. (Actually, the Server Licensing Utility is only a user interface for the Licensing Development Kit.) The Licensing Development Kit provides an interface for a developer to set the License Configuration File path and other properties as well as initiate requests to the licensing web service to generate license keys.

When installing the license, the user you are running as must have Administrator access so that the Registry can be accessed and the license can be added to the system.

This topic contains these sections:
  • AccuLicClient.DLL
  • Assigned Access Keys
  • Automatic (Connected) Mode Registration
  • Manual (Disconnected) Mode Registration
  • Evaluation
  • Licensing Development Kit Interface
  • Licensing Development Kit Properties
  • Licensing Development Kit Methods

AccuLicClient.DLL

The AccuLicClient.DLL is located with the Server Licensing Utility. It is a 32-bit ActiveX/COM DLL which is used to execute runtime licensing activation functions. The bulk of the functionality provided by the Server Licensing Utility (SLU) is contained within the AccuLicClient.DLL and can be used within your own custom applications to achieve the same thing.

Assigned Access Keys

Unlike the Server Licensing Utility, the Licensing Development Kit allows for the optional assignment of Access Keys to specific users. By doing this, you can specify which of your licenses are assigned to your users. This also limits the distribution of licenses. When Runtime licenses are purchased, a list of Access Keys is distributed to you for this use.

Automatic (Connected) Mode Registration

This mode corresponds to the Automatic (Connected) Registration section described in the Server Licensing Utility section. The process is shown in the C# sample code below:

Copy Code
// Instantiate the LDK ActiveX component
IDeploymentComponent ldk = new DeploymentComponent();

// Set the path to the configuration file provided
// when the runtime licenses were purchased.
ldk.ConfigPath = @"C:\config.txt";

// Attempt to get the next available license.
// Note that you may alternately pass an Access Key
ldk.GetLicKeyAuto("");

if (ldk.ResultCode != enumLdkErrorCodes.LDK_SUCCESS)
{
    // Automatic Registration Failed - A temporary license
    // has been installed but will expire in 15 days.
    // TODO add code to notify user of issue and 15 day expiration.

    if (ldk.ResultCode == enumLdkErrorCodes.LDK_ERR_INET_CONN_BROKEN)
    {
        // No Internet Connection – Optionally do manual registration
    }
}
else
{
    // The license has been registered and installed.
}

The registration process is then complete. If any part of the registration process fails, a temporary license key is installed and is typically valid for 15 days. During this time, you are allowed to use the product while resolving any licensing related problems.

Manual (Disconnected) Mode Registration

This mode corresponds to the Manual (Disconnected) Registration section described in the Server Licensing Utility section. The process is shown in the C# code below:

Copy Code
// Instantiate the LDK ActiveX component
IDeploymentComponent ldk = new DeploymentComponent();

// Set the path to the configuration file provided
// when the runtime licenses were purchased.
ldk.ConfigPath = @"C:\config.txt";

// Get the hardware key for the system.  Note
// that you may alternately pass an Access Key
string hardwareKey = ldk.GetHdwKey("");

// Write the hardware key to some type of removable media.
ApplicationSpecificMethodToWriteHardwareKey(hardwareKey);

At this point, you have the hardware key on some type of removable media. Take the media to a system that is connected to the Internet, acquire the license key by uploading the hardware key, write the new license key to the removable media, and then return to the disconnected system. The application then reads the license key from the removable media and installs the license key as shown below.

Copy Code
// After taking the hardware key to a system with an Internet
// connection and acquiring the license key string from the
// manual registration web site, read the key into your
// application.
string manuallyAcquiredLicenseKey = ApplicationSpecificMethodToReadLicenseKey();

// Install the license key
ldk.LicKey = manuallyAcquiredLicenseKey;

The manual license registration and installation is then complete. Like the automatic case above, if any error occurs during the setting of the license key, a temporary license is installed.

Evaluation

The Licensing Development Kit also has the ability to install an Evaluation License for purchased runtime products. This process is simply:

Copy Code
// Instantiate the LDK ActiveX component
IDeploymentComponent ldk = new DeploymentComponent();

// Set the path to the configuration file provided
// when the runtime licenses were purchased.
ldk.ConfigPath = @"C:\config.txt";

// Install an evaluation license
ldk.StartEvalPeriod();

Licensing Development Kit Interface

The interface to the Licensing Development Kit is shown below:

Copy Code
interface IDeploymentComponent : IDispatch
{
   [propget, id(1)] HRESULT LicKey([out, retval] BSTR* pVal);
   [propput, id(1)] HRESULT LicKey([in] BSTR newVal);
   [propget, id(2)] HRESULT srvURL([out, retval] BSTR* pVal);
   [propput, id(2)] HRESULT srvURL([in] BSTR newVal);
   [propget, id(3)] HRESULT ConfigPath([out, retval] BSTR* pVal);
   [propput, id(3)] HRESULT ConfigPath([in] BSTR newVal);
   [propget, id(4)] HRESULT ResultString([out, retval] BSTR* pVal);
   [propget, id(5)] HRESULT ResultCode([out, retval] enumLdkErrorCodes* pVal);
   [id(6)]           HRESULT GetLicKeyAuto([in] BSTR accKey);
   [id(7)]           HRESULT GetHdwKey([in] BSTR accKey, [out,retval] BSTR* hdwKey);
   [id(8)]           HRESULT StartEvalPeriod(void);
   [propget]         HRESULT LicenseInfo([out, retval] BSTR* pVal);
   [propput]         HRESULT LicenseInfo([in] BSTR newVal);
   [id(10)]          HRESULT GetEvalPeriod([out, retval] long* pVal);
};

Licensing Development Kit Properties

  • LicKey: Stores the License Key to the registry when it is set, and reads it from the registry during the get operation.
  • srvURL: Gets and sets the URL path to the licensing web service. The default is the URL path to Accusoft’s Deployment Licensing Service.
  • ConfigPath: Gets and sets a path to the deployment configuration file. Multiple products can be registered at one time by setting the filenames as a semicolon-delimited list: e.g., “c:\config.txt;c:\config2.txt”.
  • ResultString: Contains the string descriptions of any error that may have occurred during the last operation.
  • ResultCode: Can be used to contain any of the error codes described in Licensing Component Error Codes and Messages.
  • LicenseInfo: Used to transfer license information onto new system hardware. To transfer the license information into new system hardware, do the following:
  1. Get the LicenseInfo value and store it in a safe place.
  2. Change the system hardware.
  3. Set the LicenseInfo to the value you saved in step (1).
  4. Run the GetLicKeyAuto method (or perform its manual analog) to obtain a license for the new system hardware.

Licensing Development Kit Methods

  • GetLicKeyAuto: Obtains a License Key for the end user’s system using the automatic (or connected) scenario. It takes an Access Key as its input parameter, and stores the obtained license key in the registry. If you choose not to distribute individual Access Keys, the accKey argument should be an empty string.
  • GetHdwKey: Obtains a hardware key from the current machine and returns it (as hdwKey). If you choose not to distribute individual access keys, the accKey argument should be an empty string.
  • StartEvalPeriod: Sets an evaluation licensing mode for the product and starts an evaluation period. This method is provided so you can distribute an evaluation version of your application, without having to distribute Access Keys to people who would like to evaluate your software. Using this method you can license Accusoft components on the end user’s system for a limited time – the default is 30 days, but it can be customized per request to Accusoft. If the evaluators purchase your software, you can then issue them an access key using either the automatic or manual scenarios to obtain permanent component licenses, just as Accusoft does for its evaluators.
  • GetEvalPeriod: Obtains the remaining time on an evaluation (in days). It returns EvalPeriod < 0 if the evaluation period is expired.


Deployment Proxy Service (DPS)

Accusoft.BarcodeXpress10.ActiveX
Deployment Proxy Service (DPS)
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Automatically Reported Runtime (Node-Locked) > Deployment Proxy Service (DPS)

For systems where the deployed application will not have direct access to the Accusoft licensing web services, you can use the Deployment Proxy Service as a bridge to reroute the licensing communication. The Proxy Service will act as a trusted "go-between" for the Accusoft licensing system and the deployed application. This tool can be useful if the application will be deployed in a secured environment, where limited systems have external network access.

Additionally, the Proxy Service allows Accusoft customers to manage license registration more directly. The source for the Deployment Proxy Service is provided, allowing users to integrate the licensing process into their CRM, ERP, or other systems for tracking Automatically Reported Runtime Licenses.

For more information about the Deployment Proxy Service, please contact our Support team.


Manually Reported Runtime (Non-Node-Locked)

Accusoft.BarcodeXpress10.ActiveX
Manually Reported Runtime (Non-Node-Locked)
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Manually Reported Runtime (Non-Node-Locked)

Manually Reported Runtime licensing embeds all of the licensing information directly into your application. Installation does not require any further licensing interaction. However, it is your responsibility to provide royalty reporting to Accusoft for the actual licenses deployed.

This section provides information about the following:

  • Solution Name
  • Solution Key
  • OEM License Key


Solution Name

Accusoft.BarcodeXpress10.ActiveX
Solution Name
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Manually Reported Runtime (Non-Node-Locked) > Solution Name

The solution name is

  • A name assigned by Accusoft to the licenses purchased for runtime deployment.
  • A character string that is set for a component prior to use in a deployment environment.
  • Typically the name of the organization that purchased the runtime licenses.
  • Set via the SetSolutionName method. For example:
Copy Code
BarcodeXpress1.SetSolutionName("ACMEImaging");

The Solution Name must be set in order to use runtime licensing.


Solution Key

Accusoft.BarcodeXpress10.ActiveX
Solution Key
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Manually Reported Runtime (Non-Node-Locked) > Solution Key

The Solution Key is

  • A set of four numbers assigned when the licenses are purchased for runtime deployment.
  • An identifier of the organization that purchased the runtime licenses.
  • Set via the SetSolutionKey method. For example:
Copy Code
BarcodeXpress1.SetSolutionName("ACMEImaging");
BarcodeXpress1.SetSolutionKey(0x1C3A023F, 0xA018F260, 0x37AF0E51, 0x557F2389);

The Solution Key must be set in order to use runtime licensing.


OEM License Key

Accusoft.BarcodeXpress10.ActiveX
OEM License Key
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > Manually Reported Runtime (Non-Node-Locked) > OEM License Key

The OEMLicense Key is

  • For use only by customers who choose to use Manually Reported Runtime licensing.
  • A unique identifier of the customer, product, version, edition, and platforms for which the license is valid.

When this key is set via the SetOEMLicenseKey method, the component is completely licensed and can be distributed without any further licensing operations.

Copy Code
BarcodeXpress1.SetSolutionName("ACMEImaging");
BarcodeXpress1.SetSolutionKey(0x1C3A023F, 0xA018F260, 0x37AF0E51, 0x557F2389);
BarcodeXpress1.SetOEMLicenseKey("1.0.GQCC0EmUgONaI4QDZ32tpGWfpGW4gtbC0iIC0iN4bigYM3m3K5b487QOsAM38O24mUp5bOpD2O240OQ32U2YsUKDKA87MYPGgGgaptMiK5Nv8AI4mYg4m3QvW52DZCPGs4p784mtP4IUgOWiIG0AQYp4052iIAWvNCZfpGWC8vQ5P4ZGKaPAWfbiYfZOI303pOZAgisiNaWA27gGsf8Ob7Zvm5IaKGI4KC8GsG2CWYpGQAg5sUmYWvZCQANig48G2ap4bG0DsO240YsUmtptNiZamCPGbYMfMO83gANAZCN52YbY8U8f8DM4m3g7MYMYWGW5Q7QGWaMiN7MtZfmtgY8AN7NDP7Z4W7sCbGKUPa0im7EDPP");

This property is not required for Automatically Reported Runtime licensing.


ActiveX Website Runtime Licensing

Accusoft.BarcodeXpress10.ActiveX
ActiveX Website Runtime Licensing
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Runtime Licensing > ActiveX Website Runtime Licensing

Using an Accusoft ActiveX on a webpage is similar to Manually Reported Runtime (Non-Node-Locked), as it requires calls to SetSolutionName, SetSolutionKey, and SetOEMLicenseKey. However, the web licenses are not node-locked to particular hardware but are node-locked to a set of specific domains or sub-domains. Sub-paths of those domains and sub-domains do not require additional licensing, thus if http://www.mysite.com is licensed, so is http://www.mysite.com/imaging.

To get an OEM license key, the developer will identify one or more domains or sub-domains to Accusoft's Licensing Center. There is an ActiveX web licensing site that contains the OEM License Generator web application. This web application is used to create an OEM license key that the developer can use along with the solution name and solution key on the webpage in the domain or sub-domain.

Example

In the following example:

  • The solution name is "ACMEImaging"
  • The solution keys are "0x1C3A023F, 0xA018F260, 0x37AF0E51, 0x557F2389"
  • The domain specified is www.mysite.com

The developer would do the following:

  1. Log into the Accusoft OEM Web License Key Generator (https://licensing.accusoft.com/v1/weblickeygenerator/).
  2. Select the desired pool for the control that you would like to license.
  3. Next, enter your domain name in the text field (i.e., www.mysite.com)
  4. Click the Generate Now button to generate the OEM key.
  5. Use the OEM license key on a webpage in the www.mysite.com domain.
Copy Code
barcodeXpress1.SetSolutionName "ACMEImaging"
barcodeXpress1.SetSolutionKey 0x1C3A023F, 0xA018F260, 0x37AF0E51, 0x557F2389
barcodeXpress1.SetOEMLicenseKey
"1.0.GQCC0EmUgONaI4QDZ32tpGWfpGW4gtbC0iIC0iN4bigYM3m3K5b487QOsAM38O24mUp5bOpD2O240OQ32U2YsUKDKA87MYPGgGgaptMiK5Nv8AI4mYg4m3QvW52DZCPGs4p784mtP4IUgOWiIG0AQYp4052iIAWvNCZfpGWC8vQ5P4ZGKaPAWfbiYfZOI303pOZAgisiNaWA27gGsf8Ob7Zvm5IaKGI4KC8GsG2CWYpGQAg5sUmYWvZCQANig48G2ap4bG0DsO240YsUmtptNiZamCPGbYMfMO83gANAZCN52YbY8U8f8DM4m3g7MYMYWGW5Q7QGWaMiN7MtZfmtgY8AN7NDP7Z4W7sCbGKUPa0im7EDPP"


Licensing Glossary

Accusoft.BarcodeXpress10.ActiveX
Licensing Glossary
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Licensing Glossary
The following sections each describe a licensing term:
  • Access Key
  • Accusoft Products
  • Activation
  • Assigned Access Key
  • Automatically Reported Runtime Licensing
  • Customers, Developers, and Users
  • Edition
  • Evaluation License
  • Hardware Key
  • License Configuration File
  • Licensing Development Kit (LDK)
  • License Key
  • License Manager
  • Manually Reported Runtime Licensing
  • Node-Locked Licensing
  • Non-Node-Locked Licensing
  • Paid License
  • Registration
  • Runtime (Deployment) Licensing
  • Server Licensing Utility (SLU)
  • Toolkit Licensing
  • Web Services

Access Key

All licenses are assigned a unique identifier known as an Access Key. Access Keys are associated with the organization that purchased the license.

Accusoft Products

An Accusoft product may be licensed with either a Toolkit License or a Runtime License.

Activation

Activation is the process of selecting a previously registered toolkit license. Licenses may be paid (Toolkit) or evaluation, and may be for one of many product editions, for products with multiple editions.

Assigned Access Key

An assigned Access Key is one that is assigned to a specific user or users. The assignment of Access Keys to specific users can be done using the Licensing Development Kit (LDK).

Automatically Reported Runtime Licensing

Runtimes may be licensed in one of two ways: automatic reporting or manual reporting. With automatic reporting, you do not need to worry about royalty reporting; it is handled by the licensing layer.

Customers, Developers, and Users

Customers are simply any person who has purchased an Accusoft product. Developers are customers who possess a license for an Toolkit. Users are typically the customers of Accusoft's customers who use applications built around Accusoft components and are assigned a runtime license.

Edition

Some Accusoft products have multiple editions. Editions may offer multiple levels of product speed or product features, allowing customers to find a price-performance mix that is appropriate for them. Products that support multiple editions register multiple Toolkit licenses at installation time, one Toolkit license per edition. Developers must select an edition to activate using the License Manager.

Evaluation License

An evaluation license is a Toolkit license that is unpaid. When an Accusoft Toolkit is installed, evaluation licenses for all applicable product editions are installed and registered, and the edition with the most features is activated. Evaluation Toolkit licenses can be used to try out products. However, the product behavior is limited by trial dialog pop-ups, timeouts, or evaluation watermarks. When you determine the product is a good fit, you can purchase a Toolkit license to eliminate trial dialog pop-ups, timeouts, and evaluation watermarks.

Hardware Key

When a license is activated for a product, the system information that identifies the installation hardware is contained within an encrypted string and is used to generate the license key for the product. The string containing the encrypted hardware information is known as the Hardware Key.

License Configuration File

When a Toolkit or an Automatically Reported Runtime license is purchased, a configuration file is provided that contains information about the license that was purchased. This file is used by the licensing utilities (License Manager, Server License Utility, and License Development Kit) to install a license on the system.

Licensing Development Kit (LDK)

The Licensing Development Kit (LDK) is an ActiveX component that may be used for Runtime Licensing. The LDK is one mechanism for Automatically Reported Runtime Licensing; the Server Licensing Utility (SLU) is the other.

License Key

Each product license has a unique key associated with it that uniquely identifies the customer, product, version, edition, and platforms, and, in some cases, the hardware for which the license is valid.

License Manager

The License Manager is a GUI application that is used by a developer to register and activate Toolkit licenses on their development system.

Manually Reported Runtime Licensing

Runtimes may be licensed in one of two ways: automatic reporting or manual reporting. With Manually Reported Runtime Licensing, you embed all of the licensing information directly into your application. You must manually provide royalty reporting to Accusoft for the actual licenses deployed. This model will be the best choice for you if you are not connected to the Internet at runtime, as might be the case in an defense or financial application.

Node-Locked Licensing

Another name for Automatically Reported Runtime Licensing.

Non-Node-Locked Licensing

Another name for Manually Reported Runtime Licensing.

Paid License

A paid license is a Toolkit license that you have purchased from Accusoft. It is ready to be used in production, with no trial dialog pop-ups, timeouts, or evaluation watermarks. If you wish to test other editions of the Accusoft product for which you have purchased a Paid License, you may activate an Evaluation license for that edition; a complete set of Evaluation licenses for all editions is registered at installation time.

Registration

Registration is the process of informing the License Manager about a new Toolkit license you have purchased. It uses this information to create a license key on your system; this allows you to activate the product for development with no restrictions, such as trial dialog pop-ups, timeouts, or evaluation watermarks.

Runtime (Deployment) Licensing

When deploying an application, a Runtime License is also required for each user’s installation. You must purchase runtime licenses, which are consumed as licenses are registered. There are two Runtime licensing models: Automatically Reported Runtime License; and Manually Reported Runtime License.

Server Licensing Utility (SLU)

The Server Licensing Utility (SLU) is a small GUI application that allows you to request a license key from the Runtime licenses you have purchased. The SLU is one mechanism for Automatically Reported Runtime Licensing; the Licensing Development Kit (LDK) is the other.

Toolkit Licensing

Each Toolkit is assigned to a specific developer who has a registered account with Accusoft. When the developer installs the Toolkit, it is not fully functional until they have activated the license through the use of the License Manager application. When the developer starts the License Manager, they are required to provide login credentials that identify and allow them to activate their license on a development system. See Toolkit Licensing.

Web Services

When a license is registered, information that uniquely identifies the customer’s or user’s hardware is passed along with the license information over the Internet to a web service. The web service validates the licensing request, generates a key that includes the hardware information, and returns the new license key to the application that made the licensing request. The license key is then stored on the requested system and used by the component when it is executed. It is also possible to register systems that are not directly connected to the Internet through the use of removable media and a different system that is connected to the Internet.


Software License Agreement

Accusoft.BarcodeXpress10.ActiveX
Software License Agreement
Barcode Xpress 10 for ActiveX - User Guide > Licensing > Software License Agreement

PLEASE READ THE FOLLOWING SOFTWARE LICENSE AGREEMENT WHICH GOVERNS YOUR RIGHT TO USE OF THE TOOLKIT. YOU MUST ACCEPT THESE TERMS BEFORE YOU ARE ALLOWED TO INSTALL THE TOOLKIT. YOU EXPRESSLY AGREE THAT YOU HAVE THE AUTHORITY TO CONTRACTUALLY BIND THE ORGANIZATION AGREEING TO THESE TERMS.

BY CLICKING "I ACCEPT," OR INSTALLING TOOLKIT, OR PLACING TOOLKIT IN-USE, LICENSEE IS AGREEING TO BE BOUND BY THIS AGREEMENT.

1. GRANT OF AGREEMENT

This Accusoft Corporation, ("ACCUSOFT") Software License Agreement ("AGREEMENT") grants the organization contracting under this agreement as licensee ("LICENSEE") a limited, nontransferable, nonexclusive and non-assignable license to use the trial mode version of this ACCUSOFT Development Toolkit ("TOOLKIT") on a single computer for evaluation of fitness only and not for any commercial purpose; or to use a properly purchased and registered TOOLKIT, for development purposes only on a single computer, provided the TOOLKIT is IN-USE on only one computer at any time. (However additional TOOLKIT licenses may be purchased.) TOOLKIT is "IN-USE" on a computer when it becomes loaded by any means for any purpose into temporary memory (that is, including but not limited to RAM) or when it becomes copied or installed to less temporary storage by any means for any purpose (that is, including but not limited to hard disk, CD-ROM or other removable disk or tape, USB or other flash memory drive or card, or other local, networked, or cloud storage device) when it is accessible to that computer. The TOOLKIT is explicitly not to be used on a site-wide basis, via a server or other networked connection.

2. REDISTRIBUTION OF TOOLKIT RUNTIMES

ACCUSOFT does not grant LICENSEE any rights to deploy, license, sell, reproduce, copy, install, lease, timeshare, rent, or otherwise distribute or transfer TOOLKIT or any portion of TOOLKIT ("PORTION") except as provided in Section 1. GRANT OF AGREEMENT. For licensing information about any other distribution of TOOLKIT or PORTION, please visit our web site (www.accusoft.com/licensing.htm), or contact our sales staff. LICENSEE agrees to notify ACCUSOFT immediately of any violations or changes in status regarding LICENSEE's compliance with any term of this AGREEMENT.

In the event that ACCUSOFT grants LICENSEE in a written separate runtime license agreement ("RUNTIME AGREEMENT") a right to deploy, license, sell, reproduce, copy, install, lease, timeshare, rent, or otherwise distribute or transfer PORTIONS, the RUNTIME AGREEMENT will specify what PORTIONS may be distributed ("RUNTIME"). LICENSEE agrees to acknowledge and uphold the terms and conditions of this AGREEMENT as well as the terms of the RUNTIME AGREEMENT itself, which will be provided only in writing. In such event, LICENSEE may distribute RUNTIMES as part of the LICENSEE's software application or derivative works ("PRODUCT") upon additionally agreeing to the following:

a) LICENSEE understands and acknowledges that in order to receive any discounted pricing for RUNTIME distribution licensing fees based on the type of installation, it must either: 1) prepay for a number of RUNTIME licenses that is sufficient to qualify for ACCUSOFT's then-current published quantity discount, or 2) it must pay for the licenses in accordance with a written contract between LICENSEE and ACCUSOFT.

b) LICENSEE's PRODUCT shall not compete to any degree with the TOOLKIT. Such competitive PRODUCTS are defined as software development toolkits that include similar functionality as TOOLKIT and that are intended for use by software developers and/or system integrators.

c) LICENSEE's PRODUCT must be substantially greater in scope with greater functionality and features than those of the TOOLKIT.

d) LICENSEE will not use ACCUSOFT's name, logo, or trademarks to market PRODUCT without prior written approval of ACCUSOFT except LICENSEE will include a statement substantially similar to the following within PRODUCT documentation and about box: "Portions of this product contain imaging and other technology owned by Accusoft Corporation, Tampa, FL, (www.accusoft.com). ALL RIGHTS RESERVED."

e) LICENSEE agrees to only distribute the RUNTIMES. No license or other rights are granted to LICENSEE for any distribution of the TOOLKIT or PORTIONS including, but not limited to, documentation, source code, or the RUNTIME distribution unlock codes.

g) LICENSEE will only distribute the RUNTIMES on the hardware and operating system(s) for which the RUNTIMES are intended to be used according to the RUNTIME AGREEMENT.

If ANY of the terms of this AGREEMENT are not applicable to LICENSEE'S situation, or if any of the terms of this AGREEMENT cannot be complied with, or if LICENSEE needs modifications to this AGREEMENT or the license granted for any reason, LICENSEE must contact ACCUSOFT about obtaining an expanded license from ACCUSOFT (available by phone at: 813-875-7575, x321, by e-mail at: Sales@accusoft.com or by fax at: 813-875-7705).

This AGREEMENT grants rights to LICENSEE only for the TOOLKIT and does not convey any other rights of use or distribution to ACCUSOFT technology.

3. OWNERSHIP

LICENSEE acknowledges and agrees that ACCUSOFT owns all rights, title and interest in the TOOLKIT, in all forms, including without limitation any and all worldwide proprietary rights therein, including but not limited to trademarks, copyrights, patent rights, patent continuations, trade secrets and confidential information.

LICENSEE may not remove or alter the copyright notice from any copy of the TOOLKIT or any copy of the written materials, accompanying the TOOLKIT.

LICENSEE waives its right to contest any of ACCUSOFT's patents, trademarks, service marks, trade names, copyrights, and other intellectual property and proprietary rights in and to the TOOLKIT.

LICENSEE shall not use such trademarks, service marks, and trade names except where and as permitted under this AGREEMENT without receiving ACCUSOFT's prior written approval of such use. If such approval is granted, LICENSEE’s right to use such trademarks, service marks, and trade names shall end upon the termination of this AGREEMENT.

4. RESTRICTIONS AND RESERVATIONS.

All rights and licenses not expressly granted to LICENSEE are reserved to ACCUSOFT. LICENSEE is strictly prohibited from reproducing, copying, marketing, selling, distributing, licensing, sublicensing, leasing, timesharing or renting the TOOLKIT or PORTION, and LICENSEE is strictly prohibited from any use of the TOOLKIT or PORTION except as permitted by this AGREEMENT, and such actions are expressly prohibited. LICENSEE is strictly prohibited from incorporating or including the TOOLKIT or PORTION into or as part of any PRODUCT or service of LICENSEE except as provided by this AGREEMENT, regardless of the functionality of TOOLKIT (or lack thereof) within or as part of such PRODUCT or service of LICENSEE. LICENSEE shall not for any reason disassemble, decompile, decrypt or reverse engineer the TOOLKIT or PORTION or in any manner attempt to discover or reproduce the source code or any other copyrightable, proprietary, or trade secret aspect of the TOOLKIT or PORTION. Nor shall LICENSEE use the TOOLKIT or PORTION, directly or indirectly, in developing LICENSEE's own PRODUCT with, or including, similar functionality. LICENSEE shall not make any copies of the TOOLKIT or PORTION for any purpose whatsoever except as permitted by this AGREEMENT. Source code that is provided with TOOLKIT for sample or demonstration purposes may be used directly or indirectly in developing PRODUCT, however it may not be distributed in source form in whole or in part with or as part of PRODUCT.

5. WARRANTY DISCLAIMER

LICENSEE ACKNOWLEDGES AND AGREES THAT THE TOOLKIT IS PROVIDED "AS IS." ACCUSOFT DISCLAIMS ANY AND ALL REPRESENTATIONS AND WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND AGAINST INFRINGEMENT.

6. LIMITATION OF LIABILITY

ACCUSOFT SHALL HAVE NO LIABILITY TO LICENSEE, LICENSEE AFFILIATES, SUBSIDIARIES, SHAREHOLDERS, OFFICERS, DIRECTORS, EMPLOYEES, REPRESENTATIVES OR ANY THIRD PARTY, WHETHER IN CONTRACT, TORT, NEGLIGENCE OR PRODUCTS LIABILITY, FOR ANY CLAIM, LOSS OR DAMAGE, INCLUDING BUT NOT LIMITED TO, LOST PROFITS, LOSS OF USE, BUSINESS INTERRUPTION, LOST DATA, LOST FILES, OR FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND OR NATURE WHATSOEVER ARISING OUT OF OR IN CONNECTION WITH USE OF OR INABILITY TO USE THE TOOLKIT, OR THE PERFORMANCE OR OPERATION OF THE TOOLKIT, EVEN IF ACCUSOFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. INDEMNIFICATION BY LICENSEE

LICENSEE SHALL INDEMNIFY, HOLD HARMLESS AND DEFEND ACCUSOFT FOR ANY LOSS, CLAIM, ACTION OR PROCEEDING THAT ARISES OR RESULTS FROM ANY ACTIONS OR OMISSIONS OF LICENSEE PERTAINING TO THE PRODUCT OR THE TOOLKIT AND FROM ANY ACTIONS OF LICENSEE THAT ARE IN VIOLATION OF THIS AGREEMENT.

8. TERM AND TERMINATION

Unless otherwise agreed to by the parties, this AGREEMENT shall become effective upon the earlier of LICENSEE's clicking of "I Accept" or LICENSEE'S installing or placing TOOLKIT IN_USE ("Effective Date") and shall continue in full force and effect until terminated in accordance with the terms set forth in this AGREEMENT.

Any material breach of this AGREEMENT shall automatically and immediately terminate this AGREEMENT. In the event that LICENSEE ceases to do business or is adjudged bankrupt or insolvent, ACCUSOFT may, at its sole option, terminate this AGREEMENT, by giving ten (10) Business Days written notice of such termination, which notice shall identify and describe the basis for such termination.

In the event of any termination of this AGREEMENT, any RUNTIME AGREEMENT is simultaneously terminated and LICENSEE shall stop using the TOOLKIT and PORTION, shall cease manufacturing the PRODUCT containing TOOLKIT or PORTION, and shall cease distributing PRODUCT containing TOOLKIT or PORTION. LICENSEE shall also require its resellers, OEMs, and other distribution channels (if any) to likewise stop manufacturing and distributing the PRODUCT containing TOOLKIT or PORTION. Within ten (10) Business Days thereafter, LICENSEE shall return or, at ACCUSOFT's option, destroy, the TOOLKIT and all PORTIONS, whether or not incorporated in or with the PRODUCT, that are within LICENSEE’s possession, custody and control, and shall certify to ACCUSOFT in writing within ten (10) Business Days after that return or destruction that it has complied with the foregoing obligation.

All Sections except Section 1. GRANT OF LICENSE shall continue in full force and effect, notwithstanding any termination of this AGREEMENT.

9. LIQUIDATED DAMAGES

In the event LICENSEE (a) copies the TOOLKIT or PORTION except as permitted by this AGREEMENT, (b) uses the TOOLKIT or PORTION for any reason other than as permitted by this AGREEMENT, (c) installs or uses the TOOLKIT or PORTION on more than a single computer, or (d) otherwise violates or breaches this Agreement, LICENSEE agrees that ACCUSOFT is entitled to obtain as liquidated damages and not as a penalty the greater of the amount of (v) the published quantity one distribution price based upon the type of distribution, or (w) $99 per each user of each PRODUCT or service of LICENSEE in which the TOOLKIT or PORTION is included, copied, incorporated, embedded or accessible; (x) $100 per copy of TOOLKIT or PORTION; (y) $100 per copy of any PRODUCT in which TOOLKIT or PORTION is included, copied, incorporated, embedded or accessible; or (z) 3% of all revenues realized by LICENSEE pertaining to any PRODUCTS or services of LICENSEE in which TOOLKIT or PORTION is included, copied, incorporated, embedded or accessible. THE LICENSEE EXPRESSLY AGREES THAT THE FOREGOING LIQUIDATED DAMAGES ARE NOT A PENALTY.

10. CONFIDENTIALITY

LICENSEE acknowledges that the TOOLKIT contains ACCUSOFT know-how, confidential and trade secret information ("PROPRIETARY INFORMATION"). LICENSEE agrees: (a) to hold the PROPRIETARY INFORMATION in the strictest confidence, (b) not to, directly or indirectly, copy, reproduce, distribute, manufacture, duplicate, reveal, report, publish, disclose, cause to be disclosed, or otherwise transfer the PROPRIETARY INFORMATION to any third party, (c) not to make use of the PROPRIETARY INFORMATION other than as permitted by this AGREEMENT, and (d) to disclose the PROPRIETARY INFORMATION only to LICENSEE's representatives requiring such material for effective performance of this AGREEMENT and who have undertaken an obligation of confidentiality and limitation of use consistent with this AGREEMENT. This obligation shall continue as long as allowed under applicable law.

11. INJUNCTIVE RELIEF

LICENSEE agrees that any violation or threat of violation of this AGREEMENT will result in irreparable harm to ACCUSOFT for which damages would be an inadequate remedy. Therefore, in addition to its rights and remedies available at law (including but not limited to the recovery of damages for breach of this AGREEMENT), ACCUSOFT shall be entitled to immediate injunctive relief to prevent any violation of ACCUSOFT's copyright, trademark, trade secret rights regarding the TOOLKIT, or to prevent any violation of this AGREEMENT, including, but not limited to, unauthorized use, copying, distribution or disclosure of or regarding the TOOLKIT or PORTION, as well as any other equitable relief as the court may deem proper under the circumstances.

12. NO REDUCED PRICING

In any determination of ACCUSOFT's damages (whether liquidated damages or actual damages), or any determination of any licensing fees or royalties due ACCUSOFT under this AGREEMENT due to a breach by LICENSEE hereunder, LICENSEE shall not be entitled to any discounts (volume or otherwise) or reduced licensing fees or royalties. The foregoing sentence shall be applicable unless LICENSEE has negotiated and entered into a written, signed agreement with ACCUSOFT for such reduced or discounted licensing fees or royalties and paid ACCUSOFT such fees or royalties in advance of any: (a) distribution of the TOOLKIT or PORTION, (b) copying of the TOOLKIT or PORTION, or (c) incorporation or use of the TOOLKIT or PORTION in or pertaining to any PRODUCT or service of LICENSEE. Further, LICENSEE agrees that it shall not be entitled to reduced licensing fees or royalties when determining ACCUSOFT's damages due to any undertaking or activity by LICENSEE regarding the TOOLKIT or PORTION outside of or exceeding the scope of permission or other terms of this AGREEMENT, or LICENSEE's actions otherwise in violation of this AGREEMENT.

13. ATTORNEYS' FEES AND COSTS

In the event of any lawsuit or other proceeding brought as a result of any actual or alleged breach of this AGREEMENT, to enforce any provisions of this AGREEMENT, or to enforce any intellectual property or other rights in or pertaining to the TOOLKIT or PORTION, the prevailing party shall be entitled to an award of its reasonable attorneys’ fees and costs, including the costs of any expert witnesses, incurred at all levels of proceedings.

14. GOVERNING LAW

This AGREEMENT shall be construed, governed and enforced in accordance with the laws of the State of Florida, without regard to any conflicts of laws rules. Any action related to or arising out of this AGREEMENT will be filed only in the Florida courts and LICENSEE consents to the exclusive jurisdiction and venue of the state and federal courts located in Tampa, Florida.

15. SEVERABILITY

If any provision of this AGREEMENT is determined to be invalid by any court of final jurisdiction, then it shall be omitted and the remainder of the AGREEMENT shall continue to be binding and enforceable. In addition, the Court is hereby authorized to enforce any provision of the AGREEMENT that the Court otherwise deems unenforceable, to whatever lesser extent the Court deems reasonable and appropriate, rather than invalidating the entire provision. Without limiting the generality of the foregoing, LICENSEE expressly agrees that should LICENSEE be found to have breached the AGREEMENT, under no circumstances shall LICENSEE be entitled to any volume or other discount, or reduced licensing fee or royalty in the determination of ACCUSOFT's damages, or otherwise in the determination of any licensing fee or royalty owed to ACCUSOFT.

16. GOVERNMENT RIGHTS

The TOOLKIT and accompanying documentation have been developed at private expense and are sold commercially. They are provided under any U.S. government contracts or subcontracts with the most restricted and the most limited rights permitted by law and regulation. Whenever so permitted, the government and any intermediaries will obtain only those rights specified in ACCUSOFT's standard commercial license. Thus, the TOOLKIT referenced herein, and the documentation provided by Accusoft hereunder, which are provided to any agency of the U.S. Government or U.S. Government contractor or subcontractor at any tier shall be subject to the maximum restrictions on use as permitted by FAR 52.227-19 (June 1987) or DFARS 227.7202-3(a) (Jan. 1, 2000) or successor regulations. Manufacturer is Accusoft Corporation, 4001 N. Riverside Drive Tampa, FL 33603.

17. ENTIRE AGREEMENT

This AGREEMENT represents the entire understanding of the parties concerning the subject matter hereof and supersedes all prior communications and agreements, whether oral or written, relating to the subject matter of this AGREEMENT. Only a writing signed by the parties may modify this AGREEMENT. In the event of any modification in writing, of this AGREEMENT, including an expanded license agreement, all sections of this Agreement survive except Section 2. Limited License.

18. CONTACT US

Should you have any questions concerning this AGREEMENT, or if you desire to contact ACCUSOFT for any reason, please contact ACCUSOFT at 1-813-875-7575.

19. OTHER RESTRICTIONS

a) This AGREEMENT shall not be amended, altered, changed or modified in any way, unless agreed to in writing by both ACCUSOFT and LICENSEE. Such writing must be executed by a duly authorized representative of ACCUSOFT and a duly authorized representative of LICENSEE.

b) This AGREEMENT is not transferable or assignable by LICENSEE under any circumstances, without the prior written consent of ACCUSOFT. ACCUSOFT will not unreasonably withhold such consent. This AGREEMENT shall be binding upon, and is made for the benefit of, each party, its successors, and permitted assignees (if any). For the purposes of this AGREEMENT, any change in control of LICENSEE shall constitute an assignment or transfer of this AGREEMENT requiring prior written consent of ACCUSOFT. As used in this section, a change in control is defined as (i) any change in ownership of more than fifty percent (50%) of the voting interest in LICENSEE, whether by merger, purchase, foreclosure of a security interest or other transaction, or (ii) a sale of all or substantially all of the assets of LICENSEE.

c) The relationship established by this AGREEMENT between LICENSEE and ACCUSOFT shall be that of Licensee and Licensor. Nothing contained in this AGREEMENT shall be construed as creating a relationship of agency, joint venture or partnership between LICENSEE and ACCUSOFT. Neither party shall have any right whatsoever to incur any liabilities or obligations on behalf of the other party.

d) ACCUSOFT's failure to perform any term or condition of this AGREEMENT as a result of conditions beyond its control such as, but not limited to, war, strikes, fires, floods, acts of God, governmental restrictions, power failures, or damage or destruction of any network facilities or servers, shall not be deemed a breach of this AGREEMENT.

e) The headings provided in this AGREEMENT are for convenience and reference purposes only. In the event of a conflict between the terms and conditions listed in this AGREEMENT, and any attached Schedules or Appendices, the terms and conditions of this AGREEMENT shall govern.

f) A waiver of a breach, violation, or default under this AGREEMENT shall not be a waiver of any subsequent breach, violation or default. Failure of either party to enforce compliance with any term or condition of this AGREEMENT shall not constitute a waiver by the party of such term or condition.

g) All notices and communications shall be in writing and shall be deemed to have been duly given the earlier of when delivered or three (3) Business Days after mailing by certified mail, return receipt requested, postage prepaid, or by international delivery service, addressed to the parties at their respective addresses set forth on the Order Form or at such other addresses as the parties may designate by written notice in accordance with this section.

Rev. 20120112


Distributing Applications and Deployment

Accusoft.BarcodeXpress10.ActiveX
Distributing Applications and Deployment
Barcode Xpress 10 for ActiveX - User Guide > Distributing Applications and Deployment

The Distributing Applications and Deployment section provides information on:

  • Verify You're Using the Latest Service Pack
  • Distributing Barcode Xpress


Verify You're Using the Latest Service Pack

Accusoft.BarcodeXpress10.ActiveX
Verify You're Using the Latest Service Pack
Barcode Xpress 10 for ActiveX - User Guide > Distributing Applications and Deployment > Verify You're Using the Latest Service Pack
Service pack updates will not overwrite paid licensing. Your paid licensing will continue to work and you will not be required to re-enter your purchased registration codes.

Service pack updates do not include any changes that might "break" previously developed and/or deployed code.

Verify Latest Development Components

To verify you are using the latest version of an Accusoft Development Component or Components, please refer to the currently released product build numbers at www.accusoft.com/latestbuilds.htm.

If you require further assistance or have questions or comments, please see the topic on Getting Support for more detailed information.

See Also
Getting Support
Software License Agreement


Distributing Barcode Xpress

Accusoft.BarcodeXpress10.ActiveX
Distributing Barcode Xpress
Barcode Xpress 10 for ActiveX - User Guide > Distributing Applications and Deployment > Distributing Barcode Xpress

Distribute the appropriate assembly DLL files with applications using the Barcode Xpress Product.

  • Accusoft.BarcodeXpress10.ActiveX.dll - ActiveX component - ActiveX Control for barcode creation and recognition
  • Accusoft.ImagXpress12.ActiveX.dll - ActiveX Windows Forms Control (Only required if ImagXpress is used for image processing in your application)
  • Accusoft.BarcodeXpress10.ActiveX64.dll – 64 bit ActiveX component - ActiveX Control for barcode creation and recognition
  • Accusoft.ImagXpress12.ActiveX64.dll - 64 bit ActiveX Windows Forms Control (Only required if ImagXpress is used for image processing in your application)
See Also
Verify You're Using the Latest Service Pack


Concepts

Accusoft.BarcodeXpress10.ActiveX
Concepts
Barcode Xpress 10 for ActiveX - User Guide > Concepts

The Concepts sections provides information on:

  • Overview of Barcode Xpress
  • Barcode Specifications
    • Checksums
    • Boundary and Point Properties
    • Supported Barcode Types
    • Barcode Types
      • Add 2 and Add 5 Barcode Specifications
      • Australian Post 4-State Barcode
      • Aztec
      • BCD Matrix
      • Codabar
      • Code 32
      • Code 39
      • Code 39 Extended
      • Code 93
      • Code 93 Extended
      • Code 128 and EAN 128
      • DataLogic 2 of 5
      • Data Matrix
      • EAN-8
      • EAN-13 and JAN
      • GS1 DataBar
      • IATA 2 of 5
      • Industry 2 of 5 (Industrial 2 of 5)
      • Intelligent Mail
      • Interleaved 2 of 5
      • Inverted 2 of 5
      • Matrix 2 of 5
      • Patch Code
      • PDF417
      • PostNet
      • QRcode
      • Royal Post 4-State Barcode
      • UPC-A
      • UPC-E
  • Glossary


Overview of Barcode Xpress

Accusoft.BarcodeXpress10.ActiveX
Overview of Barcode Xpress
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Overview of Barcode Xpress

Barcode Xpress provides both barcode detection and creation.

Barcode Detection

Barcode Xpress makes it easy to add barcode detection to your Windows applications. Barcode Xpress automatically detects all barcodes in an image and it gives you complete details about each barcode.

For a list of barcodes that can be read and the editions that support them, see Supported Barcode Types.

Barcode Results

Each barcode result contains the following parameters:

  • Barcode value
  • Barcode type
  • Confidence
  • Location
  • Skew

Barcode Creation

Barcode Xpress can create many of the popular 1D barcode formats. QR Code, PDF417, and DataMatrix barcode creation is available with the 1D/2D Professional edition. The created barcodes can be constrained to a specified image size or can auto-size output image. 1D barcodes can also include the barcode value under the barcode symbol.

For a list of barcodes that can be written/created and the editions that support them, see Supported Barcode Types.

See Also
BarcodeInkColor Property
BarcodeOrientation Property
BarcodeType Property
MaxBarcodes Property
What is Barcode Xpress?


Barcode Specifications

Accusoft.BarcodeXpress10.ActiveX
Barcode Specifications
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications

The Barcode Specifications section provides information on:

  • Checksums
  • Boundary and Point Properties
  • Supported Barcode Types
  • Barcode Types
    • Add 2 and Add 5 Barcode Specifications
    • Australian Post 4-State Barcode
    • Aztec
    • BCD Matrix
    • Codabar
    • Code 32
    • Code 39
    • Code 39 Extended
    • Code 93
    • Code 93 Extended
    • Code 128 and EAN 128
    • DataLogic 2 of 5
    • Data Matrix
    • EAN-8
    • EAN-13 and JAN
    • GS1 DataBar
    • IATA 2 of 5
    • Industry 2 of 5 (Industrial 2 of 5)
    • Intelligent Mail
    • Interleaved 2 of 5
    • Inverted 2 of 5
    • Matrix 2 of 5
    • Patch Code
    • PDF417
    • PostNet
    • QRcode
    • Royal Post 4-State Barcode
    • UPC-A
    • UPC-E


Checksums

Accusoft.BarcodeXpress10.ActiveX
Checksums
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Checksums

Checksums are used to verify the correctness of data. Their use is usually in data transmission, or converting data from one form to another. A parity bit is a form of checksum error correction coding. The idea is that the whole unit of data can be identified by a single number, a checksum. And that if the checksum isn't right, it doesn't match and errors have occurred.

The simplest checksum is to add up the value of the individual bytes in the data. Given the data of "CAT", the ASCII values of the letters are 67 + 65 + 84 = 216 and the whole package might be given the notation "CAT(216)". So, if we received "CAS(216)", the ASCII values of these letters add up as 67 + 65 + 83 = 215. And, since 216 does not equal 215, we’d know that an error occurred somewhere along the way.

A simple sum of the characters can be fooled by switching the order but not the value of the data, e.g. "TAC" and "CAT" have the same checksum. So more sophisticated checksum methods have been developed which reduce (but never totally eliminate) the chance of incorrect data giving the correct checksum.

Many types of barcodes employ checksums. In several other types, checksums are optional. Clearly, those that incorporate checksums are more robust and reliable.

The UPC and EAN barcodes always append the checksum character to the barcode results regardless of the BarcodeAppendCheckSum property value.

More advanced barcodes use an error correction system. This allows for reliable reading even if the code has been slightly damaged.

Barcodes with no checksum | Barcodes requiring a checksum | Barcodes with optional checksum | Barcodes with error correction
Add2 Add5 Codabar DataLogic 2 of 5 Patch Code | Code 128 Code 93 Code 93 Extended IATA 2 of 5 EAN-128 EAN-13 EAN-8 GS1 DataBar Intelligent Mail PostNet Royal Post 4-State Barcode UPC-A UPC-E | Code 32 Code 39 Code 39 Extended Industry 2 of 5 (Industrial 2 of 5) Interleaved 2 of 5 Inverted 2 of 5 BCD Matrix Matrix 2 of 5 | Australian Post 4-State Barcode PDF417 DataMatrix QRcode Aztec

See Also
ChecksumOK Property
BarcodeAppendCheckSum Property
ChecksumCharCount Property


Boundary and Point Properties

Accusoft.BarcodeXpress10.ActiveX
Boundary and Point Properties
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Boundary and Point Properties

When a barcode on an incoming image is detected, Barcode Xpress properties of the results detect the outer parameters of the barcode. They mark both the boundary dimensions and the corner points of the barcode. Height, Width and Area properties describe the boundaries of the barcode rectangle. Barcode Xpress uses x and y properties to identify corner points of the barcode on the image. Coordinate properties x and y locate the corner points of linear 1D Barcodes.

  • When the barcode is in the horizontal orientation, Barcode Xpress reads it from left to right, assigning values to the x1 through x4 and y1 through y4 properties. The BarcodeX1 property is the upper-left corner point of the barcode.
  • The boundary and corner point properties describe a rectangle area for the barcode on the image. The Skew property returns the angle of the barcode.

With any rotation of the barcode on the image, the Point value assigned to the corners rotate with the barcode. No matter what the rotation is, the coordinate properties always identify the same corner point of the barcode. If the barcode is rotated 180 degrees (turn the sample below upside down), the x or y value for the corner remains. BarcodeX1 is now the bottom-right corner; but its value is still 1.

See Also
BarcodeResult Property
BarcodeSkew Property
BarcodeX Property
BarcodeX1 Property
BarcodeX2 Property
BarcodeX3 Property
BarcodeX4 Property
BarcodeY Property
BarcodeY1 Property
BarcodeY2 Property
BarcodeY3 Property
BarcodeY4 Property


Supported Barcode Types

Accusoft.BarcodeXpress10.ActiveX
Supported Barcode Types
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Supported Barcode Types

Several barcodes types are identified by multiple names. But in Barcode Xpress, they are referenced by a single enumeration.

The table below shows which barcode type and enumeration must be mapped, and the editions that support that barcode.

Format | .Net | ActiveX | 1D Standard Edition/ 1D Professional Edition | 1D/2D Standard Edition/ 1D/2D Professional Edition
2D Barcodes |  |  |  |
Aztec | AztecBarcode | BC_TypeAztec |  | R
DataMatrix | DataMatrixBarcode | BC_TypeDataMatrix |  | R/W
PDF417 | PDF417Barcode | BC_TypePDF417 |  | R/W
QR Code | QRCodeBarcode | BC_TypeQRCode |  | R/W
1D Barcodes |  |  |  |
Add-2 | Add2Barcode | BC_TypeAdd2 | R | R
Add-5 | Add5Barcode | BC_TypeAdd5 | R | R
Airline 2 of 5 | IATA2of5Barcode | BC_TypeIATA2of5 | R | R
Australia Post 4-State Code | AustralianPost4StateBarcode | BC_TypeAustralianPost4State | R | R
BCD Matrix | BCDMatrixBarcode | BC_TypeBCDMatrix | R | R
Codabar | CodabarBarcode | BC_TypeCodabar | R/W | R/W
Code 128 (A,B,C) | Code128Barcode | BC_TypeCode128 | R/W | R/W
Code 2 of 5 | Industry2of5Barcode | BC_TypeIndustry2of5 | R/W | R/W
Code 32 | Code32Barcode | BC_TypeCode32 | R | R
Code 39 | Code39Barcode | BC_TypeCode39 | R/W | R/W
Code 39 Extended | Code39ExtendedBarcode | BC_TypeCode39Extended | R/W | R/W
Code 93 | Code93Barcode | BC_TypeCode93 | R/W | R/W
Code 93 Extended | Code93ExtendedBarcode | BC_TypeCode93Extended | R/W | R/W
DataLogic 2 of 5 | DataLogic2of5Barcode | BC_TypeDataLogic2of5 | R | R
EAN 128 (GS1, UCC) | EAN128Barcode | BC_TypeEAN128 | R/W | R/W
EAN-13 | EAN13Barcode | BC_TypeEAN13 | R/W | R/W
EAN-8 | EAN8Barcode | BC_TypeEAN8 | R/W | R/W
GS1 DataBar | GS1DataBarBarcode | BC_TypeGS1DataBar | R | R
Industrial 2 of 5 | Industry2of5Barcode | BC_TypeIndustry2of5 | R/W | R/W
Intelligent Mail (OneCode) | IntelligentMailBarcode | BC_TypeIntelligentMail | R | R
Interleaved 2 of 5 | Interleaved2of5Barcode | BC_TypeInterleaved2of5 | R/W | R/W
Invert 2 of 5 | Invert2of5Barcode | BC_TypeInvertiert2of5 | R | R
ITF-14 / SCC-14 | Interleaved2of5Barcode | BC_TypeInterleaved2of5 | R | R
Matrix 2 of 5 | Matrix2of5Barcode | BC_TypeMatrix2of5 | R | R
Patch Codes | PatchCodeBarcode | BC_TypePatchCode | R/W | R/W
PostNet | PostNetBarcode | BC_TypePostNet | R | R
Royal Mail (RM4SCC) | RoyalPost4StateBarcode | BC_TypeRoyalPost4State | R | R
UCC 128 | EAN128Barcode |  | R | R
UPC-A | UPCABarcode | BC_TypeUPCA | R/W | R/W
UPC-E | UPCEBarcode | BC_TypeUPCE | R/W | R/W

BarcodeResultResultStyle and MakeBarcodeStyle start with BC_Style instead of BC_Type.


Barcode Types

Accusoft.BarcodeXpress10.ActiveX
Barcode Types
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types

The Barcode Types section provides information on:

  • Add 2 and Add 5 Barcode Specifications
  • Australian Post 4-State Barcode
  • Aztec
  • BCD Matrix
  • Codabar
  • Code 32
  • Code 39
  • Code 39 Extended
  • Code 93
  • Code 93 Extended
  • Code 128 and EAN 128
  • DataLogic 2 of 5
  • Data Matrix
  • EAN-8
  • EAN-13 and JAN
  • GS1 DataBar
  • IATA 2 of 5
  • Industry 2 of 5
  • Intelligent Mail
  • Interleaved 2 of 5
  • Inverted 2 of 5
  • Matrix 2 of 5
  • Patch Code
  • PDF417
  • PostNet
  • Royal Post 4-State Barcode
  • QRcode
  • UPC-A
  • UPC-E


Add 2 and Add 5 Barcode Specifications

Accusoft.BarcodeXpress10.ActiveX
Add 2 and Add 5 Barcode Specifications
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Add 2 and Add 5 Barcode Specifications

Add 2 and Add 5 Barcode Specifications Retail barcodes (UPC and EAN) are strictly limited in the amount and format of the data that they encode. Add 2 or Add 5 barcodes give the vendors another two or five digits to identify the specific product, model, or issue. It is usually printed just to the right of the product code. For periodicals, an Add2 often indicates the issue, while other publications include a volume number.

Below is an Add 2 barcode

Below is an Add 5 barcode

See Also
Checksums
BarcodeType Property
Supported Barcode Types


Australian Post 4-State Barcode

Accusoft.BarcodeXpress10.ActiveX
Australian Post 4-State Barcode
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Australian Post 4-State Barcode

Below is an example of the Australian 4-state Postal Code.

The Australian Post 4 State barcode is a 4 state barcode. It supports four different formats:

  1. Standard
  2. Customer Barcode 2
  3. Customer Barcode 3
  4. Reply Paid Barcode

The Customer Barcodes 2 & 3 include a customer field for encoding data. This barcode also supports the Reed-Solomon error correction scheme.

Format Control Field

The Format Control Field is a 2 digit field identifying the barcode type:

  • 11 - Standard Customer Barcode
  • 59 - Customer Barcode 2
  • 62 - Customer Barcode 3
  • 45 - Reply Paid Barcode

The Customer Barcodes 2 & 3 include a customer field for encoding data. This barcode also supports the Reed-Solomon error correction scheme.

Sorting Code

The Sorting Code is an 8 character sorting code (Delivery Point ID)

Customer Information

There is a free format area available in the Customer Barcodes 2 & 3. This will be decoded using the BC_AustrailianPostCustomDecodeType.

  • If the decode mode is "BarStates", then the output will be either bar state "F" full bar, "T" tracker bar, "A" ascending bar, or "D" descending bar.
  • If the decode mode is "TableN", then the output will be decoded using the numeric decoding defined in the Australian Post specification.
  • If the decode mode is "TableC", then the output will be decoded using the character decoding defined in the Australian Post specification.
  • If the decode mode is "NoCustomDecode", then the bars in the custom section are not decoded.
  • Use the no custom decode if the decode mode has no custom decode type.
If the FCC code is not valid, the confidence will be decreased by 10%.
See Also
AustralianPostCustomDecodeMode Property
BC_AustralianPostCustomDecodeType Enumeration
Supported Barcode Types


Aztec

Accusoft.BarcodeXpress10.ActiveX
Aztec
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Aztec

Aztec Barcode is a 2D barcode which can encode 8 bit data, including all ASCII characters (binary values 0 - 127) and the remaining values (binary values 128 - 255). The barcode also includes error detection and correction to compensate for damaged barcodes. Error correction typically takes up 23% of the code space.

The Aztec barcode has three different code sizes:

  • Full - Full code size.
  • Compact - Compact code size.
  • Rune - A special barcode which can only encode values 000 - 255.

 | Full | Compact | Rune
Number of Symbols | 40 | 4 | 256
Size | 19x19 – 151x151 modules | 15x15 – 27x27 modules | 11x11 modules
Text Capacity (characters) | 15 – 3067 | 12 – 89 | 0
Numeric Capacity (Digits) | 18 - 3832 | 13 - 110 | 3
Binary Capacity (8 Bit values) | 8 - 1914 | 6 – 53 | 0

See Also
BC_BarcodeType Enumeration
Supported Barcode Types


BCD Matrix

Accusoft.BarcodeXpress10.ActiveX
BCD Matrix
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > BCD Matrix

BCD Matrix is a compact version of 2 of 5 barcodes, but its checking for the data patterns is not as robust. It does include a checksum character. It is not widely used.

See Also
Checksums
IATA 2 of 5
Industry 2 of 5
Interleaved 2 of 5
Inverted 2 of 5
Matrix 2 of 5
Supported Barcode Types


Codabar

Accusoft.BarcodeXpress10.ActiveX
Codabar
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Codabar

Codabar is used in libraries, blood banks, the overnight package delivery industry, and a variety of other information processing applications. Codabar is also known as USD-4, NW-7, ABC Codabar, rationalized codabar, and 2 of 7 code.

The Codabar character set includes the digits 0-9, six symbols including: minus "-", plus "+", period ".", dollar sign "$", slash "/", and colon ":", and the following start/stop characters A, B, C, and D. The start/stop characters must be used in matching pairs and may not appear elsewhere in the barcode. If you omit the start/stop characters, Barcode Xpress will use A and B, respectively. Blood banks use the D stop character to indicate that the next barcode beginning with a D should be concatenated with the current barcode.

By default, the read value of the Codabar barcode does not include the start and stop characters. To include the start and stop characters in the barcode result, the BarcodeIncludeControlCharacters property must be set to True.

Traditional Codabar defines different element width for each of the characters in an effort to make all of the characters have the same width. Rationalized Codabar uses the same patterns but assigns only 2 element width for wide and narrow.

Barcode Xpress implements Rationalized Codabar. Barcode Xpress generates an error if you have characters in your barcode value that are not allowed.

Codabar requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels. Since Codabar is self-checking, there is no standard checksum.

See Also
MakeBarcodeWidth Property
Checksums
MakeBarcodeBarSize Property
Supported Barcode Types


Code 32

Accusoft.BarcodeXpress10.ActiveX
Code 32
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Code 32

Code 32 is an Italian pharmacy code. It is a variant version of Code 39: it uses the exact same symbol set, stop and start code and rules, but restricts the characters that may be encoded to just digits and capital letters excluding the vowels (‘A’, ‘E’, ‘I’, ‘O’, ‘U’). Otherwise, it shares all the other advantages of Code 39.

Since Code 32 is a subset of Code 39, Barcode Xpress assumes the barcode is a Code 39 type when detecting all 1D types. The barcode type should be set specifically to Code 32 to read this barcode type correctly.

If you use Barcode Xpress to detect Code 32 barcodes, you should set the BarcodeTypes property to this type so that the barcode engine specifically looks for Code 32. If you don’t tell the barcode engine to specifically look for Code 32 barcodes, it might confuse a Code 32 barcode with a Code 39 barcode.
See Also
Code 39
Supported Barcode Types


Code 39

Accusoft.BarcodeXpress10.ActiveX
Code 39
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Code 39

Code 39 is widely used in many industries across the world. It is the standard for many government barcode specifications, including the U.S. Department of Defense. Code 39 is also known as Code 3 of 9.

Code 39 was the first alphanumeric symbology. Its character set includes the digits 0-9, the letters A-Z (uppercase only), and the following symbols: space, minus "-", plus "+", period ".", dollar sign "$", slash "/", and percent "%". Barcode Xpress generates an error if you have characters in your barcode value that are not allowed.

Each data character is made up of 5 bars and 4 spaces for a total of 9 elements. Each character includes 3 wide and 6 narrow elements. Thus, 3 out of the 9 elements are always wide, which is the reason why the code is sometimes called "3 of 9".

The ratio of wide to narrow bar width can be in the range of 1.8 to 3.4. The Barcode Xpress Code 39 style uses a 2:1 wide to narrow bar width ratio.

Code 39 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels. Since Code 39 is a self-checking barcode, it normally does not require a checksum. However, when necessary, an optional modulo 43 checksum may be used.

By default, Barcode Xpress does not write optional checksums. If a checksum is desired for Code 39, set the WriteChecksumChar property to True and Barcode Xpress calculates and writes the checksum.

If you use Barcode Xpress to detect Code 39 barcodes, you should set the BarcodeTypes property to this type so that the barcode engine specifically looks for Code 39. If you don’t tell the barcode engine to specifically look for Code 39 barcodes, it might confuse a Code 39 barcode with a Code 32 barcode.

See Also
MakeBarcodeBWidth Property
Checksums
BarcodeAppendCheckSum Property
BarcodeType Property
MakeBarcodeBarSize
Supported Barcode Types


Code 39 Extended

Accusoft.BarcodeXpress10.ActiveX
Code 39 Extended
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Code 39 Extended

Code 39 Extended was developed to provide a means of encoding additional characters that are not part of the Code 39 character set (for example, lowercase characters and additional symbols), and is essentially a superset of Code 39. Extended characters are encoded by using a pair of normal Code 39 characters. For example, a lowercase "a" is encoded by the character pair "+A". Code 39 Extended supports the full ASCII character set.

The ratio of wide to narrow bar width can be in the range of 1.8 to 3.4. The Barcode XpressCode 39 style uses a 2:1 wide:narrow bar width ratio.

Code 39 Extended requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels. Since Code 39 is a self-checking barcode, it normally does not require a checksum. However, when necessary, an optional modulo 43 checksum may be used.

By default, Barcode Xpress will not write optional checksums. If a checksum is desired for Code 39, set the BarcodeAppendCheckSum property to True and Barcode Xpress will calculate and write the checksum.

If you use Barcode Xpress to detect Code 39 barcodes, you should set the reader BarcodeType property to this type so that the barcode engine specifically looks for Code 39. If you don’t tell the barcode engine to specifically look for Code 39 barcodes, it might confuse a Code 39 barcode with a Code 32 barcode.

If you use Barcode Xpress to detect Code 39 barcodes, you should set the BarcodeTypes property to this type so that the barcode engine specifically looks for Code 39. If you don’t tell the barcode engine to specifically look for Code 39 barcodes, it might confuse a Code 39 barcode with a Code 32 barcode.

See Also
BarcodeType property
Code 39
Checksums
BarcodeAppendCheckSum Property
MakeBarcodeBWidth Property
MakeBarcodeBarSize Property
Supported Barcode Types


Code 93

Accusoft.BarcodeXpress10.ActiveX
Code 93
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Code 93

Code 93 is a bar code symbology which encodes 43 data characters (0-9, A-Z, 6 symbols, and Space), four shift characters, and a unique start/stop character. Code 93 derives its name from the fact that every character is constructed from 9 modules arranged into 3 bars with their adjacent spaces.

The Code 93 character set includes the digits 0-9, the letters A-Z (uppercase only), and the following symbols: space, minus "-", plus "+", period ".", dollar sign "$", slash "/", and percent "%". Barcode Xpress will generate an error if you have characters in your barcode value that are not allowed.

Code 93 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels. Code 93 requires two checksum characters, sometimes referred to as the “C” and “K” characters.

See Also
MakeBarcodeWidth Property
MakeBarcodeBarSize Property
Supported Barcode Types


Code 93 Extended

Accusoft.BarcodeXpress10.ActiveX
Code 93 Extended
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Code 93 Extended

Similar to Code 39 Extended, Code 93 Extended is a superset of Code 93. Extended characters are encoded by using a pair of Code 93 characters. For example, a lowercase "a" is encoded by the character pair "+A". The difference in Code 93 Extended, when compared to Code 39 Extended, is that the shift character used to encode an extended character is a reserved character, and not one of the standard 43 characters in the Code 93 character set. Code 93 Extended supports the full ASCII character set.

Code 93 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels. Code 93 requires two checksum characters, sometimes referred to as the “C” and “K” characters.

See Also
Supported Barcode Types


Code 128 and EAN 128

Accusoft.BarcodeXpress10.ActiveX
Code 128 and EAN 128
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Code 128 and EAN 128

Code 128 provides excellent density for all-numeric data and good density for alphanumeric data. The symbol can be as long as necessary to store the encoded data. It is often selected over Code 39 in new applications because of its density and because it offers a much larger selection of characters. Code 128 is designed to encode all 128 ASCII characters.

A Code 128 can actually be divided into three subsets A, B, and C. There are three separate start codes to indicate which subset is being used. In addition, each subset includes control characters to switch to another subset in the middle of a barcode.

  • A – Digits, uppercase characters, standard ASCII symbols, and control codes.
  • B – Digits, upper and lower case characters, standard ASCII symbols, and control codes.
  • C – Numeric only. Compresses two numeric digits into each character, providing excellent density. Barcode Xpress will add a leading "0" if there are an odd number of digits in the code.

Although Code 128 was originally created as a 7 bit ASCII code, the 2007 update of the ISO-15417 Specification, Section 4.3.4.2 (d), describes a method for encoding of byte values from 128-255. Barcode Xpress conforms to this specification. Data in the range 128-255 is referred to as extended character set data, and can be used to encode data outside the normal ASCII range.

  • Note on writing - The BarcodeValue property of the WriterBase class is interpreted as an ASCII string. For this reason, if you are writing containing extended character set data, you should use the BarcodeData property rather than the BarcodeValue property.
  • Note on reading - The BarcodeValue property of the Result class is an ASCII string. Any character outside the printable ASCII range (decimal 31, for example) is represented as "?". If you wish to interpret the barcode data according to another character set, such as ISO 8859-1, use the BarcodeDataAsByte property instead of BarcodeValue.

When the BarcodeType property is set to write a Code 128 barcode, Barcode Xpress will automatically switch between the three character sets (A, B, and C) to code the data in the shortest form.

  • EAN-128 – The UCC/EAN 128 barcode is a special form of Code 128. EAN-128 is based on Code 128 but it has a double start character. It is also called UCC128.

Barcode Xpress will generate an error if you have characters in your barcode value that are not allowed.

Each character is 11 times the width of the most narrow bar. Each character consists of 3 bars and 3 spaces. The bars always use an even number of elements and the spaces use an odd number. This provides the basis for a character-by-character consistency check during scanning. In addition, each Code 128 barcode includes a Modulo 103 checksum.

Code 128 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.

See Also
Supported Barcode Types


DataLogic 2 of 5

Accusoft.BarcodeXpress10.ActiveX
DataLogic 2 of 5
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > DataLogic 2 of 5

DataLogic 2 of 5 is a variation of the 2 of 5 barcodes using both white and black bars. It does not have a checksum character. It is not widely used.

See Also
Checksums
IATA 2 of 5
Industry 2 of 5
Interleaved 2 of 5
Inverted 2 of 5
Supported Barcode Types


Data Matrix

Accusoft.BarcodeXpress10.ActiveX
Data Matrix
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Data Matrix

DataMatrix is a widely used true 2D barcode. It allows for encoding large amounts of information (over 3000 characters) using a variety of character sets (ASCII, C40, TEXT, and BASE256) allowing efficient data packing or binary data storage as needed. DataMatrix employs an error correction system allowing it to read codes that are as much as 40% damaged.

Barcode Xpress supports the ECC 200 standard. It does not support the ECC 100-140 standards. Barcode Xpress does not support the automatic structured append feature. It returns results of each barcode, but the individual results have to be combined.

Performance Enhancement: Barcode Xpress is designed to optimize speed for the DataMatrix barcode recognition type as it takes advantage of the SSE2 (Streaming SIMD Extensions) technology provided in some computer processors with the initial release of the Pentium 4 architecture. This SSE2 technology allows for more efficient pixel processing, significantly improving image recognition time. Computer processors not supporting SSE2 will not provide this performance enhancement and will automatically use the same processing algorithm as all prior releases.
Note the image will be converted internally to an 8 bpp image for performance enhancement which will consume more memory but improve recognition performance.

An example DataMatrix barcode:

The 1D/2D Professional edition supports creating QR Code, PDF417, and DataMatrix barcodes which can then be written using the ImagXpress control or by writing to a Printer Device Context. Your application logic will set the barcode writing parameters and make a call to the MakeBarcode method. The output image will then be returned in the call.

Included features to use with this functionality are:

  • MakeBarcodeStyle - The type of barcode to create.
  • MakeBarcodeDataValueLength - Gets the length of the current barcode data in bytes.
  • MakeBarcodeRows - This value is used to set the number of rows.
  • MakeBarcodeRowsCreated - The number of rows created.
  • MakeBarcodeColumns - This value is used to set the number of columns to create.
  • MakeBarcodeColumnsCreated - The number of columns created.
  • MakeBarcodeRHeight - An output height value is required to create the barcode image.
  • MakeBarcodeRWidth - An output width value is required to create the barcode image.
Caution: When using trial (unpaid) licensing, the words " UNLICENSED accusoft.com " will appear in the middle of every QR Code, DataMatrix, and PDF417 barcode created, taking up 25 bytes of space including the leading and trailing spaces. When testing the contents of generated barcodes, be aware of the extra space requirements.

Caution: An anomaly has been identified for DataMatrix 144 x 144 barcodes written by several competitors' components. For this size only, barcodes created using those components do not adhere to the DataMatrix barcode specification. Because Accusoft does adhere to the DataMatrix specification, those competitors' components will not correctly read 144 x 144 size DataMatrix written by Barcode Xpress.

When reading 144 x 144 DataMatrix barcodes, Barcode Xpress will assume that the barcodes adhere to the specification. If reading fails, the component will automatically attempt to apply the recognition algorithm that will work on barcodes written by the competitors components, and report the results. The barcode reader will not be notified that the barcode did not adhere to the specification. For these barcodes only, recognition speed will be impacted.
See Also
MakeBarcode Method
SetMakeBarcodeDataValue Method
MakeBarcodeValue Property
Supported Barcode Types


EAN-8

Accusoft.BarcodeXpress10.ActiveX
EAN-8
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > EAN-8

The EAN (European Article Numbering) code is primarily used in supermarkets. EAN-8 is a shortened version of the EAN-13 code. It is a numeric-only code that includes a 2 or 3 digit country code, 4 or 5 data digits (depending on the length of the country code), and a checksum digit that is automatically added by Barcode Xpress. If there are eight digits specified during a write, the eighth digit will be replaced with the correct checksum.

Unlike the UPC-E symbol, which compresses data that could also be printed as a full-size UPC-A symbol by squeezing out zeros, the data digits in an EAN-8 symbol specifically identify a particular product and manufacturer. Since a limited number of EAN-8 codes are available in each country, they are issued only for products with insufficient space for a normal EAN-13 symbol.

Barcode Xpress will generate an error if you have characters in your barcode value that are not allowed. You can have 7 or 8 digits in the EAN-8 barcode value. You don’t have to include the 8th digit (checksum) since Barcode Xpress automatically adds it.

EAN-8 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.

The EAN-8 barcode is also commonly written with 2 different bar heights. Typically, the height of the left and right guard bars are greater than the height of the bars encoding the actual barcode value, essentially creating a notch in the barcode where the text value can be written. Barcode Xpress provides the user with control over the size of this notch with the MakeBarcodeUPCNotchPercent property.

The MakeBarcodeUPCNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if the notch percent is 10, and the bar height is set to 100 pixels, the tall bars (left and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.

See Also
UPC-A
UPC-E
Checksums
MakeBarcodeBarSize Property
MakeBarcodeBWidth Property
MakeBarcodeUPCNotchPercent Property
Supported Barcode Types


EAN-13 and JAN

Accusoft.BarcodeXpress10.ActiveX
EAN-13 and JAN
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > EAN-13 and JAN

EAN-13 is used worldwide for marking retail goods. The symbol is numeric-only and encodes 13 digits. The first two or three digits are a country code which identify the country in which the manufacturer is registered (not necessarily where the product is actually made). The country code is followed by 9 or 10 data digits (depending on the length of the country code) and a single checksum digit that is automatically added by Barcode Xpress. If there are 13 digits, the last digit will be replaced with the correct checksum. There is a special form of EAN-13, called EAN-99 which just starts with "99".

The JAN barcode is identical to the EAN-13 except with a country code of 49, designating that it was registered in Japan. The JAN barcode is treated exactly the same as the EAN-13 for reading and writing barcodes within Barcode Xpress.

As of January 1, 2005, all retail scanning systems in the United States must be able to accept the EAN-13 symbol as well as the standard UPC-A symbol. The United States has begun the process of moving to the EAN-13 symbol, which will be known as the UPC-13 symbol in the USA.

Barcode Xpress generates an error if you have characters in your barcode value that are not allowed. You can have 12 or 13 digits in the EAN-13 barcode value. You don’t have to include the 13th digit (checksum) since Barcode Xpress automatically adds it.

EAN-13 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.

The EAN-13 barcode is also commonly written with 2 different bar heights. Typically, the height of the left, center and right guard bars are greater than the height of the bars encoding the actual barcode value, essentially creating a notch in the barcode where the text value can be written. Barcode Xpress provides the user with control over the size of this notch with the MakeBarcodeUPCNotchPercent property.

The MakeBarcodeUPCNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if the notch percent is 10, and the bar height is set to 100 pixels, the tall bars (left, center and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.

See Also
Checksums
MakeBarcodeBarSize Property
MakeBarcodeBWidth Property
MakeBarcodeUPCNotchPercent Property
Supported Barcode Types


GS1 DataBar

Accusoft.BarcodeXpress10.ActiveX
GS1 DataBar
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > GS1 DataBar

The GS1 DataBar barcode is also known as Reduced Space Symbology (RSS). GS1 DataBar is a 1D barcode. It is self-checking with a high data density. The GS1 DataBar family is designed as a successor to the older EAN/UPC formats.

It can hold the 14 digits of the GTIN (Global Trade Item Number) and is smaller than the UPC and EAN barcode symbols. It carries more data than the UPC or EAN barcodes and its small size makes it a good candidate for small items, like produce.

"GS1 DataBar enables GTIN identification for fresh variable measure and hard-to-mark products like loose produce, jewelry and cosmetics. Additionally, GS1 DataBar can carry GS1 Application Identifiers such as serial numbers, lot numbers, and expiration dates, creating solutions to support product authentication and traceability for fresh food products and couponing." (http://www.gs1.org/barcodes/databar)

The following 7 variants of GS1 DataBar are all supported by Barcode Xpress:

GS1 DataBar variants supported by Barcode Xpress | Data Length | Rows
GS1 DataBar Omnidirectional | Fixed | 1
GS1 DataBar Stacked | Fixed | 2
GS1 DataBar Stacked Omnidirectional | Fixed | 2
GS1 DataBar Truncated | Fixed | 1
GS1 DataBar Limited | Fixed | 1
GS1 DataBar Expanded | Variable | 1
GS1 DataBar Expanded Stacked | Variable | 2

GS1 DataBar also has composite variants which Barcode Xpress does not support.


IATA 2 of 5

Accusoft.BarcodeXpress10.ActiveX
IATA 2 of 5
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > IATA 2 of 5

This is a numeric only code used by the Airline industry and is a variation of Industrial 2 of 5. This barcode is also known as Airline 2 of 5.

Since IATA 2 of 5 requires a checksum, you must set the BarcodeAppendCheckSum property to true and Barcode Xpress will calculate and write the checksum.

See Also
BarcodeAppendCheckSum
Checksums
Industry 2 of 5 (Industrial 2 of 5)
Supported Barcode Types


Industry 2 of 5 (Industrial 2 of 5)

Accusoft.BarcodeXpress10.ActiveX
Industry 2 of 5 (Industrial 2 of 5)
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Industry 2 of 5 (Industrial 2 of 5)

Industry 2 of 5 barcodes have been in use since the late 1960’s for airline tickets, photo developing envelopes, and warehouse sorting systems. The Industry 2 of 5 barcode is also called Code 2 of 5.

Industry 2 of 5 encodes all of the information in the bars. The spaces are fixed width and are used only to separate the bars. Consequently, it is a fairly inefficient code in terms of how much space is required to encode a single digit.

  • Since Industry 2 of 5 is a numeric-only code, Barcode Xpress generates an error if the barcode value contains characters that are not numeric. Industry 2 of 5 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.
  • Since Industry 2 of 5 is a self-checking barcode, it normally does not require a checksum. However, when necessary, an optional modulo 10 checksum may be used. By default, Barcode Xpress will not write optional checksums. If a checksum is desired for Industry 2 of 5, set the BarcodeAppendCheckSum property to True and Barcode Xpress will calculate and write the checksum.

See Also
Checksums
BarcodeAppendCheckSum Property
MakeBarcodeBarSize Property
MakeBarcodeBWidth Property
Supported Barcode Types


Intelligent Mail

Accusoft.BarcodeXpress10.ActiveX
Intelligent Mail
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Intelligent Mail

The Intelligent Mail Barcode is also known as the USPS OneCode Solution or UPS 4-State Customer Barcode (abbreviated 4CB, 4-CB, or USPS4CB). This barcode is adopting a new 4-state 1D barcode that includes more address information than the current code. A sample is shown below. Further information can be found at the USPS (United States Postal Service) Web site: http://ribbs.usps.gov/onecodesolution/.

The Intelligent Mail barcode combines information currently found in the PostNet and Planet barcodes. The length of the barcode is fixed at 65 bars. It also contains a CRC-Checksum for verifying the barcode value. There is no error correction. The output of the barcode is a 20, 25, 29 or 31 digit string (0, 5, 9 or 11 digit zip code) containing the following data:

(© USPS-B-3200,Pages 4-5,file:SPUSPS-B3200B001.pdf)

Statistics

The Mailer ID is a field within the Intelligent Mail barcodes that is used to identify Mail Owners and/or Mailing Agents. The IDs are assigned by the USPS to each Mail Owner and/or Mailing Agent that requests them. A Mailer ID can be a 9-digit field or a 6-digit field. The USPS assigns 6-digit or 9-digit Mailer IDs based upon the mail volume of the mailer.

  • The barcode identifier is a 2 digit field assigned by the USPS. The first digit ranges from 0-9 and the second digit ranges from 0-4.
    All 6-digit MIDs (Mailer IDs), assigned by USPS will begin with 0 through 8. All 9-digit MIDs will begin with the number 9.
  • Special services include a 3 digit field assigned by the USPS for any special services. The range is 000-999.
  • The customer identifier is a 6 digit field assigned by the USPS and is unique for each customer. The range is 000000000-999999999.
  • The sequence number is a 9 digit field assigned by the mailer for tracking mail pieces. The range is 000000000-999999999.
  • The zip code is a 0, 5, 9, or 11 digit zip code. The ranges are none, 00000-99999, 000000000-999999999, 00000000000-99999999999.
See Also
Checksums
PostNet
Supported Barcode Types


Interleaved 2 of 5

Accusoft.BarcodeXpress10.ActiveX
Interleaved 2 of 5
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Interleaved 2 of 5

Interleaved 2 of 5 is a numeric-only barcode that is widely used in warehouse and industrial applications. It is also called ITF-14/SCC-14.

The symbol can be as long as necessary to store the encoded data. The code is a high-density code.

The symbol is called "Interleaved" because a digit is encoded in the bars and the next digit is encoded in the spaces. There are five bars, two of which are wide; and five spaces, two of which are wide. Since the characters are interleaved in pairs, the barcode has to contain an even number of digits. If the barcode value contains an odd number of digits, Barcode Xpress adds a leading "0" to the value.

Interleaved 2 of 5 requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.

Since Interleaved 2 of 5 is a self-checking barcode, it normally does not require a checksum. However, when necessary, an optional modulo 10 checksum may be used. By default, Barcode Xpress will not write optional checksums. If a checksum is desired for Interleaved 2 of 5, set the BarcodeAppendCheckSum property to True and Barcode Xpress calculates and writes the checksum.

See Also
Checksums
MakeBarcodeBarSize Property
MakeBarcodeBWidth Property
Supported Barcode Types


Inverted 2 of 5

Accusoft.BarcodeXpress10.ActiveX
Inverted 2 of 5
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Inverted 2 of 5

Inverted 2 of 5 is similar to Industry 2 of 5 (Industrial 2 of 5), except the data is encoded in the white bars. It is not widely used.

See Also
Industry 2 of 5 (Industrial 2 of 5)
Checksums
Supported Barcode Types


Matrix 2 of 5

Accusoft.BarcodeXpress10.ActiveX
Matrix 2 of 5
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Matrix 2 of 5

Matrix 2 of 5 is similar to DataLogic 2 of 5 with a checksum character. It is not widely used.

See Also
Checksums
DataLogic 2 of 5
Supported Barcode Types


Patch Code

Accusoft.BarcodeXpress10.ActiveX
Patch Code
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Patch Code

Barcode Xpress supports the following patch codes:

Patch Code Type | Barcode Value
Patch 1 | 1100
Patch 2 | 1001
Patch 3 | 1010
Patch 4 / Toggle Patch | 0110
Patch 6 | 0011
Patch T / Transfer patch | 0101

To write a Patch Code using Barcode Xpress, set the writer BarcodeType property to PatchCode, then set the writer MakeBarcodeValue property to a value of 1 through 6.

Patch Codes require a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 5 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 50 pixels. There is no checksum for Patch Code.

The minimum bar width for Patch Codes is 5.

See Also
BarcodeType Property
MakeBarcodeBarSize Property
MakeBarcodeBWidth Property
Checksums
Supported Barcode Types


PDF417

Accusoft.BarcodeXpress10.ActiveX
PDF417
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > PDF417

PDF417 is often referred to as a stacked 1D barcode. Like DataMatrix it uses an error correction scheme and allows for encoding binary data.

An example PDF417:

If using the 1D/2D Standard or 1D/2D Professional editions, 2D writes are supported for PDF417 using an external application. Typically this can be done using the ImagXpress control or by writing to a Printer Device Context. The external application will set the barcode writing parameters and make a call to the MakeBarcode method. The output image will then be available in the image properties.

Included features to use for this functionality are:

  • MakeBarcodeStyle - The type of barcode to create.
  • MakeBarcodeDataValueLength - Gets the length of the current barcode data in bytes.
  • MakeBarcodeHeight - PDF417 uses this value as a multiplier of the minimum barcode width to set the row module height.
  • MakeBarcodeRows - This value is used to set the number of rows.
  • MakeBarcodeRowsCreated - The number of rows created.
  • MakeBarcodeColumns - This value is used to set the number of columns to create.
  • MakeBarcodeColumnsCreated - The number of columns created.
  • MakeBarcodeErrorCorrectionLevel - This value is used for the amount of error correction to add to a barcode which supports selected error correction level.
  • MakeBarcodeErrorCorrectionLevelUsed - The value from the error correction level created.
  • MakeBarcodeRHeight - An output height value is required to create the barcode image.
  • MakeBarcodeRWidth - An output width value is required to create the barcode image.
  • GetMakeBarcodeDataValue - Gets the barcode value as an array of bytes.
  • SetMakeBarcodeDataValue - Used to set the barcode value as an array of bytes.
Caution: When using trial (unpaid) licensing, the words " UNLICENSED accusoft.com " will appear in the middle of every DataMatrix and PDF417 barcode created, taking up 25 bytes of space. When testing the contents of generated barcodes, be aware of the extra space requirements.
See Also
MakeBarcode Method
GetMakeBarcodeDataValue Method
SetMakeBarcodeDataValue Method
Supported Barcode Types


PostNet

Accusoft.BarcodeXpress10.ActiveX
PostNet
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > PostNet

Specific to the US Postal Service is the PostNet (Postal Numeric Encoding Technique) barcode. Examples can be found on mail in the United States. It is unique in that it varies the height instead of the width of the bars. Except for the start and end bars, they are in groups of five with two long and three short. A PostNet can encode five, nine, or eleven digits, nothing else. It includes a checksum.

See Also
Checksums
Supported Barcode Types


QRcode

Accusoft.BarcodeXpress10.ActiveX
QRcode
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > QRcode

QR code is one of very few barcode types that allow encoding of Kanji and Kana.

Statistics

  • The symbol size of the QRcode is 21 x 21 modules to 177 x 177 modules corresponding to Version 1-40, increasing in steps of 4.
  • The numeric data is maximum capacity 7089 digits.
  • The alphanumeric data maximum capacity is 4296 characters.
  • The byte data maximum capacity is 2953 bytes.
  • The Kanji data maximum capacity is 1817 characters.

Error Correction Level

This barcode type uses a Reed-Solomon error detection and correction scheme. There are four levels of error correction, each with increasing amount of error recover.

The higher the error level, the less data that can be stored in the barcode.
  • "L" - 7% error recovery
  • "M" - 15% error recovery
  • "Q" - 25% error recovery
  • "H" - 30% error recovery

The 1D/2D Professional edition supports creating QR Code, PDF417, and DataMatrix barcodes which can then be written using the ImagXpress control or by writing to a Printer Device Context. Your application logic will set the barcode writing parameters and make a call to the MakeBarcode method. The output image will then be returned in the call.

Included features to use with this functionality are:

  • MakeBarcodeStyle - The type of barcode to create.
  • MakeBarcodeDataValueLength - Gets the length of the current barcode data in bytes.
  • MakeBarcodeRows - This value is used to set the number of rows.
  • MakeBarcodeRowsCreated - The number of rows created.
  • MakeBarcodeColumns - This value is used to set the number of columns to create.
  • MakeBarcodeColumnsCreated - The number of columns created.
  • MakeBarcodeErrorCorrectionLevel - This value is used for the amount of error correction to add to a barcode which supports selected error correction level.
  • MakeBarcodeErrorCorrectionLevelUsed - The value from the error correction level created.
  • MakeBarcodeRHeight - An output height value is required to create the barcode image.
  • MakeBarcodeRWidth - An output width value is required to create the barcode image.
  • GetMakeBarcodeDataValue - Gets the barcode value as an array of bytes.
  • SetMakeBarcodeDataValue - Used to set the barcode value as an array of bytes.
See Also
Checksums
Supported Barcode Types


Royal Post 4-State Barcode

Accusoft.BarcodeXpress10.ActiveX
Royal Post 4-State Barcode
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > Royal Post 4-State Barcode

The United Kingdom has implemented a new 4-state barcode referred to as the Royal Mail 4-State Customer Code (RM4SCC).

An example is shown below:

This barcode type is used by the United Kingdom Royal Post. It encodes 5, 6, or 7 character post codes along with a two character Delivery Point Suffix (DPS). A checksum character is included to verify the barcode read.

See Also
BarcodeType Property
BC_BarcodeStyle Enumeration
Supported Barcode Types


UPC-A

Accusoft.BarcodeXpress10.ActiveX
UPC-A
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > UPC-A

The UPC-A code is the standard version of the UPC code and has 12 digits. It is also called UPC-12 and is very similar to the EAN code. The UPC-A code is a numeric code, which is able to display digits from 0 to 9. Each character consists of two lines and two spaces.

UPC-A encodes 12 digits. The first digit of the UPC-A code indicates what the code contains as follows:

0. Regular UPC code

1. Reserved

2. Articles where the price varies by weight: for example meat.

3. National Drug Code (NDC) and National Health Related Items Code (HRI)

4. UPC code which can be used without format restrictions. For use in-store on non-food items

5. Coupons

6. Reserved

7. Regular UPC code

8. Reserved

9. Reserved

The second to sixth digits indicate the producer of the article (UPC ID number). This number is issued by the Uniform Code Council (UCC). The seventh to eleventh digits show the individual article number issued by the producer. The last digit is a Modulo 103 checksum digit, which is calculated by Barcode Xpress.

The height of the UPC-A symbol should be at least half of the length of the symbol.

Barcode Xpress generates an error if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since Barcode Xpress calculates it anyway.

UPC-A requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.

The UPC-A barcode is also commonly written with 2 different bar heights. Typically, the height of the left, center and right guard bars are greater than the height of the bars encoding the actual barcode value, creating a notch in the barcode where the text value can be written. Barcode Xpress provides the user with control over the size of this notch with the MakeBarcodeUPCNotchPercent property.

The MakeBarcodeUPCNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if MakeBarcodeUPCNotchPercentis 10, and the bar height is set to 100 pixels, the tall bars (left, center and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.

If you use Barcode Xpress to detect UPC-A barcodes, you should set the BarcodeType property to this barcode type so that the barcode engine specifically looks for UPC-A. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with a EAN-13 barcode.

See Also
Checksums
MakeBarcodeBarSize Property
MakeBarcodeBWidth Property
MakeBarcodeUPCNotchPercent Property
EAN-13 and JAN
Supported Barcode Types


UPC-E

Accusoft.BarcodeXpress10.ActiveX
UPC-E
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Barcode Specifications > Barcode Types > UPC-E

UPC-E is a variation of the UPC-A symbol that is used for number system 0. The UPC-E code is a numeric-only code which is able to display digits from 0 to 9. UPC-E has 8 digits, where the last digit is a checksum digit automatically added by Barcode Xpress. The first digit is always "0" and it is also automatically added by Barcode Xpress.

The UPC-E code is a compressed barcode which is intended for use on small items. Compression works by squeezing extra zeros out of the barcode and then automatically re-inserting them at the scanner. Only barcodes containing zeros are candidates for the UPC-E symbol.

When reading UPC-E, results are returned as uncompressed UPC values.

Barcode Xpress generates an error if you have characters in your barcode value that are not allowed. You can have 6, 10, 11 or 12 digits in the UPC-E value. If the barcode value has more than 6 digits, Barcode Xpress automatically compresses the value. There are four rules that determine what UPC codes can be created using the compressed UPC-E format:

  • If the last 3 digits of the manufacturer’s number are 000, 100, or 200, the valid product code numbers are 00000-00999 (1,000 numbers).
  • If the last 3 digits of the manufacturer’s number are 300, 400, 500, 600, 700, 800, or 900, the valid product code numbers are 00000-00099 (100 numbers).
  • If the last 2 digits of the manufacturer’s number are 10, 20, 30, 40, 50, 60, 70, 80 or 90, the valid product code numbers are 00000-00009 (10 numbers).
  • If the manufacturer’s number does not end in zero, the valid product code numbers are 00005-00009 (5 numbers).

UPC-E requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.

The UPC-E barcode is also commonly written with 2 different bar heights. Typically, the height of the left and right guard bars are greater than the height of the bars encoding the actual barcode value, creating a notch in the barcode where the text value can be written.

Barcode Xpress provides the user with control over the size of this notch with the MakeBarcodeUPCNotchPercent property. The MakeBarcodeUPCNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by.

For example, if TextNotchPercent is 10, and the bar height is set to 100 pixels, the tall bars (left and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.

See Also
MakeBarcodeBarSize Property
MakeBarcodeBWidth Property
MakeBarcodeUPCNotchPercent Property
Checksums
Supported Barcode Types


Glossary

Accusoft.BarcodeXpress10.ActiveX
Glossary
Barcode Xpress 10 for ActiveX - User Guide > Concepts > Glossary

D

DDB

Device Dependent Bitmap.

DIB

Device Independent Bitmap.

M

Module Size
A module is the smallest unit in a barcode symbology. In 1D and PDF417 barcodes it is the width of the smallest bar in the barcode pattern. In DataMatrix and QRcode, it is a square area defining one bit of a code word.

Q

Quiet Zone
An area of uniform background surrounding a bar code. If the barcode ink color is black and the background white, then a white region around the barcode is the quiet zone. Quiet zones are required for accurate recognition.

T

Thread-safe
An application using this component can use multiple controls running in the same process where they don't interfere with each other. The thread creating the control owns the control and is the only thread that can interact with it.

U

UI (User Interface)
The controls or API provided for user interaction with an application or component.

Unicode
A character set that can support a wide range of international characters. Unicode requires 16-bits to encode a character, unlike ASCII, which requires only 8, but supports only a small subset of characters beyond Latin.


How To

Accusoft.BarcodeXpress10.ActiveX
How To
Barcode Xpress 10 for ActiveX - User Guide > How To

The How To section provides information on:

  • Acquire an Image for Barcode Recognition
  • Recognize a Barcode
  • Access Results
  • Create a Barcode
  • Debug Your Application


Acquire an Image for Barcode Recognition

Accusoft.BarcodeXpress10.ActiveX
Acquire an Image for Barcode Recognition
Barcode Xpress 10 for ActiveX - User Guide > How To > Acquire an Image for Barcode Recognition

Image Options

Barcode Xpress works with 1-bit black and white images, 8-bit grayscale images, and 24-bit color images. To convert other image formats use the ImagXpress ColorDepth method or other methods with the included ImagXpress component. If you use ImageGear, use the ConvertColorSpace method.

C++ Example - Minimum C++ code to load an image using Accusoft.ImagXpress12.ActiveX
Copy Code
      //load a 1BPP, black and white image into the ImagXpress control
      m_pImagXpress->FileName = “C:\\testbarcodeimage.tif”;

      // Copy the hDib
      long hDib = m_pImagXpress->CopyDIB();

      // Analyze the barcode
      m_pBarcodeXpress->AnalyzehDib(hDib);

      // Free the hDib
      GlobalFree(LongToHandle(hDib));
VB Example - Minimum VB6 code to load an image using Accusoft.ImagXpress12.ActiveX
Copy Code
    ' Load the image
    ImagXpress1.FileName = "C:\testbarcodeimage.tif"

    ' Copy the hDib
    hDib = ImagXpress1.CopyDIB

    ' Analyze the barcode
    BarcodeXpress1.AnalyzehDib hDib

    ' Free the hDib
    GlobalFree hDib
C++ Example - Minimum C++ code to load an image using ImageGear
Copy Code
      // Create an ImageGear page
      GearCORELib::IIGPagePtr page;
      page = g_pIGCore->CreatePage();

      // Load the page from file
      m_pIGFormats->LoadPageFromFile(page, fileName, 0);

      // Export the page to a dib
      GearCORELib::IIGPlatformDIBPtr platformDib = page->PlatformDIBExport(GearCORELib::IG_DIB_EXPORT_FORMAT_WINDOWS, false, 0, 0, page->ImageWidth, page->ImageHeight, 0);
      HGLOBAL hDib = LongToHandle(platformDib->DIBPtrGet());

      // Read the barcodes
      pBarcodeXpress->AnalyzehDib(HandleToLong(hDib));
VB Example - Minimum VB6 code to load an image using ImageGear
Copy Code
    ' Load the Page
    Dim page As New IGPage
    IGFormatsCtl1.LoadPageFromFile page, fileName, 0

    ' Export the platform dib from the page
    Dim platformDib As IGPlatformDIB
    Set platformDib = page.PlatformDIBExport(IG_DIB_EXPORT_FORMAT_WINDOWS, False, 0, 0, page.ImageWidth, page.ImageHeight, 0)

    ' Get the dib handle
    Dim hDib As Long
    hDib = platformDib.DIBPtrGet

    ' Read the barcodes on the image
    bcx8.AnalyzehDib hDib

See the Recognize a Barcode topic for information on recognition.

See the Overview of Barcode Xpress topic for code examples on acquiring barcodes.

See Also
Recognize a Barcode on an Image
Debug Your Application
Access Results
Overview


Recognize a Barcode

Accusoft.BarcodeXpress10.ActiveX
Recognize a Barcode
Barcode Xpress 10 for ActiveX - User Guide > How To > Recognize a Barcode

Once your image has been acquired and pre-image processing has been performed to recognize the barcode on the image, the following properties must first be set:

Checks Before Barcode Recognition

If possible, the following properties should be set before the detection process is started:
  • BarcodeInkColor – The default barcode color is black.
  • BarcodeOrientation – The default barcode orientation is BC_OrientationBoth.
  • BarcodeType – The type of barcodes you want to detect. The default is all 1D barcodes.
    See the BarcodeTypes property for specific identification of barcode types that must be explicitly set to be recognized, and how to speed up barcode detection for known barcode types.
    If the barcode image quality is poor (i.e. less than 300 dpi), set the BarcodeTypes property to the specific barcode type in order to obtain accurate results.
  • MaxBarcodes – Sets the maximum number of barcodes that will be detected. The default is 100.
    If you know how many barcodes you expect to find, set the MaxBarcodes to that value, and Barcode Xpress will stop looking once that number is found.

Once these properties are set, you are ready to recognize the barcode on the image.

Barcode Xpress detects all barcodes in an image and gives you complete details about them.

If you know where on the image the barcodes reside, setting the ReaderAreaHeight, ReaderAreaWidth, ReaderAreaX and ReaderAreaY values to define a smaller rectangular area on your image will speed up processing. By default these values are set to 0 which tells Barcode Xpress to search the entire image automatically.

Supported Barcodes for Recognition

Barcodes supported for recognition are listed in the Overview of Barcode Xpress. The edition you have enabled will determine exact barcodes.

Once the BarcodeType has been determined as stated in the Acquire Image topic, use the following methods and properties to recognize the barcode.

Methods

Method | Description
AnalyzehDib | Detects a barcode within the given DIB.
AnalyzeIPicture | Detects a barcode within the given Picture.

Properties

Property | Description
BarcodeInkColor | Gets and sets the ink color of barcodes to search for in recognition.
BarcodeOrientation | Gets and sets the orientation of barcodes to search for in recognition.
BarcodeType | Gets and sets the type of barcodes to search for during recognition.
MaxBarcodes | Gets and sets the maximum number of barcodes to recognize.
Picture | Gets and sets a bitmap for use in barcode recognition.
ReaderAreaHeight | Gets and sets the height of the area for the recognition engine to analyze.
ReaderAreaWidth | Gets and sets the width of the area for the recognition engine to analyze.
ReaderAreaX | Gets and sets the x coordinate of the area for the recognition engine to analyze.
ReaderAreaY | Gets and sets the y coordinate of the area for the recognition engine to analyze.

See the Overview of Barcode Xpress topic for code examples on recognizing barcodes.

See the Acquire an Image for Barcode Xpress for more code examples.

To obtain the results after analyzing the barcode on an image, See the Access Results topic.

See Also
Acquire Image for Barcode Recognition
Access Results
Overview


Access Results

Accusoft.BarcodeXpress10.ActiveX
Access Results
Barcode Xpress 10 for ActiveX - User Guide > How To > Access Results

Get Barcode Results

Methods

Method | Description
GetBarcode | Returns the result properties with data of the given barcode index.
GetBarcodeResultDataValue | Gets the BarcodeResult as an array of bytes.
GetMakeBarcodeDataValue | Returns the barcode value as an array of bytes.

Properties

Property | Description
BarcodeResult | Gets the string value of the recognized barcode.
Confidence | Gets the confidence of the barcode that was recognized.
BarcodeCodeName | Gets the name of the recognized barcode.
BarcodeOrientation | Gets and sets the orientation of barcodes to search for in recognition.
BarcodeH | Gets the height of the image area of the recognized barcode.
BarcodeW | Gets the width of the image area of the recognized barcode.
BarcodeAppendCheckSum | Gets and sets a value which determines if a checksum value is appended to the barcode during recognition.
BarcodeResultStyle | Gets the numeration type of the recognized barcode.
BarcodeSkew | Gets the angle of the recognized barcode.
ChecksumCharCount | Gets the number of characters in the recognized checksum.
ChecksumOK | Gets a check if there is a valid checksum value for the recognized barcode.
NumBarcodes | Gets the number of barcodes recognized.

Order of Results

Since Barcode Xpress can return multiple barcode results from a single scan, the detected barcode results (both solved and unsolved) will be sorted using the following criteria. Note that all solved barcodes will be ordered before unsolved barcodes.

  1. First, the confidence factor is used to sort the barcode results from highest confidence to lowest. The Confidence property gets the confidence of the barcode that was recognized.
  2. Next, for any barcodes with the same confidence, they will then be sorted by their location, from top to bottom, then left to right.
VB - Example code to get multiple barcode results (in an array)
Copy Code
'Sort the results top to bottom
        Dim BarcodeArray() As BarcodeInfo
        Redim BarcodeArray(0 To BarcodeXpress1.NumBarcodes - 1)
        ' fill the user type array
        For i = 0 To BarcodeXpress1.NumBarcodes - 1
            BarcodeXpress1.GetBarcode i
            BarcodeArray(i).CodeName = BarcodeXpress1.BarcodeCodeName
            BarcodeArray(i).result = BarcodeXpress1.BarcodeResult
            BarcodeArray(i).CheckSumOK = BarcodeXpress1.CheckSumOK
            BarcodeArray(i).Confidence = BarcodeXpress1.Confidence
            BarcodeArray(i).Length = BarcodeXpress1.ResultLen
            BarcodeArray(i).X = BarcodeXpress1.BarcodeX
            BarcodeArray(i).Y = BarcodeXpress1.BarcodeY
            BarcodeArray(i).H = BarcodeXpress1.BarcodeH
            BarcodeArray(i).W = BarcodeXpress1.BarcodeW
        Next i
        ' actual sort results top to bottom
        Dim temp As BarcodeInfo
        For i = Ubound(BarcodeArray) - 1 To 0 Step -1
            For j = 0 To i
                If BarcodeArray(j).Y > BarcodeArray(j + 1).Y Then
                    temp = BarcodeArray(j + 1)
                    BarcodeArray(j + 1) = BarcodeArray(j)
                    BarcodeArray(j) = temp
                End If
            Next
        Next

1D barcode values are generally 7 bit ASCII, except for Code 128, which permits the use of 8 bit data. If you are using values above 127, you must use the GetBarcodeResultDataValue method instead of the BarcodeResult property, and your data must be encoded. Also, the reader and writer must both use the same character set.

See the Overview of Barcode Xpress topic for code examples on recognition results.

See Also
Acquire Image for Barcode Recognition
Recognize a Barcode
Overview


Create a Barcode

Accusoft.BarcodeXpress10.ActiveX
Create a Barcode
Barcode Xpress 10 for ActiveX - User Guide > How To > Create a Barcode

Basic Steps to Create a Barcode

  1. Set the Barcode Value and Type you want to create
    Property | Description
    MakeBarcodeValue | Uses a string as a valid value for the specified barcode type to create.
    MakeBarcodeStyle | Gets and sets the type of barcode to create.
  2. Call the MakeBarcode method to create a barcode
    Method | Description
    MakeBarcode | Creates a barcode determined by the previously set properties defined above.
  3. Get the resulting image

    Property

    Description

    MakeBarcodePic

    Returns a handle to the barcode (DIB) Device Independent Bitmap.

    MakeBarcodeDIB

    Returns the barcode picture.

VB Example - Minimum VB code to write using Accusoft.BarcodeXpress8.ActiveX
Copy Code
'set the required writer properties
BarcodeXpress1.MakeBarcodeStyle=BC_StyleCode39
BarcodeXpress1.MakeBarcodeValue="CODE39"

'call MakeBarcode to create barcode
BarcodeXpress1.MakeBarcode

'get the resulting image from MakeBarcodeDIB (or MakeBarcodePic) property
ImagXpress1.hDib = BarcodeXpress1.MakeBarcodeDIB

1D barcode values are generally 7 bit ASCII, except for Code 128, which permits the use of 8 bit data. If you are using values above 127, you must use the SetMakeBarcodeDataValue method instead of the MakeBarcodeValue property, and your data must be encoded. Also, the reader and writer must both use the same character set.

See the Overview of Barcode Xpress topic for more code examples on writing barcodes.

Barcode Xpress provides many additional methods and properties to use in barcode creation. See the Accusoft BarcodeXpress namespace topic for API information on methods and properties.

See Also
Debug Your Application
Overview


Debug Your Application

Accusoft.BarcodeXpress10.ActiveX
Debug Your Application
Barcode Xpress 10 for ActiveX - User Guide > How To > Debug Your Application

Because debugging and writing debug information to a log file is time consuming and expensive, Barcode Xpress provides the ability to control the level of information written to the debug log as well as the ability to turn off writing to a file completely.

Use the objects below to adjust the settings of your debugging, event handling, memory and IDispose for optimal performance.

Control Debugging Information

  • Debug - Turns on or off the ability to write to the debug log file.
  • DebugLogFile - A filename which stores the debug log information.
  • DebugErrorLevel - Controls the amount of information that is written to the debug log file.
    When DebugErrorLevel is set to Detailed, Barcode Xpress will log most of your calls to the component including the occurrence of exceptions, the result of most major operations and the operation of each event it raises.

Troubleshooting

  • Color or Grayscale Images - Barcode Xpress works with 1, 8, or 24-bit images. To convert other formats, use the ColorDepth or other methods with the included ImagXpress component.
  • Due to poor image quality, not able to read Barcodes when you know they exist - There is no set process for cleanup of images. Since literally a single pixel may make a difference for recognition results, what may work on one image for cleanup, may not work on another. The ScanFix component, which is sold separately, can perform various clean-up operations including SmoothandZoom, Dilation, and Erosion which all assist in recognition of the barcodes, but there is no set order in which to perform these operations that will ensure each image barcode will be detected. All ScanFix Xpress (sold separately) cleanup operations are very fast, so an option to consider is performing multiple operations and then retrying recognition. Some image clean-up operations can also be found in ImagXpress.
  • Issues with barcode recognition - Some reasons why your barcode may not be detected could be due to poor resolution, resolutions of horizontal and vertical are not the same (such as a faxed image), the barcode wasn't made correctly according to the standard, bad scanning quality, bad image quality (see bullet two above), or the barcode is a type that Barcode Xpress doesn't read. Attempt to solve any image quality, resolution, and scanning properties using the included ImagXpress component. ImagXpress can be used to set both horizontal and vertical resolutions the same.
  • Confidence values - Confidence values are programmed into the component. Barcode Xpress is conservative on confidence values compared to other competitive components so the developer understands when a barcode may not be 100% accurate. This ensures the barcode recognized is producing accurate data.

Error Codes

Listed below is a cross reference of error codes and their corresponding descriptions.

Error Codes | Error | Description
9000 | OUTOFMEMORY | There is not enough memory to continue the operation.
9001 | INVALIDPARAMETER | Invalid parameter.
9002 | PARAMETEROUTOFRANGE | Parameter out of range.
9003 | INVALIDBITMAP | Invalid bitmap.
9004 | UNABLEREADBITMAP | Unable to read bitmap.
9005 | UNSUPPORTEDBCTYPE | Unsupported barcode type.
9006 | INVALIDINDEX | Invalid index.
9007 | INVALIDBARCODEVALUE | Invalid barcode value set.
9008 | INSUFFICIENTWIDTH | Insufficient barcode width.
9009 | INSUFFICIENTHEIGHT | Insufficient barcode height.
9010 | UNABLECREATEUPCE | Unable to create UPC-E Barcode.
9011 | INVALIDLICENSE | Invalid license.
9012 | TIMEOUT | Timeout Error.
9013 | IMAGENOTAVAILABLE | Image not available.
9014 | INTERNALERROR | Internal error.
9015 | INVALIDAREA | Area is outside required range.
9016 | UNABLEREADCBBITMAP | A bitmap could not be retrieved from the clipboard.
9017 | INVALIDDBDIMENSION | The clipboard image has invalid dimensions.
9018 | UNABLEOPENCLIPBOARD | The clipboard could not be opened.
9019 | HDIBNOTSET | The hDIB property was not set. Please set it or adjust the ImageSource property.
9020 | PICTURENOTSET | The Picture property was not set. Please set it or adjust the ImageSource property.
9100 | StatusPDF417EncodingError | PDF417 encoding error.
9101 | StatusRowCountError | Invalid row count for the barcode type.
9102 | StatusColumnCountError | Invalid column count for the barcode type.
9104 | StatusLargeDataError | Barcode data too large for the barcode symbol size.
9105 | StatusInvalidErrorCorrection | Error correction level is invalid.
9106 | StatusErrorCorrectTooHigh | Error correction level is too high, will not fit in barcode symbol with the data.
9200 | StreamParseException | An error was encountered while parsing the stream data in the ReadFromStream method.
See Also
Getting Support


Barcode Xpress 10 for ActiveX - API Reference

Accusoft.BarcodeXpress10.ActiveX
Barcode Xpress 10 for ActiveX - API Reference

The API Reference provides information about all Barcode Xpress public API members.

  • AccusoftBarcodeXpress10 ActiveX DLL


Project Overview

Accusoft BarcodeXpress v10.0
Project Overview
Description
Accusoft BarcodeXpress v10.0
Classes
Class Module | Description
BarcodeXpress | BarcodeXpress Class
Public Enumerations
Enumeration | Description
BC_AustralianPostCustomDecodeType | The Australian Post 4 State barcode supports a custom section in both the Customer Barcode 2 and Customer Barcode 3 formats.
BC_BarcodeStyle | Specifies a barcode type.
BC_BarcodeType | Option value which determines the barcode type.
BC_ErrorLevels | Defines the amount of error information to write to the DebugLogFile.
BC_EvaluationMode | The choice of evaluation mode for the component.
BC_ImageSource | Specifies the source from which to load the bitmap for barcode recognition.
BC_InkColor | Specifies the ink color for barcodes search.
BC_ModeTransitionType |
BC_Orientation | Specifies the orientation for the barcode search.
BC_ShowText | Specifies the text to display adjacent to the created barcode.

©2014. Accusoft Corporation. All Rights Reserved.


BarcodeXpress Object

BarcodeXpress Object
Members
AccusoftBarcodeXpress10 ActiveX DLL : BarcodeXpress Object
Description
BarcodeXpress Class
Object Model
BarcodeXpress Object
Example

See Also

BarcodeXpress Members

©2014. Accusoft Corporation. All Rights Reserved.


BarcodeXpress Object Members

BarcodeXpress Object Members
Overview
AccusoftBarcodeXpress10 ActiveX DLL : BarcodeXpress Object
Public Methods
Public Method AboutBox | Displays a dialog box that contains the Barcode Xpress version, build, and copyright information.
Public Method AnalyzeBarcode | This method has been deprecated. Use the AnalyzehDib and AnalyzeIPicture methods instead.
Public Method AnalyzeBC | This method has been deprecated. Use the AnalyzehDib and AnalyzeIPicture methods instead.
Public Method AnalyzehDib | This method detects a barcode within the given DIB (Device Independent Bitmap).
Public Method AnalyzeIPicture | This method detects a barcode within the given Picture.
Public Method GetBarcode | Returns the data for the barcode found at the specified index value within the array returned by AnalyzeDIB.
Public Method GetBarcodeResultDataValue | Gets the BarcodeResult as an array of bytes.
Public Method GetMakeBarcodeDataValue | Returns the barcode value as an array of bytes.
Public Method GetModeTransition | Gets the particular mode-transition associated with a barcode result.
Public Method MakeBarcode | This method creates a barcode.
Public Method PrintBarcode | Prints a barcode to a printer Device Context (DC).
Public Method ReadFromStream | Reads a specially-formatted stream and places the values into properties of this object.
Public Method SetCtlFontName | This method sets the font name.
Public Method SetCtlFontSize | Sets the font size.
Public Method SetCtlFontStyle | Sets the font style.
Public Method SetCtlOFontName | Sets the font name used to display the UPC values that appear outside of the left and right guard bars.
Public Method SetCtlOFontSize | Sets the font size used to display the UPC values that appear outside of the left and right guard bars.
Public Method SetCtlOFontStyle | Sets the font style used to display the UPC values that appear outside of the left and right guard bars.
Public Method SetMakeBarcodeDataValue | Sets the barcode value as an array of bytes.
Public Method SetOEMLicenseKey | Sets the OEM license key required by platinum runtime licensing.
Public Method SetSolutionKey | Sets the solution key required by runtime licensing.
Public Method SetSolutionName | Sets the solution name required by runtime licensing.
Public Method WriteToStream | Writes some properties of this object to a specially-formatted stream.
Public Properties
Public Property AustralianPostCustomDecodeMode | The method to be used in decoding the Custom section of the Australian Post barcode
Public Property BarcodeAppendCheckSum | Append checksum value to the barcode value in recognition.
Public Property BarcodeCap | Returns the barcode capability and performance for the system.
Public Property BarcodeCodeName | Name of the recognized barcode.
Public Property BarcodeH | Height of the image area of the recognized barcode.
Public Property BarcodeIncludeControlCharacters | Insert control characters into the barcode value
Public Property BarcodeInkColor | Ink color of barcodes to search for in recognition.
Public Property BarcodeOrientation | Orientation of barcodes to search for in recognition.
Public Property BarcodeResult | String value of the recognized barcode.
Public Property BarcodeResultStyle | Enumeration type of the recognized barcode.
Public Property BarcodeSkew | Angle of the recognized barcode.
Public Property BarcodeType | Type of barcodes to search for in recognition.
Public Property BarcodeW | Width of the image area of the recognized barcode.
Public Property BarcodeX | X-Coordinate of the image area of the recognized barcode.
Public Property BarcodeX1 | X-Coordinate of the top, left point of the recognized barcode.
Public Property BarcodeX2 | X-Coordinate of the top, right point of the recognized barcode.
Public Property BarcodeX3 | X-Coordinate of the bottom, right point of the recognized barcode.
Public Property BarcodeX4 | X-Coordinate of the bottom, left point of the recognized barcode.
Public Property BarcodeY | Y-Coordinate of the image area of the recognized barcode.
Public Property BarcodeY1 | Y-Coordinate of the top, left point of the recognized barcode.
Public Property BarcodeY2 | Y-Coordinate of the top, right point of the recognized barcode.
Public Property BarcodeY3 | Y-Coordinate of the bottom, right point of the recognized barcode.
Public Property BarcodeY4 | Y-Coordinate of the bottom, left point of the recognized barcode.
Public Property ChecksumCharCount | Number of characters in the recognized checksum.
Public Property ChecksumOK | Check if there is a valid checksum value for the recognized barcode.
Public Property Confidence | Confidence of the barcode that was recognized.
Public Property Debug | Specifies the state of debug logging for the component.
Public Property DebugErrorLevel | Specifies the level of error information in the debug log.
Public Property DebugLogFile | Contains the full path name of the log file.
Public Property ErrorCode | Returns the number value of the last error.
Public Property ErrorDescription | Gets a description of the error for this object.
Public Property ErrorLevel | Deprecated, use DebugErrorLevel. Specifies the level of error information in the debug log.
Public Property EvaluationMode | If the control is using a trial license, this property determines the behavior of the control to be either display of nag screens or timeouts of the control.
Public Property Font | Font of the barcode value written as text adjacent to the barcode being created.
Public Property hDIB | This property has been deprecated and replaced by the AnalyzehDib method.
Public Property ImageSource | This property has been deprecated and replaced by the AnalyzehDib and AnalyzeIPicture methods.
Public Property MakeBarcodeAdjustBarSize | Allows for dynamic setting of the width of the bars when creating a barcode.
Public Property MakeBarcodeAutoSize | Allows for dynamic sizing of the image when creating a barcode.
Public Property MakeBarcodeBarSize | Minimum width of the bars when creating a barcode.
Public Property MakeBarcodeBHeight | Sets the amount of white space on the top and bottom of the created barcode.
Public Property MakeBarcodeBWidth | Sets the amount of white space to the right and left of the created barcode.
Public Property MakeBarcodeCBarSize | Returns the width of a single width bar used to create the barcode.
Public Property MakeBarcodeColumns | Number of columns to create in a 2D barcode
Public Property MakeBarcodeColumnsCreated | Number of columns created in the barcode
Public Property MakeBarcodeDataValueLength | Gets the length of the current barcode data
Public Property MakeBarcodeDIB | Returns the barcode picture.
Public Property MakeBarcodeErrorCorrectionLevel | Error correction level to using in a 2D barcode, ignored if not supported by the barcode type
Public Property MakeBarcodeErrorCorrectionLevelUsed | Error correction level used in the created barcode
Public Property MakeBarcodeHeight | Height of the new image in which the created barcode will be drawn.
Public Property MakeBarcodeMinHeight | Minimum height of the bars when creating a barcode.
Public Property MakeBarcodePic | Returns a handle to the barcode Device Independent Bitmap.
Public Property MakeBarcodeRHeight | Returns the height of the image needed to create the barcode.
Public Property MakeBarcodeRows | Number of rows to be created in a 2D barcode
Public Property MakeBarcodeRowsCreated | Number of rows created in the barcode
Public Property MakeBarcodeRWidth | Returns the width of the image needed to create the barcode.
Public Property MakeBarcodeShowValue | Determines whether the barcode value is written as text adjacent to the created barcode.
Public Property MakeBarcodeStyle | Type of barcode to create.
Public Property MakeBarcodeUPCNotchPercent | Notch percent of the barcode for the text value. Used by supported barcodes only (ie. UPC-A, EAN13), otherwise this value is ignored.
Public Property MakeBarcodeValue | String value of the barcode being created.
Public Property MakeBarcodeValueGap | Sets the amount of gap between the text and barcode when creating a barcode.
Public Property MakeBarcodeValueLRGap | Sets the vertical offset of outside text. Used by supported barcodes only (ie. UPC-A, EAN13), otherwise this value is ignored.
Public Property MakeBarcodeValueOFont | Sets the font used to display the UPC values that appear outside of the left and right guard bars.
Public Property MakeBarcodeValueOGap | Sets the amount of gap between the outside text and barcode when creating a barcode. Used by supported barcodes only (ie. UPC-A, EAN13), otherwise this value is ignored.
Public Property MakeBarcodeWidth | Width of the new image in which the created barcode will be drawn.
Public Property MaxBarcodes | Maximum number of barcodes to recognize. Processing will halt after this number of barcodes have been found.
Public Property MinimumBarcodeSize | Minimum barcode size required to return a valid result.
Public Property ModeTransitionIndex | The index in the barcode value for a previously retrieved mode-transition.
Public Property ModeTransitionType | The type of transition associated with a previously retrieved mode-transition.
Public Property NumBarcodes | Number of barcodes recognized.
Public Property NumModeTransitions | The number of mode-transitions present in a barcode result.
Public Property Picture | This property has been deprecated and replaced by using the AnalyzeIPicture method.
Public Property RaiseExceptions | Determines if errors are raised as exceptions in the application.
Public Property ReaderAreaHeight | The height, in pixels, of the region of interest.
Public Property ReaderAreaWidth | The width, in pixels, of the region of interest.
Public Property ReaderAreaX | The left edge coordinate, in pixels, of the region of interest.
Public Property ReaderAreaY | The top edge coordinate, in pixels, of the region of interest.
Public Property ReaderScanDistance | Distance between scans when searching for 1D barcodes
Public Property ResultLen | Length of the result string.
Public Property ReturnPossibleBarcodes | Include possible barcodes in the result list.
Public Property SSError | This property has been deprecated and replaced by the ErrorCode property.
Public Property SSErrorMsg | This property has been deprecated and replaced by the ErrorDescription property.
Public Property WriteChecksumChar | Sets the checksum write flag for barcodes that optionally use checksums.
See Also

BarcodeXpress Object

©2014. Accusoft Corporation. All Rights Reserved.


AboutBox Method

AboutBox Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : AboutBox Method
Description
Displays a dialog box that contains the Barcode Xpress version, build, and copyright information.
Syntax
Visual Basic
Public Sub AboutBox()
Remarks
This method displays an about box for the component. It includes useful information, such as the component name, dll name, build number, copyright dates, and links to Accusoft website.
See Also

BarcodeXpress Object | BarcodeXpress Members


AnalyzeBarcode Method

AnalyzeBarcode Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : AnalyzeBarcode Method
The left edge coordinate, in pixels, of the region of interest.
The top edge coordinate, in pixels, of the region of interest.
The width, in pixels, of the region of interest.
The height, in pixels, of the region of interest.
Description
This method has been deprecated. Use the AnalyzehDib and AnalyzeIPicture methods instead.
Syntax
Visual Basic
Public Sub AnalyzeBarcode( _
   Optional ByVal X As Variant, _
   Optional ByVal Y As Variant, _
   Optional ByVal Width As Variant, _
   Optional ByVal Height As Variant _
)
Parameters
X
The left edge coordinate, in pixels, of the region of interest.
Y
The top edge coordinate, in pixels, of the region of interest.
Width
The width, in pixels, of the region of interest.
Height
The height, in pixels, of the region of interest.
Remarks

This method has been deprecated. Use the AnalyzehDib and AnalyzeIPicture methods instead.

Note: Barcode area parameters are optional.

The AnalyzeBarcode method uses the ImageSource property to determine the source of the bitmap.

The AnalyzeBarcode method analyzes the entire bitmap unless a search region is defined by the input parameters. The analysis is faster if a search region is defined. If it is desired to search the entire image, the input parameters can be ignored in containers that support this. (ie Visual Basic). In containers that require the input parameters to be present, simply set all input parameters (X, Y, Width and Height) to zero.

Note: If the bitmap used for recognition is a DIB defined by the hDIB property, it is the responsibility of the caller to free this resource when analysis is complete, and the DIB is no longer needed.

See Also


AnalyzeBC Method

AnalyzeBC Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : AnalyzeBC Method
The left edge coordinate, in pixels, of the region of interest.
The top edge coordinate, in pixels, of the region of interest.
The width, in pixels, of the region of interest.
The height, in pixels, of the region of interest.
Description
This method has been deprecated. Use the AnalyzehDib and AnalyzeIPicture methods instead.
Syntax
Visual Basic
Public Sub AnalyzeBC( _
   ByVal X As Long, _
   ByVal Y As Long, _
   ByVal Width As Long, _
   ByVal Height As Long _
)
Parameters
X
The left edge coordinate, in pixels, of the region of interest.
Y
The top edge coordinate, in pixels, of the region of interest.
Width
The width, in pixels, of the region of interest.
Height
The height, in pixels, of the region of interest.
Remarks

This method has been deprecated. Use the AnalyzehDib and AnalyzeIPicture methods instead.

Note: Barcode area parameters are required.

The AnalyzeBC method uses the ImageSource property to determine the source of the bitmap.

The AnalyzeBC method is identical to the AnalyzeBarcode method except that the parameters are long data types and they are not optional. If it is desired to search the entire image, all input parameters (X, Y, Width and height) must be set to zero.

If the bitmap used for recognition is a DIB defined by the hDIB property, it is the responsibility of the caller to free this resource when analysis is complete, and the DIB is no longer needed.

See Also


AnalyzehDib Method

AnalyzehDib Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : AnalyzehDib Method
A long which represents a handle to a DIB containing the barcode to be analyzed.
Description
This method detects a barcode within the given DIB (Device Independent Bitmap).
Syntax
Visual Basic
Public Sub AnalyzehDib( _
   ByVal hDIB As Long _
)
Parameters
hDIB
A long which represents a handle to a DIB containing the barcode to be analyzed.
Remarks

The AnalyzehDib method is used for recognition of a barcode on the given hDIB image.

The DIB must be a 1-bit monochrome bitmap.

The ReaderAreaX, ReaderAreaY, ReaderAreaWidth, and ReaderAreaHeight are used to create the rectangular area to be analyzed during recognition. If these properties are all set to 0, then the entire image is automatically searched.

It is the responsibility of the caller to free this resource when analysis is complete and the DIB is no longer needed.

See Also


AnalyzeIPicture Method

AnalyzeIPicture Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : AnalyzeIPicture Method
A Picture object which contains the barcode to analyze.
Description
This method detects a barcode within the given Picture.
Syntax
Visual Basic
Public Sub AnalyzeIPicture( _
   ByVal Picture As Picture _
)
Parameters
Picture
A Picture object which contains the barcode to analyze.
Remarks

The given Picture can be from a Form object, PictureBox control, Image control (Visual Basic), or the Picture property of another Accusoft control.

The ReaderAreaX, ReaderAreaY, ReaderAreaWidth, and ReaderAreaHeight are used to create the rectangular area to be analyzed during recognition. If these properties are all set to 0, then the entire image is automatically searched.

See Also


GetBarcode Method

GetBarcode Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : GetBarcode Method
An integer value which represents the zero-based index number of the recognized barcode.
Description
Returns the data for the barcode found at the specified index value within the array returned by AnalyzeDIB.
Syntax
Visual Basic
Public Sub GetBarcode( _
   ByVal BarcodeNum As Integer _
)
Parameters
BarcodeNum
An integer value which represents the zero-based index number of the recognized barcode.
Remarks

Valid values are from 0 to NumBarcodes -1.

The GetBarcode method should be called after the AnalyzehDib or AnalyzeIPicture method has been called, and barcodes were found.

Since Barcode Xpress can return multiple barcode results from a single scan, the detected barcode results (both solved and unsolved, with solved barcodes ordered before unsolved barcodes) will be sorted using the following criteria:

  • First, the confidence factor is used to sort the barcode results from highest confidence to lowest.
  • Next, for any barcodes with the same confidence, they will then be sorted by their location, from top to bottom, then left to right.
Example
Example - GetBarcode Results in an array
Copy Code
'Sort the results top to bottom
        Dim BarcodeArray() As BarcodeInfo
        Redim BarcodeArray(0 To BarcodeXpress1.NumBarcodes - 1)
        ' fill the user type array
        For i = 0 To BarcodeXpress1.NumBarcodes - 1
            BarcodeXpress1.GetBarcode i
            BarcodeArray(i).CodeName = BarcodeXpress1.BarcodeCodeName
            BarcodeArray(i).result = BarcodeXpress1.BarcodeResult
            BarcodeArray(i).CheckSumOK = BarcodeXpress1.CheckSumOK
            BarcodeArray(i).Confidence = BarcodeXpress1.Confidence
            BarcodeArray(i).Length = BarcodeXpress1.ResultLen
            BarcodeArray(i).X = BarcodeXpress1.BarcodeX
            BarcodeArray(i).Y = BarcodeXpress1.BarcodeY
            BarcodeArray(i).H = BarcodeXpress1.BarcodeH
            BarcodeArray(i).W = BarcodeXpress1.BarcodeW
        Next i
        ' actual sort results top to bottom
        Dim temp As BarcodeInfo
        For i = Ubound(BarcodeArray) - 1 To 0 Step -1
            For j = 0 To i
                If BarcodeArray(j).Y > BarcodeArray(j + 1).Y Then
                    temp = BarcodeArray(j + 1)
                    BarcodeArray(j + 1) = BarcodeArray(j)
                    BarcodeArray(j) = temp
                End If
            Next
        Next
See Also


GetBarcodeResultDataValue Method

GetBarcodeResultDataValue Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : GetBarcodeResultDataValue Method
An array of bytes to hold the barcode data.
Maximum number of bytes to place in pVal. The actual number of bytes written to pVal is returned in maxLimit.
Description
Gets the BarcodeResult as an array of bytes.
Syntax
Visual Basic
Public Sub GetBarcodeResultDataValue( _
   ByRef pVal As Byte, _
   ByRef maxLimit As Long _
)
Parameters
pVal
An array of bytes to hold the barcode data.
maxLimit
Maximum number of bytes to place in pVal. The actual number of bytes written to pVal is returned in maxLimit.
Remarks
This method retrieves the resulting value in an array of bytes from the BarcodeResult property. Use the ResultLen property to get the buffer size in bytes required to receive the barcode result data value.
See Also


GetMakeBarcodeDataValue Method

GetMakeBarcodeDataValue Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : GetMakeBarcodeDataValue Method
An array of bytes to hold the barcode data.
The maximum number of bytes to place in pValue. The actual number of bytes written to pValue is returned in maxLength.
Description
Returns the barcode value as an array of bytes.
Syntax
Visual Basic
Public Sub GetMakeBarcodeDataValue( _
   ByRef pValue As Byte, _
   ByRef maxLength As Long _
)
Parameters
pValue
An array of bytes to hold the barcode data.
maxLength
The maximum number of bytes to place in pValue. The actual number of bytes written to pValue is returned in maxLength.
Remarks

This method should be used when the barcode contains non-ASCII values (byte values of 0 and those greater than 128).

Use the MakeBarcodeDataValueLength property to get the buffer size in bytes required to receive the barcode data value.

If a barcode contains only ASCII values, use the MakeBarcodeValue property.

See Also


GetModeTransition Method

GetModeTransition Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : GetModeTransition Method
Description
Gets the particular mode-transition associated with a barcode result.
Syntax
Visual Basic
Public Sub GetModeTransition( _
   ByVal BarcodeNum As Integer, _
   ByVal TransitionNum As Long _
)
Parameters
BarcodeNum
TransitionNum
See Also


MakeBarcode Method

MakeBarcode Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcode Method
Description
This method creates a barcode.
Syntax
Visual Basic
Public Sub MakeBarcode()
Remarks

The barcode style and the barcode value are the two properties required to set when creating a barcode. The barcode style is determined by the MakeBarcodeStyle property. The barcode value is determined by the MakeBarcodeValue property.

The MakeBarcode method analyzes the barcode value to determine if it is correct for the barcode style. If successful, the barcode bitmap can be accessed using the MakeBarcodePic and MakeBarcodeDIB properties.

Note: Barcode Xpress does not allow creation of barcodes less than two pixels in width.

See Also


PrintBarcode Method

PrintBarcode Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : PrintBarcode Method
The printer device context (DC).
The x-coordinate position of the upper, left corner of the barcode image, in printer units.
The y-coordinate position of the upper, left corner of the barcode image, in printer units.
Description
Prints a barcode to a printer Device Context (DC).
Syntax
Visual Basic
Public Sub PrintBarcode( _
   ByVal hDC As Long, _
   ByVal X As Long, _
   ByVal Y As Long _
)
Parameters
hDC
The printer device context (DC).
X
The x-coordinate position of the upper, left corner of the barcode image, in printer units.
Y
The y-coordinate position of the upper, left corner of the barcode image, in printer units.
Remarks

The printer units are pixels or dots/inch. For example, on a 300 dpi printer, setting the X and Y parameters to 300 would position the barcode one inch from the upper left side of the paper.

The barcode is printed using the resolution of the printer. This means that a barcode that looks correct (in terms of size) on a monitor (e.g. 72 dpi) might print very small depending on the resolution of the printer (e.g. 300 dpi). An easy way to compensate for this is to change the bar size (MakeBarcodeBarSize) and the barcode height (MakeBarcodeHeight) to a larger value when printing the barcode.

The PrintBarcode method is essentially the same as the MakeBarcode method, with different output. See the MakeBarcode method description for details on creating barcodes.

See Also


ReadFromStream Method

ReadFromStream Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ReadFromStream Method
A stream that the WriteToStream method created.
Description
Reads a specially-formatted stream and places the values into properties of this object.
Syntax
Visual Basic
Public Sub ReadFromStream( _
   ByVal stream As String _
)
Parameters
stream
A stream that the WriteToStream method created.
Remarks

This method reads a stream, which contains the values of properties for this object. It provides a convenient way to store and retrieve the values and preserves as much future compatibility as possible.

This method should read any stream that the WriteToStream method created, even if an older version of this component created it. This method will fail to read a string that a newer version of this component created.

Note: You should retrieve the value for the stream from the Construction property of a FormDirector FormDefinitionFile object. When the Type property of that object is "BarcodeXpress", the Content property contains a string that you should send to this method.

See Also


SetCtlFontName Method

SetCtlFontName Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetCtlFontName Method
A string representing the name of the font.
Description
This method sets the font name.
Syntax
Visual Basic
Public Sub SetCtlFontName( _
   ByVal Name As String _
)
Parameters
Name
A string representing the name of the font.
Remarks

Sets the font family name.

See Also


SetCtlFontSize Method

SetCtlFontSize Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetCtlFontSize Method
A long value which represents the size of the font, in points.
Description
Sets the font size.
Syntax
Visual Basic
Public Sub SetCtlFontSize( _
   ByVal Size As Long _
)
Parameters
Size
A long value which represents the size of the font, in points.
Remarks

Sets the font size.

See Also


SetCtlFontStyle Method

SetCtlFontStyle Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetCtlFontStyle Method

An integer value which represents the style of font:

0 - Bold

1 - Italic

2 - Underline

3 - Strikethrough

A long value which indicates if the style is set (1) or not set (0). Toggles the style on or off.
Description
Sets the font style.
Syntax
Visual Basic
Public Sub SetCtlFontStyle( _
   ByVal Style As Integer, _
   ByVal Value As Long _
)
Parameters
Style

An integer value which represents the style of font:

0 - Bold

1 - Italic

2 - Underline

3 - Strikethrough

Value
A long value which indicates if the style is set (1) or not set (0). Toggles the style on or off.
Remarks
Sets the font size.
See Also


SetCtlOFontName Method

SetCtlOFontName Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetCtlOFontName Method
A string representing the name of the font.
Description
Sets the font name used to display the UPC values that appear outside of the left and right guard bars.
Syntax
Visual Basic
Public Sub SetCtlOFontName( _
   ByVal Name As String _
)
Parameters
Name
A string representing the name of the font.
Remarks

The default value is Arial.

Outside value text is only written for certain barcodes where this is standard. The barcode types that support outside text are UPC-A , UPC-E, EAN-8, and EAN-13. For all other types, this value is ignored.

See Also


SetCtlOFontSize Method

SetCtlOFontSize Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetCtlOFontSize Method
A long value which represents the size of the font, in points.
Description
Sets the font size used to display the UPC values that appear outside of the left and right guard bars.
Syntax
Visual Basic
Public Sub SetCtlOFontSize( _
   ByVal Size As Long _
)
Parameters
Size
A long value which represents the size of the font, in points.
Remarks

The default value is 16.

Outside value text is only written for certain barcodes where this is standard. The barcode types that support outside text are UPC-A, UPC-E, EAN-8, and EAN-13. For all other types, this value is ignored.

See Also


SetCtlOFontStyle Method

SetCtlOFontStyle Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetCtlOFontStyle Method

An integer value which represents the style of the font:

0 - Bold

1 - Italic

2 - Underline

3 - Strikethrough

A long value which indicates if the style is set (1) or not set (0). Toggles the style on or off.
Description
Sets the font style used to display the UPC values that appear outside of the left and right guard bars.
Syntax
Visual Basic
Public Sub SetCtlOFontStyle( _
   ByVal Style As Integer, _
   ByVal Value As Long _
)
Parameters
Style

An integer value which represents the style of the font:

0 - Bold

1 - Italic

2 - Underline

3 - Strikethrough

Value
A long value which indicates if the style is set (1) or not set (0). Toggles the style on or off.
Remarks

The default value is ?

Outside value text is only written for certain barcodes where this is standard. The barcode types that support outside text are UPC-A, UPC-E, EAN-8, and EAN-13. For all other types, this value is ignored.

See Also


SetMakeBarcodeDataValue Method

SetMakeBarcodeDataValue Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetMakeBarcodeDataValue Method
An array of bytes to hold the barcode data.
A long value which represents the number of bytes in pValue.
Description
Sets the barcode value as an array of bytes.
Syntax
Visual Basic
Public Sub SetMakeBarcodeDataValue( _
   ByRef pValue As Byte, _
   ByVal length As Long _
)
Parameters
pValue
An array of bytes to hold the barcode data.
length
A long value which represents the number of bytes in pValue.
Remarks

This method should be used when the barcode value contains non-ASCII values (byte values of 0 and those greater than 128).

Barcode data that contains only ASCII values can be set with the MakeBarcodeValue property.

See Also


SetOEMLicenseKey Method

SetOEMLicenseKey Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetOEMLicenseKey Method
The OEM license key required for OEM licensing.
Description
Sets the OEM license key required by platinum runtime licensing.
Syntax
Visual Basic
Public Sub SetOEMLicenseKey( _
   ByVal pVal As String _
)
Parameters
pVal
The OEM license key required for OEM licensing.
Remarks
When OEM runtime licenses are purchased, the OEM license key is provided in the purchase confirmation email.
See Also


SetSolutionKey Method

SetSolutionKey Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetSolutionKey Method
Unlock key 1
Unlock key 2
Unlock key 3
Unlock key 4
Description
Sets the solution key required by runtime licensing.
Syntax
Visual Basic
Public Sub SetSolutionKey( _
   ByVal PW0 As Long, _
   ByVal PW1 As Long, _
   ByVal PW2 As Long, _
   ByVal PW3 As Long _
)
Parameters
PW0
Unlock key 1
PW1
Unlock key 2
PW2
Unlock key 3
PW3
Unlock key 4
Remarks
This is the solution key required for all runtime licensing. The four integers are provided at the time of purchase of the runtime licenses along with the solution name, which is set with the SetSolutionName method.
See Also


SetSolutionName Method

SetSolutionName Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SetSolutionName Method
The solution name.
Description
Sets the solution name required by runtime licensing.
Syntax
Visual Basic
Public Sub SetSolutionName( _
   ByVal pVal As String _
)
Parameters
pVal
The solution name.
Remarks
This is the name of the runtime license solution. The solution name is provided in the purchase confirmation email when runtime licenses are purchased.
See Also


WriteToStream Method

WriteToStream Method
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : WriteToStream Method
Description
Writes some properties of this object to a specially-formatted stream.
Syntax
Visual Basic
Public Function WriteToStream() As String
Return Type
A stream that can be reloaded using the ReadFromStream method.
Remarks

This method writes certain properties of this object to a stream. The stream is intended for use only by the ReadFromStream method and its format may change in a future release of this component. However, even if the format changes, future versions of this component will be able to read streams that this method generates.

Note: You should save the stream in the Construction property of a FormDirector FormDefinitionFile object. You should set the Type to "BarcodeXpress" and the Content to the value that this method returns.

See Also


AustralianPostCustomDecodeMode Property

AustralianPostCustomDecodeMode Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : AustralianPostCustomDecodeMode Property
Description
The method to be used in decoding the Custom section of the Australian Post barcode
Property type
Read-write property
Syntax
Visual Basic
Public Property AustralianPostCustomDecodeMode As BC_AustralianPostCustomDecodeType
Return Type
The BC_AustralianPostCustomDecodeType value set.
Remarks

The default value is BC_BarStates.

This property gets and sets the Australian Post 4 State barcode custom decode mode from the BC_AustrailianPostCustomDecodeType enumeration value options.

See Also


BarcodeAppendCheckSum Property

BarcodeAppendCheckSum Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeAppendCheckSum Property
Description
Append checksum value to the barcode value in recognition.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeAppendCheckSum As Boolean
Return Type
A boolean value which is True to append a checksum value. Otherwise, False is returned.
Remarks

The default value is False.

For barcode types that require a checksum, the checksum value will be appended if True.

This property does not have any effect for barcode types which do not have a checksum or the checksum is optional.

Note: UPC and EAN barcodes always append a checksum character to the barcode results regardless of this property's value.

See Also


BarcodeCap Property

BarcodeCap Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeCap Property
Description
Returns the barcode capability and performance for the system.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeCap As String
Return Type
A string value which represents the performance and recognition time.
Remarks

The string returned by the NumBarcodes property will state the number of barcodes detected.

The BarcodeCap value is only valid after the AnalyzehDib or AnalyzeIPicture method has been invoked.

See Also


BarcodeCodeName Property

BarcodeCodeName Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeCodeName Property
Description
Name of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeCodeName As String
Return Type
A string value which represents the barcode type name of the recognized barcode.
Remarks

The current barcode is determined by the GetBarcode method.

The barcode name is the name of the barcode type (e.g. "Code39"), not the value of the barcode.

The BarcodeResult property returns the value of the barcode.

If ReturnPossibleBarcodes is True, and only a region of interest is returned in the result, then the barcode name is a null string.

See Also


BarcodeH Property

BarcodeH Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeH Property
Description
Height of the image area of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeH As Long
Return Type
A long value which represents the height.
Remarks

The current barcode is determined by the GetBarcode method.

If the barcode is skewed, the height represents the height of the rectangle surrounding the barcode.

See Also


BarcodeIncludeControlCharacters Property

BarcodeIncludeControlCharacters Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeIncludeControlCharacters Property
Description
Insert control characters into the barcode value
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeIncludeControlCharacters As Boolean
Return Type
A boolean value which is True to include barcode characters. Otherwise, False is returned.
Remarks

The default value is False.

If set to True, barcode control characters are included in the barcode read value.

This property has no effect on barcodes which do not support control characters.

Codabar barcode returns the Start and Stop characters.

See Also


BarcodeInkColor Property

BarcodeInkColor Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeInkColor Property
Description
Ink color of barcodes to search for in recognition.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeInkColor As BC_InkColor
Return Type
The BC_InkColor enumeration value set.
Remarks

The default value is BC_InkColorBlack.

The barcode recognition engine is capable of detecting barcodes in an image without any prior knowledge of the barcode color. However, you can speed up the recognition process by specifying a barcode color.

See Also


BarcodeOrientation Property

BarcodeOrientation Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeOrientation Property
Description
Orientation of barcodes to search for in recognition.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeOrientation As BC_Orientation
Return Type
The BC_Orientation enumeration value set.
Remarks

The default value is BC_OrientationBoth.

The barcode recognition engine is capable of detecting barcodes in an image without any prior knowledge of the barcode orientation. However, you can speed up the recognition process by specifying a barcode orientation.

This property applies to 1D barcodes only.

See Also


BarcodeResult Property

BarcodeResult Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeResult Property
Description
String value of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeResult As String
Return Type
A string value which represents the recognized barcode.
Remarks

The current barcode is determined by the GetBarcode method.

The BarcodeResult property returns a string value. Some barcode styles allow the encoding of binary data which will be returned in this string. Even though there may be intervening null characters, the data will be accessible out to ResultLen bytes.

See Also


BarcodeResultStyle Property

BarcodeResultStyle Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeResultStyle Property
Description
Enumeration type of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeResultStyle As BC_BarcodeStyle
Return Type
The BC_BarcodeStyle value set.
Remarks

The current barcode is determined by the GetBarcode method.

If ReturnPossibleBarcodes is True and only a region of interest is returned in the results, then the barcode style is BC_StyleUnknown.

See Also


BarcodeSkew Property

BarcodeSkew Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeSkew Property
Description
Angle of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeSkew As Long
Return Type
A long value which represents the angle of the barcode.
Remarks

The current barcode is determined by the GetBarcode method.

The skew angle is measured in degrees. 0 degrees is horizontal.

Rotation is measured counter-clockwise, so a skew angle of 90 degrees means the barcode is oriented vertically with the top of the barcode on the left side.

See Also


BarcodeType Property

BarcodeType Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeType Property
Description
Type of barcodes to search for in recognition.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeType As Long
Return Type
A long value which represents the type of barcode to search for.
Remarks

The default value is 0 (Unknown Barcode type).

By default, the barcode engine will search for all 1D barcodes. The 1D barcode set includes all types, except PatchCode, PostNet, PDF417, DataMatrix, IntelligentMail, Royal Post Mail 4-State, QRcode, Aztec, and Australian Post 4-State.

Note: If an unknown barcode type and a specified barcode type are flagged, then only the specified barcode type is searched for. For example, if you flagged both UnknownBarcode and Aztec, only Aztec is detected.

The barcode recognition engine is capable of detecting 1D barcodes in an image without any prior knowledge of the barcode type. However, you can speed up the recognition process by specifying a barcode type.

Barcode types can be combined. For example, if you want to specify UPC-A and CODE 93, set the BarcodeType property to 16384 + 1024 = 17408 (&H4400).

Valid values for BarcodeType property:

  • 0 (&H0) - The expected barcode type is unknown. All 1D barcode types will be tested.

  • 1 (&H1) - The expected barcode type is INDUSTRY 2 OF 5.

  • 2 (&H2) - The expected barcode type is INTERLEAVED 2 OF 5.

  • 4 (&H4) - The expected barcode type is IATA 2 OF 5.

  • 8 (&H8) - The expected barcode type is DATALOGIC 2 OF 5.

  • 16 (&H10) - The expected barcode type is INVERT 2 OF 5.

  • 32 (&H20) - The expected barcode type is BCD MATRIX.

  • 64 (&H40) - The expected barcode type is MATRIX 2 OF 5.

  • 128 (&H80) - The expected barcode type is CODE 32.

  • 256 (&H100) - The expected barcode type is CODE 39.

  • 512 (&H200) - The expected barcode type is CODABAR 2.

  • 1024 (&H400) - The expected barcode type is CODE 93.

  • 2048 (&H800) - The expected barcode type is CODE 128.

  • 4096 (&H1000) - The expected barcode type is EAN-13.

  • 8192 (&H2000) - The expected barcode type is EAN-8.

  • 16384 (&H4000) - The expected barcode type is UPC-A.

  • 32768 (&H8000) - The expected barcode type is UPC-E.

  • 65536 (&H10000) - The expected barcode type is ADD 5.

  • 131072 (&H20000) - The expected barcode type is ADD 2.

  • 262144 (&H40000) - The expected barcode type is UCC128/EAN-128.

  • 524288 (&H80000) - The expected barcode type is Patch Code.

  • 1048576 (&H100000) - The expected barcode type is PostNet.

  • 2097152 (&H200000) - The expected barcode type is PDF417. Note: Requires Professional Edition registration.

  • 4194304 (&H400000) - The expected barcode type is DataMatrix. Note: Requires Professional Edition registration.

  • 8388608 (&H800000) - The expected barcode type is Code 39 Extended.

  • 16777216 (&H1000000) - The expected barcode type is Code 93 Extended.

  • 33554432 (&H2000000) - The expected barcode type is QRcode. Note: Requires Professional Edition registration.

  • 67108864 (&H4000000) - The expected barcode type is Intelligent Mail.

  • 134217728 (&H8000000) - The expected barcode type is British Royal Post 4 State.

  • 268435456 (&H10000000) - The expected barcode type is Australian Post 4 State.

  • 536870912 (&H20000000) - The expected barcode type is Aztec.

  • 1073741824 (&H40000000) - The expected barcode type is GS1 DataBar.

Example

See Also


BarcodeW Property

BarcodeW Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeW Property
Description
Width of the image area of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeW As Long
Return Type
A long value which represents the width of the image area of the barcode.
Remarks

The current barcode is determined by the GetBarcode method.

If the barcode is skewed, the width represents the width of the rectangle surrounding the barcode.

See Also


BarcodeX Property

BarcodeX Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeX Property
Description
X-Coordinate of the image area of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeX As Long
Return Type
A long value which represents the image area of the barcode.
Remarks

The current barcode is determined by the GetBarcode method.

If the barcode is skewed, the horizontal starting position represents the left horizontal position of the rectangle surrounding the barcode.

See Also


BarcodeX1 Property

BarcodeX1 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeX1 Property
Description
X-Coordinate of the top, left point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeX1 As Long
Return Type
A long value which represents the x-coordinate of the top, left point.
Remarks

The current barcode is determined by the GetBarcode method.

Barcode properties X1 through X4 locate the corner points of linear 1D barcodes along the horizontal axis.

See Also


BarcodeX2 Property

BarcodeX2 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeX2 Property
Description
X-Coordinate of the top, right point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeX2 As Long
Return Type
A long value which represents the x-coordinate of the top, right point.
Remarks

The current barcode is determined by the GetBarcode method.

Barcode properties X1 through X4 locate the corner points of linear 1D barcodes along the horizontal axis.

See Also


BarcodeX3 Property

BarcodeX3 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeX3 Property
Description
X-Coordinate of the bottom, right point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeX3 As Long
Return Type
A long value which represents the x-coordinate of the bottom, right point.
Remarks

The current barcode is determined by the GetBarcode method.

Barcode properties X1 through X4 locate the corner points of linear 1D barcodes along the horizontal axis.

See Also


BarcodeX4 Property

BarcodeX4 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeX4 Property
Description
X-Coordinate of the bottom, left point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeX4 As Long
Return Type
A long value which represents the x-coordinate of the bottom, left point.
Remarks

The current barcode is determined by the GetBarcode method.

Barcode properties X1 through X4 locate the corner points of linear 1D barcodes along the horizontal axis.

See Also


BarcodeY Property

BarcodeY Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeY Property
Description
Y-Coordinate of the image area of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeY As Long
Return Type
A long value which represents the y-coordinate of the image area.
Remarks

The current barcode is determined by the GetBarcode method.

If the barcode is skewed, the horizontal starting position represents the left horizontal position of the rectangle surrounding the barcode.

See Also


BarcodeY1 Property

BarcodeY1 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeY1 Property
Description
Y-Coordinate of the top, left point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeY1 As Long
Return Type
A long value which represents the y-coordinate of the top, left point.
Remarks
The current barcode is determined by the GetBarcode method.
See Also


BarcodeY2 Property

BarcodeY2 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeY2 Property
Description
Y-Coordinate of the top, right point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeY2 As Long
Return Type
A long value which represents the y-coordinate of the top, right point.
Remarks

The current barcode is determined by the GetBarcode method.

Barcode properties X2 and Y2 through X4 and Y4 identify the remaining points, clockwise from X1, Y1.

See Also


BarcodeY3 Property

BarcodeY3 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeY3 Property
Description
Y-Coordinate of the bottom, right point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeY3 As Long
Return Type
A long value which represents the y-coordinate of the bottom, right point.
Remarks

The current barcode is determined by the GetBarcode method.

Barcode properties X2 and Y2 through X4 and Y4 identify the remaining points, clockwise from X1, Y1.

See Also


BarcodeY4 Property

BarcodeY4 Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : BarcodeY4 Property
Description
Y-Coordinate of the bottom, left point of the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property BarcodeY4 As Long
Return Type
A long value which represents the y-coordinate of the bottom, left point.
Remarks

The current barcode is determined by the GetBarcode method.

Barcode properties X2 and Y2 through X4 and Y4 identify the remaining points, clockwise from X1, Y1.

See Also


ChecksumCharCount Property

ChecksumCharCount Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ChecksumCharCount Property
Description
Number of characters in the recognized checksum.
Property type
Read-write property
Syntax
Visual Basic
Public Property ChecksumCharCount As Integer
Return Type
An integer value which represents the checksum number of characters.
Remarks

The current barcode is determined by the GetBarcode method.

If a checksum does not exist or the checksum evaluated incorrectly, then ChecksumCharCount will return 0.

See Also


ChecksumOK Property

ChecksumOK Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ChecksumOK Property
Description
Check if there is a valid checksum value for the recognized barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property ChecksumOK As Integer
Return Type
An integer value which represents if the checksum is valid.
Remarks

The current barcode is determined by the GetBarcode method.

  • For barcodes with a checksum, it returns whether the checksum is valid.
    • A value of 1 represents True, a value of 0 represents False.
  • For barcodes without a checksum, it returns False.
  • For barcodes with error correction, it returns True.
See Also


Confidence Property

Confidence Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : Confidence Property
Description
Confidence of the barcode that was recognized.
Property type
Read-write property
Syntax
Visual Basic
Public Property Confidence As Long
Return Type
A long value which represents the confidence of the barcode.
Remarks

All barcode confidence values begin at 100.

  • 1D barcodes - Confidence values are decreased as the widths of the bars vary over the barcode.
  • 2D barcodes - Confidence values decrease based on the amount of error correction used in decoding the barcode.
  • Barcodes which use checksums - If a checksum error is detected, the confidence is set to 50.

Confidence values less than 30 are considered unreadable and any data returned is not considered reliable.

See Also


Debug Property

Debug Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : Debug Property
Description
Specifies the state of debug logging for the component.
Property type
Read-write property
Syntax
Visual Basic
Public Property Debug As Boolean
Return Type
A boolean value which is True if logging is turned on. Otherwise, False is returned.
Remarks

By default, the log file will be written to "TEMP\BarcodeXpress10.log"

This method allows you to turn the debug log file on or off without changing any of the other debug settings.

When this value is True , the component will write items to the debug log file, as specified by the DebugLogFile property.

See Also


DebugErrorLevel Property

DebugErrorLevel Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : DebugErrorLevel Property
Description
Specifies the level of error information in the debug log.
Property type
Read-write property
Syntax
Visual Basic
Public Property DebugErrorLevel As BC_ErrorLevels
Return Type
The BC_ErrorLevels value set.
Remarks

The default value is BC_Production.

This property allows you to control the amount of information that the component places into the DebugLogFile. Since it is expensive to generate and write debug log items, set this property to write the least amount of information that you will find useful.

Note: This property will have no effect if the Debug property is set to false.

See Also


DebugLogFile Property

DebugLogFile Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : DebugLogFile Property
Description
Contains the full path name of the log file.
Property type
Read-write property
Syntax
Visual Basic
Public Property DebugLogFile As String
Return Type
A string which represents the name and directory of the debug log file.
Remarks

This property allows you to control the location of the debug log file.

Valid value: Any valid filename.

Default value: "%TEMP%\BarcodeXpress10.log"

Note: This property will have no effect if you set the Debug property to false.

Example

...

// Set Debug to true for logging to be performed

bcXpress.DebugLogFile = "C:\logFile.txt";

...

See Also


ErrorCode Property

ErrorCode Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ErrorCode Property
Description
Returns the number value of the last error.
Property type
Read-write property
Syntax
Visual Basic
Public Property ErrorCode As Long
Return Type
A long representing the last error number.
Remarks

This property stores the last error until the next operation of the Barcode Xpress control.

See How To > Debug Your Application topic for details on each error number.

See Also


ErrorDescription Property

ErrorDescription Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ErrorDescription Property
Description
Gets a description of the error for this object.
Property type
Read-write property
Syntax
Visual Basic
Public Property ErrorDescription As String
Return Type
A string representing the description of the last error.
Remarks
This property give you the string name of the error, while the ErrorCode property returns the last error number.
See Also


ErrorLevel Property

ErrorLevel Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ErrorLevel Property
Description
Deprecated, use DebugErrorLevel. Specifies the level of error information in the debug log.
Property type
Read-write property
Syntax
Visual Basic
Public Property ErrorLevel As BC_ErrorLevels
Return Type
The BC_ErrorLevels value set.
Remarks

Deprecated, use DebugErrorLevel.

The default value is BC_Production.

This property allows you to control the amount of information that the component places into the DebugLogFile. Since it is expensive to generate and write debug log items, set this property to write the least amount of information that you will find useful.

Note: This property will have no effect if the Debug property is set to false.

See Also


EvaluationMode Property

EvaluationMode Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : EvaluationMode Property
Description
If the control is using a trial license, this property determines the behavior of the control to be either display of nag screens or timeouts of the control.
Property type
Read-write property
Syntax
Visual Basic
Public Property EvaluationMode As BC_EvaluationMode
Return Type
The BC_EvaluationMode value set.
See Also


Font Property

Font Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : Font Property
Description
Font of the barcode value written as text adjacent to the barcode being created.
Property type
Read-write property
Syntax
Visual Basic
Public Property Font As Font
Return Type
The Font value set.
Remarks
The default value is "Arial", 16, Normal.
See Also


hDIB Property

hDIB Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : hDIB Property
Description
This property has been deprecated and replaced by the AnalyzehDib method.
Property type
Read-write property
Syntax
Visual Basic
Public Property hDIB As Long
Return Type
A long value which represents a handle to a DIB.
Remarks

This property has been deprecated and replaced by the AnalyzehDib method.

See Also


ImageSource Property

ImageSource Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ImageSource Property
Description
This property has been deprecated and replaced by the AnalyzehDib and AnalyzeIPicture methods.
Property type
Read-write property
Syntax
Visual Basic
Public Property ImageSource As BC_ImageSource
Return Type
The BC_ImageSource enumeration value set.
Remarks

This property has been deprecated and replaced by the AnalyzehDib and AnalyzeIPicture methods.

The default is BC_ImageSourceDIB.

The ImageSource property must be set before using the AnalyzeBarcode method.

If this property is set to BC_ImageSourceDIB, it is the responsibility of the caller to free this resource when the analysis is complete and the DIB is no longer needed.

The recommended bitmap source is a DIB (Device Independent Bitmap) or the clipboard, and not the Picture property, since it returns a low resolution Device Dependent Bitmap (DDB).

See Also


MakeBarcodeAdjustBarSize Property

MakeBarcodeAdjustBarSize Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeAdjustBarSize Property
Description
Allows for dynamic setting of the width of the bars when creating a barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeAdjustBarSize As Boolean
Return Type
A boolean value which is True to increase the widths of the barcode bars to best fit the complete barcode into the user defined image width. Otherwise, False is returned.
Remarks

The default value is True.

When True, the bar widths will increase to a value which best fits the complete barcode into the user defined image width, set by MakeBarcodeWidth.

If False, the bar width set by MakeBarcodeBarSize will be used, and the barcode will be centered on the image.

See Also


MakeBarcodeAutoSize Property

MakeBarcodeAutoSize Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeAutoSize Property
Description
Allows for dynamic sizing of the image when creating a barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeAutoSize As Boolean
Return Type
A boolean value which is True to dynamically set the sizing of the image.
Remarks

The default value is True.

When True, the image width and/or height will increase to fit the complete barcode.

If False, the image area will be defined by MakeBarcodeWidth and MakeBarcodeHeight. In this case, if the required size of the barcode is too large, an insufficient size error will be returned to ErrorCode when MakeBarcode is called.

See Also


MakeBarcodeBarSize Property

MakeBarcodeBarSize Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeBarSize Property
Description
Minimum width of the bars when creating a barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeBarSize As Integer
Return Type
An integer value which represents the minimum width of the bars.
Remarks

The default value is 3.

This value will be used as the single bar size, unless the MakeBarcodeAdjustBarSize property is True, in which case, the bar size used could be greater than this value.

The minimum bar size cannot be less than 2 pixel.

Accurate barcode recognition using Barcode Xpress requires that the minimum bar size be at least 2 pixels, with the exception of a PatchCode, which requires a bar size of at least 5 pixels.

See Also


MakeBarcodeBHeight Property

MakeBarcodeBHeight Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeBHeight Property
Description
Sets the amount of white space on the top and bottom of the created barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeBHeight As Long
Return Type
A long value which represents the amount of white space on the top and bottom.
Remarks

The default value is 50 pixels.

The white space surrounding the barcode is also known as the quiet zone. Barcode Xpress requires a quiet zone for accurate barcode detection.

See Also


MakeBarcodeBWidth Property

MakeBarcodeBWidth Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeBWidth Property
Description
Sets the amount of white space to the right and left of the created barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeBWidth As Long
Return Type
A long value which represents the white space to the right and left.
Remarks

The default value is 50 pixels.

The white space surrounding the barcode is also known as the quiet zone. Barcode Xpress requires a quiet zone for accurate barcode detection.

See Also


MakeBarcodeCBarSize Property

MakeBarcodeCBarSize Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeCBarSize Property
Description
Returns the width of a single width bar used to create the barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeCBarSize As Integer
Return Type
An integer which represents the width of a single bar.
Remarks
If the MakeBarcodeAdjustBarSize property was True when MakeBarcode was called, this property can be used to find out the bar size that was actually used to create the barcode.
See Also


MakeBarcodeColumns Property

MakeBarcodeColumns Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeColumns Property
Description
Number of columns to create in a 2D barcode
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeColumns As Long
Return Type
A long value which represents the number of columns to create.
Remarks

The default value is -1.

A value of -1 designates auto determination for both PDF417 and DataMatrix.

For PDF417 barcodes:

The column range is 1-30, inclusive.

Note: Rows * columns cannot exceed 928. This is the maximum size of a PDF417 barcode.

For DataMatrix barcodes:

The column ranges are:

10 x 10

12 x 12

14 x 14

16 x 16

18 x 18

20 x 20

24 x 24

26 x 26

32 x 32

36 x 36

40 x 40

44 x 44

48 x 48

52 x 52

64 x 64

72 x 72

80 x 80

88 x 88

96 x 96

104 x 104

120 x 120

132 x 132

144 x 144

8 x 18

8 x 32

12 x 26

12 x 36

16 x 36

16 x 48

Note: This property is not used with 1D barcodes.

See Also


MakeBarcodeColumnsCreated Property

MakeBarcodeColumnsCreated Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeColumnsCreated Property
Description
Number of columns created in the barcode
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeColumnsCreated As Long
Return Type
A long value which represents the number of columns created.
Remarks
If the input column value from MakeBarcodeColumns property is -1, this will be the calculated number of columns for the 2D barcode. Otherwise, the input number of columns is returned.
See Also


MakeBarcodeDataValueLength Property

MakeBarcodeDataValueLength Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeDataValueLength Property
Description
Gets the length of the current barcode data
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeDataValueLength As Long
Return Type
A long value which represents the number of bytes in the barcode value.
Remarks
This value is used to size the byte array prior to calling GetMakeBarcodeDataValue.
See Also


MakeBarcodeDIB Property

MakeBarcodeDIB Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeDIB Property
Description
Returns the barcode picture.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeDIB As Long
Return Type
A long value which represents the barcode picture.
Remarks
The MakeBarcodeDIB property can only be read once per created barcode. Subsequent reads will return a 0. If you want to keep the hDIB around after the initial query, first load it into a temporary variable.
Example

Dim Temp As Long

Temp = BarcodeXpress1.MakeBarcodeDIB;

If (Temp != 0) Then

{

ImagXpress.hDib = Temp;

}

See Also


MakeBarcodeErrorCorrectionLevel Property

MakeBarcodeErrorCorrectionLevel Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeErrorCorrectionLevel Property
Description
Error correction level to using in a 2D barcode, ignored if not supported by the barcode type
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeErrorCorrectionLevel As Long
Return Type
A long value which represents the error correction level.
Remarks

The default value is -1.

For PDF417 barcodes:

The value range is 0 - 8 and -1.

A value of -1 will cause the component to choose the error correction level based on the size of the PDF417 symbol.

The 9 levels of error correction supported will take up the following amount of space:

  • 0 - 2 code words
  • 1 - 4 code words
  • 2 - 8 code words
  • 3 - 16 code words
  • 4 - 32 code words
  • 5 - 64 code words
  • 6 - 128 code words
  • 7 - 256 code words
  • 8 - 512 code words

For DataMatrix barcodes:

Uses a fixed error correction level.

Auto error correction

  • Uses error correction levels 2 through 8, which are the recommended according to the PDF417 specification.
  • The error correction level should be set manually to either level 0 or level 1 for symbols where the MakeBarcodeRows * MakeBarcodeColumns are less than 10. This is due to the fact that the error correction level 2 requires 8 code words.

Note: This property value is ignored if not supported by the barcode type.

See Also


MakeBarcodeErrorCorrectionLevelUsed Property

MakeBarcodeErrorCorrectionLevelUsed Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeErrorCorrectionLevelUsed Property
Description
Error correction level used in the created barcode
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeErrorCorrectionLevelUsed As Long
Return Type
A long value which represents the error correction level used.
Remarks
If the input error correction level value from MakeBarcodeErrorCorrectionLevel property is -1, this will be the error correction level selected by the control. Otherwise, the input error correction level is returned.
See Also


MakeBarcodeHeight Property

MakeBarcodeHeight Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeHeight Property
Description
Height of the new image in which the created barcode will be drawn.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeHeight As Long
Return Type
A long value which represents the height of the new image.
Remarks

The default value is 600 pixels.

If MakeBarcodeAutoSize is set to True, it will override the MakeBarcodeHeight property value and set the image height to fit the height of the barcode created.

See Also


MakeBarcodeMinHeight Property

MakeBarcodeMinHeight Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeMinHeight Property
Description
Minimum height of the bars when creating a barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeMinHeight As Long
Return Type
A long value which represents the minimum height of the bars.
Remarks

The default value is 100 pixels.

For PDF417, this value is used as a multiplier of the MakeBarcodeBarSize used to determine the height of the barcode rows. This value should range between 3 and 5.

If a value is provided for DataMatrix barcode, it will be ignored.

If MakeBarcodeAutoSize is set to True, it will override the MakeBarcodeMinHeight property value, and set the image height to fit the height of the barcode created.

See Also


MakeBarcodePic Property

MakeBarcodePic Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodePic Property
Description
Returns a handle to the barcode Device Independent Bitmap.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodePic As Picture
Return Type
A Picture value which represents the DIB.
Remarks
The MakeBarcodePic property can only be read once per created barcode. If you want to keep the image around after the initial query, first load it into an external variable.
See Also


MakeBarcodeRHeight Property

MakeBarcodeRHeight Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeRHeight Property
Description
Returns the height of the image needed to create the barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeRHeight As Long
Return Type
A long value which represents the height of the image.
Remarks

For 1D barcodes:

  • This property returns the required height of the generated barcode after MakeBarcode has been called.
  • The required height is the sum of MakeBarcodeBHeight x 2, MakeBarcodeMinHeight, MakeBarcodeValueGap, and the height of the value text font.

For PDF417 2D barcodes:

  • The required height is the sum of MakeBarcodeRows * MakeBarcodeBarSize * MakeBarcodeMinHeight + 2 * the vertical spacing.

For DataMatrix 2D barcodes:

  • The required height is the sum of MakeBarcodeRows * MakeBarcodeBarSize + 2 * the vertical spacing.
See Also


MakeBarcodeRows Property

MakeBarcodeRows Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeRows Property
Description
Number of rows to be created in a 2D barcode
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeRows As Long
Return Type
A long value which represents the number of rows to create.
Remarks

The default value is -1.

A value of -1 designates auto determination for both PDF417 and DataMatrix.

For PDF417 barcodes:

The row range is 3 - 90 inclusive.

Note: Rows * columns cannot exceed 928. This is the maximum size of a PDF417 barcode.

For DataMatrix barcodes:

The row ranges are:

  • 10 x 10
  • 12 x 12
  • 14 x 14
  • 16 x 16
  • 18 x 18
  • 20 x 20
  • 22 x 22
  • 24 x 24
  • 26 x 26
  • 32 x 32
  • 36 x 36
  • 40 x 40
  • 44 x 44
  • 48 x 48
  • 52 x 52
  • 64 x 64
  • 72 x 72
  • 80 x 80
  • 88 x 88
  • 96 x 96
  • 104 x 104
  • 120 x 120
  • 132 x 132
  • 144 x 144
  • 8 x 18
  • 8 x 32
  • 12 x 26
  • 12 x 36
  • 16 x 36
  • 16 x 48

Note: This property is not used with 1D barcodes.

See Also


MakeBarcodeRowsCreated Property

MakeBarcodeRowsCreated Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeRowsCreated Property
Description
Number of rows created in the barcode
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeRowsCreated As Long
Return Type
A long value which represents the number of rows created.
Remarks
If the input rows value from MakeBarcodeRows property is -1, this will be the calculated number of rows for 2D barcodes. Otherwise, the input rows is returned.
See Also


MakeBarcodeRWidth Property

MakeBarcodeRWidth Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeRWidth Property
Description
Returns the width of the image needed to create the barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeRWidth As Long
Return Type
A long value which represents the width of the image.
Remarks

For 1D barcodes:

  • This property returns the required width of the generated barcode after MakeBarcode is called.
  • The required width is the sum of MakeBarcodeBWidth x 2, MakeBarcodeBarSize x total number of bars, MakeBarcodeValueOGap, and the width of the outside value text font (if any).

For PDF417 2D barcodes:

  • The required width is the sum of ((MakeBarcodeColumns + 4) * 17 + 1) * MakeBarcodeBarSize + 2 * the horizontal spacing.

For DataMatrix 2D barcodes:

  • The required width is the sum of MakeBarcodeColumns * MakeBarcodeBarSize + 2 * the horizontal spacing.
See Also


MakeBarcodeShowValue Property

MakeBarcodeShowValue Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeShowValue Property
Description
Determines whether the barcode value is written as text adjacent to the created barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeShowValue As BC_ShowText
Return Type
The BC_ShowText value set.
Remarks

The default value is BC_ShowTextAll.

See Also


MakeBarcodeStyle Property

MakeBarcodeStyle Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeStyle Property
Description
Type of barcode to create.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeStyle As BC_BarcodeStyle
Return Type
The BC_BarcodeStyle value set.
Remarks

The default value is BC_StyleCode39.

When set, this property will verify that the specified type is valid for writing. If not, an unsupported barcode type error will be returned to ErrorCode.

Below are the barcode types which can be written as defined in the BC_BarcodeStyle Enumeration:

  • Industry2of5
  • Interleaved2of5
  • Codabar
  • Code39
  • Code93
  • Code128
  • DataMatrix
  • EAN128
  • EAN13
  • EAN8
  • UPCA
  • UPCE
  • PatchCode
  • PDF417
See Also


MakeBarcodeUPCNotchPercent Property

MakeBarcodeUPCNotchPercent Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeUPCNotchPercent Property
Description
Notch percent of the barcode for the text value. Used by supported barcodes only (ie. UPC-A, EAN13), otherwise this value is ignored.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeUPCNotchPercent As Long
Return Type
A long value which represents the notch percent of the barcode.
Remarks

The default value is 10 Percent.

Valid values are from 0 to 50.

Notch percent is only used with certain barcodes where this is standard. The barcode types that support a text notch are UPC-A, UPC-E, EAN-8, and EAN-13. For all other types this value is ignored.

See Also


MakeBarcodeValue Property

MakeBarcodeValue Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeValue Property
Description
String value of the barcode being created.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeValue As String
Return Type
A string value which represents the barcode being created.
Remarks

This property is required to create a barcode.

When MakeBarcode is called, this string is verified as a valid value for the specified barcode type.

See Also


MakeBarcodeValueGap Property

MakeBarcodeValueGap Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeValueGap Property
Description
Sets the amount of gap between the text and barcode when creating a barcode.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeValueGap As Long
Return Type
A long value which represents the gap between the text and barcode.
Remarks

The default value is 5 pixels.

The MakeBarcodeValueGap property value can be positive or negative.

  • Positive values move the value text further away from the bottom of the bars.
  • Negatives values move the text closer to the bars, even overlapping.

Warning: In the case where the value text overlaps the barcode, this may prevent the barcode from being recognized.

See Also


MakeBarcodeValueLRGap Property

MakeBarcodeValueLRGap Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeValueLRGap Property
Description
Sets the vertical offset of outside text. Used by supported barcodes only (ie. UPC-A, EAN13), otherwise this value is ignored.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeValueLRGap As Long
Remarks

The default value is 0 pixels.

  • A value less than 0 will raise the outside value text above the standard value text.
  • A value greater than 0 will lower the outside value text below the standard value text.

Outside text is only written with certain barcodes where this is standard. The barcode types that support outside text are UPC-A, UPC-E, EAN-8, and EAN-13. For all other types this value is ignored.

See Also


MakeBarcodeValueOFont Property

MakeBarcodeValueOFont Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeValueOFont Property
Description
Sets the font used to display the UPC values that appear outside of the left and right guard bars.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeValueOFont As Font
Return Type
The Font value set.
Remarks

The default value is "Arial", 16, Normal.

Outside value text is only written for certain barcodes where this is standard. The barcode types that support a text notch are UPC-A, UPC-E, EAN-8 and EAN-13. For all other types this value is ignored.

See Also


MakeBarcodeValueOGap Property

MakeBarcodeValueOGap Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeValueOGap Property
Description
Sets the amount of gap between the outside text and barcode when creating a barcode. Used by supported barcodes only (ie. UPC-A, EAN13), otherwise this value is ignored.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeValueOGap As Long
Return Type
A long value which represents the gap between the outside text and barcode.
Remarks

The default value is 5 pixels.

Outside text is only written with certain barcodes where this is standard. The barcode types that support a text notch are UPC-A, UPC-E, EAN-8, and EAN-13. For all other types this value is ignored.

See Also


MakeBarcodeWidth Property

MakeBarcodeWidth Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MakeBarcodeWidth Property
Description
Width of the new image in which the created barcode will be drawn.
Property type
Read-write property
Syntax
Visual Basic
Public Property MakeBarcodeWidth As Long
Return Type
A long value which represents the width of the new image.
Remarks

The default value is 600 pixels.

This value will be used for the width of the image.

If MakeBarcodeAutoSize is set to True, it will override the MakeBarcodeWidth property value and set the image width to fit the width of the barcode created.

See Also


MaxBarcodes Property

MaxBarcodes Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MaxBarcodes Property
Description
Maximum number of barcodes to recognize. Processing will halt after this number of barcodes have been found.
Property type
Read-write property
Syntax
Visual Basic
Public Property MaxBarcodes As Integer
Return Type
An integer value which represents the maximum number of barcode to recognize.
Remarks

The default value is 100.

Processing will halt after this number of barcodes has been found.

See Also


MinimumBarcodeSize Property

MinimumBarcodeSize Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : MinimumBarcodeSize Property
Description
Minimum barcode size required to return a valid result.
Property type
Read-write property
Syntax
Visual Basic
Public Property MinimumBarcodeSize As Long
See Also


ModeTransitionIndex Property

ModeTransitionIndex Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ModeTransitionIndex Property
Description
The index in the barcode value for a previously retrieved mode-transition.
Property type
Read-write property
Syntax
Visual Basic
Public Property ModeTransitionIndex As Long
See Also


ModeTransitionType Property

ModeTransitionType Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ModeTransitionType Property
Description
The type of transition associated with a previously retrieved mode-transition.
Property type
Read-write property
Syntax
Visual Basic
Public Property ModeTransitionType As BC_ModeTransitionType
See Also


NumBarcodes Property

NumBarcodes Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : NumBarcodes Property
Description
Number of barcodes recognized.
Property type
Read-write property
Syntax
Visual Basic
Public Property NumBarcodes As Integer
Return Type
An integer value which represents the number of barcodes recognized.
Remarks
The AnalyzehDib or AnalyzeIPicture method must be called before checking this property.
See Also


NumModeTransitions Property

NumModeTransitions Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : NumModeTransitions Property
Description
The number of mode-transitions present in a barcode result.
Property type
Read-write property
Syntax
Visual Basic
Public Property NumModeTransitions As Long
See Also


Picture Property

Picture Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : Picture Property
Description
This property has been deprecated and replaced by using the AnalyzeIPicture method.
Property type
Read-write property
Syntax
Visual Basic
Public Property Picture As Picture
Return Type
A Picture value for use in barcode recognition.
Remarks

This property has been deprecated and replaced by using the AnalyzeIPicture method.

See Also


RaiseExceptions Property

RaiseExceptions Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : RaiseExceptions Property
Description
Determines if errors are raised as exceptions in the application.
Property type
Read-write property
Syntax
Visual Basic
Public Property RaiseExceptions As Boolean
Return Type
A boolean value which is True to raise errors as exceptions. Otherwise, False is returned.
Remarks

The default value is True.

If set to True, the component requires an On Error GoTo statement and a label to catch the exception, as outlined below:

On Error GoTo ErrorHandler

myControl.RaiseExceptions = True

...

myControl.DoSomething

...

ErrorHandler:

Log "Caught exception from Accusoft control: number = " _

& (Err.Number - vbObjectError) _

& ", description = '" & Err.Description & "'"

To get the last error number and description, use the ErrorCode and ErrorDescription properties.

If set to False, only return the error property results from ErrorCode and/or ErrorDescription.

See Also


ReaderAreaHeight Property

ReaderAreaHeight Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ReaderAreaHeight Property
Description
The height, in pixels, of the region of interest.
Property type
Read-write property
Syntax
Visual Basic
Public Property ReaderAreaHeight As Long
Return Type
A long value which represents the height of the rectangular area.
Remarks

The default value is 0.

This property is used with the ReaderAreaWidth, ReaderAreaX, and ReaderAreaY to create the rectangular area on an image for barcode processing.

Note: If these properties are all set to 0, then the entire image is automatically searched.

See Also


ReaderAreaWidth Property

ReaderAreaWidth Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ReaderAreaWidth Property
Description
The width, in pixels, of the region of interest.
Property type
Read-write property
Syntax
Visual Basic
Public Property ReaderAreaWidth As Long
Return Type
A long value which represents the width of the rectangular area.
Remarks

The default value is 0.

This property is used with the ReaderAreaHeight, ReaderAreaX, and ReaderAreaY to create the rectangular area on an image for barcode processing.

Note: If these properties are all set to 0, then the entire image is automatically searched.

See Also


ReaderAreaX Property

ReaderAreaX Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ReaderAreaX Property
Description
The left edge coordinate, in pixels, of the region of interest.
Property type
Read-write property
Syntax
Visual Basic
Public Property ReaderAreaX As Long
Return Type
A long value which represents the x coordinate of the rectangular area.
Remarks

The default value is 0.

This property is used with the ReaderAreaWidth, ReaderAreaHeight, and ReaderAreaY to create the rectangular area on an image for barcode processing.

Note: If these properties are all set to 0, then the entire image is automatically searched.

See Also


ReaderAreaY Property

ReaderAreaY Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ReaderAreaY Property
Description
The top edge coordinate, in pixels, of the region of interest.
Property type
Read-write property
Syntax
Visual Basic
Public Property ReaderAreaY As Long
Return Type
A long value which represents the y coordinate of the rectangular area.
Remarks

The default value is 0.

This property is used with the ReaderAreaWidth, ReaderAreaX and ReaderAreaHeight to create the rectangular area on an image for barcode processing.

Note: If these properties are all set to 0, then the entire image is automatically searched.

See Also


ReaderScanDistance Property

ReaderScanDistance Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ReaderScanDistance Property
Description
Distance between scans when searching for 1D barcodes
Property type
Read-write property
Syntax
Visual Basic
Public Property ReaderScanDistance As Long
Remarks

The default value is 5.

Valid values are between 1 and 10.

Reducing this value can help in finding barcodes which are short relative to their height.

See Also


ResultLen Property

ResultLen Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ResultLen Property
Description
Length of the result string.
Property type
Read-write property
Syntax
Visual Basic
Public Property ResultLen As Integer
Return Type
An integer value which represents the length of the result string.
Remarks

The current barcode is determined by the GetBarcode method.

If the form of the information is a simple string, then the length is the string length plus one, to include the terminating null byte.

See Also


ReturnPossibleBarcodes Property

ReturnPossibleBarcodes Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : ReturnPossibleBarcodes Property
Description
Include possible barcodes in the result list.
Property type
Read-write property
Syntax
Visual Basic
Public Property ReturnPossibleBarcodes As Boolean
Return Type
A boolean value which is set to True to include possible barcodes in the result list. Otherwise, False is returned.
Remarks

The default value is False.

When True, the barcode engine returns in the results list candidate barcodes which could not be decoded.

For 1D barcodes, any unsolved regions of interest in the barcode result list will have a BarcodeResultStyle of BC_StyleUnknown and the BarcodeResult property will be NULL.

For PostNet, Intelligent Mail, Australian Post, and Royal Post 4 and for the following 2D barcode types including DataMatrix, PDF417, Aztec, and QRcode, the currently selected BarcodeType is returned as the candidate region type.

See Also


SSError Property

SSError Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SSError Property
Description
This property has been deprecated and replaced by the ErrorCode property.
Property type
Read-write property
Syntax
Visual Basic
Public Property SSError As Integer
Remarks

This property has been deprecated and replaced by the ErrorCode property.

See Also


SSErrorMsg Property

SSErrorMsg Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : SSErrorMsg Property
Description
This property has been deprecated and replaced by the ErrorDescription property.
Property type
Read-write property
Syntax
Visual Basic
Public Property SSErrorMsg As String
Remarks
This property has been deprecated and replaced by the ErrorDescription property.
See Also


WriteChecksumChar Property

WriteChecksumChar Property
AccusoftBarcodeXpress10 ActiveX DLL > BarcodeXpress Object : WriteChecksumChar Property
Description
Sets the checksum write flag for barcodes that optionally use checksums.
Property type
Read-write property
Syntax
Visual Basic
Public Property WriteChecksumChar As Integer
Return Type
An integer value which represents the checksum flag.
Remarks

The default value is 0 (False).

A value of 1 will write optional checksums, and a value of 0 will not write optional checksums.

Currently, of the supported barcode types that Barcode Xpress is able to write, only types Industry 2 of 5, Interleaved 2 of 5, Code 39, and Code 39 Extended will allow an optional checksum. This property is ignored for other barcode types that require checksums.

Note: The UPC and EAN barcodes always append a checksum character to the barcode results regardless of this property's value.

See Also

BarcodeXpress Object | BarcodeXpress Members | Checksums


BC_AustralianPostCustomDecodeType Enumeration

BC_AustralianPostCustomDecodeType Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_AustralianPostCustomDecodeType Enumeration
Description
The Australian Post 4 State barcode supports a custom section in both the Customer Barcode 2 and Customer Barcode 3 formats.
Members
Member | Value | Description
BC_BarStates 0

Returns the bar states of the custom section. This will be a string of A D F T values, where:

  • A - Ascending Bar
  • D - Descending Bar
  • F - Full Bar
  • T - Tracking Bar
BC_NoCustomDecode | 3 | No custom decode type.
BC_TableC | 2 | The bars in the custom section are decoded using the "C" Table defined by the Australian Post 4 State Barcode specification. This will result in Alphanumeric values for the custom section of the barcode value.
BC_TableN | 1 | The bars in the custom section are decoded using the "N" Table defined by the Australian Post 4 State Barcode specification. This will result in numeric values for the custom section of the barcode value.
Remarks

The default value is BC_BarStates.

The recommended bar encodings in this section is either Table-N or Table-C encoding, but the customer is also free to put their own encoding in this section. The type of encoding, in the custom section, is not stored in the barcode format. The end customer must know the encoding prior to decoding the barcode.

Example

©2014. Accusoft Corporation. All Rights Reserved.


BC_BarcodeStyle Enumeration

BC_BarcodeStyle Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_BarcodeStyle Enumeration
Description
Specifies a barcode type.
Members
Member | Value | Description
BC_StyleAdd2 | 20 | Indicates an Add 2 barcode type.
BC_StyleAdd5 | 19 | Indicates an Add 5 barcode type.
BC_StyleAustralian4State | 29 | Australian Post 4 State barcode.
BC_StyleAztec | 30 | Indicates an Aztec barcode type.
BC_StyleBCDMatrix | 6 | Indicates a BCD Matrix barcode type.
BC_StyleCodabar | 11 | Indicates a Codabar barcode type.
BC_StyleCode128 | 14 | Indicates a Code 128 barcode type.
BC_StyleCode32 | 8 | Indicates a Code 32 barcode type.
BC_StyleCode39 | 9 | Indicates a Code 39 barcode type.
BC_StyleCode39Extended | 10 | Indicates a Code 39 Extended barcode type.
BC_StyleCode93 | 12 | Indicates a Code 93 barcode type.
BC_StyleCode93Extended | 13 | Indicates a Code 93 Extended barcode type.
BC_StyleDataLogic2of5 | 4 | Indicates a DataLogic 2 of 5 barcode type.
BC_StyleDataMatrix | 25 | Indicates a DataMatrix barcode type.
BC_StyleEAN128 | 21 | Indicates an EAN-128 barcode type.
BC_StyleEAN13 | 15 | Indicates an EAN-13 barcode. This also supports a JAN barcode which is an EAN-13 with country code 49.
BC_StyleEAN8 | 16 | Indicates an EAN-8 barcode type.
BC_StyleGS1DataBar | 31 |
BC_StyleIATA2of5 | 3 | Indicates an IATA 2 of 5 barcode type.
BC_StyleIndustry2of5 | 1 | Indicates an Industry 2 of 5 barcode type.
BC_StyleIntelligentMail | 27 | United States Postal IntelligentMail 4 State barcode.
BC_StyleInterleaved2of5 | 2 | Indicates an Interleaved 2 of 5 barcode type.
BC_StyleInvert2of5 | 5 | Indicates an Inverted 2 of 5 barcode type.
BC_StyleMatrix2of5 | 7 | Indicates a Matrix 2 of 5 barcode type.
BC_StylePatchCode | 22 | Indicates a Patch Code.
BC_StylePDF417 | 24 | Indicates a PDF417 barcode type.
BC_StylePostNet | 23 | Indicates a PostNet barcode type.
BC_StyleQRCode | 26 | QR Code barcode.
BC_StyleRoyalPost4State | 28 | Royal Post 4 State barcode.
BC_StyleUnknown | 0 | Indicates an unknown barcode.
BC_StyleUPCA | 17 | Indicates a UPC-A barcode type.
BC_StyleUPCE | 18 | Indicates a UPC-E barcode type.


BC_BarcodeType Enumeration

BC_BarcodeType Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_BarcodeType Enumeration
Description
Option value which determines the barcode type.
Members
Member | Value | Description
BC_TypeAdd2 | 131072 | Indicates an Add 2 barcode type.
BC_TypeAdd5 | 65536 | Indicates an Add 5 barcode type.
BC_TypeAustralianPost4State | 268435456 | Australian Post 4 State barcode.
BC_TypeAztec | 536870912 | Aztec barcode.
BC_TypeBCDMatrix | 32 | Indicates a BCD Matrix barcode type.
BC_TypeCodabar | 512 | Indicates a Codabar barcode type.
BC_TypeCode128 | 2048 | Indicates a Code 128 barcode type.
BC_TypeCode32 | 128 | Indicates a Code 32 barcode type.
BC_TypeCode39 | 256 | Indicates a Code 39 barcode type.
BC_TypeCode39Extended | 8388608 | Indicates a Code 39 Extended barcode type.
BC_TypeCode93 | 1024 | Indicates a Code 93 barcode type.
BC_TypeCode93Extended | 16777216 | Indicates a Code 93 Extended barcode type.
BC_TypeDataLogic2of5 | 8 | Indicates a DataLogic 2 of 5 barcode type.
BC_TypeDataMatrix | 4194304 | Indicates a DataMatrix barcode type.
BC_TypeEAN128 | 262144 | Indicates an EAN-128 barcode type.
BC_TypeEAN13 | 4096 | Indicates an EAN-13 barcode. This also supports a JAN barcode which is an EAN-13 with country code 49.
BC_TypeEAN8 | 8192 | Indicates an EAN-8 barcode type.
BC_TypeGS1DataBar | 1073741824 |
BC_TypeIATA2of5 | 4 | Indicates an IATA 2 of 5 barcode type.
BC_TypeIndustry2of5 | 1 | Indicates an Industry 2 of 5 barcode type.
BC_TypeIntelligentMail | 67108864 | United States Postal IntelligentMail 4 State barcode.
BC_TypeInterleaved2of5 | 2 | Indicates an Interleaved 2 of 5 barcode type.
BC_TypeInvertiert2of5 | 16 | Indicates an Inverted 2 of 5 barcode type.
BC_TypeMatrix2of5 | 64 | Indicates a Matrix 2 of 5 barcode type.
BC_TypePatchCode | 524288 | Indicates a Patch Code.
BC_TypePDF417 | 2097152 | Indicates a PDF417 barcode type.
BC_TypePostNet | 1048576 | Indicates a PostNet barcode type.
BC_TypeQRCode | 33554432 | QR Code barcode.
BC_TypeRoyalPost4State | 134217728 | Royal Post 4 State barcode.
BC_TypeUnknown | 0 | Indicates an unknown barcode.
BC_TypeUPCA | 16384 | Indicates a UPC-A barcode type.
BC_TypeUPCE | 32768 | Indicates a UPC-E barcode type.
Remarks
The default value is BC_TypeUnknown.


BC_ErrorLevels Enumeration

BC_ErrorLevels Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_ErrorLevels Enumeration
Description

Defines the amount of error information to write to the DebugLogFile.

Members
Member | Value | Description
BC_Detailed | 2 | Place as much information into the DebugLogFile as possible. You should use this option when you are tracking down a problem.
BC_Development | 1 | Place information into the DebugLogFile that is useful during normal development using this component.
BC_Production | 0 | Place minimal information into the DebugLogFile.
Remarks

The default value is BC_Production.

This enumeration allows you to specify the amount of detail to place into the DebugLogFile and can be set by the DebugErrorLevel property.


BC_EvaluationMode Enumeration

BC_EvaluationMode Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_EvaluationMode Enumeration
Description

The choice of evaluation mode for the component.

Members
Member Value Description
BC_EvalModeTimeOut 1

Timeout evaluation mode.

  • When running in evaluation mode, this component will timeout after 5 minutes instead of displaying the evaluation mode dialog box.
  • This is the appropriate evaluation mode for applications that have no user interface.
BC_EvalModeTrialDialog 0

Automatic evaluation mode.

  • When possible, this component will automatically detect that it is running without a user interface and switch to another evaluation mode.
  • Otherwise, it will display the evaluation mode dialog box.
BC_EvalModeWatermark 2

Watermark evaluation mode.

  • When running in evaluation mode, this component will insert the string " UNLICENSED accusoft.com " into the barcode value.
  • This is an appropriate evaluation mode for applications that have no user interface.
Remarks

To simplify your evaluation of this component, Accusoft has implemented an evaluation mode. Normally, this mode will display a dialog box reminding you that you are using evaluation mode. In certain environments with no user interface, such as services, displaying a dialog box will cause the application to stop and you must change the evaluation mode to avoid that problem.

Note: In addition to displaying a dialog box while using the trial version, Barcode Xpress will also randomly insert " UNLICENSED accusoft.com " into the data stream of created DataMatrix and PDF417 barcodes.


BC_ImageSource Enumeration

BC_ImageSource Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_ImageSource Enumeration
Description
Specifies the source from which to load the bitmap for barcode recognition.
Members
Member | Value | Description
BC_ImageSourceClipboard | 2 | Loads bitmap from the Windows system clipboard.
BC_ImageSourceDIB | 0 | The default Image Source. Loads bitmap from the hDIB property.
BC_ImageSourcePicture | 1 | Loads bitmap from the Picture property.


BC_InkColor Enumeration

BC_InkColor Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_InkColor Enumeration
Description

Specifies the ink color for barcodes search.

Members
Member | Value | Description
BC_InkColorBlack | 1 | Black ink colored barcodes will be searched. This is the default.
BC_InkColorUnknown | 0 | Both black and white ink color barcodes will be searched.
BC_InkColorWhite | 2 | White ink colored barcodes will be searched.
Remarks

The default value is BC_InkColorBlack.

To improve recognition and speed by reducing search criteria, set this property correctly.


BC_ModeTransitionType Enumeration

BC_ModeTransitionType Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_ModeTransitionType Enumeration
Members
Member | Value | Description
BC_None | 0 | No mode transition has occurred.
BC_QR_Alpha | 2 | QR Code's Alphanumeric mode.
BC_QR_Byte | 3 | QR Code's Alphanumeric mode.
BC_QR_ECI | 5 | QR Code's Extended Channel Interpretation mode.
BC_QR_FNC1_First | 6 | QR Code's FNC1 mode, first position.
BC_QR_FNC1_Second | 7 | QR Code's FNC1 mode, second position.
BC_QR_Kanji | 4 | QR Code's Kanji mode.
BC_QR_Numeric | 1 | QR Code's Numeric mode.
BC_QR_StructureAppend | 8 | QR Code's Structured Append mode.
Example

©2014. Accusoft Corporation. All Rights Reserved.


BC_Orientation Enumeration

BC_Orientation Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_Orientation Enumeration
Description
Specifies the orientation for the barcode search.
Members
Member | Value | Description
BC_OrientationBoth | 0 | Barcodes with both a vertical and horizontal orientation will be searched.
BC_OrientationHorizontal | 1 | Barcodes with only a horizontal orientation will be searched.
BC_OrientationHorizontalVertical | 0 | Barcodes with horizontal and vertical orientation are searched.
BC_OrientationHorizontalVerticalDiagonal | 3 | Barcodes with horizontal, vertical and diagonal are searched.
BC_OrientationVertical | 2 | Barcodes with only a vertical orientation will be searched.
Remarks

The default value is BC_OrientationBoth.

To improve recognition and speed by reducing search criteria, set this property correctly.


BC_ShowText Enumeration

BC_ShowText Enumeration
AccusoftBarcodeXpress10 ActiveX DLL : BC_ShowText Enumeration
Description
Specifies the text to display adjacent to the created barcode.
Members
Member | Value | Description
BC_ShowTextAll | 3 | All possible text is displayed.
BC_ShowTextNone | 0 | No text is displayed.
BC_ShowTextValue | 1 | Only the value is displayed.
BC_ShowTextValueAndCheckSum | 2 | The value and checksum is displayed.
Remarks
The default value is BC_ShowTextAll.


References

References

©2014. Accusoft Corporation. All Rights Reserved.