Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 88 additions & 10 deletions _includes/sidelist-programming/programming-javascript.html
Original file line number Diff line number Diff line change
Expand Up @@ -920,18 +920,89 @@
>
<ul>
<li>
<a
href="{{ site.dcvb_js_api }}utility/multi-frame-result-cross-filter.html"
class="otherLinkColour"
>MultiFrameResultCrossFilter</a
>
<a>Classes</a>
<ul>
<li>
<a
href="{{ site.dcvb_js_api }}utility/layout-analyzer.html"
class="otherLinkColour"
>LayoutAnalyzer</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/multi-frame-result-cross-filter.html"
class="otherLinkColour"
>MultiFrameResultCrossFilter</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/utility-module-class.html"
class="otherLinkColour"
>UtilityModule</a
>
</li>
</ul>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/utility-module-class.html"
class="otherLinkColour"
>UtilityModule</a
>
<a class="otherLinkColour">Interfaces</a>
<ul>
<li>
<a
href="{{ site.dcvb_js_api }}utility/layout-analysis-result.html"
class="otherLinkColour"
>LayoutAnalysisResult</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/layout-axis.html"
class="otherLinkColour"
>LayoutAxis</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/layout-element.html"
class="otherLinkColour"
>LayoutElement</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/layout-analysis-parameter.html"
class="otherLinkColour"
>LayoutAnalysisParameter</a
>
</li>
</ul>
</li>
<li>
<a class="otherLinkColour">Enumerations</a>
<ul>
<li>
<a
href="{{ site.dcvb_js_api }}utility/enum-filter-type.html"
class="otherLinkColour"
>EnumFilterType</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/enum-layout-element-source.html"
class="otherLinkColour"
>EnumLayoutElementSource</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}utility/enum-layout-pattern.html"
class="otherLinkColour"
>EnumLayoutPattern</a
>
</li>
</ul>
</li>
</ul>
</li>
Expand Down Expand Up @@ -1334,6 +1405,13 @@
>ModuleName</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}core/enum/measure-unit.html?lang=js"
class="otherLinkColour"
>MeasureUnit</a
>
</li>
<li>
<a
href="{{ site.dcvb_js_api }}core/enum-region-object-element-type.html?lang=js"
Expand Down
1 change: 1 addition & 0 deletions _includes/sidelist-programming/sidelist-parameters.html
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@
<ul>
<li><a href="{{ site.dcvb_parameters }}barcode-format-specification/all-module-deviation.html" class="otherLinkColour">AllModuleDeviation</a></li>
<li><a href="{{ site.dcvb_parameters }}barcode-format-specification/australian-post-encoding-table.html" class="otherLinkColour">AustralianPostEncodingTable</a></li>
<li><a href="{{ site.dcvb_parameters }}barcode-format-specification/auto-detect-color-inversion.html" class="otherLinkColour">AutoDetectColorInversion</a></li>
<li><a href="{{ site.dcvb_parameters }}barcode-format-specification/barcode-angle-range-array.html" class="otherLinkColour">BarcodeAngleRangeArray</a></li>
<li><a href="{{ site.dcvb_parameters }}barcode-format-specification/barcode-bytes-length-range-array.html" class="otherLinkColour">BarcodeBytesLengthRangeArray</a></li>
<li><a href="{{ site.dcvb_parameters }}barcode-format-specification/barcode-height-range-array.html" class="otherLinkColour">BarcodeHeightRangeArray</a></li>
Expand Down
1 change: 1 addition & 0 deletions programming/javascript/release-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ breadcrumbText: Release Notes

# DBR JavaScript SDK - Release Notes

