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
2 changes: 1 addition & 1 deletion _includes/sidelist-parameters-organization.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/expected-barcodes-count.html" class="otherLinkColour">ExpectedBarcodesCount</a></li>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/max-threads-in-one-task.html" class="otherLinkColour">MaxThreadsInOneTask</a></li>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/name.html" class="otherLinkColour">Name</a></li>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/return-barcode-zone-clarity.html" class="otherLinkColour">ReturnBarcodeZoneClarity</a></li>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/text-result-order-modes.html" class="otherLinkColour">TextResultOrderModes</a></li>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/section-array.html" class="otherLinkColour">SectionArray</a>
<ul>
Expand Down Expand Up @@ -138,6 +137,7 @@
<ul>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/stage-decode-barcodes.html#stage" class="otherLinkColour">Stage</a></li>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html" class="otherLinkColour">DeblurModes</a></li>
<li><a href="{{ site.dcvb_parameters_reference }}barcode-reader-task-settings/return-barcode-zone-clarity.html" class="otherLinkColour">ReturnBarcodeZoneClarity</a></li>
</ul>
</li>
</ul>
Expand Down
2 changes: 1 addition & 1 deletion performance/speed.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ For interactive barcode reading from a video input, you get better speed if:
* the video frames are trimmed around the barcode(s) before submitted for barcode reading;
* the video frames are provided in a way that reduces the waiting time of the barcode reading engine.

The <a href="https://www.dynamsoft.com/camera-enhancer/docs/core/introduction/" target="_blank">Dynamsoft Camera Enhancer SDK</a> (DCE) is designed to do all the above like this:
The Dynamsoft Camera Enhancer SDK (DCE) is designed to do all the above like this:


* it comes with camera control and is able to find and open the best suited camera by default (with support for manual adjustment too);
Expand Down
23 changes: 23 additions & 0 deletions programming/features/barcode-formats-and-count.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ You can configure the parameter in two different ways, depending on your require
>- Swift
>- Python
>- C#
>- Java
>
>
```javascript
Expand Down Expand Up @@ -112,6 +113,28 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
cvRouter.UpdateSettings(PresetTemplate.PT_READ_BARCODES, settings, out errorMsg);
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
SimplifiedCaptureVisionSettings settings = null;
try {
// Obtain current runtime settings of `CaptureVisionRouter` instance
settings = cvRouter.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES);
} catch (CaptureVisionException e) {
settings = new SimplifiedCaptureVisionSettings();
}
// Specify the barcode formats by enumeration values.
// Use "|" to enable multiple barcode formats at one time.
settings.barcodeSettings.barcodeFormatIds = EnumBarcodeFormat.BF_QR_CODE | EnumBarcodeFormat.BF_ONED;
try {
// Update the settings.
cvRouter.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, settings);
} catch (CaptureVisionException e) {
System.out.println("Update settings failed: ErrorCode: " + e.getErrorCode() + ", ErrorString: " + e.getErrorString());
return;
}
//call capture or other tasks
```


* Configure barcode format via `JSON parameter template file`
Expand Down
26 changes: 26 additions & 0 deletions programming/features/barcode-scan-region.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Dynamsoft Barcode Reader (DBR) will locate the code region and decode the entire
>- C++
>- Python
>- C#
>- Java
>
>
```javascript
Expand Down Expand Up @@ -87,6 +88,31 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
cvRouter.UpdateSettings(PresetTemplate.PT_READ_BARCODES, settings, out errorMsg);
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
SimplifiedCaptureVisionSettings settings = null;
try {
// Obtain current runtime settings of `CaptureVisionRouter` instance
settings = cvRouter.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES);
} catch (CaptureVisionException e) {
settings = new SimplifiedCaptureVisionSettings();
}
// Specify the ROI.
settings.roiMeasuredInPercentage = 1;
settings.roi.points[0].set(10, 10);
settings.roi.points[1].set(90, 10);
settings.roi.points[2].set(90, 90);
settings.roi.points[3].set(10, 90);
try {
// Update the settings.
cvRouter.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, settings);
} catch (CaptureVisionException e) {
System.out.println("Update settings failed: ErrorCode: " + e.getErrorCode() + ", ErrorString: " + e.getErrorString());
return;
}
//call capture or other tasks
```

