Barcode library


Barcode library or Barcode SDK is a software library that can be used to add barcode features to desktop, web, mobile or embedded applications. Barcode library presents sets of subroutines or objects which allow to create barcode images and put them on surfaces or recognize machine-encoded text / data from scanned or captured by camera images with embedded barcodes. The library can support two modes: generation and recognition mode, some libraries support barcode reading and writing in the same way, but some libraries support only one mode.
At this time barcode technology allows to add machine reading tags or machine reading additional data to any object of real world with less than one cent cost. and use any of camera equipped device to identify additional data about an object. In this way, combination of barcode technology and barcode library allows to implement with low cost any automatic document processing application, OMR application, package tracking application or even augmented reality application.

History

The first Barcode SDKs were not implemented as software libraries but as standalone applications for MS-DOS and Windows and as Barcode fonts. At that time barcodes were used mostly in retail and for internal corporation needs, thus barcode users looked for all-inclusive hardware solutions to generate, print and recognize barcodes.
The situation changed when camera equipped devices and document scanners became common for everyday usage. Because barcodes could be scanned and recognized on common ordinary equipment and industrial and office users did not need to obtain expensive specialized one-function devices for barcode reading, the need for barcode writing and reading SDKs and libraries increased.
Barcode writing libraries already had been implemented as barcode fonts or standalone applications in projects like GNU Barcode or Zint. Implementation of a barcode writing library does not require hard Computer Science skills because it just need to follow AIM or ISO specifications. It does not have any difference from encoding data in special file format.
2D barcodes encoding is more difficult because 2D barcodes instead of 1D barcodes have additional encoding data like columns, rows, ECI or data correction options. Some 2D barcodes like MaxiCode or Pdf 417 also have special encoding fields like Post Address or metadata which convert these barcodes in multiple graphical files. These differences could not be solved by barcode fonts usage and required API with multiple parameters processing.
Barcode reading libraries are more complex, requiring Computer Vision techniques. However, they can be run on common camera or scanner equipped devices. The first libraries could recognize only 1D barcodes by laser scanners mode emulation. This mode captured the whole image but then library made some scan-lines with Bresenham's algorithm and tried to recognize data from these lines as hardware laser scanners did. The bright representation of these libraries is early ZXing project supported by Google, ZBar or other solutions.
For the recognition of 2D barcodes laser scanners mode emulation is not suitable. Moreover, this method has difficulty with barcode area detection, which causes problems with 1D angled barcode detection. More complicated methods from Computer Vision were implemented to improve recognition quality for 1D and 2D barcodes.

Application

Barcode libraries have provided low cost automatic identification and data capture features to various fields of services and industry. This can be entertainment, healthcare, postal services, such as document processing or retail applications.
They can be used for:
Barcode libraries and or Barcode SDKs can be split in different types, which is based on their functionality:
  • Barcode Fonts
  • Barcode Writing library
  • Barcode Reading library
  • Barcode Full support library
The first barcode libraries were fully transparent to user and used as simple printing text with specialized TrueType Fonts. This works well for 1D barcodes, because 1D barcode just the same as linear text, sometimes with checksum. Usage of Barcode Fonts with 2D barcodes also possible but it has problem with metadata processing like setting barcode row and columns and metadata. This is solved with predefined different metadata values in set of fonts for the same type of barcode.
Barcode libraries with API calls have more customization features in writing and reading modes. However, only part of libraries has full support of writing and reading modes. More than half of libraries supports only one mode.

Barcode library list

