Web Demos


Explore the flexibe barcode reading settings to optimize for your specific usage scenario.


Try the most popular web scanner features: scan images, import local images and PDF files, edit, save to local, upload to database, and etc.


Transform any camera-equipped devices into real-time, browser-based barcode and QR code scanners.


Detects the machine-readable zone of a passport, scans the text, and parses into human-readable data.




Dev Center
Table of contents

Thanks for downloading Dynamsoft Barcode Reader Package!

Your download will start shortly. If your download does not begin, click here to retry.

Release Notes for Dynamsoft Barcode Reader JavaScript Edition - 9.x

9.6.2 (01/16/2023)


  • Improved the autoZoom feature.

9.6.1 (12/19/2022)


  • Fixed a bug where the indexedDB could become unresponsive if barcodes were scanned too quickly.

9.6.0 (12/13/2022)

Version Highlights

  • DotCode decoding is improved by optimizing the localization of DotCodes that are close to one another.
  • EAN8 barcode decoding is improved by honing the accuracy of localization algorithms.
  • QR code localizing is improved by reducing the mis-assemble rate of the finder patterns when using the localization mode LM_CONNECTED_BLOCK or LM_SCAN_DIRECTLY, which are designed for speed. The mis-assembling only occurs when there exist dense QR codes on the same image.
  • Mirrored rectangular DataMatrix barcode is supported by implementing MirrorMode when localizing the barcodes.
  • Deformed barcode decoding is improved by extending the supported modes and mode arguments of DeformationResistingModes.

Edition-Specific Highlights


  • Added 3 new properties in ScanSettings
    1. autoZoom, when set to true, means the SDK will automatically zoom in on the video if the barcode appears too small in the video feed and fails to be read;
    2. autoFocus, when set to true, means the SDK will automatically focus on the part of the video where a barcode is found but fails to be read;
    3. autoSuggestTip, when set to true, means the SDK will automatically suggest Tip messages to help guide the user to acquire better video frames for barcode reading.

These features are only valid when there is a intermediate_results module license.


  • duplicateForgetTime can only be set to a maximum of 10 seconds in this version. It was not limitd in previous versions.


  • Fixed a bug where binary intermediate result images had unwanted black borders.

9.3.1 (10/10/2022)


  • Fixed a bug where calling setCurrentCamera() or setResolution() before opening the camera would cause an error.
  • Fixed a bug where the canvas used internally remains in the DOM and is not removed as expected after a BarcodeScanner instances calls destroyContext().

9.3.0 (09/27/2022)


  • Added 3 properties to control the highlight style of linear barcodes before validation.
    • barcodeFillStyleBeforeVerification
    • barcodeStrokeStyleBeforeVerification
    • barcodeLineWidthBeforeVerification


  • Fixed a bug where linear barcodes found were highlighted with a beep (if sound was enabled) but no results were output.

9.2.13 (08/11/2022)

  • Fixed bugs with the properties barcodeFillStyle,barcodeStrokeStyle and barcodeLineWidth to make them work properly.
  • Fixed a bug with onFrameRead so that it fires regardless of whether there is a result on the processed frame (as expected).
  • Fixed a bug with onImageRead so that it fires only once for the same image (as expected), instead of twice.

9.2.12 (08/04/2022)

  • Fixed a bug where the scan region mask and/or other shapes drawn on the UI were not updated when the view changed to landscape from portrait or vice versa on mobile devices.
  • This version uses Dynamsoft Camera Enhancer version 3.0.1.

9.2.11 (07/28/2022)


  • Added option captureAndDecodeInParallel to the interface ScanSettings to control whether to speed up the decoding by capturing the next frame in advance.
  • Added properties ifSaveLastUsedCamera and ifSkipCameraInspection for better camera control.
  • Added two more templates dense and distance as options for updateRuntimeSettings().


  • The default resolution to try for cameras on desktop is changed to 1920 x 1080, previously it was 1280 x 720.
  • The method setImageSource() now takes an additional parameter options which helps to pass the information needed by the BarcodeReader object, such as the definition (Dynamsoft.DCE.DrawingItem) for creating the shapes that highlight barcodes.
  • When reading 1D barcodes, the callback onFrameRead now verifies a result across multiple frames before outputting it so that it is more reliable. The same logic was always used for the callback onUniqueRead.
  • The methods pauseScan() (for BarcodeScanner) and pauseScanning() (for BarcodeReader) now both accept an optional parameter options, which can control the behavior of the pause, such as whether to keep results highlighted (keepResultsHighlighted).
  • This version uses Dynamsoft Camera Enhancer version 3.0.0 instead of the previous version 2.3.2.


  • Fixed a bug where the intermediate result images are redacted even with a valid license.

9.0.2 (05/06/2022)


  • Added API ifShowScanRegionMask to BarcodeScanner to control whether to show the scan region mask.


  • Moved the following docs from the doc directory to the root directory of the package.
    • Api Reference.html
    • legal.txt
    • License Agreement.html


  • Fixed bugs with regionMaskFillStyle, regionMaskStrokeStyle, regionMaskLineWidth of BarcodeScanner to avoid invalid value setting.
  • Fixed a bug where region will be reset to full image when switching template after region setting of BarcodeScanner.
  • Fixed a bug where the region setting is invalid when using updateRuntimeSettings of BarcodeReader.