* Configure region via `JSON Template`

Expand Down
25 changes: 25 additions & 0 deletions programming/features/get-barcode-location.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ The following code snippet shows how to get the coordinates of the barcode:
>- Swift
>- Python
>- C#
>- Java
>
>
```javascript
Expand Down Expand Up @@ -167,3 +168,27 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
}
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
CapturedResult[] results = cvRouter.captureMultiPages("IMAGE-FILE-PATH", EnumPresetTemplate.PT_READ_BARCODES);
for (CapturedResult result : results) {
if (result.getErrorCode() != EnumErrorCode.EC_OK) {
System.out.println("Error: " + result.getErrorCode() + ", " + result.getErrorString());
}
DecodedBarcodesResult barcodesResult = result.getDecodedBarcodesResult();
if (barcodesResult != null) {
BarcodeResultItem[] items = barcodesResult.getItems();
System.out.println("Decoded " + items.length + " barcodes");
for (int i = 0; i < items.length; i++) {
BarcodeResultItem barcodeItem = items[i];
System.out.println("Result " + (i + 1));
Quadrilateral quad = barcodeItem.getLocation();
System.out.println("Point 0: [" + quad.points[0].getX() + "," + quad.points[0].getY() + "]");
System.out.println("Point 1: [" + quad.points[1].getX() + "," + quad.points[1].getY() + "]");
System.out.println("Point 2: [" + quad.points[2].getX() + "," + quad.points[2].getY() + "]");
System.out.println("Point 3: [" + quad.points[3].getX() + "," + quad.points[3].getY() + "]");
}
}
}
```
22 changes: 22 additions & 0 deletions programming/features/get-confidence-rotation.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ The following code snippet shows how to get the confidence and rotation angle of
>- Swift
>- Python
>- C#
>- Java
>
>
```javascript
Expand Down Expand Up @@ -167,6 +168,27 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
}
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
CapturedResult[] results = cvRouter.captureMultiPages("IMAGE-FILE-PATH", EnumPresetTemplate.PT_READ_BARCODES);
for (CapturedResult result : results) {
if (result.getErrorCode() != EnumErrorCode.EC_OK) {
System.out.println("Error: " + result.getErrorCode() + ", " + result.getErrorString());
}
DecodedBarcodesResult barcodesResult = result.getDecodedBarcodesResult();
if (barcodesResult != null) {
BarcodeResultItem[] items = barcodesResult.getItems();
System.out.println("Decoded " + items.length + " barcodes");
for (int i = 0; i < items.length; i++) {
BarcodeResultItem barcodeItem = items[i];
System.out.println("Result " + (i + 1));
System.out.println("Confidence: " + barcodeItem.getConfidence());
System.out.println("Angle: " + barcodeItem.getAngle());
}
}
}
```

[1]: assets/get-confidence-rotation/1d-angle.png

Expand Down
35 changes: 30 additions & 5 deletions programming/features/get-detailed-info.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ needAutoGenerateSidebar: false

The Dynamsoft Barcode Reader SDK provides APIs for you to get the detailed barcode information like checksum digit, start/stop characters, error correction level, etc. To learn more about what information you can get, see the following items:

