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 - 8.x

8.8.7 (01/26/2022)

  • Added the attribute muted to the video embed element so that the video can be played without user interaction.
  • Fixed a bug with the property intervalTime in ScanSettings to avoid unnecesary frame fetching actions.

8.8.5 (01/26/2022)

  • Fixed a bug where the scan indicator (laser) flickers upon initialization when a scan region is set.
  • Fixed a bug that the wrong version of WASM is referenced when used in a Node.js application.
  • Fixed a bug that some images may cause stack overflow errors when used in a Node.js application.

8.8.3 (10/29/2021)

  • Fixed a bug where it takes more time than expected when creating a BarcodeReader or BarcodeScanner instance.
  • Fixed a bug which makes the building fail in frameworks such as Angular, React, Vue, etc.

8.8.0 (10/28/2021)

Version Highlights

  • Added a new localization mode ONED_FAST_SCAN, which significantly improved the localization speed for 1D barcodes.
  • Added the ability to specify barcode width, height, angle to improve the recognition speed if you have advance information about barcodes.
  • Optimized the logic of confidence scoring for 2D barcodes. The 2D barcode results with confidence greater than 30 are more accurate.

Edition-Specific Highlights

  • Reading speed has significantly increased based on better camera control and optimized memory usage in the core algorithm.
  • Misreading of 2D barcodes has been significantly reduced as a result of better result filtering based on the optimized algorithm in reading confidence calculating.
  • More samples are added to demonstrate the usage of the library in popular frameworks. For more information, please see Demo and Samples - JavaScript.


  • Refactored camera related APIs internally for easier maintenance.
  • Improved result filtering so that misread 2D barcodes are not returned.


The class names of the built-in UI elements have changed

Previous versions v8.8.0+
dbrScanner-bg-loading dce-bg-loading
dbrScanner-bg-camera dce-bg-camera
dbrScanner-video dce-video
dbrScanner-sel-camera dce-sel-camera
dbrScanner-sel-resolutio dce-sel-resolution
dbrScanner-btn-close dce-btn-close

8.6.3 (09/30/2021)

Fixed an issue where the scanning page may freeze when debugging in the Developer Tools with Chromium-94 browsers on PCs.

8.6.1 (09/01/2021)

Fixed a bug where an error occurs when switching region setting from a JSON object to an array of objects.

8.6.0 (08/31/2021)

Version Highlights

  • Improved the confidence calculating algorithm for 1D barcodes. Misreading rate of results with confidence between 30-100 has been significantly reduced.
  • Improved the reading speed on clear images by implementing a new deblur mode DM_BASED_ON_LOC_BIN.

Edition-Specific Highlights

  • Continuous reading of barcodes from a video input is now significantly faster thanks to optimized frame fetching logic.
  • Camera selecting on devices with multiple cameras has been optimized so that the main camera is always used by default. This is especially helpful on high-end Android devices.
  • Misreading of 1D barcodes has been significantly reduced as a result of better result filtering based on the optimized algorithm in reading confidence calculating.



  • Improved frame fetching so that more frames are read for the same time period.
  • Improved camera selecting so that the initial camera used is the main camera.
  • Improved result filtering so that misread 1D barcodes are not returned.
  • Improved WebGL implementation so that much less time is required for image preprocessing.


  • Added method isWasmLoaded() to return whether the engine file is loaded.
  • Added method isContextDestroyed() to return whether a BarcodeReader or BarcodeScanner instance has been destroyed.
  • Added method getOriginalImageInACanvas() to return the actual image the engine tried to read barcodes from.
  • Added method destroyContext() to destroy the BarcodeReader or BarcodeScanner instance itself.
  • Added property ifSaveOriginalImageInACanvas to control whether the actual image to read is saved for debugging.
  • Added property whenToPlaySoundforSuccessfulRead to control when the beep sound should be played.
  • Added property whenToVibrateforSuccessfulRead to control when the device should vibrate.


  • Change the default engine from the compact engine to the full-featured engine.


  • The method destroy() is deprecated, Use the method destroyContext() instead.
  • The property isLoaded is deprecated. Use the method isWasmLoaded() instead.
  • The property bDestroyed is deprecated. Use the method isContextDestroyed() instead.
  • The property oriCanvas is deprecated. Use the method getOriginalImageInACanvas() instead.
  • The property bVibrateOnSuccessfulRead is deprecated. Use whenToVibrateforSuccessfulRead instead.
  • The property bPlaySoundOnSuccessfulRead is deprecated. Use whenToPlaySoundforSuccessfulRead instead.
  • The property bSaveOriCanvas is deprecated. Use ifSaveOriginalImageInACanvas instead.

8.4.0 (06/29/2021)


  • Added a new argument, ThresholdCompensation, to the BinarizationModes mode arguments.


  • Improved the speed of identifying 1D codes from still images.
  • Improved the speed of identifying dense QR codes.
  • Improved the performance of boundary identification for DataMatrix codes.
  • Improved camera selection in some browsers on Android devices.
  • Improved the createInstance() method to avoid unnecessary download of the file “dbr.scanner.html”.


  • Moved the following APIs from Dynamsoft.DBR.BarcodeReader to Dynamsoft. DBR
  • detectEnvironment()

  • engineResourcePath

  • handshakeCode

  • isLoaded()

  • licenseServer

  • loadWasm()

  • organizationID

  • productKeys

  • sessionPassword

  • version

  • _bUseFullFeature