Barcode libraries can support different barcode formats and programming languages. Also, they have different support of reading and writing functionality. Most common barcode libraries and SDKs are represented in the following list:
NameCompanyLicenseTypeLanguagesPlatformsLibrary abilitiesSupported barcode types
Aspose.BarcodeAsposeProprietary, Royalty-freeFullJava,.NET, C++, PHP, JavaScript, PythonCross-platform, Java,.NET, Android, iOS and Tizen via.NET MAUI, Python via.NET and Java, WebAspose.Barcode library can write barcodes in 7 image formats and read barcodes from 5 image formats. Reading barcodes from MS Word documents and PDF files is also possible with Aspose.Words and Aspose.PDF components.more than 80 barcode types
Barcode Writer in Pure PostScriptTerry Burton Consulting LtdMIT with commercial supportWritePostScriptCross-platformBarcode Writer in Pure Postscript can generate all barcode formats entirely within PostScript.more than 70 barcode types
Barcode4JSourceForgeApache 2.0WriteJavaJavaBarcode4J library can generate barcode images in . The project is outdated.15 barcode types
BarcodeLibBarcodeLib.comProprietary, Royalty-freeFullJava,.NETJava,.NETBarcodeLib library can write barcodes in 7 image formats and read barcodes from 5 image formats11 types of 1D barcodes and 3 types of 2D barcodes
barKoder Barcode Scanner SDKbarKoder LtdProprietaryReadC, Java, Objective-C, Swift, Kotlin, JavaScript, C++,.NET, Dart, C#, TypeScript, PythonAndroid, iOS, Xamarin, Flutter, React Native, Linux, Cordova,.NET MAUI, Windows, Web, Browser, Cross-platform, NativeScript, CapacitorThe barKoder barcode scanner SDK supports barcode scanning both via images or through cameras of mobile devicesmore than 30 barcode types
ByteScout BarCode SDKByteScout, Inc.Proprietary, Royalty-freeFull.NET; JavaScript via REST API; COM API: C++, Java, Delphi, PHP, VBScript.NET, Windows, WebByteScout BarCode SDK libraries can write barcodes in 7 image formats and read barcodes from 5 image formats.more than 20 barcode types
ClearImage Barcode Reader SDKInlite Research, IncProprietary, per computerRead.NET; COM API: C++, Java, Delphi, PHP, VBScriptWindowsBarcode Reader library can read barcodes from 5 image formats and pdf files.19 barcode types
Cognex Barcode Scanner SDKCognexProprietary, Royalty-freeReadJava,.NET, Objective-C, SwiftAndroid, iOSCognex Barcode Scanner SDK can capture and recognize barcodes from mobile camera17 barcode types
Docutain Barcode Scanner SDKINFOSOFT Informations und Dokumentations systeme GmbHProprietaryReadJava, JavaScript,.NET, Swift, Kotlin, Dart, C#Android, iOS, Xamarin, Flutter, Cordova, Ionic, React Native,.NET MAUIDocutain Barcode Scanner SDK can read 9 types of 1D barcodes and 4 different 2D formats with mobile apps.13 barcode types
DTK Software Barcode Reader SDKDTK SoftwareProprietaryReadJava,.NETJava,.NETDTK Barcode Reader SDK can read barcodes from 5 image formatsmore than 30 barcode types
Dynamsoft Barcode Reader SDKDynamsoftProprietary, Per Device / Server / ApplicationReadC; C++;.NET, Python; PHP, JavaScript; Objective-C; SWIFT; Kotlin; DartWindows, Linux, Android, iOS, Web ; Flutter, React Native, Xamarin,.NET MAUI,Dynamsoft Barcode Reader SDK can read barcodes from images and video streams. It supports multi-barcode decoding, DPM, and panoramic scanning.more than 30 barcode types
GdPicture.NET Barcode SDKORPALISProprietary, Royalty-freeFull.NET.NETLibrary can write and read barcodes from almost 90 image and document formatsmore than 30 barcode types
GNU BarcodeGNU Operating SystemGPLv3WritePostScriptCross-platformGNU Barcode library can generate barcodes directly in document by Postscript language10 barcode types
IBscanner for.NETInobixProprietary, Royalty-freeRead.NET.NETIBscanner for.NET library can read barcodes from 5 image formats12 types of 1D barcodes
IDAutomation Barcode GeneratorIDAutomation.com, Inc.Proprietary, Royalty-freeWriteJava,.NET, C++, PHP, JavaScript, VBA, TrueType FontsJava,.NET, Windows, WebIDAutomation Barcode Generator library and TrueType Fonts can generate barcodes in various programming languages and applications which support TrueType Fonts24 barcode types
KeepDynamic Barcode SDKKeepDynamic.comProprietary, Royalty-freeFullJava,.NET, VBAJava,.NET, MS OfficeKeepDynamic Barcode SDK can write barcodes in 7 image formats and read barcodes from 5 image formats.9 types of 1D barcodes and 3 types of 2D barcodes
LEADTOOLS Barcode SDKLEAD Technologies, IncProprietary, Per ApplicationFullJava,.NET, C++, Objective-C, Swift, JavaScript via REST APICross-platform, Java,.NET, Android, iOS, WebLEADTOOLS Barcode SDK can write barcodes in various image formats and read barcodes from various image formats more than 50 barcode types
ML Kit Barcode Scanning APIGoogleGoogle APIReadJava, Objective-C, SwiftAndroid, iOSML Kit Barcode Scanning API can recognize barcodes from mobile camera13 barcode types
Neodynamic Barcode ProfessionalNeodynamic SRLProprietary, Royalty-freeFull.NET; JavaScript, PHP via REST API.NET, WebNeodynamic Barcode Professional can write more than 70 barcode types in 7 image formats and read 12 barcode types from 5 image formats.write: more than 70 barcode types / read: 12 types of 1D barcodes
OnBarcode Barcode SDKOnBarcodeProprietary, Royalty-freeFullJava,.NET, Objective-CJava,.NET, Android, iOSOnBarcode Barcode SDK can write barcodes in 7 image formats and read barcodes from 5 image formats more than 20 barcode types
OpenBarcodesSourceForgeGPLv2WriteTrueType FontCross-platformOpenBarcodes TrueType Fonts can encode text to barcode in any rich text application4 types of 1D barcodes and 3 types of 2D barcodes
pqScan Barcode SDKpqScanProprietary, Royalty-freeFullJava,.NETJava,.NETpqScan Barcode SDK can write barcodes in 7 image formats and read barcodes from 5 image formats13 barcode types
Python Barcode LibraryGame Maker 2kBSDWritePythonCross-platformPython Barcode Library can generate barcode images with Python language12 barcode types
Scanbot Barcode Scanner SDKScanbot SDKProprietaryReadJava, Objective-C, Swift, Kotlin, Dart, JavaScript, C#,.NETAndroid, iOS, Browser, Xamarin, Cordova, Ionic, Flutter, React NativeScanbot Barcode Scanner SDK can read 9 types of 1D barcodes and 9 different 2D formats via apps and websites.18 barcode types
SD-TOOLKIT Barcode SDKSD-TOOLKITProprietary, Royalty-freeReadJava;.NET; C++; COM API: C++, Java, Delphi, VBScript; Objective-CJava;.NET, Android, iOS, WindowsSD-TOOLKIT Barcode SDK can read barcodes from 5 image formats15 types of 1D barcodes and 4 types of 2D barcodes
SmartCodeDeveloper SDKTechnoRiverProprietary, Royalty-freeWrite.NET.NETSmartCodeDeveloper SDK can write barcodes in 7 image formatsmore than 30 barcode types
Spire.BarcodeE-iceblue Co. Ltd.Proprietary, Royalty-freeFullJava,.NETJava,.NET, Android via Xamarin, iOS via XamarinSpire.Barcode library can write barcodes in 7 image formats and read barcodes from 5 image formats39 barcode types
Syncfusion.BarcodeSyncfusionProprietaryWrite.NET.NETSyncfusion.Barcode library generates barcodes as images or PDF documents. Also, provide UI controls to display the barcodes in UI.10 types of 1D barcodes and 2 types of 2D barcodes
TBarCode SDKTEC-IT Datenverarbeitung GmbHProprietary, Royalty-freeWrite.NET; C++; Delphi; PowerBuilder; COM API: C++, Delphi, VBScript; ABAPCross-platform,.NET, SAPTBarCode SDK can write barcodes in 7 image formats more than 70 barcode types
VintaSoft Barcode.NET SDKVintaSoftProprietary, Royalty-freeFull.NET.NET, Android via XamarinVintaSoft Barcode.NET SDK can write barcodes in 7 image formats and read barcodes from 5 image formats. Also library can read images from embedded pdf documents.more than 60 barcode types
Viziotix Barcode Decoder SDKViziotixProprietary Per DeviceReadC/C++, wrappers from C++ library:.NET, Python, Java, SwiftWindows, Linux, Android, iOS, CUDAViziotix Barcode Decoder SDK can read 28 barcode types from camera and most common image formats.28 barcode types
VSBarcodeReaderVision Smarts SPRLProprietary, Royalty-freeReadObjective-C, Swift, Java, KotliniOS, Android, Xamarin, Cordova, IonicVision Smarts Barcode Scanner SDK reads barcodes using the camera of the mobile device. It works 100% offline.18 types of 1D and 2D barcodes
ZBarSourceForgeGNU LGPL 2.1ReadPython, Perl, C++, CLinux/Unix, Windows, iOSZBar library can capture image from video stream and recognize barcodes. The library works as linear scanner emulation.7 types of 1D barcodes and QR code
Zen Barcode Rendering Framework-Public domainWrite.NET.NETZen Barcode Rendering Framework can write barcodes in 7 image formats9 barcode types
ZintSourceForgeApache 2.0, BSD, GNU GPLv3WriteC,.NET via ZintNET port, Java via Okapi Barcode portLinux/Unix, Windows, Java,.NETCan generate barcodes in 6 image formats more than 50 barcode types
ZXingZXing ProjectApache 2.0FullJava,.NET, C++, Objective-C, JavaScript, PHP, Ruby, Python, TypeScriptCross-platform, Java,.NET, Android, iOS, WebZXing library with ports can produce barcodes in various image formats and read barcodes from image or from camera.more than 20 barcode types