- `OneDCodeDetails`: [C++]({{ site.cpp_api }}oned-code-details.html) / [Python]({{ site.python_api }}oned-code-details.html) / [.NET]({{ site.dotnet_api }}oned-code-details.html)
- `QRCodeDetails`: [C++]({{ site.cpp_api }}qr-code-details.html) / [Python]({{ site.python_api }}qr-code-details.html) / [.NET]({{ site.dotnet_api }}qr-code-details.html)
- `PDF417Details`: [C++]({{ site.cpp_api }}pdf417-details.html) / [Python]({{ site.python_api }}pdf417-details.html) / [.NET]({{ site.dotnet_api }}pdf417-details.html)
- `DataMatrixDetails`: [C++]({{ site.cpp_api }}datamatrix-details.html) / [Python]({{ site.python_api }}datamatrix-details.html) / [.NET]({{ site.dotnet_api }}datamatrix-details.html)
- `AztecDetails`: [C++]({{ site.cpp_api }}aztec-details.html) / [Python]({{ site.python_api }}aztec-details.html) / [.NET]({{ site.dotnet_api }}aztec-details.html)
- `OneDCodeDetails`: [C++]({{ site.cpp_api }}oned-code-details.html) / [Python]({{ site.python_api }}oned-code-details.html) / [.NET]({{ site.dotnet_api }}oned-code-details.html) / [Java]({{ site.java_api }}oned-code-details.html)
- `QRCodeDetails`: [C++]({{ site.cpp_api }}qr-code-details.html) / [Python]({{ site.python_api }}qr-code-details.html) / [.NET]({{ site.dotnet_api }}qr-code-details.html) / [Java]({{ site.java_api }}qr-code-details.html)
- `PDF417Details`: [C++]({{ site.cpp_api }}pdf417-details.html) / [Python]({{ site.python_api }}pdf417-details.html) / [.NET]({{ site.dotnet_api }}pdf417-details.html) / [Java]({{ site.java_api }}pdf417-details.html)
- `DataMatrixDetails`: [C++]({{ site.cpp_api }}datamatrix-details.html) / [Python]({{ site.python_api }}datamatrix-details.html) / [.NET]({{ site.dotnet_api }}datamatrix-details.html) / [Java]({{ site.java_api }}datamatrix-details.html)
- `AztecDetails`: [C++]({{ site.cpp_api }}aztec-details.html) / [Python]({{ site.python_api }}aztec-details.html) / [.NET]({{ site.dotnet_api }}aztec-details.html) / [Java]({{ site.java_api }}aztec-details.html)

Here we take QR Code as example and show how to get the version and model of a QR Code.