Please note that these APIs still exist under Dynamsoft.DBR.BarcodeReader , but they have been deprecated and replaced by APIs in the new namespace.

8.2.5 (05/18/2021)


  • Added property organizationID which can be used to fetch license(s) belonging to the specified organization from the License Tracking Server.
  • Added a class name to the powered-by message element on the built-in UI so that it can be manipulated in CSS.


  • Removed redundant warning messages for duplicate barcodes.


  • Fixed a bug with the API bSaveOriCanvas where the same canvas is reused resulting in duplicated original image for different barcodes.

8.2.3 (04/15/2021)


  • Added properties bVibrateOnSuccessfulRead and vibrateDuration to control the vibration of a device when barcodes are found.
  • Added methods showVideo() and decodeCurrentFrame() to make it possible for users to show the video and manually trigger the decoding of a frame.
  • Added a sample for Vue 3.


  • Optimized how the WASM files are created to make them smaller (18% smaller).
  • When opening a camera takes too long and times out, an exception will be thrown.
  • When the webpage in which a BarcodeScanner instance is running gets hidden (not visible to the user), the barcode scanning will stop automatically. Later when it becomes visible again, the scanning will resume automatically.


  • Added a “Powered by Dynamsoft” logo to the default Barcode Scanner UI.

8.2.1 (03/29/2021)


  • Resolved a bug that returns the error as a Promise object instead of a string when calling the method loadWasm().

8.2.0 (03/17/2021)


  • Added a new mode argument, FindAccurateBoundary, to RegionPredetectionModes that determines if the SDK attempts to find an accurate boundary when RegionPredetectionModes is set to RPM_GENERAL_HSV_CONTRAST.


  • Improved both the localization and decoding algorithms for Postal Codes.
  • LocalizationMode LM_STATISTICS_POSTAL_CODE will not be added automatically when enabling Postal Code in your runtime settings. Instead, users must manually add it to the LocalizationMode array if it is required.


  • Resolved a bug that infrequently causes the application to crash when decoding a MicroPDF417 barcode.

8.1.3 (03/04/2021)


  • Added support for SSR (Server-side Rendering) and 3 related samples for Nextjs, Nuxtjs and gatsby respectively.


  • Fixed a bug where if scanner.destroy() is called before scanner.show() finishes, the camera will not be released.

8.1.2 (01/22/2021)


  • Added mode, page, totalPage and parityData in the QRCodeDetails Class.


  • Improved the recognition accuracy for GS1 Databar.
  • Removed the exception code from barcodeText when using a valid trial license.
  • Optimized memory usage when using WebGL for mapping color images into grayscale images which made the process faster.


  • Fixed a bug where barcodeFormatString, barcodeFormatString_2, regionName and documentName don’t have value in the IRT_TYPED_BARCODE_ZONE intermediate result.

8.1.0 (01/19/2021)


  • Added support for MSI Code (Modified Plessey).
  • Added a new member BarcodeZoneMinDistanceToImageBorders in the PublicRuntimeSettings struct to set the minimum distance (in pixels) between barcode zone and image borders.
  • Added exception error message to TextResult when license initialization fails or decoding authorization fails.


  • Improved the localization robustness for QR Code.
  • Improved the localization for low quality 1D barcodes.
  • Improved the deblurring performance and recognition rate for DataMatrix.
  • Improved the recognition rate for Aztec.
  • Improved runtime setting presets to use BarcodeZoneMinDistanceToImageBorders.


  • Fixed a bug where Micro PDF417 may not be localized in multiple-barcode scenarios.
  • Fixed a bug where the ExpectedBarcodesCount and BarcodeFormat parameters do not work in the Region.
  • Fixed a memory issue in iOS Safari caused by enabling sound.
  • Fixed an issue with UTF-8 character encoding.

8.0.0 (11/25/2020)


  • Added support for decoding barcodes from an existing video stream.
  • Introduced new namespace Dynamsoft. DBR.
  • Implemented a new licensing tracking mechanism, License 2.0, which makes it easier for users to track license usage.
  • Added a new format control parameter, BarcodeZoneMinDistanceToImageBorders, to set the minimum distance (in pixels) between the barcode zone and image borders.
  • Added a new format control parameter, MinRatioOfBarcodeZoneWidthToHeight, to set the minimum ratio (width/height) of the barcode zone.
  • Added a new format control parameter, BarcodeZoneBarCountRangeArray, to set the barcode zone’s range of bar count for barcode search.
  • Added a new parameter, DeblurModes, so users can use different deblur algorithms for different scenarios. DeblurModes has the following enum types: DirectBinarization, ThresholdBinarization, GrayEqulization, Smoothing, Morphing, DeepAnalysis and Sharpening.


  • Changed the default runtime preset setting of BarcodeScanner from speed to single.
  • Improved the localization speed for the ScanDirectly mode.
  • Improved the localization accuracy for DataMatrix codes with a narrow quiet zone.


Feature Deprecated

  • DeblurLevel is now deprecated. It still works in this version but could be removed in the near future. We recommend using DeblurModes 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