- [11.6.2000 (08/13/2026)](js-11.html#1162000-08132026)
- [11.4.3000 (07/02/2026)](js-11.html#1143000-07022026)
- [11.4.2001 (04/24/2026)](js-11.html#1142001-04242026)
- [11.4.2000 (04/21/2026)](js-11.html#1142000-04212026)
Expand Down
47 changes: 47 additions & 0 deletions programming/javascript/release-notes/js-11.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,53 @@ noTitleIndex: true

# Release Notes for Dynamsoft Barcode Reader JavaScript SDK

## 11.6.2000 (08/13/2026)

### Highlights

#### DataMatrix Color Inversion Detection

- **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcvb_parameters }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios.

#### Barcode Layout Analysis

- **Decode dense grid barcodes more completely** - Added [`LayoutAnalyzer`]({{ site.dcvb_js_api }}utility/layout-analyzer.html) to organize barcode locations into logical line or matrix layouts and infer unrecognized barcode regions when gaps exist, enabling workflows such as fast first-pass decoding, missing-region inference, and targeted second-pass decoding on dense N*M barcode layouts.

#### Cross-Version License Support

- **Use a single license across SDK versions** - Full License 1.0 keys (starting with "f") that are non-perpetual are no longer version-checked, so the same key can be used across SDK versions without reactivation.

### New

- Added support for Micro PDF417-specific decoding mode.

- Added [`AutoDetectColorInversion`]({{ site.dcvb_parameters }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes.

- Added [`LayoutAnalyzer`]({{ site.dcvb_js_api }}utility/layout-analyzer.html) class with [`analyze()`]({{ site.dcvb_js_api }}utility/layout-analyzer.html#analyze) static method for quadrilateral layout analysis.

- Added [`LayoutPattern`]({{ site.dcvb_js_api }}utility/enum-layout-pattern.html) enumeration with values `LP_UNKNOWN`, `LP_LINES`, and `LP_MATRIX`.

- Added [`LayoutElementSource`]({{ site.dcvb_js_api }}utility/enum-layout-element-source.html) enumeration with values `LES_NONE`, `LES_INPUT`, and `LES_INFERRED`.

- Added [`MeasureUnit`]({{ site.dcvb_js_api }}core/enum-measure-unit.html) enumeration with values `MU_PIXEL` and `MU_PERCENTAGE`.

- Added [`LayoutAxis`]({{ site.dcvb_js_api }}utility/layout-axis.html), [`LayoutAnalysisParameter`]({{ site.dcvb_js_api }}utility/layout-analysis-parameter.html), [`LayoutElement`]({{ site.dcvb_js_api }}utility/layout-element.html), and [`LayoutAnalysisResult`]({{ site.dcvb_js_api }}utility/layout-analysis-result.html) for layout analysis configuration and results.

- Added a new `GridBarcodeScanner` sample (with `sample_grid.png`) to demonstrate how to use [`LayoutAnalyzer`]({{ site.dcvb_js_api }}utility/layout-analyzer.html) for barcode grid layout detection and logical row/column mapping.

### Changed

- [`MaxParallelTasks`]({{ site.dcvb_parameters }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task.

- [`set_device_friendly_name()`]({{ site.dcvb_js_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcvb_js_api }}core/enum-error-code.html) if constraints are not met.


### Fixed

- Fixed an issue in GS1-Databar AI `17` (YYMMDD) results where the month field could be missing a leading zero.
- Fixed an issue where minImageCaptureInterval was not reset correctly when resetSettings() was called.
- Fixed several known crash issues.

## 11.4.3000 (07/02/2026)

Updated third-party libraries to incorporate the latest security fixes.
Expand Down
38 changes: 19 additions & 19 deletions programming/javascript/user-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ The complete code of the "Hello World" example is shown below
<body>
<div id="camera-view-container" style="width: 100%; height: 60vh"></div>
<textarea id="results" style="width: 100%; min-height: 10vh; font-size: 3vmin; overflow: auto" disabled></textarea>
<script src="https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.4.3000/dist/dbr.bundle.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.6.2000/dist/dbr.bundle.js"></script>
<script>
Dynamsoft.License.LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9");
Dynamsoft.Core.CoreModule.loadWasm();
Expand Down Expand Up @@ -84,15 +84,15 @@ The complete code of the "Hello World" example is shown below
```

<p align="center" style="text-align:center; white-space: normal; ">
<a target="_blank" href="https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v11.4.30/basics/hello-world.html" title="Code in Github" style="text-decoration:none;">
<a target="_blank" href="https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v11.6.20/basics/hello-world.html" title="Code in Github" style="text-decoration:none;">
<img src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/github.svg" alt="Code in Github" width="20" height="20" style="width:20px;height:20px;">
</a>
&nbsp;
<a target="_blank" href="https://jsfiddle.net/DynamsoftTeam/csm2f9wb/" title="Run via JSFiddle" style="text-decoration:none;">
<img src="https://cdn.jsdelivr.net/npm/simple-icons@3.0.1/icons/jsfiddle.svg" alt="Run via JSFiddle" width="20" height="20" style="width:20px;height:20px;" >
</a>
&nbsp;
<a target="_blank" href="https://demo.dynamsoft.com/Samples/DBR/JS/basics/hello-world.html?ver=11.4.30&utm_source=guide" title="Run in Dynamsoft" style="text-decoration:none;">
<a target="_blank" href="https://demo.dynamsoft.com/Samples/DBR/JS/basics/hello-world.html?ver=11.6.20&utm_source=guide" title="Run in Dynamsoft" style="text-decoration:none;">
<img src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.0.0/svgs/solid/circle-play.svg" alt="Run in Dynamsoft" width="20" height="20" style="width:20px;height:20px;">
</a>
</p>
Expand Down Expand Up @@ -137,7 +137,7 @@ The complete code of the "Hello World" example is shown below

### Run the example

You can run the example deployed to [the Dynamsoft Demo Server](https://demo.dynamsoft.com/Samples/DBR/JS/basics/hello-world.html?ver=11.4.30&utm_source=guide) or test it with [JSFiddle code editor](https://jsfiddle.net/DynamsoftTeam/csm2f9wb/).
You can run the example deployed to [the Dynamsoft Demo Server](https://demo.dynamsoft.com/Samples/DBR/JS/basics/hello-world.html?ver=11.6.20&utm_source=guide) or test it with [JSFiddle code editor](https://jsfiddle.net/DynamsoftTeam/csm2f9wb/).

You will be asked to allow access to your camera, after which the video will be displayed on the page. After that, you can point the camera at a barcode to read it.

Expand All @@ -151,7 +151,7 @@ Alternatively, you can test locally by copying and pasting the code shown above
>
> Regarding configuring https on your server, these guides for [nginx](https://nginx.org/en/docs/http/configuring_https_servers.html) / [IIS](https://aboutssl.org/how-to-create-a-self-signed-certificate-in-iis/) / [tomcat](https://dzone.com/articles/setting-ssl-tomcat-5-minutes) / [nodejs](https://nodejs.org/docs/v0.4.1/api/tls.html) might help.
>
> If the test doesn't go as expected, you can [contact us](https://www.dynamsoft.com/company/contact/?ver=11.4.30&utm_source=guide&product=dbr&package=js).
> If the test doesn't go as expected, you can [contact us](https://www.dynamsoft.com/company/contact/?ver=11.6.20&utm_source=guide&product=dbr&package=js).

## Preparing the SDK

Expand All @@ -170,29 +170,29 @@ The simplest way to include the SDK is to use either the [jsDelivr](https://jsde
- jsDelivr

```html
<script src="https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.4.3000/dist/dbr.bundle.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.6.2000/dist/dbr.bundle.js"></script>
```

- UNPKG

```html
<script src="https://unpkg.com/dynamsoft-barcode-reader-bundle@11.4.3000/dist/dbr.bundle.js"></script>
<script src="https://unpkg.com/dynamsoft-barcode-reader-bundle@11.6.2000/dist/dbr.bundle.js"></script>
```

<!-- - In some rare cases (such as some restricted areas), you might not be able to access the CDN. If this happens, you can use the following files for the test.

```html
<script src="https://download2.dynamsoft.com/packages/dynamsoft-barcode-reader-bundle@11.4.3000/dist/dbr.bundle.js"></script>
<script src="https://download2.dynamsoft.com/packages/dynamsoft-barcode-reader-bundle@11.6.2000/dist/dbr.bundle.js"></script>
```

However, please **DO NOT** use `download2.dynamsoft.com` resources in a production application as they are for temporary testing purposes only. Instead, you can try hosting the SDK yourself. -->

- In frameworks like React, Vue and Angular, you may want to add the package as a dependency.

```sh
npm i dynamsoft-barcode-reader-bundle@11.4.3000 -E
npm i dynamsoft-barcode-reader-bundle@11.6.2000 -E
# or
yarn add dynamsoft-barcode-reader-bundle@11.4.3000 -E
yarn add dynamsoft-barcode-reader-bundle@11.6.2000 -E
```

NOTE that in frameworks, you need to [specify the location of the engine files](#2-optional-specify-the-location-of-the-engine-files).
Expand All @@ -205,14 +205,14 @@ Besides using the public CDN, you can also download the SDK and host its files o

- From the website

[Download Dynamsoft Barcode Reader JavaScript Package](https://www.dynamsoft.com/barcode-reader/downloads/?ver=11.4.30&utm_source=guide&product=dbr&package=js)
[Download Dynamsoft Barcode Reader JavaScript Package](https://www.dynamsoft.com/barcode-reader/downloads/?ver=11.6.20&utm_source=guide&product=dbr&package=js)

The resources are located at the path `dynamsoft-barcode-reader-js-{version-number}/dist/`.

- From npm

```sh
npm i dynamsoft-barcode-reader-bundle@11.4.3000 -E
npm i dynamsoft-barcode-reader-bundle@11.6.2000 -E
```

The resources are located at the path `node_modules/<pkg>`, without `@<version>`. You must copy "dynamsoft-xxx" packages elsewhere and add `@<version>`. The `<version>` can be obtained from `package.json` of each package. Another thing to do is to [specify the engineResourcePaths](#2-optional-specify-the-location-of-the-engine-files) so that the SDK can correctly locate the resources.
Expand All @@ -221,7 +221,7 @@ Besides using the public CDN, you can also download the SDK and host its files o
You can typically include SDK like this:

```html
<script src="path/to/dynamsoft-barcode-reader-bundle@11.4.3000/dist/dbr.bundle.js"></script>
<script src="path/to/dynamsoft-barcode-reader-bundle@11.6.2000/dist/dbr.bundle.js"></script>
```
<div class="multi-panel-end"></div>

Expand Down Expand Up @@ -253,23 +253,23 @@ To enable the SDK's functionality, you must provide a valid license. Utilize the
Dynamsoft.License.LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9");
```

As previously stated, the key "DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" serves as a test license valid for 24 hours, applicable to any newly authorized browser. To test the SDK further, you can request a 30-day free trial license via the <a href="https://www.dynamsoft.com/customer/license/trialLicense?ver=11.4.30&utm_source=guide&product=dbr&package=js" target="_blank">Request a Trial License</a> link.
As previously stated, the key "DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" serves as a test license valid for 24 hours, applicable to any newly authorized browser. To test the SDK further, you can request a 30-day free trial license via the <a href="https://www.dynamsoft.com/customer/license/trialLicense?ver=11.6.20&utm_source=guide&product=dbr&package=js" target="_blank">Request a Trial License</a> link.

> Upon registering a Dynamsoft account and obtaining the SDK package from the official website, Dynamsoft will automatically create a 30-day free trial license and embed the corresponding license key into all the provided SDK samples.

#### 2. [Optional] Specify the location of the "engine" files

This step is generally necessary when utilizing frameworks such as Angular, React, Vue, or when managing the hosting of resource files yourself.
This step is optional and is only necessary if you need to specify a custom location for the engine files, such as when hosting these resources yourself or when your project's build setup does not automatically resolve them from the default location.

The purpose is to tell the SDK where to find the engine files (\*.worker.js, \*.wasm.js and \*.wasm, etc.).

```ts
// in framework
// In an ES Module
import { CoreModule } from "dynamsoft-barcode-reader-bundle";
CoreModule.engineResourcePaths.rootDirectory = "https://cdn.jsdelivr.net/npm/";
```
```js
// in pure js
// Using the global namespace
Dynamsoft.Core.CoreModule.engineResourcePaths.rootDirectory = "https://cdn.jsdelivr.net/npm/";
```
This code uses the jsDelivr CDN as an example, feel free to change it to your own location.
Expand Down Expand Up @@ -540,7 +540,7 @@ await cvRouter.startCapturing("ReadSingleBarcode");

The preset templates have many more settings that can be customized to suit your use case best. If you [download the SDK from Dynamsoft website](https://www.dynamsoft.com/barcode-reader/downloads/1000003-confirmation/), you can find the templates under

* "/dynamsoft-barcode-reader-js-11.4.3000/dist/templates/"
* "/dynamsoft-barcode-reader-js-11.6.2000/dist/templates/"

Upon completing the template editing, you can invoke the `initSettings` method and provide it with the template path as an argument.

Expand Down Expand Up @@ -642,7 +642,7 @@ The UI is part of the auxiliary SDK "Dynamsoft Camera Enhancer", read more on ho
### API Reference

You can check out the detailed documentation about the APIs of the SDK at
[https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/?ver=11.4.3000](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/?ver=11.4.3000).
[https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/?ver=11.6.2000](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/?ver=11.6.2000).

<!-- Compatibility is basically not an issue. Pls remove to another place

Expand Down
Loading