Expand Down Expand Up @@ -45,6 +45,7 @@ Here we take QR Code as example and show how to get the version and model of a Q
>- Swift
>- Python
>- C#
>- Java
>
>
```javascript
Expand Down Expand Up @@ -175,3 +176,27 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
}
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
CapturedResult[] results = cvRouter.captureMultiPages("IMAGE-FILE-PATH", EnumPresetTemplate.PT_READ_BARCODES);
for (CapturedResult result : results) {
if (result.getErrorCode() != EnumErrorCode.EC_OK) {
System.out.println("Error: " + result.getErrorCode() + ", " + result.getErrorString());
}
DecodedBarcodesResult barcodesResult = result.getDecodedBarcodesResult();
if (barcodesResult != null) {
BarcodeResultItem[] items = barcodesResult.getItems();
System.out.println("Decoded " + items.length + " barcodes");
for (int i = 0; i < items.length; i++) {
BarcodeResultItem barcodeItem = items[i];
System.out.println("Result " + (i + 1));
if (barcodeItem.getFormat() == EnumBarcodeFormat.BF_QR_CODE) {
QRCodeDetails qrDetail = (QRCodeDetails) barcodeItem.getDetails();
System.out.println("Version: " + qrDetail.version);
System.out.println("Model: " + qrDetail.model);
}
}
}
}
```
42 changes: 42 additions & 0 deletions programming/features/use-runtimesettings-or-templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ The following code snippet demonstrates how to specify barcode formats via `Simp
>- Swift
>- Python
>- C#
>- Java
>
>
```javascript
Expand Down Expand Up @@ -125,6 +126,28 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
cvRouter.UpdateSettings(PresetTemplate.PT_READ_BARCODES, settings, out errorMsg);
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
SimplifiedCaptureVisionSettings settings = null;
try {
// Obtain current runtime settings of `CaptureVisionRouter` instance
settings = cvRouter.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES);
} catch (CaptureVisionException e) {
settings = new SimplifiedCaptureVisionSettings();
}
// Specify the barcode formats by enumeration values.
// Use "|" to enable multiple barcode formats at one time.
settings.barcodeSettings.barcodeFormatIds = EnumBarcodeFormat.BF_QR_CODE | EnumBarcodeFormat.BF_ONED;
try {
// Update the settings.
cvRouter.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, settings);
} catch (CaptureVisionException e) {
System.out.println("Update settings failed: ErrorCode: " + e.getErrorCode() + ", ErrorString: " + e.getErrorString());
return;
}
//call capture or other tasks
```

**See Also**

Expand Down Expand Up @@ -183,6 +206,7 @@ The following steps demonstrates how to specify barcode formats via `JSON Templa
>- Swift
>- Python
>- C#
>- Java
>
>
```javascript
Expand Down Expand Up @@ -252,7 +276,25 @@ The following steps demonstrates how to specify barcode formats via `JSON Templa
// more process here
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
try {
String templateFile = "PATH-TO-YOUR-SETTING-FILE";
cvRouter.initSettingsFromFile(templateFile);
// String templateString = "";
// cvRouter.initSettings(templateString);
} catch (CaptureVisionRouterException e) {
System.out.println("Init template failed: ErrorCode: " + e.getErrorCode() + ", ErrorString: " + e.getErrorString());
return;
}
// more process here
```

## Mixed Usage

It's also possible to use a `JSON Template` along with `SimplifiedCaptureVisionSettings`. Typically, you initialize the SDK with a `JSON Template`, the settings in which will be reflected in `SimplifiedCaptureVisionSettings`, then you can further fine-tune `SimplifiedCaptureVisionSettings` to apply to the actual reading process.

> NOTE: If your JSON template contains complex configurations that cannot be represented in `SimplifiedCaptureVisionSettings`, you may encounter an error message like "complex template can't be converted to simplified settings" when calling `getSimplifiedSettings()`. In such cases, you should either:
> - Simplify your JSON template so that it can be converted to `SimplifiedCaptureVisionSettings`, or
> - Continue using the JSON template exclusively without attempting to retrieve or update simplified settings.
22 changes: 22 additions & 0 deletions programming/usecases/read-postal-codes.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ You can configure the parameter `BarcodeFormatIds` in two different ways, depend
>- Swift
>- Python
>- C#
>- Java
>
>
```c++
Expand Down Expand Up @@ -114,6 +115,27 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
cvRouter.UpdateSettings(PresetTemplate.PT_READ_BARCODES, settings, out errorMsg);
}
```
>
```java
CaptureVisionRouter cvRouter = new CaptureVisionRouter();
SimplifiedCaptureVisionSettings settings = null;
try {
// Obtain current runtime settings of `CaptureVisionRouter` instance
settings = cvRouter.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES);
} catch (CaptureVisionException e) {
settings = new SimplifiedCaptureVisionSettings();
}
// Enable all supported types of postal codes.
settings.barcodeSettings.barcodeFormatIds = EnumBarcodeFormat.BF_POSTALCODE;
try {
// Update the settings.
cvRouter.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, settings);
} catch (CaptureVisionException e) {
System.out.println("Update settings failed: ErrorCode: " + e.getErrorCode() + ", ErrorString: " + e.getErrorString());
return;
}
//call capture or other tasks
```

* Configure barcode format via `JSON parameter template file`
* update parameter `BarcodeFormatIds` in JSON template
Expand Down
1 change: 1 addition & 0 deletions release-notes/dbr-rn-11.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ noTitleIndex: true

| Versions | Available Editions |
| -------- | ------------------ |
| 11.2.1100 | [Java]({{ site.java_release_notes}}java-11.html#1121100-10282025){:target="_blank"} |
| 11.2.1000 | [C++]({{ site.cpp_release_notes}}cpp-11.html#1121000-10142025){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-11.html#1121000-10142025){:target="_blank"} / [Python]({{ site.python_release_notes}}python-11.html#1121000-10142025){:target="_blank"} / [Java]({{ site.java_release_notes}}java-11.html#1121000-10142025){:target="_blank"} / [Android]({{ site.android_release_notes}}android-11.html#1121000-10162025){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-11.html#1121000-10162025){:target="_blank"} |

## 11.0 (03/04/2025)
Expand Down