9.0.1 (04/25/2022)


  • Added method setVideoFit() to BarcodeScanner to allow the video element to either fit or cover the viewer.
  • Added method setImageSource() to BarcodeReader to specify an Image Source which provides images of the type DSImage for continuous scanning.
  • Added methods startScanning(), pauseScanning(), resumeScanning(), stopScanning(), getScanSettings() and updateScanSettings() as well as events onUniqueRead and onImageRead to BarcodeReader to facilitate continous scanning of images coming from the Image Source.

9.0.0 (03/24/2022)

Version Highlights

  • Simplified the license activation steps. Different license activation APIs are integrated into one API.
  • Added support for Pharmacode.
  • Added support for Code 11, an 1D format.
  • Deformation resisting modes DRM_BROAD_WARP, DRM_LOCAL_REFERENCE and DRM_DEWRINKLE are optimized and detached from DRM_GENERAL. Users can specify a more effective deformation resisting mode when processing QRCode and DataMatrix codes.
  • Optimized the confidence scoring system for PDF417 codes.

Edition-Specific Highlights


  • Added the property license as the main API for setting a license key.
  • Added methods getFocus() and setFocus() to control the camera focus.
  • Added method getFrameRate() to check the current frame rate of the video input.


  • The file dbr.scanner.html has been renamed to dbr.ui.html.
    • dbrScanner-cvs-scanarea class is now renamed to dce-scanarea
    • dce-video is now replaced by dce-video-container
    • dbrScanner-scanlight is now replaced by dce-scanlight
    • dbrScanner-cvs-drawarea has been removed

The following APIs are renamed:

onUnduplicatedRead onUniqueRead
outputSettingsToString() outputRuntimeSettingsToString()
Dynamsoft.DBR.BarcodeReader.isLoaded() Dynamsoft.DBR.BarcodeReader.isWasmLoaded()

The following APIs are moved:

API Name Notes
whenToPlaySoundforSuccessfulRead Moved to ScanSettings.
soundOnSuccessfullRead Moved to ScanSettings.
whenToVibrateforSuccessfulRead Moved to ScanSettings.
vibrateDuration Moved to ScanSettings.


The following APIs are deprecated:

API Name Notes
Dynamsoft.DBR.BarcodeReader.handshakeCode Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.BarcodeReader.licenseServer Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.BarcodeReader.organizationID Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.BarcodeReader.sessionPassword Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.BarcodeReader.productKeys Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.BarcodeScanner.handshakeCode Use Dynamsoft.DBR.BarcodeScanner.license instead.
Dynamsoft.DBR.BarcodeScanner.licenseServer Use Dynamsoft.DBR.BarcodeScanner.license instead.
Dynamsoft.DBR.BarcodeScanner.organizationID Use Dynamsoft.DBR.BarcodeScanner.license instead.
Dynamsoft.DBR.BarcodeScanner.sessionPassword Use Dynamsoft.DBR.BarcodeScanner.license instead.
Dynamsoft.DBR.BarcodeScanner.productKeys Use Dynamsoft.DBR.BarcodeScanner.license instead.


The following APIs are removed:

API Name Notes
Dynamsoft.DBR.browserInfo Use Dynamsoft.DBR.BarcodeReader.browserInfo instead.
Dynamsoft.DBR.detectEnvironment() Use Dynamsoft.DBR.BarcodeReader.detectEnvironment() instead.
Dynamsoft.DBR.deviceFriendlyName Use Dynamsoft.DBR.BarcodeReader.deviceFriendlyName instead.
Dynamsoft.DBR.engineResourcePath Use Dynamsoft.DBR.BarcodeReader.engineResourcePath instead.
Dynamsoft.DBR.handshakeCode Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.isLoaded() Use Dynamsoft.DBR.BarcodeReader.isWasmLoaded() instead.
Dynamsoft.DBR.licenseServer Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.loadWasm Use Dynamsoft.DBR.BarcodeReader.isWasmLoaded instead.
Dynamsoft.DBR.organizationID Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.productKeys Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.sessionPassword Use Dynamsoft.DBR.BarcodeReader.license instead.
Dynamsoft.DBR.version Use Dynamsoft.DBR.BarcodeReader.version instead.

This page is compatible for:

Version 7.5.0

Is this page helpful?

YesYes NoNo

In this article:

latest version

    • Latest version
    • Version 9.x
      • Version 9.2.12
      • Version 9.0.2
      • Version 9.0.1
      • Version 9.0.0
    • Version 8.x
      • Version 8.8.7
      • Version 8.8.5
      • Version 8.8.3
      • Version 8.8.0
      • Version 8.6.3
      • Version 8.6.0
      • Version 8.4.0
      • Version 8.2.5
      • Version 8.2.3
      • Version 8.2.1
      • Version 8.2.0
      • Version 8.1.3
      • Version 8.1.2
      • Version 8.1.0
      • Version 8.0.0
    • Version 7.x
      • Version 7.6.0
      • Version 7.5.0
    Change +
    © 2003–2023 Dynamsoft. All rights reserved.
    Privacy Statement / Site Map / Home / Purchase / Support