diff --git a/.DS_Store b/.DS_Store index f2c31f4..3c672d1 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0acf57c --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +secret.txt +.DS_Store +logs/ +*.log +*.tmp +temp/* +!temp/keep.txt diff --git a/dynamsoft-server/avoid-incorrect-barcode-results.md b/dynamsoft-general/avoid-incorrect-barcode-results.md similarity index 100% rename from dynamsoft-server/avoid-incorrect-barcode-results.md rename to dynamsoft-general/avoid-incorrect-barcode-results.md diff --git a/dynamsoft-server/avoid-incorrect-results.md b/dynamsoft-general/avoid-incorrect-results.md similarity index 100% rename from dynamsoft-server/avoid-incorrect-results.md rename to dynamsoft-general/avoid-incorrect-results.md diff --git a/dynamsoft-general/check-current-version.md b/dynamsoft-general/check-current-version.md new file mode 100644 index 0000000..ec9130d --- /dev/null +++ b/dynamsoft-general/check-current-version.md @@ -0,0 +1,74 @@ +--- +layout: default-layout +title: How to check the version of the JS SDK I am currently using? +keywords: Dynamsoft Barcode Reader, FAQ, tech basic, check version, current version +description: How to check the version of the JS SDK I am currently using? +needAutoGenerateSidebar: false +--- + +# How to check the version of the JS SDK I am currently using? + +[<< Back to FAQ index](index.md) + +There are multiple ways to check the version currently being used - + +- The first way is to use the [version API](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/InitializationControl.html?ver=latest#version). Using this API in the browser console should print out the version of the library being used by the web app. +- If you are using the library via npm or yarn, then you can check the version of the package via + + ```bash + npm –v dynamsoft-javascript-barcode + ``` + +- If you are including the library via the CDN link, then the version number should be mentioned in that reference link. + +
+ >- Javascript + >- Objective-C + >- Swift + >- Android + >- Python + >- C++ + >- C# + > +> +```javascript +const version = Dynamsoft.DBR.BarcodeReaderModule.getVersion(); +console.log(version); +``` +> +```objc +NSString *version = [DSCaptureVisionRouterModule getVersion]; +``` +> +```swift +let version = CaptureVisionRouterModule.getVersion() +``` +> +```java +BarcodeReaderModule reader = BarcodeReaderModule(); +String versionInfo = reader.getVersion(); +``` +> +```python +reader = BarcodeReaderModule() +print(reader.get_version()) +``` +> +```c++ +const char* version = CCaptureVisionRouterModule::GetVersion(); +``` +> +```csharp +using (CaptureVisionRouter cvr = new CaptureVisionRouter()) +{ + SimplifiedCaptureVisionSettings settings; + string errorMsg; + // Obtain current runtime settings of `CCaptureVisionRouter` instance. + cvr.GetSimplifiedSettings(PresetTemplate.PT_READ_BARCODES, out settings); + // Specify the barcode formats by enumeration values. + // Use "|" to enable multiple barcode formats at one time. + settings.barcodeSettings.barcodeFormatIds = (ulong)(EnumBarcodeFormat.BF_QR_CODE | EnumBarcodeFormat.BF_ONED); + // Update the settings. + cvr.UpdateSettings(PresetTemplate.PT_READ_BARCODES, settings, out errorMsg); +} +``` diff --git a/dynamsoft-server/dbr-supports-pdf.md b/dynamsoft-general/dbr-supports-pdf.md similarity index 100% rename from dynamsoft-server/dbr-supports-pdf.md rename to dynamsoft-general/dbr-supports-pdf.md diff --git a/dynamsoft-server/different-editions-of-dbr.md b/dynamsoft-general/different-editions-of-dbr.md similarity index 100% rename from dynamsoft-server/different-editions-of-dbr.md rename to dynamsoft-general/different-editions-of-dbr.md diff --git a/dynamsoft-server/scan-specific-page.md b/dynamsoft-general/scan-specific-page.md similarity index 100% rename from dynamsoft-server/scan-specific-page.md rename to dynamsoft-general/scan-specific-page.md diff --git a/dynamsoft-server/scan-us-drivers-license.md b/dynamsoft-general/scan-us-drivers-license.md similarity index 100% rename from dynamsoft-server/scan-us-drivers-license.md rename to dynamsoft-general/scan-us-drivers-license.md diff --git a/dynamsoft-server/supported-barcode-formats.md b/dynamsoft-general/supported-barcode-formats.md similarity index 100% rename from dynamsoft-server/supported-barcode-formats.md rename to dynamsoft-general/supported-barcode-formats.md diff --git a/dynamsoft-server/dbr-free-trial.md b/dynamsoft-license/dbr-free-trial.md similarity index 100% rename from dynamsoft-server/dbr-free-trial.md rename to dynamsoft-license/dbr-free-trial.md diff --git a/dynamsoft-license/dbr-supports-pdf.md b/dynamsoft-license/dbr-supports-pdf.md new file mode 100644 index 0000000..08b25f9 --- /dev/null +++ b/dynamsoft-license/dbr-supports-pdf.md @@ -0,0 +1,16 @@ +--- +layout: default-layout +title: Can Barcode Reader SDK read PDF files? Do I need to pay for this feature? +keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, PDF +description: Can Barcode Reader SDK read PDF files? Do I need to pay for this feature? +needAutoGenerateSidebar: false +permalink: /faq/general/dbr-supports-pdf.html +--- + +## Can Barcode Reader SDK read PDF files? Do I need to pay for this feature? + +[<< Back to FAQ index](index.md) + +Dynamsoft Barcode Reader does indeed support reading barcodes from PDF files (see [Features](https://www.dynamsoft.com/barcode-reader/features/#Decode-Barcodes)). The only exception is the JavaScript and Mobile editions currently. + +No extra license is required to read from PDF files. \ No newline at end of file diff --git a/dynamsoft-server/ensure-no-overuse.md b/dynamsoft-license/ensure-no-overuse.md similarity index 100% rename from dynamsoft-server/ensure-no-overuse.md rename to dynamsoft-license/ensure-no-overuse.md diff --git a/dynamsoft-server/expand-quota-for-runtime-license.md b/dynamsoft-license/expand-quota-for-runtime-license.md similarity index 100% rename from dynamsoft-server/expand-quota-for-runtime-license.md rename to dynamsoft-license/expand-quota-for-runtime-license.md diff --git a/dynamsoft-server/how-hardware-is-bind-to-license.md b/dynamsoft-license/how-hardware-is-bind-to-license.md similarity index 100% rename from dynamsoft-server/how-hardware-is-bind-to-license.md rename to dynamsoft-license/how-hardware-is-bind-to-license.md diff --git a/dynamsoft-server/how-license-tracking-works.md b/dynamsoft-license/how-license-tracking-works.md similarity index 100% rename from dynamsoft-server/how-license-tracking-works.md rename to dynamsoft-license/how-license-tracking-works.md diff --git a/dynamsoft-server/new-license-required-per-device-licensing.md b/dynamsoft-license/new-license-required-per-device-licensing.md similarity index 100% rename from dynamsoft-server/new-license-required-per-device-licensing.md rename to dynamsoft-license/new-license-required-per-device-licensing.md diff --git a/dynamsoft-server/offline-registration-license.md b/dynamsoft-license/offline-registration-license.md similarity index 100% rename from dynamsoft-server/offline-registration-license.md rename to dynamsoft-license/offline-registration-license.md diff --git a/dynamsoft-server/sdk-works-without-internet.md b/dynamsoft-license/sdk-works-without-internet.md similarity index 100% rename from dynamsoft-server/sdk-works-without-internet.md rename to dynamsoft-license/sdk-works-without-internet.md diff --git a/dynamsoft-server/track-license.md b/dynamsoft-license/track-license.md similarity index 100% rename from dynamsoft-server/track-license.md rename to dynamsoft-license/track-license.md diff --git a/dynamsoft-mobile/android/disable-continuous-scanning.md b/dynamsoft-mobile/android/disable-continuous-scanning.md deleted file mode 100644 index 0f57963..0000000 --- a/dynamsoft-mobile/android/disable-continuous-scanning.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: One-off barcode scanning - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, continuous scanning, disable -description: How can I implement continuous barcode scanning and one-off barcode scanning? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I implement continuous barcode scanning and one-off barcode scanning? - -[<< Back to FAQ index](index.md) - -Please take advantage of the samples. The Hello World sample is the typical One-off scanning sample. The GeneralSettings sample is the typical continuous scanning sample. - -If you encounter any issues with this feature, please contact the Dynamsoft support team for help. \ No newline at end of file diff --git a/dynamsoft-mobile/android/drivers-license-extraction.md b/dynamsoft-mobile/android/drivers-license-extraction.md deleted file mode 100644 index 06b0294..0000000 --- a/dynamsoft-mobile/android/drivers-license-extraction.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Read Driver's License - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, driver license, info -description: Can I extract the driver’s information from a PDF417 barcode? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# Can I extract the driver’s information from a PDF417 barcode? - -[<< Back to FAQ index](index.md) - -View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. - -> `DynamsoftCodeParser` library is included in the sample to parse the driver's information from the barcode decoding result. A valid license is required for the `DynamsoftCodeParser` library. diff --git a/dynamsoft-mobile/android/how-to-enable-qr-model-one.md b/dynamsoft-mobile/android/how-to-enable-qr-model-one.md deleted file mode 100644 index fe946c6..0000000 --- a/dynamsoft-mobile/android/how-to-enable-qr-model-one.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default-layout -title: QR Code Model 1 - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, QR code, model 1, ios -description: How an I enable QR Code Model 1 support in BarcodeScannerX? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How an I enable QR Code Model 1 support in BarcodeScannerX? - -[<< Back to FAQ index](index.md) - -Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: - -1. Visit Dynamsoft barcode reader online demo. -2. Click on Advanced Settings - -
-

advanced settings

-
- -3. Check **EnableQRCodeModel1**.(You can modify any other settings as you like) -4. Save the template. - -
-

save template

-
- -5. Send the template to Dynamsoft support team. -6. We will generate and send a link to you. -7. Click **Import Template** in the Advanced Scan settings of BarcodeScannerX. Then input the link. -8. Now you can scan QR code Model 1! diff --git a/dynamsoft-mobile/android/min-system-requirements.md b/dynamsoft-mobile/android/min-system-requirements.md deleted file mode 100644 index 632b079..0000000 --- a/dynamsoft-mobile/android/min-system-requirements.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: Minimum System Requirements - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, requirements -description: What are the Minimum System Requirements of Dynamsoft Barcode Reader Android? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# What are the Minimum System Requirements of Dynamsoft Barcode Reader Android? - -[<< Back to FAQ index](index.md) - -For Android, DBR supports the following: - -* Supported OS: Android 5.0 (API Level 21) or higher - -* Supported ABI: armeabi-v7a, arm64-v8a, x86 and x86_64 - -* Supported Java Version: Java 8 \ No newline at end of file diff --git a/dynamsoft-mobile/android/no-camera-enhancer.md b/dynamsoft-mobile/android/no-camera-enhancer.md deleted file mode 100644 index a5cd2ad..0000000 --- a/dynamsoft-mobile/android/no-camera-enhancer.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default-layout -title: Use CameraX or third-party camera modules - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, requirements -description: How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader? - -[<< Back to FAQ index](index.md) - -## CameraX - -If you are using the CameraX, you can view [HelloWorld/DecodeWithCamerX sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/main/android/FoundationalAPISamples/DecodeWithCameraX) for a quick start. - -## Third-Party Camera Module - -If you are using a third-party camera module, what you have to do is: - -- Create a class that extends [ImageSourceAdapter]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html). In this class, you need to implement the video capture features and the [`getImage`]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html#getimage) method of [`ImageSourceAdapter`]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html). -- Create an instance of your camera class. -- Create an instance of the [`CaptureVisionRouter`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html) class. Then trigger the [`setInput`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#setinput) method with the instance of your camera class as the parameter. -- Trigger the [`startCapturing`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#startcapturing) method to start the barcode decoding. diff --git a/dynamsoft-mobile/android/page-freeze.md b/dynamsoft-mobile/android/page-freeze.md deleted file mode 100644 index 0000b7a..0000000 --- a/dynamsoft-mobile/android/page-freeze.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Solve Page Freeze - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, freeze, page -description: Why does the page sometimes freeze when I start the scanner? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# Why does the page sometimes freeze when I start the scanner? - -[<< Back to FAQ index](index.md) - -Before a barcode reader instance can be created, a one-time connection for license validation needs to occur when the app initializes (or whenever the license is set before the barcode reader instance creation). Sometimes, this license validation could take a second to complete. - -A potential "freeze" of the page can occur if `BarcodeReader.initLicense()` is called multiple times in a single process. Please make sure that `initLicense` is called only once in your code. - -To help troubleshoot whether the method is being called multiple times, we recommend stepping through the code using a debugger. \ No newline at end of file diff --git a/dynamsoft-mobile/android/reduce-battery-consumption.md b/dynamsoft-mobile/android/reduce-battery-consumption.md deleted file mode 100644 index 95e2d76..0000000 --- a/dynamsoft-mobile/android/reduce-battery-consumption.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Reduce battery consumption - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, battery, consumption -description: How can I reduce battery consumption? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I reduce battery consumption? - -[<< Back to FAQ index](index.md) - -If you are finding that the battery of your phone is being heavily consumed when using the Barcode Reader, there are a couple of things that you can do to potentially reduce the battery consumption, depending on the usage situation. - -For a non-continuous video scanning scenario, make sure to call the [stopCapturing]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) method when the video scanning is no longer required. - -For a continuous video scanning scenario, configure the [minImageCaptureInterval]({{ site.dcvb_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html) attribute of `SimplifiedCaptureVisionSettings` class to set a higher value for the interval in order to reduce the frequency of fetching frames, thus reducing the number of scans per unit time, and thus, less resources needing to be consumed. You can dynamically adjust `minImageCaptureInterval` as needed to achieve the performance you are looking for. diff --git a/dynamsoft-mobile/android/simulator-support.md b/dynamsoft-mobile/android/simulator-support.md deleted file mode 100644 index 17fbd55..0000000 --- a/dynamsoft-mobile/android/simulator-support.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Simulator Support - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, simulator, camera -description: Does Dynamsoft Barcode Reader Android support simulator devices? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# Does Dynamsoft Barcode Reader Android support simulator devices? - -[<< Back to FAQ index](index.md) - -Yes, DBR Android can support simulator devices, but in a very limited capacity. If you are only working with existing images in the device's photo library, and there is **no use of the camera whatsoever**, then DBR Android can work just fine on a simulator. - -If you are attempting to test the SDK in an interactive video scenario, you will most likely encounter an error that is caused by the camera open command in the code. More specifically, when the Camera Enhancer object call for the camera to open using the [open](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/android/primary-api/camera-enhancer.html#open) method. - -Please note that DCE is currently not compatible with the simulator as the required use of a camera cannot be satisfied via the simulator. \ No newline at end of file diff --git a/dynamsoft-mobile/android/template-support-v9.6.40.md b/dynamsoft-mobile/android/template-support-v9.6.40.md deleted file mode 100644 index 4698bc0..0000000 --- a/dynamsoft-mobile/android/template-support-v9.6.40.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: How to import the settings of Barcode Scanner X app into my app? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, template, driver license, settings -description: How to import the settings of Barcode Scanner X app into my app? -needAutoGenerateSidebar: true ---- - -# How to import the settings of Barcode Scanner X app into my app? - -[<< Back to FAQ index](index.md) - -In the Barcode Scanner X app, please go to the use case scenario that you are interested. On the right-bottom, tap on "Export Template". - -Once you get the templates, you can implement them using the [`initRuntimeSettingsWithString`]({{ site.android_api }}primary-parameter-and-runtime-settings-advanced.html#initruntimesettingswithstring) or [`initRuntimeSettingsWithFile`]({{ site.android_api }}primary-parameter-and-runtime-settings-advanced.md#initruntimesettingswithfile) methods, depending on which input method you prefer. diff --git a/dynamsoft-mobile/android/template-support.md b/dynamsoft-mobile/android/template-support.md deleted file mode 100644 index 0274942..0000000 --- a/dynamsoft-mobile/android/template-support.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Export Templates - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, template, driver license, settings -description: How to import the settings of Barcode Scanner X app into my app? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How to import the settings of Barcode Scanner X app into my app? - -[<< Back to FAQ index](index.md) - -In the Barcode Scanner X app, please go to the use case scenario that you are interested. On the right-bottom, tap on "Export Template". - -Once you get the templates, you can implement them using the [`initSettings`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) or [`initSettingsFromFile`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) methods, depending on which input method you prefer. - -> Note: The barcode scanner X is still using DBR v9.6.20 algorithm. You have to convert the exported template into v10.x before initializing it. [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="_blank"}. diff --git a/dynamsoft-mobile/android/troubleshooting-failed-image.md b/dynamsoft-mobile/android/troubleshooting-failed-image.md deleted file mode 100644 index aa5cbe2..0000000 --- a/dynamsoft-mobile/android/troubleshooting-failed-image.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: Barcode Not Decoded - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, template, driver license, settings -description: How can I troubleshoot an image that fails to decode? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I troubleshoot an image that fails to decode? - -[<< Back to FAQ index](index.md) - -If the barcode is not recognized by Dynamsoft Barcode Reader, please do not hesitate to contact Dynamsoft support team. - -Alternatively, here is the general troubleshooting steps: - -1. Please ensure the lighting is not very bright or very dim. -2. Please ensure the aimming barcode format has been checked on.(Advanced Scan -> settings -> Barcode Format -> check the barcode formats) -3. We can decrease the Confidence level to increase the read rate.(Advanced Scan -> settings -> Result Settings -> Set Confidence Level to 10) -4. We can increase the deblur level to increase the read rate.(Advanced Scan -> settings -> Additional Settings -> increase DeblurLevel) \ No newline at end of file diff --git a/dynamsoft-mobile/android/drivers-license-extraction-v9.6.40.md b/dynamsoft-mobile/archive/android/drivers-license-extraction-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/android/drivers-license-extraction-v9.6.40.md rename to dynamsoft-mobile/archive/android/drivers-license-extraction-v9.6.40.md diff --git a/dynamsoft-mobile/android/index-v10.4.2000.md b/dynamsoft-mobile/archive/android/index-v10.4.2000.md similarity index 100% rename from dynamsoft-mobile/android/index-v10.4.2000.md rename to dynamsoft-mobile/archive/android/index-v10.4.2000.md diff --git a/dynamsoft-mobile/android/index.md b/dynamsoft-mobile/archive/android/index.md similarity index 92% rename from dynamsoft-mobile/android/index.md rename to dynamsoft-mobile/archive/android/index.md index 497c085..4f87055 100644 --- a/dynamsoft-mobile/android/index.md +++ b/dynamsoft-mobile/archive/android/index.md @@ -90,17 +90,17 @@ Alternatively, here is the general troubleshooting steps: ## Can I extract the driver’s information from a PDF417 barcode? -View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. +View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="\_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. -> Note: Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="_blank"}. +> Note: Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="\_blank"}. ## Can I reduce the size of the final Android app? It is recommended that you distribute your app using App Bundle in order to reduce the final size of the Android app. -The second step is to utilize APK splits. To learn more about this, please refer to this [page](https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split){:target="_blank"}. +The second step is to utilize APK splits. To learn more about this, please refer to this [page](https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split){:target="\_blank"}. -The third thing to do is to remove processor architecture support. If you won't be distributing your app via Google Play, please refer to this [page](https://developer.android.com/ndk/guides/abis#gc){:target="_blank"} on how to proceed with this step. +The third thing to do is to remove processor architecture support. If you won't be distributing your app via Google Play, please refer to this [page](https://developer.android.com/ndk/guides/abis#gc){:target="\_blank"} on how to proceed with this step. ## How to use Debug Mode in Barcode Scanner X? @@ -110,15 +110,15 @@ This next section will explain how to toggle on debug mode on the demo app, and 1. From the home screen, go to Advanced Scan. - Home screen +Home screen 2. Tap the settings icon at the top-right corner. - Advanced scan +Advanced scan 3. Tap Debug Mode to see the drop-down list. - Debug mode +Debug mode ### Debug Mode - Crash Logger @@ -126,13 +126,13 @@ If you are encountering an app crash caused by Dynamsoft Barcode Reader or Dynam 1. Toggle on Crash Logger - Crash toggle on +Crash toggle on 2. After Crash Logger is toggled on, please go ahead and scan codes until you reproduce the crash issue. 3. After the app crashes, re-open BarcodeScannerX app and go to Advanced Scan -> settings. Tap the "Share" button to share the log files with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). - Crash share +Crash share ### Debug Mode - Image Cropper @@ -140,30 +140,30 @@ If you are having trouble reading barcodes, you should use the Image Cropper to 1. Toggle on Image Cropper - Image crop toggle on +Image crop toggle on 2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan - crop +crop 3. Tap the image crop icon to crop and share the original frames with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). Our support team will investigate the video frames and get back to you with a solution as soon as possible. ## How to Enable QR Code Model 1 in Barcode Scanner X? -Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: +Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: 1. Visit Dynamsoft barcode reader online demo. 2. Click on Advanced Settings
-

advanced settings

+

advanced settings

3. Check **EnableQRCodeModel1**.(You can modify any other settings as you like) 4. Save the template.
-

save template

+

save template

5. Send the template to Dynamsoft support team. diff --git a/dynamsoft-mobile/android/no-camera-enhancer-v9.6.40.md b/dynamsoft-mobile/archive/android/no-camera-enhancer-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/android/no-camera-enhancer-v9.6.40.md rename to dynamsoft-mobile/archive/android/no-camera-enhancer-v9.6.40.md diff --git a/dynamsoft-mobile/android/proguard-v9.6.40.md b/dynamsoft-mobile/archive/android/proguard-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/android/proguard-v9.6.40.md rename to dynamsoft-mobile/archive/android/proguard-v9.6.40.md diff --git a/dynamsoft-mobile/android/reduce-battery-consumption-v9.6.40.md b/dynamsoft-mobile/archive/android/reduce-battery-consumption-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/android/reduce-battery-consumption-v9.6.40.md rename to dynamsoft-mobile/archive/android/reduce-battery-consumption-v9.6.40.md diff --git a/dynamsoft-mobile/archive/android/template-support-v9.6.40.md b/dynamsoft-mobile/archive/android/template-support-v9.6.40.md new file mode 100644 index 0000000..4a09f99 --- /dev/null +++ b/dynamsoft-mobile/archive/android/template-support-v9.6.40.md @@ -0,0 +1,28 @@ +--- +layout: default-layout +title: Export Templates - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, ios, template, driver license, settings +description: How to import the settings of Barcode Scanner X app into my app? - DBR Mobile FAQs. +needAutoGenerateSidebar: true +--- + +# How to import the settings of Barcode Scanner X app into my app? + +[<< Back to FAQ index](index.md) + +In the Barcode Scanner X app, navigate to the use case scenario you are interested in. Tap the **"Export Template"** button at the bottom right corner. + +Once you obtain the templates, you can implement them using either of the following methods: + +## iOS + +- [`initSettings`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) +- [`initSettingsFromFile`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) + +## Android + +- [`initSettings`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) +- [`initSettingsFromFile`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) + +> **Note:** Barcode Scanner X currently uses the **DBR v9.6.20** algorithm. You must convert the exported template to **v10.x** before initializing it in your app. +> 👉 [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="\_blank"}. diff --git a/dynamsoft-mobile/ios/drivers-license-extraction-v9.6.40.md b/dynamsoft-mobile/archive/ios/drivers-license-extraction-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/ios/drivers-license-extraction-v9.6.40.md rename to dynamsoft-mobile/archive/ios/drivers-license-extraction-v9.6.40.md diff --git a/dynamsoft-mobile/ios/index-v10.4.2000.md b/dynamsoft-mobile/archive/ios/index-v10.4.2000.md similarity index 100% rename from dynamsoft-mobile/ios/index-v10.4.2000.md rename to dynamsoft-mobile/archive/ios/index-v10.4.2000.md diff --git a/dynamsoft-mobile/ios/index.md b/dynamsoft-mobile/archive/ios/index.md similarity index 87% rename from dynamsoft-mobile/ios/index.md rename to dynamsoft-mobile/archive/ios/index.md index ddccb57..b2e45aa 100644 --- a/dynamsoft-mobile/ios/index.md +++ b/dynamsoft-mobile/archive/ios/index.md @@ -37,7 +37,7 @@ Yes, Dynamsoft Barcode Reader iOS can support simulator devices, but in a very l If you are attempting to test the SDK in an interactive video scenario, you will most likely encounter a UI unresponsiveness error that is caused by the camera open command in the code. More specifically, when the Camera Enhancer object call for the camera to open using the [open](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/ios/primary-api/camera-enhancer.html#open) method. -If you have a Mac M1 machine (or a later model) then you can test your application on the Mac M1 machine directly via Xcode. In order to do that, please select *My Mac (designed for iPhone/iPad)* in the dropdown menu when selecting the target device. +If you have a Mac M1 machine (or a later model) then you can test your application on the Mac M1 machine directly via Xcode. In order to do that, please select _My Mac (designed for iPhone/iPad)_ in the dropdown menu when selecting the target device. ## Why does the page sometimes freeze when I start the scanner? @@ -92,47 +92,47 @@ DBR iOS can be used to build apps that belong to the arm64 architecture. If you > ld: "Building for iOS Simulator, but linking in dylib built for iOS, file '/ios/Pods/DynamsoftBarcodeReader/DynamsoftBarcodeReader.framework/DynamsoftBarcodeReader' for architecture arm64" -In order to fix the error, please take the following steps under the *Build Settings* of the Xcode project: +In order to fix the error, please take the following steps under the _Build Settings_ of the Xcode project: -1. Under *User-Defined* -> find *VALIDATE_WORKSPACE* and set it to **YES**. Rebuild your project. +1. Under _User-Defined_ -> find _VALIDATE_WORKSPACE_ and set it to **YES**. Rebuild your project. -2. Under *Architectures* -> find *Build Active Architecture Only* and set it to **YES**. +2. Under _Architectures_ -> find _Build Active Architecture Only_ and set it to **YES**. -3. Under *Architectures* -> make sure that *Architectures* is set to $(ARCHS_STANDARD). +3. Under _Architectures_ -> make sure that _Architectures_ is set to $(ARCHS_STANDARD). If the error message persists, please make one of the following changes: - Instead of using the .framework (which all the samples do by default), switch to using the corresponding .xcframework -- Under the *Build Settings* -> find *Excluded Architectures* -> in the *Debug* field click the + icon -> select *Any iOS Simulator SDK* -> put "arm64" +- Under the _Build Settings_ -> find _Excluded Architectures_ -> in the _Debug_ field click the + icon -> select _Any iOS Simulator SDK_ -> put "arm64" - You can also exclude architectures via the Podfile as such: - ```ruby - post_install do |installer| - installer.pods_project.build_configurations.each do |config| - config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" - end - end - ``` + ```ruby + post_install do |installer| + installer.pods_project.build_configurations.each do |config| + config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" + end + end + ``` - OR + OR - ```ruby - post_install do |installer| - installer.pods_project.build_configurations.each do |config| - config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "uname -m" - end - end - ``` + ```ruby + post_install do |installer| + installer.pods_project.build_configurations.each do |config| + config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "uname -m" + end + end + ``` - OR + OR - ```ruby - podspec: - s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - ``` + ```ruby + podspec: + s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } + s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } + ``` ## How can I solve the "Undefined symbols for architecture armv7" error when building on iOS? @@ -142,15 +142,15 @@ DBR iOS is compatible with the arm64 and x86_64 architectures only. If you attem Please note that this will mostly occur with older versions of Xcode or iOS that are still compatible with the older iOS device models that used the armv7 architecture. For most devices that are able to run iOS 11 and higher, the architecture will be arm64. -By default, when you set the *Architectures* in *Build Settings* to the "$(ARCHS_STANDARD) - Standard Architectures (arm64)", the armv7 architecture should automaticallt not be included. To ensure that your app ignores the armv7 architecture, you can add it to the *Excluded Architectures* field of the *Build Settings*. +By default, when you set the _Architectures_ in _Build Settings_ to the "$(ARCHS_STANDARD) - Standard Architectures (arm64)", the armv7 architecture should automaticallt not be included. To ensure that your app ignores the armv7 architecture, you can add it to the _Excluded Architectures_ field of the _Build Settings_. ## How to import the settings of Barcode Scanner X app into my app? -In the Barcode Scanner X app, please go to the use case scenario that you are interested. On the right-bottom, tap on "Export Template". +In the Barcode Scanner X app, please go to the use case scenario that you are interested. On the right-bottom, tap on "Export Template". Once you get the templates, you can implement them using the [`initSettings`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) or [`initSettingsFromFile`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) methods, depending on which input method you prefer. -> Note: The barcode scanner X is still using DBR v9.6.20 algorithm. You have to convert the exported template into v10.x before initializing it. [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="_blank"}. +> Note: The barcode scanner X is still using DBR v9.6.20 algorithm. You have to convert the exported template into v10.x before initializing it. [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="\_blank"}. ## How can I troubleshoot an image that fails to decode? @@ -161,13 +161,13 @@ Alternatively, here is the general troubleshooting steps: 1. Please ensure the lighting is not very bright or very dim. 2. Please ensure the aiming barcode format has been checked on.(Advanced Scan -> settings -> Barcode Format -> check the barcode formats) 3. We can decrease the Confidence level to increase the read rate.(Advanced Scan -> settings -> Result Settings -> Set Confidence Level to 10) -4. We can increase the deblur level to increase the read rate.(Advanced Scan -> settings -> Additional Settings -> increase DeblurLevel) +4. We can increase the deblur level to increase the read rate.(Advanced Scan -> settings -> Additional Settings -> increase DeblurLevel) ## Can I extract the driver’s information from a PDF417 barcode? -View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/ios/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. +View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/ios/DriversLicenseScanner){:target="\_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. -> Note: Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="_blank"}. +> Note: Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="\_blank"}. ## How to use Debug Mode in Barcode Scanner X? @@ -177,15 +177,15 @@ This next section will explain how to toggle on debug mode on the demo app, and 1. From the home screen, go to Advanced Scan. - Home screen +Home screen 2. Tap the settings icon at the top-right corner. - Advanced scan +Advanced scan 3. Tap Debug Mode to see the drop-down list. - Debug mode +Debug mode ### Debug Mode - Crash Logger @@ -193,13 +193,13 @@ If you are encountering an app crash caused by Dynamsoft Barcode Reader or Dynam 1. Toggle on Crash Logger - Crash toggle on +Crash toggle on 2. After Crash Logger is toggled on, please go ahead and scan codes until you reproduce the crash issue. 3. After the app crashes, re-open BarcodeScannerX app and go to Advanced Scan -> settings. Tap the "Share" button to share the log files with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). - Crash share +Crash share ### Debug Mode - Image Cropper @@ -207,30 +207,30 @@ If you are having trouble reading barcodes, you should use the Image Cropper to 1. Toggle on Image Cropper - Image crop toggle on +Image crop toggle on 2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan - crop +crop 3. Tap the image crop icon to crop and share the original frames with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). Our support team will investigate the video frames and get back to you with a solution as soon as possible. ## How to Enable QR Code Model 1 in BarcodeScannerX? -Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: +Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: 1. Visit Dynamsoft barcode reader online demo. 2. Click on Advanced Settings
-

advanced settings

+

advanced settings

3. Check **EnableQRCodeModel1**(You can modify any other settings as you like) 4. Save the template.
-

save template

+

save template

5. Send the template to Dynamsoft support team. diff --git a/dynamsoft-mobile/ios/no-camera-enhancer-v9.6.40.md b/dynamsoft-mobile/archive/ios/no-camera-enhancer-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/ios/no-camera-enhancer-v9.6.40.md rename to dynamsoft-mobile/archive/ios/no-camera-enhancer-v9.6.40.md diff --git a/dynamsoft-mobile/ios/page-freeze-v9.6.40.md b/dynamsoft-mobile/archive/ios/page-freeze-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/ios/page-freeze-v9.6.40.md rename to dynamsoft-mobile/archive/ios/page-freeze-v9.6.40.md diff --git a/dynamsoft-mobile/ios/reduce-battery-consumption-v9.6.40.md b/dynamsoft-mobile/archive/ios/reduce-battery-consumption-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/ios/reduce-battery-consumption-v9.6.40.md rename to dynamsoft-mobile/archive/ios/reduce-battery-consumption-v9.6.40.md diff --git a/dynamsoft-mobile/ios/template-support-v9.6.40.md b/dynamsoft-mobile/archive/ios/template-support-v9.6.40.md similarity index 100% rename from dynamsoft-mobile/ios/template-support-v9.6.40.md rename to dynamsoft-mobile/archive/ios/template-support-v9.6.40.md diff --git a/dynamsoft-mobile/ios/template-support.md b/dynamsoft-mobile/archive/ios/template-support.md similarity index 100% rename from dynamsoft-mobile/ios/template-support.md rename to dynamsoft-mobile/archive/ios/template-support.md diff --git a/dynamsoft-mobile/assets/advanced-settings.jpg b/dynamsoft-mobile/assets/advanced-settings.jpg new file mode 100644 index 0000000..33e05dd Binary files /dev/null and b/dynamsoft-mobile/assets/advanced-settings.jpg differ diff --git a/dynamsoft-mobile/assets/advanced_scan.jpg b/dynamsoft-mobile/assets/advanced_scan.jpg new file mode 100644 index 0000000..adcdfbf Binary files /dev/null and b/dynamsoft-mobile/assets/advanced_scan.jpg differ diff --git a/dynamsoft-mobile/assets/auto-zoom.gif b/dynamsoft-mobile/assets/auto-zoom.gif new file mode 100644 index 0000000..88f2a2a Binary files /dev/null and b/dynamsoft-mobile/assets/auto-zoom.gif differ diff --git a/dynamsoft-mobile/assets/barcode-scanner-ui.png b/dynamsoft-mobile/assets/barcode-scanner-ui.png new file mode 100644 index 0000000..03513cb Binary files /dev/null and b/dynamsoft-mobile/assets/barcode-scanner-ui.png differ diff --git a/dynamsoft-mobile/assets/close-vs-zoom.png b/dynamsoft-mobile/assets/close-vs-zoom.png new file mode 100644 index 0000000..0e35828 Binary files /dev/null and b/dynamsoft-mobile/assets/close-vs-zoom.png differ diff --git a/dynamsoft-mobile/assets/config-scan-region.png b/dynamsoft-mobile/assets/config-scan-region.png new file mode 100644 index 0000000..32b14c7 Binary files /dev/null and b/dynamsoft-mobile/assets/config-scan-region.png differ diff --git a/dynamsoft-mobile/assets/crash_share.jpg b/dynamsoft-mobile/assets/crash_share.jpg new file mode 100644 index 0000000..9a97dce Binary files /dev/null and b/dynamsoft-mobile/assets/crash_share.jpg differ diff --git a/dynamsoft-mobile/assets/crash_toggle_on.jpg b/dynamsoft-mobile/assets/crash_toggle_on.jpg new file mode 100644 index 0000000..6e11097 Binary files /dev/null and b/dynamsoft-mobile/assets/crash_toggle_on.jpg differ diff --git a/dynamsoft-mobile/assets/crop.jpg b/dynamsoft-mobile/assets/crop.jpg new file mode 100644 index 0000000..a0591e5 Binary files /dev/null and b/dynamsoft-mobile/assets/crop.jpg differ diff --git a/dynamsoft-mobile/assets/dcv-dbr-architecture.png b/dynamsoft-mobile/assets/dcv-dbr-architecture.png new file mode 100644 index 0000000..4c59672 Binary files /dev/null and b/dynamsoft-mobile/assets/dcv-dbr-architecture.png differ diff --git a/dynamsoft-mobile/assets/dcv-dbr-dependency.png b/dynamsoft-mobile/assets/dcv-dbr-dependency.png new file mode 100644 index 0000000..a1af714 Binary files /dev/null and b/dynamsoft-mobile/assets/dcv-dbr-dependency.png differ diff --git a/dynamsoft-mobile/assets/debug_mode.jpg b/dynamsoft-mobile/assets/debug_mode.jpg new file mode 100644 index 0000000..f074228 Binary files /dev/null and b/dynamsoft-mobile/assets/debug_mode.jpg differ diff --git a/dynamsoft-mobile/assets/dotcode-v9.6.png b/dynamsoft-mobile/assets/dotcode-v9.6.png new file mode 100644 index 0000000..a4bf99a Binary files /dev/null and b/dynamsoft-mobile/assets/dotcode-v9.6.png differ diff --git a/dynamsoft-mobile/assets/frame-and-camera-view.png b/dynamsoft-mobile/assets/frame-and-camera-view.png new file mode 100644 index 0000000..3a54b1f Binary files /dev/null and b/dynamsoft-mobile/assets/frame-and-camera-view.png differ diff --git a/dynamsoft-mobile/assets/home_screen.jpg b/dynamsoft-mobile/assets/home_screen.jpg new file mode 100644 index 0000000..42df486 Binary files /dev/null and b/dynamsoft-mobile/assets/home_screen.jpg differ diff --git a/dynamsoft-mobile/assets/image-orientation.png b/dynamsoft-mobile/assets/image-orientation.png new file mode 100644 index 0000000..c3b508c Binary files /dev/null and b/dynamsoft-mobile/assets/image-orientation.png differ diff --git a/dynamsoft-mobile/assets/image_cropper_toggle.jpg b/dynamsoft-mobile/assets/image_cropper_toggle.jpg new file mode 100644 index 0000000..aeff2a0 Binary files /dev/null and b/dynamsoft-mobile/assets/image_cropper_toggle.jpg differ diff --git a/dynamsoft-mobile/assets/init-settings-from-file-android.png b/dynamsoft-mobile/assets/init-settings-from-file-android.png new file mode 100644 index 0000000..687984e Binary files /dev/null and b/dynamsoft-mobile/assets/init-settings-from-file-android.png differ diff --git a/dynamsoft-mobile/assets/init-settings-from-file-ios.png b/dynamsoft-mobile/assets/init-settings-from-file-ios.png new file mode 100644 index 0000000..0edd6ec Binary files /dev/null and b/dynamsoft-mobile/assets/init-settings-from-file-ios.png differ diff --git a/dynamsoft-mobile/assets/inverted-barcode.png b/dynamsoft-mobile/assets/inverted-barcode.png new file mode 100644 index 0000000..7cac815 Binary files /dev/null and b/dynamsoft-mobile/assets/inverted-barcode.png differ diff --git a/dynamsoft-mobile/assets/maui-exclude.png b/dynamsoft-mobile/assets/maui-exclude.png new file mode 100644 index 0000000..024b1d4 Binary files /dev/null and b/dynamsoft-mobile/assets/maui-exclude.png differ diff --git a/dynamsoft-mobile/assets/rectangle-datamatrix.png b/dynamsoft-mobile/assets/rectangle-datamatrix.png new file mode 100644 index 0000000..0980982 Binary files /dev/null and b/dynamsoft-mobile/assets/rectangle-datamatrix.png differ diff --git a/dynamsoft-mobile/assets/region-definition.png b/dynamsoft-mobile/assets/region-definition.png new file mode 100644 index 0000000..e12ff84 Binary files /dev/null and b/dynamsoft-mobile/assets/region-definition.png differ diff --git a/dynamsoft-mobile/assets/save-template.jpg b/dynamsoft-mobile/assets/save-template.jpg new file mode 100644 index 0000000..9e403db Binary files /dev/null and b/dynamsoft-mobile/assets/save-template.jpg differ diff --git a/dynamsoft-mobile/assets/single-vs-multiple.png b/dynamsoft-mobile/assets/single-vs-multiple.png new file mode 100644 index 0000000..f02c341 Binary files /dev/null and b/dynamsoft-mobile/assets/single-vs-multiple.png differ diff --git a/dynamsoft-mobile/ios/armv7-architecture-error.md b/dynamsoft-mobile/capabilities/armv7-architecture-error.md similarity index 100% rename from dynamsoft-mobile/ios/armv7-architecture-error.md rename to dynamsoft-mobile/capabilities/armv7-architecture-error.md diff --git a/dynamsoft-mobile/ios/bitcode-support.md b/dynamsoft-mobile/capabilities/bitcode-support.md similarity index 100% rename from dynamsoft-mobile/ios/bitcode-support.md rename to dynamsoft-mobile/capabilities/bitcode-support.md diff --git a/dynamsoft-mobile/capabilities/min-system-requirements.md b/dynamsoft-mobile/capabilities/min-system-requirements.md new file mode 100644 index 0000000..06f8e05 --- /dev/null +++ b/dynamsoft-mobile/capabilities/min-system-requirements.md @@ -0,0 +1,44 @@ +--- +layout: default-layout +title: Minimum System Requirements - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, Android, iOS, requirements +description: What are the minimum system requirements for Dynamsoft Barcode Reader on Android and iOS? +needAutoGenerateSidebar: true +--- + +# What are the minimum system requirements for Dynamsoft Barcode Reader? + +[<< Back to FAQ index](index.md) + +Dynamsoft Barcode Reader (DBR) supports a variety of Android and iOS environments. Please refer to the platform-specific tables below. + +--- + +## Android Requirements + +| **Component** | **Requirement** | +| ----------------------------- | ------------------------------------------- | +| **Supported OS** | Android 5.0 (API Level 21) or higher | +| **Supported ABI** | `armeabi-v7a`, `arm64-v8a`, `x86`, `x86_64` | +| **Java Version** | Java 8 | +| **Simulator Support** | Yes | +| **Unsupported Architectures** | None | + +--- + +## iOS Requirements + +| **Component** | **Requirement** | +| ----------------------------- | ----------------------------------------------- | +| **Supported OS** | iOS 11 or higher
(iOS 13+ recommended) | +| **Supported ABI** | `arm64`, `x86_64` (for simulator use) | +| **Development Environment** | Xcode 13 and above
(Xcode 14.1+ recommended) | +| **Simulator Support** | Yes — must use `.xcframework` | +| **Unsupported Architectures** | `armv7` (must be excluded in build settings) | + +> 💡 **Note for iOS**: +> +> - Use `.xcframework` when testing in the iOS Simulator. +> - Avoid building for `armv7` as it is not supported by DBR. + +--- diff --git a/dynamsoft-mobile/configuration/drivers-license-extraction.md b/dynamsoft-mobile/configuration/drivers-license-extraction.md new file mode 100644 index 0000000..d40e9cd --- /dev/null +++ b/dynamsoft-mobile/configuration/drivers-license-extraction.md @@ -0,0 +1,24 @@ +--- +layout: default-layout +title: Read Driver's License - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, Android, iOS, PDF417, driver license, decode, parser +description: Can I extract the driver’s information from a PDF417 barcode? - DBR Android & iOS FAQs. +needAutoGenerateSidebar: true +--- + +# Can I extract the driver’s information from a PDF417 barcode? + +[<< Back to FAQ index](index.md) + +Yes, you can extract driver’s license information from a PDF417 barcode using the **Dynamsoft Barcode Reader** in combination with the **Dynamsoft Code Parser**. + +Check out the sample project on GitHub to see how to decode the PDF417 barcode and parse the data: + +👉 [DriversLicenseScanner Sample (Android)](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="\_blank"} +👉 [DriversLicenseScanner Sample (iOS)](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/iOS/DriversLicenseScanner){:target="\_blank"} + +> These samples include the `DynamsoftCodeParser` library, which is used to extract structured information (such as name, address, license number, etc.) from the raw barcode decoding result. +> +> A **valid license** is required to use the `DynamsoftCodeParser` library. + +--- diff --git a/dynamsoft-mobile/configuration/no-camera-enhancer.md b/dynamsoft-mobile/configuration/no-camera-enhancer.md new file mode 100644 index 0000000..aafc0a0 --- /dev/null +++ b/dynamsoft-mobile/configuration/no-camera-enhancer.md @@ -0,0 +1,41 @@ +--- +layout: default-layout +title: Use AVCaptureSession, CameraX or third-party camera modules - DBR Mobile FAQs. +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, ios, requirements +description: How can I use AVCaptureSession, CameraX or third-party camera modules with Dynamsoft Barcode Reader? - DBR Android FAQs. +needAutoGenerateSidebar: true +--- + +# How can I use AVCaptureSession, CameraX or third-party camera modules with Dynamsoft Barcode Reader - Android? + +[<< Back to FAQ index](index.md) + +# Android + +## CameraX + +If you are using the CameraX, you can view [HelloWorld/DecodeWithCamerX sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/main/android/FoundationalAPISamples/DecodeWithCameraX) for a quick start. + +## Third-Party Camera Module + +If you are using a third-party camera module, what you have to do is: + +- Create a class that extends [ImageSourceAdapter]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html). In this class, you need to implement the video capture features and the [`getImage`]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html#getimage) method of [`ImageSourceAdapter`]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html). +- Create an instance of your camera class. +- Create an instance of the [`CaptureVisionRouter`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html) class. Then trigger the [`setInput`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#setinput) method with the instance of your camera class as the parameter. +- Trigger the [`startCapturing`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#startcapturing) method to start the barcode decoding. + +# iOS + +## AVCaptureSession + +If you are using the CameraX, you can view [HelloWorld/DecodeWithAVCaptureSession sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/v10.4.2002/ios/HelloWorld) for a quick start. + +## Third-Party Camera Module + +If you are using a third-party camera module, what you have to do is: + +- Create a class that extends [DSImageSourceAdapter]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html). In this class, you need to implement the video capture features and the [`getImage`]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html#getimage) method of [`DSImageSourceAdapter`]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html). +- Create an instance of your camera class. +- Create an instance of the [`DSCaptureVisionRouter`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html) class. Then trigger the [`setInput`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#setinput) method with the instance of your camera class as the parameter. +- Trigger the [`startCapturing`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#startcapturing) method to start the barcode decoding. diff --git a/dynamsoft-mobile/android/proguard.md b/dynamsoft-mobile/configuration/proguard.md similarity index 100% rename from dynamsoft-mobile/android/proguard.md rename to dynamsoft-mobile/configuration/proguard.md diff --git a/dynamsoft-mobile/configuration/reduce-battery-consumption.md b/dynamsoft-mobile/configuration/reduce-battery-consumption.md new file mode 100644 index 0000000..3e78474 --- /dev/null +++ b/dynamsoft-mobile/configuration/reduce-battery-consumption.md @@ -0,0 +1,48 @@ +--- +layout: default-layout +title: Reduce battery consumption - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, Android, iOS, battery, consumption +description: Learn how to reduce battery consumption in Android and iOS apps using Dynamsoft Barcode Reader. +needAutoGenerateSidebar: true +--- + +# How can I reduce battery consumption? + +[<< Back to FAQ index](index.md) + +If you're noticing high battery consumption while using Dynamsoft Barcode Reader (DBR) in your mobile application, there are several ways to optimize power usage based on your scanning scenario. The following tips apply to both Android and iOS unless otherwise noted. + +--- + +## 🔋 General Recommendations + +### Non-continuous video scanning + +If scanning is only needed occasionally, be sure to stop the camera and barcode processing once the task is complete. +Call the appropriate method to stop capturing: + +- **Android**: [`stopCapturing`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) +- **iOS**: [`stopCapturing`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) + +This ensures that system resources like the camera and CPU are properly released, reducing battery drain. + +--- + +### Continuous video scanning + +In continuous scanning mode, you can reduce the scanning frequency to conserve energy. Both Android and iOS SDKs provide a setting for this: + +- **Property**: `minImageCaptureInterval` +- **Class**: + - Android: [`SimplifiedCaptureVisionSettings`]({{ site.dcvb_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html) + - iOS: [`DSSimplifiedCaptureVisionSettings`]({{ site.dcvb_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html) + +Setting a **higher interval** reduces how often frames are fetched and processed, leading to: + +- Fewer scans per second +- Lower CPU/GPU usage +- Extended battery life + +This interval can be adjusted dynamically at runtime to strike the right balance between performance and power efficiency. + +--- \ No newline at end of file diff --git a/dynamsoft-mobile/android/reduce-final-size.md b/dynamsoft-mobile/configuration/reduce-final-size.md similarity index 100% rename from dynamsoft-mobile/android/reduce-final-size.md rename to dynamsoft-mobile/configuration/reduce-final-size.md diff --git a/dynamsoft-mobile/maui/common-environment-issues.md b/dynamsoft-mobile/cross-platform/common-environment-issues.md similarity index 100% rename from dynamsoft-mobile/maui/common-environment-issues.md rename to dynamsoft-mobile/cross-platform/common-environment-issues.md diff --git a/dynamsoft-mobile/ios/cordova-signature-error.md b/dynamsoft-mobile/cross-platform/cordova-signature-error.md similarity index 100% rename from dynamsoft-mobile/ios/cordova-signature-error.md rename to dynamsoft-mobile/cross-platform/cordova-signature-error.md diff --git a/dynamsoft-mobile/maui/index.md b/dynamsoft-mobile/cross-platform/index.md similarity index 100% rename from dynamsoft-mobile/maui/index.md rename to dynamsoft-mobile/cross-platform/index.md diff --git a/dynamsoft-mobile/android/debug-mode-barcodescannerx.md b/dynamsoft-mobile/debug/debug-mode.md similarity index 75% rename from dynamsoft-mobile/android/debug-mode-barcodescannerx.md rename to dynamsoft-mobile/debug/debug-mode.md index bb152a3..5fac204 100644 --- a/dynamsoft-mobile/android/debug-mode-barcodescannerx.md +++ b/dynamsoft-mobile/debug/debug-mode.md @@ -10,8 +10,7 @@ needAutoGenerateSidebar: true [<< Back to FAQ index](index.md) - -## Debug Mode in BarcodeScannerX +## Debug Mode in BarcodeScannerX(Android) If you are experiencing app crashes in your own application or you’ve come across some barcode(s) that you can’t read and you have exhausted all of the other troubleshooting methods, Debug Mode of the [BarcodeScannerX](https://www.dynamsoft.com/barcode-reader/sdk-mobile/#appDemo) demo app can help offer one last effort to resolve these issues. @@ -19,15 +18,15 @@ This next section will explain how to toggle on debug mode on the demo app, and 1. From the home screen, go to Advanced Scan. - Home screen +Home screen 2. Tap the settings icon at the top-right corner. - Advanced scan +Advanced scan 3. Tap Debug Mode to see the drop-down list. - Debug mode +Debug mode ## Debug Mode - Crash Logger @@ -35,13 +34,13 @@ If you are encountering an app crash caused by Dynamsoft Barcode Reader or Dynam 1. Toggle on Crash Logger - Crash toggle on +Crash toggle on 2. After Crash Logger is toggled on, please go ahead and scan codes until you reproduce the crash issue. 3. After the app crashes, re-open BarcodeScannerX app and go to Advanced Scan -> settings. Tap the "Share" button to share the log files with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). - Crash share +Crash share ## Debug Mode - Image Cropper @@ -49,10 +48,10 @@ If you are having trouble reading barcodes, you should use the Image Cropper to 1. Toggle on Image Cropper - Image crop toggle on +Image crop toggle on 2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan - crop +crop 3. Tap the image crop icon to crop and share the original frames with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). Our support team will investigate the video frames and get back to you with a solution as soon as possible. diff --git a/dynamsoft-mobile/debug/page-freeze.md b/dynamsoft-mobile/debug/page-freeze.md new file mode 100644 index 0000000..4517455 --- /dev/null +++ b/dynamsoft-mobile/debug/page-freeze.md @@ -0,0 +1,31 @@ +--- +layout: default-layout +title: Solve Page Freeze - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, android, freeze, page, license +description: Why does the page sometimes freeze when I start the scanner? - DBR Mobile FAQs. +needAutoGenerateSidebar: true +--- + +# Why does the page sometimes freeze when I start the scanner? + +[<< Back to FAQ index](index.md) + +Before a barcode reader instance can be created, a one-time connection for **license validation** must occur when the app initializes—or whenever the license is set prior to the barcode reader’s instantiation. This license check may take a second to complete, potentially causing a temporary freeze in the UI. + +A common cause of this issue is **calling `initLicense` multiple times** in the same process. + +## iOS + +For iOS, the method is [`LicenseManager.initLicense()`]({{ site.dcvb_ios_api }}license/license-manager.html#initlicense). +We’ve seen cases where developers call this method in both the `AppDelegate` and `ViewController`, leading to conflicts. + +✅ **Recommendation**: Call `initLicense` only once—preferably in the `AppDelegate`. + +## Android + +For Android, the method is `BarcodeReader.initLicense()`. +To ensure it’s not being called more than once, we suggest stepping through your code using a debugger. + +✅ **Recommendation**: Call `initLicense` only once during app initialization. + +--- diff --git a/dynamsoft-mobile/ios/troubleshooting-failed-image.md b/dynamsoft-mobile/debug/troubleshooting-failed-image.md similarity index 100% rename from dynamsoft-mobile/ios/troubleshooting-failed-image.md rename to dynamsoft-mobile/debug/troubleshooting-failed-image.md diff --git a/dynamsoft-mobile/ios/debug-mode-barcodescannerx.md b/dynamsoft-mobile/ios/debug-mode-barcodescannerx.md deleted file mode 100644 index 4c6a857..0000000 --- a/dynamsoft-mobile/ios/debug-mode-barcodescannerx.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: default-layout -title: Use Debug Mode - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, debug, ios -description: How to use Debug Mode in Barcode Scanner X? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How to use Debug Mode in Barcode Scanner X? - -[<< Back to FAQ index](index.md) - - -## Debug Mode in BarcodeScannerX - -If you are experiencing app crashes in your own application or you’ve come across some barcode(s) that you can’t read and you have exhausted all of the other troubleshooting methods, Debug Mode of the [BarcodeScannerX](https://www.dynamsoft.com/barcode-reader/sdk-mobile/#appDemo) demo app can help offer one last effort to resolve these issues. - -This next section will explain how to toggle on debug mode on the demo app, and will then dive into how to collect crash logs and/or image samples. - -1. From the home screen, go to Advanced Scan. - - Home screen - -2. Tap the settings icon at the top-right corner. - - Advanced scan - -3. Tap Debug Mode to see the drop-down list. - - Debug mode - -## Debug Mode - Crash Logger - -If you are encountering an app crash caused by Dynamsoft Barcode Reader or Dynamsoft Camera Enhancer SDK, you need to use the Crash Logger. - -1. Toggle on Crash Logger - - Crash toggle on - -2. After Crash Logger is toggled on, please go ahead and scan codes until you reproduce the crash issue. - -3. After the app crashes, re-open BarcodeScannerX app and go to Advanced Scan -> settings. Tap the "Share" button to share the log files with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). - - Crash share - -## Debug Mode - Image Cropper - -If you are having trouble reading barcodes, you should use the Image Cropper to capture some sample image(s) or frame(s) and send them to the Dynamsoft Support Team: - -1. Toggle on Image Cropper - - Image crop toggle on - -2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan - - crop - -3. Tap the image crop icon to crop and share the original frames with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). Our support team will investigate the video frames and get back to you with a solution as soon as possible. diff --git a/dynamsoft-mobile/ios/disable-continuous-scanning.md b/dynamsoft-mobile/ios/disable-continuous-scanning.md deleted file mode 100644 index 06ca607..0000000 --- a/dynamsoft-mobile/ios/disable-continuous-scanning.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: One-off Barcode Scanning - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, continuous scanning, disable -description: How can I implement continuous barcode scanning and one-off barcode scanning? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I implement continuous barcode scanning and one-off barcode scanning? - -[<< Back to FAQ index](index.md) - -Please take advantage of the samples. The Hello World sample is the typical One-off scanning sample. The GeneralSettings sample is the typical continuous scanning sample. - -If you encounter any issues with this feature, please contact the Dynamsoft support team for help. \ No newline at end of file diff --git a/dynamsoft-mobile/ios/drivers-license-extraction.md b/dynamsoft-mobile/ios/drivers-license-extraction.md deleted file mode 100644 index 7a294fe..0000000 --- a/dynamsoft-mobile/ios/drivers-license-extraction.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Read Driver's License - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, driver license, info -description: Can I extract the driver’s information from a PDF417 barcode? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# Can I extract the driver’s information from a PDF417 barcode? - -[<< Back to FAQ index](index.md) - -View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. - -> `DynamsoftCodeParser` library is included in the sample to parse the driver's information from the barcode decoding result. A valid license is required for the `DynamsoftCodeParser` library. diff --git a/dynamsoft-mobile/ios/how-to-enable-qr-model-one.md b/dynamsoft-mobile/ios/how-to-enable-qr-model-one.md deleted file mode 100644 index 1c01535..0000000 --- a/dynamsoft-mobile/ios/how-to-enable-qr-model-one.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default-layout -title: QR Code Model 1 - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, QR code, model 1, ios -description: How an I enable QR Code Model 1 support in BarcodeScannerX? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How an I enable QR Code Model 1 support in BarcodeScannerX? - -[<< Back to FAQ index](index.md) - -Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: - -1. Visit Dynamsoft barcode reader online demo. -2. Click on Advanced Settings - -
-

advanced settings

-
- -3. Check **EnableQRCodeModel1**(You can modify any other settings as you like) -4. Save the template. - -
-

save template

-
- -5. Send the template to Dynamsoft support team. -6. We will generate and send a link to you. -7. Click **Import Template** in the Advanced Scan settings of BarcodeScannerX. Then input the link. -8. Now you can scan QR code Model 1! diff --git a/dynamsoft-mobile/ios/min-system-requirements.md b/dynamsoft-mobile/ios/min-system-requirements.md deleted file mode 100644 index f34bade..0000000 --- a/dynamsoft-mobile/ios/min-system-requirements.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -title: Minimum system requirements - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, requirements -description: What are the minimum system requirements of Dynamsoft Barcode Reader iOS? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# What are the minimum system requirements of Dynamsoft Barcode Reader iOS? - -[<< Back to FAQ index](index.md) - -For iOS, DBR supports the following: - -* Supported OS: **iOS 11** or higher (**iOS 13** and higher recommended). -* Supported ABI: **arm64** and **x86_64**. -* Development Environment: Xcode 13 and above (Xcode 14.1+ recommended). - -Please note that the **armv7** architecture is not supported. If you are doing a general build for all iOS devices, make sure to exclude it in the build settings. - -The x86_64 architecture usually coresponds to the simulator. Please note that in order to use the simulator, you must use the **xcframework** instead of the **framework**. \ No newline at end of file diff --git a/dynamsoft-mobile/ios/no-camera-enhancer.md b/dynamsoft-mobile/ios/no-camera-enhancer.md deleted file mode 100644 index 7b7e12b..0000000 --- a/dynamsoft-mobile/ios/no-camera-enhancer.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default-layout -title: Use AVCaptureSession or Third-party Camera - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, requirements -description: How to use AVCaptureSession or Third-party Camera Modules with Dynamsoft Barcode Reader? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I use AVCaptureSession or third-party camera modules with Dynamsoft Barcode Reader? - -[<< Back to FAQ index](index.md) - -## AVCaptureSession - -If you are using the CameraX, you can view [HelloWorld/DecodeWithAVCaptureSession sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/v10.4.2002/ios/HelloWorld) for a quick start. - -## Third-Party Camera Module - -If you are using a third-party camera module, what you have to do is: - -- Create a class that extends [DSImageSourceAdapter]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html). In this class, you need to implement the video capture features and the [`getImage`]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html#getimage) method of [`DSImageSourceAdapter`]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html). -- Create an instance of your camera class. -- Create an instance of the [`DSCaptureVisionRouter`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html) class. Then trigger the [`setInput`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#setinput) method with the instance of your camera class as the parameter. -- Trigger the [`startCapturing`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#startcapturing) method to start the barcode decoding. diff --git a/dynamsoft-mobile/ios/page-freeze.md b/dynamsoft-mobile/ios/page-freeze.md deleted file mode 100644 index bd62b26..0000000 --- a/dynamsoft-mobile/ios/page-freeze.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Solve Page Freeze - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, freeze, page -description: Why does the page sometimes freeze when I start the scanner? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# Why does the page sometimes freeze when I start the scanner? - -[<< Back to FAQ index](index.md) - -Before a barcode reader instance can be created, a one-time connection for license validation needs to occur when the app initializes (or whenever the license is set before the barcode reader instance creation). Sometimes, this license validation could take a second to complete. - -A potential "freeze" of the page can occur if [`LicenseManager.initLicense()`]({{ site.dcvb_ios_api }}license/license-manager.html#initlicense) is called multiple times in a single process. For example, we have seen some Swift users call `initLicense` both in the ViewController file as well as AppDelegate. We recommend doing it in the AppDelegate file, and as long at it is not called in both files, then the implementation should be fine. - -Please make sure that `initLicense` is called only once in your code. diff --git a/dynamsoft-mobile/ios/reduce-battery-consumption.md b/dynamsoft-mobile/ios/reduce-battery-consumption.md deleted file mode 100644 index 4131c6b..0000000 --- a/dynamsoft-mobile/ios/reduce-battery-consumption.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Reduce Battery Consumption - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, battery, consumption -description: How can I reduce battery consumption? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I reduce battery consumption? - -[<< Back to FAQ index](index.md) - -If you are finding that the battery of your phone is being heavily consumed when using the Barcode Reader, there are a couple of things that you can do to potentially reduce the battery consumption, depending on the usage situation. - -For a non-continuous video scanning scenario, make sure to call the [stopCapturing]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) method when the video scanning is no longer required. - -For a continuous video scanning scenario, configure the [minImageCaptureInterval]({{ site.dcvb_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html) attribute of `DSSimplifiedCaptureVisionSettings` class to set a higher value for the interval in order to reduce the frequency of fetching frames, thus reducing the number of scans per unit time, and thus, less resources needing to be consumed. You can dynamically adjust `minImageCaptureInterval` as needed to achieve the performance you are looking for. diff --git a/dynamsoft-mobile/ios/simulator-support.md b/dynamsoft-mobile/ios/simulator-support.md deleted file mode 100644 index d4803ec..0000000 --- a/dynamsoft-mobile/ios/simulator-support.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: iOS Simulator Support - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, simulator, camera -description: Does Dynamsoft Barcode Reader iOS Support Simulator Devices? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# Does Dynamsoft Barcode Reader iOS support simulator devices? - -[<< Back to FAQ index](index.md) - -Yes, Dynamsoft Barcode Reader iOS can support simulator devices, but in a very limited capacity. If you are only working with existing images in the device's photo library, and there is **no use of the camera whatsoever**, then DBR iOS can work just fine on a simulator. - -If you are attempting to test the SDK in an interactive video scenario, you will most likely encounter a UI unresponsiveness error that is caused by the camera open command in the code. More specifically, when the Camera Enhancer object call for the camera to open using the [open](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/ios/primary-api/camera-enhancer.html#open) method. - -Please note that DCE is currently not compatible with the simulator as the required use of a camera cannot be satisfied via the simulator. - -However, if you have a Mac M1 machine (or a later model) then you can test your application on the Mac M1 machine directly via Xcode. In order to do that, please select *My Mac (designed for iPhone/iPad)* in the dropdown menu when selecting the target device. \ No newline at end of file diff --git a/dynamsoft-mobile/scan-setting/disable-continuous-scanning.md b/dynamsoft-mobile/scan-setting/disable-continuous-scanning.md new file mode 100644 index 0000000..4987e8c --- /dev/null +++ b/dynamsoft-mobile/scan-setting/disable-continuous-scanning.md @@ -0,0 +1,33 @@ +--- +layout: default-layout +title: One-off vs Continuous Scanning - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, Android, iOS, continuous scanning, one-off scanning +description: How can I implement continuous barcode scanning and one-off barcode scanning? - DBR Android & iOS FAQs. +needAutoGenerateSidebar: true +--- + +# How can I implement continuous barcode scanning and one-off barcode scanning? + +[<< Back to FAQ index](index.md) + +Dynamsoft Barcode Reader (DBR) supports both **one-off scanning** and **continuous scanning** modes on **Android** and **iOS**. You can refer to our official sample projects for implementation guidance. + +--- + +## 📱 Sample Projects + +### Android + +- **[All Samples](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/android/samples/index.html?ver=latest){:target="\_blank"}** +- **[Hello World (One-off Scanning)](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/android/samples/helloworld.html?ver=latest){:target="\_blank"}** +- **[GeneralSettings (Continuous Scanning)](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/android/samples/general.html){:target="\_blank"}** + +### iOS + +- **[All Samples](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/objectivec-swift/samples/index.html?ver=latest){:target="\_blank"}** +- **[Hello World (One-off Scanning)](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/objectivec-swift/samples/helloworld.html?ver=latest){:target="\_blank"}** +- **[GeneralSettings (Continuous Scanning)](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/objectivec-swift/samples/general.html?ver=latest){:target="\_blank"}** + +--- + +If you encounter any issues while integrating either scanning mode, please feel free to reach out to the Dynamsoft support team for assistance. diff --git a/dynamsoft-mobile/scan-setting/how-to-enable-qr-model-one.md b/dynamsoft-mobile/scan-setting/how-to-enable-qr-model-one.md new file mode 100644 index 0000000..d4b8ae0 --- /dev/null +++ b/dynamsoft-mobile/scan-setting/how-to-enable-qr-model-one.md @@ -0,0 +1,40 @@ +--- +layout: default-layout +title: QR Code Model 1 - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, QR code, model 1, Android, iOS +description: How can I enable QR Code Model 1 support in BarcodeScannerX? - DBR Mobile FAQs +needAutoGenerateSidebar: true +--- + +# How can I enable QR Code Model 1 support in BarcodeScannerX? + +[<< Back to FAQ index](index.md) + +Most QR codes today follow the **QR Code Model 2** standard. By default, **BarcodeScannerX** only supports QR Code Model 2. If you want to test **QR Code Model 1**, follow the steps below for either **Android** or **iOS**: + +--- + +## 🔧 Steps to Enable QR Code Model 1 + +1. Visit the [Dynamsoft Barcode Reader Online Demo](https://demo.dynamsoft.com/barcode-reader/){:target="_blank"}. +2. Click **Advanced Settings**. + +
+

advanced settings

+
+ +3. In the settings, check the option **EnableQRCodeModel1** (you can modify any other settings as well). +4. Click **Save Template**. + +
+

save template

+
+ +5. Send your saved template to the [Dynamsoft Support Team](https://www.dynamsoft.com/contact/?ver=latest){:target="_blank"}. +6. Our team will generate and send you a unique link for the configuration. +7. In the **Advanced Scan Settings** of BarcodeScannerX (on Android or iOS), tap **Import Template** and paste the link. +8. You’re now ready to scan **QR Code Model 1**! + +--- + +If you run into any issues during setup or scanning, feel free to reach out to the Dynamsoft support team. \ No newline at end of file diff --git a/dynamsoft-mobile/scan-setting/template-support.md b/dynamsoft-mobile/scan-setting/template-support.md new file mode 100644 index 0000000..3b00651 --- /dev/null +++ b/dynamsoft-mobile/scan-setting/template-support.md @@ -0,0 +1,38 @@ +--- +layout: default-layout +title: Common Issues & Settings - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, ios, freeze, license, template, scanner settings +description: Solve page freeze issue on iOS and learn how to import settings from Barcode Scanner X on Android. +needAutoGenerateSidebar: true +--- + +# Common Issues & Settings + +[<< Back to FAQ index](index.md) + +--- + +## iOS: Why does the page sometimes freeze when I start the scanner? + +Before a barcode reader instance can be created, a one-time license validation needs to occur when the app initializes (or whenever the license is set before the reader instance is created). Occasionally, this process may take a second to complete and could cause the UI to appear frozen. + +A common cause is calling [`LicenseManager.initLicense()`]({{ site.dcvb_ios_api }}license/license-manager.html#initlicense) multiple times in the same process. For example, if you call `initLicense` in both the `AppDelegate` and the `ViewController`, a conflict might occur. + +✅ **Recommendation**: Call `initLicense` only once, ideally in the `AppDelegate`. + +--- + +## Android: How do I import settings from the Barcode Scanner X app into my own app? + +In the **Barcode Scanner X** app: + +1. Navigate to the use case scenario of interest. +2. Tap **"Export Template"** at the bottom-right corner. + +Once you have the template file, you can use it in your app with either: + +- [`initSettings`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) +- [`initSettingsFromFile`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) + + +--- \ No newline at end of file diff --git a/dynamsoft-mobile/ios/arm64-simulator-error.md b/dynamsoft-mobile/simulator/arm64-simulator-error.md similarity index 100% rename from dynamsoft-mobile/ios/arm64-simulator-error.md rename to dynamsoft-mobile/simulator/arm64-simulator-error.md diff --git a/dynamsoft-mobile/simulator/simulator-support.md b/dynamsoft-mobile/simulator/simulator-support.md new file mode 100644 index 0000000..ad39a72 --- /dev/null +++ b/dynamsoft-mobile/simulator/simulator-support.md @@ -0,0 +1,42 @@ +--- +layout: default-layout +title: Simulator Support - DBR Mobile FAQs +keywords: Dynamsoft Barcode Reader, FAQ, Mobile, Android, iOS, simulator, camera, support +description: Does Dynamsoft Barcode Reader support simulator devices on Android and iOS? +needAutoGenerateSidebar: true +--- + +# Does Dynamsoft Barcode Reader support simulator devices? + +[<< Back to FAQ index](index.md) + +Yes, **Dynamsoft Barcode Reader (DBR)** supports simulator devices on both **Android** and **iOS**, but **only in limited scenarios**. + +--- + +## ✅ When Simulator Support Works + +If your app is only working with **static images** (e.g., from the photo library) and there is **no use of the camera**, then DBR will function properly on simulator devices. + +--- + +## ❌ When Simulator Support Fails + +If your app requires **interactive video scanning**, you will likely encounter errors due to the simulator's lack of physical camera access. + +- On **Android**, attempting to open the camera using the [`open`](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/android/primary-api/camera-enhancer.html#open) method in the **Camera Enhancer** will fail. + +- On **iOS**, similar behavior occurs: calling [`open`](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/ios/primary-api/camera-enhancer.html#open) may cause UI unresponsiveness or crashes, as **Camera Enhancer (DCE)** cannot function without actual hardware access. + +--- + +## 💡 Tip for Mac M1/M2 Users (iOS Only) + +If you're using a Mac with Apple Silicon (e.g., M1 or newer), you can test iOS apps on your **Mac directly** using Xcode: + +1. In Xcode, select the **"My Mac (designed for iPhone/iPad)"** option as your target device. +2. This allows limited but effective testing of DBR on a macOS environment without a physical iOS device. + +--- + +For full functionality, especially camera-based scanning, we recommend using **real devices** for both Android and iOS during development and testing. \ No newline at end of file diff --git a/dynamsoft-server/add-remove-beep-sound.md b/dynamsoft-server/add-remove-beep-sound.md deleted file mode 100644 index 1d5b1fa..0000000 --- a/dynamsoft-server/add-remove-beep-sound.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: How to add/remove a "beep" sound once a barcode is found? -keywords: Dynamsoft Barcode Reader, FAQ, JavaScript, tech basic, beep, sound -description: How to add/remove a "beep" sound once a barcode is found? -needAutoGenerateSidebar: false ---- - -# How to add/remove a "beep" sound once a barcode is found? - -[<< Back to FAQ index](index.md) - -This feature is controlled using the [whenToPlaySoundforSuccessfulRead](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/interface/ScanSettings.html?ver=latest) property. To enable the feature, set the property to either **frame** or **unique**. To disable the feature, set it to **never**. - -> This feature is disabled by default. diff --git a/dynamsoft-server/arm64-simulator-error.md b/dynamsoft-server/arm64-simulator-error.md deleted file mode 100644 index fee770d..0000000 --- a/dynamsoft-server/arm64-simulator-error.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: default-layout -title: How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, arm64, simulator, exclude architectures -description: How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator? -needAutoGenerateSidebar: true ---- - -# How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator? - -[<< Back to FAQ index](index.md) - -DBR iOS can be used to build apps that belong to the arm64 architecture. If you try building an app for the arm64 simulator, and you migrated your app from an older version of Xcode to Xcode 12 or higher, then you might encounter the following error message: - -> ld: "Building for iOS Simulator, but linking in dylib built for iOS, file '/ios/Pods/DynamsoftBarcodeReader/DynamsoftBarcodeReader.framework/DynamsoftBarcodeReader' for architecture arm64" - -
- -In order to fix the error, please take the following steps under the *Build Settings* of the Xcode project: - -1. Under *User-Defined* -> find *VALIDATE_WORKSPACE* and set it to **YES**. Rebuild your project. - -2. Under *Architectures* -> find *Build Active Architecture Only* and set it to **YES**. - -3. Under *Architectures* -> make sure that *Architectures* is set to $(ARCHS_STANDARD). - -
- -If the error message persists, please make one of the following changes: - -- Instead of using the .framework (which all the samples do by default), switch to using the corresponding .xcframework - -- Under the *Build Settings* -> find *Excluded Architectures* -> in the *Debug* field click the + icon -> select *Any iOS Simulator SDK* -> put "arm64" - -- You can also exclude architectures via the Podfile as such: - - ```ruby - post_install do |installer| - installer.pods_project.build_configurations.each do |config| - config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" - end - end - ``` - OR - ```ruby - post_install do |installer| - installer.pods_project.build_configurations.each do |config| - config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "uname -m" - end - end - ``` - OR - ```ruby - podspec: - s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - ``` - \ No newline at end of file diff --git a/dynamsoft-server/armv7-architecture-error.md b/dynamsoft-server/armv7-architecture-error.md deleted file mode 100644 index 119a3e2..0000000 --- a/dynamsoft-server/armv7-architecture-error.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: How can I solve the "Undefined symbols for architecture armv7" error when building on iOS? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, armv7, undefined symbols -description: How can I solve the "Undefined symbols for architecture armv7" error when building on iOS? -needAutoGenerateSidebar: true ---- - -# How can I solve the "Undefined symbols for architecture armv7" error when building on iOS? - -[<< Back to FAQ index](index.md) - -DBR iOS is compatible with the arm64 and x86_64 architectures only. If you attempt to build an app that is targetting the armv7 architecture, you will be met with an error from the Barcode Reader framework saying - -> Undefined symbols for architecture armv7 - -Please note that this will mostly occur with older versions of Xcode or iOS that are still compatible with the older iOS device models that used the armv7 architecture. For most devices that are able to run iOS 11 and higher, the architecture will be arm64. - -By default, when you set the *Architectures* in *Build Settings* to the "$(ARCHS_STANDARD) - Standard Architectures (arm64)", the armv7 architecture should automaticallt not be included. To ensure that your app ignores the armv7 architecture, you can add it to the *Excluded Architectures* field of the *Build Settings*. \ No newline at end of file diff --git a/dynamsoft-server/avoid-incorrect-results-v9.6.42.md b/dynamsoft-server/avoid-incorrect-results-v9.6.42.md deleted file mode 100644 index 9c7a977..0000000 --- a/dynamsoft-server/avoid-incorrect-results-v9.6.42.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: default-layout -title: Sometimes the barcode reader SDK returns incorrect results with four or less characters. How to avoid it? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, incorrect results -description: Sometimes the barcode reader SDK returns incorrect results with four or less characters. How to avoid it? -needAutoGenerateSidebar: false ---- - -## Sometimes the Barcode Reader SDK returns incorrect results with four or less characters. How do you avoid that? - -[<< Back to FAQ index](index.md) - -One way to avoid this is to set the [minBarcodeTextLength](https://www.dynamsoft.com/barcode-reader/programming/c-cplusplus/struct/PublicRuntimeSettings.html?src=cpp&&ver=latest#minbarcodetextlength) to the correct length that the barcode results should be. Say that the barcode results should at least be 10 characters long, and the results are sometimes coming out with just 6 or 7 characters. By setting the minBarcodeTextLength to 10, the SDK will ignore results that are shorter than 10 characters. diff --git a/dynamsoft-server/bitcode-support.md b/dynamsoft-server/bitcode-support.md deleted file mode 100644 index ca1ed70..0000000 --- a/dynamsoft-server/bitcode-support.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Does the SDK support iOS Bitcode Framework? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, bitcode -description: Does the SDK support iOS Bitcode Framework? -needAutoGenerateSidebar: true ---- - -# Does the SDK support iOS Bitcode Framework? - -[<< Back to FAQ index](index.md) - -Yes, DBR iOS does allow the user to enable bitcode in their project if they would like to. Enabling bitcode can potentially reduce the app's total size. - -In order to enable bitcode, access the *Build Settings* of the project via Xcode and find the *Enable Bitcode* option to toggle it on. \ No newline at end of file diff --git a/dynamsoft-server/call-loadWasm-proactively.md b/dynamsoft-server/call-loadWasm-proactively.md deleted file mode 100644 index b99dc18..0000000 --- a/dynamsoft-server/call-loadWasm-proactively.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: default-layout -title: Do we have to call loadWasm proactively? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, loadWasm -description: Do we have to call loadWasm proactively? -needAutoGenerateSidebar: false ---- - -# Do we have to call loadWasm proactively? - -[<< Back to FAQ index](index.md) - -No, the method is internally called when `createInstance` is called so there is no need to explicitly call it. However, if you would like to save some time during the instance creation, you can choose to manually call the method as soon as the page is loaded rather than letting it load on the instance creation. This can help avoid unnecessary waiting time when the library is invoked. diff --git a/dynamsoft-server/change-domain-binding-of-product-key.md b/dynamsoft-server/change-domain-binding-of-product-key.md deleted file mode 100644 index 3f4657e..0000000 --- a/dynamsoft-server/change-domain-binding-of-product-key.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: How to change the domain binding of your product key? -keywords: Dynamsoft Barcode Reader, FAQ, JavaScript, tech basic, domain binding, product key -description: How to change the domain binding of your product key? -needAutoGenerateSidebar: false ---- - -# How to change the domain binding of your product key? - -[<< Back to FAQ index](index.md) - -In order to change the domain binding of the handshake code that includes the license item in question please follow the below steps - - 1. You will first need to log into the [customer portal](https://www.dynamsoft.com/customer/index). - 2. After login, please navigate go to [projects link](https://www.dynamsoft.com/lts/index.html#/handshakeCodes) - 3. Find the project that you want to change the domain binding. - 4. Click on the "Configure" button. - 5. Scroll down and find "Optional Settings" -> edit "Bind Website Domain" field to change your domain binding. - domain_binding - > Please note that a single project can contain multiple license items. If you wish to bind a single license item to a certain domain, then you will need to make sure that license item is the only item in the associated project. First, remove the license item from its current project. Afterwards, create a new project and then open its configuration page. Then, move the license item to the new project and finally edit the binding info of the new project. diff --git a/dynamsoft-server/check-camera.md b/dynamsoft-server/check-camera.md deleted file mode 100644 index 05583d8..0000000 --- a/dynamsoft-server/check-camera.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: default-layout -title: How to check the camera permissions programmatically in Dynamsoft Barcode Reader JavaScript SDK? -keywords: JavaScript, JS, camera, permission -description: How to check the camera permissions programmatically in Dynamsoft Barcode Reader JavaScript SDK? -needAutoGenerateSidebar: false ---- - -# How to check the camera permissions programmatically in Dynamsoft Barcode Reader JavaScript SDK? - -[<< Back to FAQ index](index.md) - -Starting from version 9.6.10+, you can utilize the [testCameraAccess](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/BarcodeScanner.html#testcameraaccess) method to check the camera status programmatically. - -For versions older than 9.6.10, you can check the status using a try-catch block as shown below: - -```javascript -try { - await scanner.open(); // or 'await scanner.show()' -} catch(e) { - if(e.name === "NotAllowedError") { - // it means the user denied permission - // add your code here to guide users to grant permission - } -} -``` - -In case permission is denied, you can prompt the user (using an alert or something similar) to manually grant permission for your website to access the camera via the site settings. diff --git a/dynamsoft-server/check-current-version.md b/dynamsoft-server/check-current-version.md deleted file mode 100644 index fd24e2d..0000000 --- a/dynamsoft-server/check-current-version.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default-layout -title: How to check the version of the JS SDK I am currently using? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, check version, current version -description: How to check the version of the JS SDK I am currently using? -needAutoGenerateSidebar: false ---- - -# How to check the version of the JS SDK I am currently using? - -[<< Back to FAQ index](index.md) - -There are multiple ways to check the version currently being used - - -- The first way is to use the [version API](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/InitializationControl.html?ver=latest#version). Using this API in the browser console should print out the version of the library being used by the web app. -- If you are using the library via npm or yarn, then you can check the version of the package via - - ```bash - npm –v dynamsoft-javascript-barcode - ``` - -- If you are including the library via the CDN link, then the version number should be mentioned in that reference link. diff --git a/dynamsoft-server/competitors-comparison.md b/dynamsoft-server/competitors-comparison.md deleted file mode 100644 index 1febfc8..0000000 --- a/dynamsoft-server/competitors-comparison.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: default-layout -title: How does our SDK compare to other commercial SDKs? -keywords: Dynamsoft Barcode Reader, FAQ, Other, comparison -description: How does our SDK compare to other commercial SDKs? -needAutoGenerateSidebar: false -permalink: /faq/general/competitors-comparison.html ---- - -## How does our SDK compare to other commercial SDKs? - -[<< Back to FAQ index](index.md) - -The Dynamsoft Barcode Reader offers some of the best performance metrics out of all of the SDKs in the industry. Throughout the years, our SDK has proven to meet any and every requirement there is on the spectrum, whether that is amazingly fast results in an interactive video scenario, or wildly accurate results when decoding DPM codes on warehouse machinery. The Dynamsoft Barcode Reader is tried and true, and has been utilized throughout various industries with utmost satisfaction. - -We invite you to watch this [**video**](https://www.youtube.com/watch?v=rrQ4_PImRQ8) on German Red Cross case study to learn of how our SDK is being used in healthcare. - -DBR is able to work in a multitude of usage scenarios and industries where our competitors cannot. Instead of talking about all these various use cases, we would like to share some videos that showcase them: - -- [**Digitizing your Healthcare Organization using DBR**](https://www.youtube.com/watch?v=5zmjeZINjIA) -- [**Driver License Scanner using DBR**](https://www.youtube.com/watch?v=1EOkf8cFtOU) -- [**COVID-19 Vaccine Passport Scanner**](https://www.youtube.com/watch?v=GdRRsqho-vk) -- [**Creating a Warehouse Management System with DBR**](https://www.youtube.com/watch?v=bCyzcV0ofMk) - -These are some of the most popular use cases that we have come across, but there's much more that our SDK can accomplish. - -Unlike most of our competitors, the Dynamsoft Barcode Reader comes in a variety of flavours, whether you are looking to build a desktop application, a native mobile application, or a web application. DBR supports a multitude of languages, including C, .NET, Java, Swift, JavaScript, and many more that our competitors do not support. In addition, DBR also supports a variety of the major frameworks that are used to create applications, such as Xamarin, Cordova, React, and a handful more. No matter the programming language or framework that you want to use for your application, Dynamsoft has got you covered. Feel free to check out the following videos that explore the different editions the SDK offers. - -- [**Android and iOS Barcode Scanning with DBR**](https://www.youtube.com/watch?v=w4-UCRkWElA) -- [**Barcode Scanning with a Raspberry Pi**](https://www.youtube.com/watch?v=p1NQz6m5yBc) -- [**Exploring the JavaScript Barcode Reader SDK**](https://www.youtube.com/watch?v=mhhv1Ja56gY) - -Another clear advantage that our SDK has over some of the other commercial SDKs, is its customizability and flexibility to suit a multitude of usage scenarios and conditions. Our SDK offers a spectrum of performance metrics: Do you want extremely accurate results while sacrificing speed? DBR has you covered. Is your application going to be used in a high-paced environment? DBR can certainly meet those speed requirements. Or maybe you are looking to have the best of both worlds, both very fast and very accurate results. DBR can certainly be configured to achieve this. - -Throughout the years, we developed DBR to deal with sub-optimal environmental conditions that we noticed other SDKs are not able to handle. Some of the most common conditions include wrinkled/damaged barcodes, low lighting, or barcodes at an irregular orientation. By supporting such conditions, we ensure that DBR is able to handle barcode scanning not only under ideal conditions, but also under not-so-ideal conditions which is common to see when you're out in the field or working in a warehouse. - -Please explore the following videos that address these topics: - -- [**Just how fast is the Dynamsoft Barcode Reader?**](https://www.youtube.com/watch?v=eDn0GFWSCNQ) -- [**How does DBR handle wrinkled barcodes?**](https://www.youtube.com/watch?v=fraXfsNqr24) -- [**Achieving Robust Barcode Scanning**](https://www.youtube.com/watch?v=77VMxU7waas) - -If none of this has convinced you to choose Dynamsoft over other commercial SDKs, we invite you to watch this [**benchmark comparison video**](https://www.youtube.com/watch?v=CaJctK4Jqy8) that tests our SDK against other commercial SDKs in the market. - -The full breakdown of comparison between the SDKs can be found in this [article](https://www.dynamsoft.com/blog/insights/best-barcode-reader-sdks/) as well. - -If you still have some doubts over what our SDK can do compared to other SDKs, or if it can satisfy your usage scenario, then please feel free to contact the [Dynamsoft Support Team](https://www.dynamsoft.com/contact/). diff --git a/dynamsoft-server/configuration.md b/dynamsoft-server/configuration.md deleted file mode 100644 index 6730efe..0000000 --- a/dynamsoft-server/configuration.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -title: Dynamsoft Barcode Reader FAQ - Configuration -keywords: faq, general -description: Dynamsoft Barcode Reader FAQ - Configuration -needAutoGenerateSidebar: false -permalink: /faq/general/configuration.html ---- - -## Configuration - -[<< Back to FAQ index](index.md) - -1. [What I can do when barcode image returnes messy (non-english) characters?](non-english-characters.html) - -2. [How to enable DPM?](how-to-enable-dpm.html) - -3. [How to filter incorrect results with the barcode result length?](avoid-incorrect-results.html) - -4. [What will happen if licenses are not renewed in time?](what-happens-if-license-expires.html) - -5. [How to Handle Non-printable Characters Like "\u{1D}" or "{GS}" from the Barcode Text?](unprintable-character.html) - -6. [How to create custom settings template?](custom-settings-template.html) - -7. [How can I sort the barcodes of my image in reading order?](sort-barcodes-image.html) diff --git a/dynamsoft-server/configuration/avoid-incorrect-results.md b/dynamsoft-server/configuration/avoid-incorrect-results.md new file mode 100644 index 0000000..1740457 --- /dev/null +++ b/dynamsoft-server/configuration/avoid-incorrect-results.md @@ -0,0 +1,14 @@ +--- +layout: default-layout +title: How to filter incorrect results with the barcode result length? +keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, incorrect results +description: How to filter incorrect results with the barcode result length? +needAutoGenerateSidebar: false +permalink: /faq/general/avoid-incorrect-results.html +--- + +## How to filter incorrect results with the barcode result length? + +[<< Back to FAQ index](index.md) + +One way to avoid this is to set the [minBarcodeTextLength](https://www.dynamsoft.com/barcode-reader/docs/server/programming/cplusplus/api-reference/simplified-barcode-reader-settings.html#:~:text=int%20minResultConfidence%3B-,int%20minBarcodeTextLength%3B,-char%20barcodeTextRegExPattern%5B) in [SimplifiedBarcodeReaderSettings](https://www.dynamsoft.com/barcode-reader/docs/server/programming/cplusplus/api-reference/simplified-barcode-reader-settings.html#:~:text=SimplifiedBarcodeReaderSettings-,SimplifiedBarcodeReaderSettings,-The%20SimplifiedBarcodeReaderSettings%20struct) of [SimplifiedCaptureVisionSettings](https://www.dynamsoft.com/capture-vision/docs/server/programming/cplusplus/api-reference/capture-vision-router/structs/simplified-capture-vision-settings.html?product=dbr&repoType=server) to the correct length that the barcode results should be. Say that the barcode results should at least be 10 characters long, and the results are sometimes coming out with just 6 or 7 characters. By setting the minBarcodeTextLength to 10, the SDK will ignore results that are shorter than 10 characters. diff --git a/dynamsoft-server/custom-settings-template.md b/dynamsoft-server/configuration/custom-settings-template.md similarity index 100% rename from dynamsoft-server/custom-settings-template.md rename to dynamsoft-server/configuration/custom-settings-template.md diff --git a/dynamsoft-server/how-to-enable-dpm.md b/dynamsoft-server/configuration/how-to-enable-dpm.md similarity index 100% rename from dynamsoft-server/how-to-enable-dpm.md rename to dynamsoft-server/configuration/how-to-enable-dpm.md diff --git a/dynamsoft-server/non-english-characters.md b/dynamsoft-server/configuration/non-english-characters.md similarity index 100% rename from dynamsoft-server/non-english-characters.md rename to dynamsoft-server/configuration/non-english-characters.md diff --git a/dynamsoft-server/sort-barcodes-image.md b/dynamsoft-server/configuration/sort-barcodes-image.md similarity index 100% rename from dynamsoft-server/sort-barcodes-image.md rename to dynamsoft-server/configuration/sort-barcodes-image.md diff --git a/dynamsoft-server/unable-to-scan-aztec-code.md b/dynamsoft-server/configuration/unable-to-scan-aztec-code.md similarity index 100% rename from dynamsoft-server/unable-to-scan-aztec-code.md rename to dynamsoft-server/configuration/unable-to-scan-aztec-code.md diff --git a/dynamsoft-server/cordova-signature-error.md b/dynamsoft-server/cordova-signature-error.md deleted file mode 100644 index cab3658..0000000 --- a/dynamsoft-server/cordova-signature-error.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: When building my Cordova app, I get an error saying “invalid signature”. How do I resolve that? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, cordova, invalid signature -description: When building my Cordova app, I get an error saying “invalid signature”. How do I resolve that? -needAutoGenerateSidebar: true ---- - -# When building my Cordova app, I get an error saying “invalid signature”. How do I resolve that? - -[<< Back to FAQ index](index.md) - -Once the `ios` platform is added to your Cordova project, you must manually configure the signature of the application on the iOS side of things via the *.xcworkspace* of the app. The *.xcworkspace* can be found in `platforms/ios`. - -After opening the *.xcworkspace*, please go to the “Build Settings” and configure the “Signing & Capabilities” section. \ No newline at end of file diff --git a/dynamsoft-server/custom-settings-template-v9.6.42.md b/dynamsoft-server/custom-settings-template-v9.6.42.md deleted file mode 100644 index 3e35857..0000000 --- a/dynamsoft-server/custom-settings-template-v9.6.42.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: default-layout -title: How to generate a custom settings template to use in your own application? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, runtime settings, template -description: How to generate a custom settings template to use in your own application? -needAutoGenerateSidebar: false ---- - -## How to generate a custom settings template to use in your own application? - -One of the strengths of the Dynamsoft Barcode Reader is its wide range of cuztomizable options that can optimize the performance of the SDK. Whether you are looking to prioritize read rate or speed, these settings can be used in many ways to match the targeted use case. - -If you are looking to create your own custom template of settings to use with the `InitRuntimeSettingsWithFile` or `InitRuntimeSettingsWithString` methods, here are the steps: - -1. Visit the main [online demo](https://demo.dynamsoft.com/barcode-reader/). - -2. Once on that page, you will find the settings menu on the left-hand side. Please note that you can access the full settings by clicking on *Advanced Settings* - -3. Edit the settings that you want - -4. Once you're ready to get the template, scroll down to the bottom of the settings menu to find the full settings as a *Struct* or a *Template*. The struct is the more readable version of the template, but the actual JSON code will be under *Template*. - -5. Copy the JSON code under *Template* and paste it into your own JSON file, or you can download the template JSON file straight from the demo. - -And with that, you have your own template to use with the `InitRuntimeSettingsWithFile` method! If you would like to use the `InitRuntimeSettingsWithString` method instead, please make sure to properly stringify the JSON code from the template. \ No newline at end of file diff --git a/dynamsoft-server/debug-mode-barcodescannerx.md b/dynamsoft-server/debug-mode-barcodescannerx.md deleted file mode 100644 index f8e45e4..0000000 --- a/dynamsoft-server/debug-mode-barcodescannerx.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: default-layout -title: How to use Debug Mode in Barcode Scanner X? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, debug, android -description: How to use Debug Mode in Barcode Scanner X? -needAutoGenerateSidebar: true ---- - -# How to use Debug Mode in Barcode Scanner X? - -[<< Back to FAQ index](index.md) - - -## Debug Mode in BarcodeScannerX - -If you are experiencing app crashes in your own application or you’ve come across some barcode(s) that you can’t read and you have exhausted all of the other troubleshooting methods, Debug Mode of the [BarcodeScannerX](https://www.dynamsoft.com/barcode-reader/sdk-mobile/#appDemo) demo app can help offer one last effort to resolve these issues. - -This next section will explain how to toggle on debug mode on the demo app, and will then dive into how to collect crash logs and/or image samples. - -1. From the home screen, go to Advanced Scan. - - Home screen - -2. Tap the settings icon at the top-right corner. - - Advanced scan - -3. Tap Debug Mode to see the drop-down list. - - Debug mode - -## Debug Mode - Crash Logger - -If you are encountering an app crash caused by Dynamsoft Barcode Reader or Dynamsoft Camera Enhancer SDK, you need to use the Crash Logger. - -1. Toggle on Crash Logger - - Crash toggle on - -2. After Crash Logger is toggled on, please go ahead and scan codes until you reproduce the crash issue. - -3. After the app crashes, re-open BarcodeScannerX app and go to Advanced Scan -> settings. Tap the "Share" button to share the log files with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). - - Crash share - -## Debug Mode - Image Cropper - -If you are having trouble reading barcodes, you should use the Image Cropper to capture some sample image(s) or frame(s) and send them to the Dynamsoft Support Team: - -1. Toggle on Image Cropper - - Image crop toggle on - -2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan - - crop - -3. Tap the image crop icon to crop and share the original frames with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). Our support team will investigate the video frames and get back to you with a solution as soon as possible. diff --git a/dynamsoft-server/delay-when-open-camera.md b/dynamsoft-server/delay-when-open-camera.md deleted file mode 100644 index 0caeda8..0000000 --- a/dynamsoft-server/delay-when-open-camera.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: default-layout -title: How to get rid of the delay when opening the camera? -keywords: Dynamsoft Barcode Reader, FAQ, delay,camera,loadwasm -description: How to get rid of the delay when opening the camera? -needAutoGenerateSidebar: false ---- - -# How to get rid of the delay when opening the camera? - -[<< Back to FAQ index](index.md) - - -## 1. Invoke loadWasm in advance - -```javascript -Dynamsoft.DBR.BarcodeReader.loadWasm(); -``` - -## 2. Pre-open the camera in advance - -Run the following code before calling `createInstance`. -``` -navigator.mediaDevices.getUserMedia({video: true}).then(mediaStream=>{ - mediaStream.getTracks().forEach((track) => { - track.stop(); - }); -}, err=>{}); -``` - -## 3. Skip Camera inspection(use default camera) - -```javascript -scanner.ifSkipCameraInspection = true; -``` diff --git a/dynamsoft-server/difference-between-barcodeReader-and-barcodeScanner.md b/dynamsoft-server/difference-between-barcodeReader-and-barcodeScanner.md deleted file mode 100644 index 0400d21..0000000 --- a/dynamsoft-server/difference-between-barcodeReader-and-barcodeScanner.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: What is the difference between BarcodeReader class and the BarcodeScanner class? Can they be used interchangeably? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, barcodeReader, barcodeScanner -description: What is the difference between BarcodeReader class and the BarcodeScanner class? Can they be used interchangeably? -needAutoGenerateSidebar: false ---- - -# What is the difference between the BarcodeReader class and the BarcodeScanner class? Can they be used interchangeably? - -[<< Back to FAQ index](index.md) - -No, as each offers a different functionality than the other. The `BarcodeReader` class is used to decode static images (via one of the [decode\*](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/BarcodeReader.html#decode-barcodes) methods) and does not have the ability to open the camera stream and decode barcodes directly from the video stream. - -The `BarcodeScanner` class on the other hand has the ability to decode barcodes directly from a video input, but it can also capture a still image using the camera when `singleFrameMode` is toggled. diff --git a/dynamsoft-server/difference-between-bestspeed-and-bestcoverage.md b/dynamsoft-server/difference-between-bestspeed-and-bestcoverage.md deleted file mode 100644 index 0e70a83..0000000 --- a/dynamsoft-server/difference-between-bestspeed-and-bestcoverage.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -title: What are the differences between the 'speed', 'coverage', 'balance, and 'single' runtime templates? -keywords: Dynamsoft Barcode Reader, FAQ, Troubleshooting / User Cases, speed, coverage -description: What are the differences between the 'speed', 'coverage', 'balance, and 'single' runtime templates? -needAutoGenerateSidebar: false ---- - -# What are the differences between the 'speed', 'coverage', 'balance, and 'single' runtime templates? - -[<< Back to FAQ index](index.md) - -`speed`, as the name suggests, prioritizes time cost over the accuracy of the results, and `coverage` is vice versa. - -`balance` is the perfect middle ground between `speed` and `coverage`. - -Lastly, the `single` template is optimized for interactive video scenarios, and is the default mode when using the `BarcodeScanner` class. - -In terms of the individual settings, if you would like to learn of the exact breakdown between the different templates, please contact the [Dynamsoft support team](https://www.dynamsoft.com/contact/). - -To choose the runtime settings template that you want the SDK to utilize and learn about some of the other templates we offer, please use the [updateRuntimeSettings](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/BarcodeReader.html#updateruntimesettings) method. diff --git a/dynamsoft-server/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md b/dynamsoft-server/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md deleted file mode 100644 index dac17e8..0000000 --- a/dynamsoft-server/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: What are the differences between updateScanSettings/updateVideoSettings/updateRuntimeSettings? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, updateScanSettings, updateVideoSettings, updateRuntimeSettings -description: What are the differences between updateScanSettings/updateVideoSettings/updateRuntimeSettings? -needAutoGenerateSidebar: false ---- - -# What are the differences between updateScanSettings/updateVideoSettings/updateRuntimeSettings ? - -[<< Back to FAQ index](index.md) - -`updateScanSettings` is used to update the [ScanSettings](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/interface/ScanSettings.html?ver=latest) interface. This can be used to configure settings such as ignoring duplicate reads, setting sound/vibration when a barcode is scanned. - -`updateVideoSettings` is used to update the [MediaStreamConstraints](https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API/Constraints) that define most of the video information such as width, height, and the camera facingMode (i.e. front or rear camera). - -`updateRuntimeSettings` is used to update the [RuntimeSettings](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/interface/RuntimeSettings.html?ver=latest) interface. It updates the runtime settings with a given object or use the string `speed`, `balance`, or `coverage` to use [our preset settings for BarcodeScanner](https://www.dynamsoft.com/barcode-reader/parameters/structure-and-interfaces-of-parameters.html?ver=latest#using-runtime-settings-templates). The default setting is `speed`. diff --git a/dynamsoft-server/different-ways-to-customize-ui.md b/dynamsoft-server/different-ways-to-customize-ui.md deleted file mode 100644 index e5dd4d0..0000000 --- a/dynamsoft-server/different-ways-to-customize-ui.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: default-layout -title: What are the different ways to customize the UI? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, customize ui -description: What are the different ways to customize the UI? -needAutoGenerateSidebar: false ---- - -# What are the different ways to customize the UI? - -[<< Back to FAQ index](index.md) - -There are three different ways to customize the UI - - -- The first is to modify the file `dist/dbr.ui.html` directly. However, this means that the resource files should be hosted on your own server, rather than using the CDN. - -- The second is to make a copy of the `dist/dbr.ui.html` and include it in your application, modifying the copy as you wish. Afterwards, you can tell the SDK to use the modified copy using the `defaultUIElement` property: - -```javascript -Dynamsoft.DBR.BarcodeScanner.defaultUIElementURL = "THE-URL-TO-THE-FILE"; -``` - -> Note - This needs to be set before `createInstance` is called. - -- The third and most popular way is to build the UI element by incorporating the HTML element yourself, and then point to that HTML element during initialization using the `setUIElement(HTMLElement)` method. - 1. The first part of this is to embed the video element. Please note that the classnames of the different sub-elements must match the ones in `dist/dbr.ui.html`. - 2. The second part is to add the camera list and resolution list and as before, the classnames must match the ones listed in `dist/dbr.ui.html`. - -> Note - For more info on how to customize the UI, please refer to this [section](https://www.dynamsoft.com/barcode-reader/docs/core/programming/features/customize-the-ui.html?lang=js) of the user guide. diff --git a/dynamsoft-server/disable-continuous-scanning.md b/dynamsoft-server/disable-continuous-scanning.md deleted file mode 100644 index 99725e0..0000000 --- a/dynamsoft-server/disable-continuous-scanning.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: How can I implement continuous barcode scanning and one-off barcode scanning? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, continuous scanning, disable -description: How can I implement continuous barcode scanning and one-off barcode scanning? -needAutoGenerateSidebar: true ---- - -# How can I implement continuous barcode scanning and one-off barcode scanning? - -[<< Back to FAQ index](index.md) - -Please take advantage of the samples. The Hello World sample is the typical One-off scanning sample. The GeneralSettings sample is the typical continuous scanning sample. - -If you encounter any issues with this feature, please contact the Dynamsoft support team for help. \ No newline at end of file diff --git a/dynamsoft-server/drivers-license-extraction.md b/dynamsoft-server/drivers-license-extraction.md deleted file mode 100644 index 67cc26c..0000000 --- a/dynamsoft-server/drivers-license-extraction.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Can I extract the driver’s information from a PDF417 barcode? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, driver license, info -description: Can I extract the driver’s information from a PDF417 barcode? -needAutoGenerateSidebar: true ---- - -# Can I extract the driver’s information from a PDF417 barcode? - -[<< Back to FAQ index](index.md) - -In the Barcode Scanner X(mobile app), "US Driver's License" scenario is able to parse driver's information from driver's licenses. - -At the moment, there is no external framework that is responsible for this function in the sample. However, the team is currently developing an edition of our complimentary product, the *Dynamsoft Code Parser*, that is compatible with the mobile platform. \ No newline at end of file diff --git a/dynamsoft-server/ensure-no-overuse-v9.6.42.md b/dynamsoft-server/ensure-no-overuse-v9.6.42.md deleted file mode 100644 index 6b8a7ab..0000000 --- a/dynamsoft-server/ensure-no-overuse-v9.6.42.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: How to ensure that a device does not overuse its allotted number of instances? -keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, General, ensure no overuse -description: How to ensure that a device does not overuse its allotted number of instances? -needAutoGenerateSidebar: false ---- - -## How to ensure that a device does not overuse its allotted number of instances? - -[<< Back to FAQ index](index.md) - -Sometimes a device might run into an error that says that "Instance count is over limited". This occurs when a single device tries to create a new instance after one has already been created. By default, the max that a single device can have is one, so if you try to create more than that, the error is produced. - -- One way to avoid this error from occurring is to check the number of allowed instances (on the local machine rather than the total available on this license) using the [GetIdleInstancesCount](https://www.dynamsoft.com/barcode-reader/programming/dotnet/api-reference/BarcodeReader/license.html?ver=latest#getidleinstancescount) method. If the result of that method is over 0 then proceed with creating the DBR instance, and no if not. -- If you would like for a single machine to be able to operate more than one instance, that can be defined using the [MaxConcurrentInstanceCount parameter](https://www.dynamsoft.com/barcode-reader/programming/dotnet/api-reference/class/DMDLSConnectionParameters.html?ver=latest#maxconcurrentinstancecount). diff --git a/dynamsoft-server/error-10022-the-PDF-DLL-is-missing.md b/dynamsoft-server/error-10022-the-PDF-DLL-is-missing.md deleted file mode 100644 index 02542c8..0000000 --- a/dynamsoft-server/error-10022-the-PDF-DLL-is-missing.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -layout: default-layout -title: How to resolve error -10022 the PDF DLL is missing? -keywords: Dynamsoft Barcode Reader, FAQ, Dependency, General, pdf, missing -description: How to resolve error -10022 the PDF DLL is missing? -needAutoGenerateSidebar: false ---- - -## How to troubleshoot error message "-10022 The PDF DLL is missing" - -[<< Back to FAQ index](index.md) - - -The error message `-10022 The PDF DLL is missing` indicates that the Dynamsoft Barcode Reader is looking for a PDF DLL file, which is typically used in Windows environments. However, this error message may also appear in Linux environments, as both cases point to the same issue due to a shared error message library. - -This error occurs when the necessary PDF library files required for handling PDF files are either missing or the required dependencies are not in the correct path. - -### To resolve this issue you could try the following methods - -Please check if the PDF library files are located in the same directory as the Dynamsoft Barcode Reader library (e.g. DynamsoftBarcodeReaderx64.dll). If they are not, kindly copy the PDF library files to that location and try again. - -**For Windows x86:** - -- `DynamicPdf.dll` - -- `DynamicPdfCore.dll` - -- `DynamicImage.dll` - -**For Windows x64:** - -- `DynamicPdfx64.dll` - -- `DynamicPdfCorex64.dll` - -- `DynamicImagex64.dll` - -**For Linux:** - -- `libDynamicPdf.so` - -- `libDynamicPdfCore.so` - -If you still have this issue, please check if all dependencies are installed based on your OS. - -**For Windows:** -Use `dumpbin` command line tool to check dependency. - -``` -dumpbin/dependents your_ddl_file.ddl -``` - - **For Linux:** - Run the following command on the console to check if all dependencies are installed. - - ``` - ldd /lib/libDynamicPdf.so - ``` - - > Tips: - > Generally, libatomic1 is not installed on ARM64, while it does appear to exist on the AMD64 image. If you are using ARM64, you could test if libatomic1 is installed. diff --git a/dynamsoft-server/error-debug.md b/dynamsoft-server/error-debug.md deleted file mode 100644 index 07f2efd..0000000 --- a/dynamsoft-server/error-debug.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: Dynamsoft Barcode Reader FAQ - Error & Debug -keywords: faq, error, debug -description: Dynamsoft Barcode Reader FAQ - Error & Debug -needAutoGenerateSidebar: false -permalink: /faq/general/error-debug.html ---- - -## Error & Debug - -[<< Back to FAQ index](index.md) - -1. [The error message "-10022 The PDF DLL is missing" on Linux?](error-10022-the-PDF-DLL-is-missing.html) - -2. [How to resolve error failed to read or write license buffer?](error-license-buffer.html) diff --git a/dynamsoft-server/error-license-buffer-v9.6.42.md b/dynamsoft-server/error-license-buffer-v9.6.42.md deleted file mode 100644 index 56e026f..0000000 --- a/dynamsoft-server/error-license-buffer-v9.6.42.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: default-layout -title: How to resolve error failed to read or write license buffer? -keywords: Dynamsoft Barcode Reader, FAQ, offline, license type -description: How to resolve error failed to read or write license buffer? -needAutoGenerateSidebar: false ---- - -## How to resolve error failed to read or write license buffer? - -[<< Back to FAQ index](index.md) - -When initializing the license for cloud-hosted services, it is common to come across the following error message: - -`Error Code - DM_LICENSE_BUFFER_FAILED. Value - 20002. Description - Failed to read or write license buffer.` - -This error occurs when Dynamsoft SDK attempts to write the license file to the local usr/home directory or Home directory, but is unable to do so due to lack of permission to read or write the license file in that directory. - -To resolve this issue, please set the license file cache path to a directory that your program has read and write permissions for. - - -Code snippet in C: -```C -char errorBuf[512]; -DBR_SetLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE"); -DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512); -void* barcodeReader = DBR_GetInstance(); -``` -Code snippet in C++: -```Cpp -char errorBuf[512]; -dynamsoft::dbr::CBarcodeReader::SetLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE"); -dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512); -CBarcodeReader* reader = CBarcodeReader::GetInstance(); -``` -Code snippet in C#: -```CSharp -string errorMsg; -BarcodeReader.SetLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE"); -BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg); -BarcodeReader reader = BarcodeReader.GetInstance(); -``` -Code snippet in Java: -```Java -BarcodeReader.setLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE"); -BarcodeReader.initLicense("YOUR-LICENSE-KEY"); -BarcodeReader reader = BarcodeReader.getInstance(); -``` -Code snippet in Python: -```Python -BarcodeReader.set_license_cache_path("DIRECTORY-PATH-FOR-LICENSE-CACHE") -BarcodeReader.init_license("YOUR-LICENSE-KEY") -reader = BarcodeReader() -``` diff --git a/dynamsoft-server/error-license-buffer.md b/dynamsoft-server/error-license-buffer.md deleted file mode 100644 index d2af9fc..0000000 --- a/dynamsoft-server/error-license-buffer.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -title: How to resolve error failed to read or write license buffer? -keywords: Dynamsoft Barcode Reader, FAQ, offline, license type -description: How to resolve error failed to read or write license buffer? -needAutoGenerateSidebar: false -permalink: /faq/general/error-license-buffer.html ---- - -## How to resolve error failed to read or write license buffer? - -[<< Back to FAQ index](index.md) - -When initializing the license for cloud hosted services, it is common to come across the following error message: - -`Error Code - DM_LICENSE_BUFFER_FAILED. Value - 20002. Description - Failed to read or write license buffer.` - -This error occurs when Dynamsoft sdk attempts to write the license file to the local usr/home directory or Home directory, but is unable to do so due to lack of permission to read or write the license file in that directory. - -To resolve this issue, please set the license file cache path to a directory that your program has read and write permissions for. - - -Code snippet in C++ -```C++ -static int SetLicenseCachePath(const char* directoryPath) -``` \ No newline at end of file diff --git a/dynamsoft-server/formats-supported-for-existing-files.md b/dynamsoft-server/formats-supported-for-existing-files.md deleted file mode 100644 index 8890eb6..0000000 --- a/dynamsoft-server/formats-supported-for-existing-files.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default-layout -title: What file/image formats are supported when reading barcodes from files in local memory? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, files supported, pdf -description: What file/image formats are supported when reading barcodes from files in local memory? -needAutoGenerateSidebar: false ---- - -# What file/image formats are supported when reading barcodes from files in local memory? - -[<< Back to FAQ index](index.md) - -- The supported image formats include png, jpeg, bmp, gif and a few others (some browsers support webp, tif). -- PDF files are currently not supported. diff --git a/dynamsoft-server/general-troubleshooting-steps-for-decode-failure.md b/dynamsoft-server/general-troubleshooting-steps-for-decode-failure.md deleted file mode 100644 index f2e3331..0000000 --- a/dynamsoft-server/general-troubleshooting-steps-for-decode-failure.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -layout: default-layout -title: what are the general troubleshooting steps if I fail to scan barcodes from camera? -keywords: Dynamsoft Barcode Reader, FAQ, Troubleshooting / User Cases, general troubleshooting, decode fails -description: what are the general troubleshooting steps if I fail to scan barcodes from camera? -needAutoGenerateSidebar: false ---- - -# What are the general troubleshooting steps if I fail to scan barcodes via the camera? - -[<< Back to FAQ index](index.md) - - -You may sometimes experience issues when trying to scan some barcodes using your device via the camera. There are various factors that could play into this, such as camera resolution, lighting condition(s), damage level of the barcode, or improper scanning settings. - -Generally, with some setting changes via our APIs, Dynamsoft Barcode Reader JavaScript SDK is able to adapt to your unique usage scenario and deliver great performance. - - -## Step 1 - try different scan settings with our standard online demo -1. The first thing is to try the [JavaScript online demo](https://demo.dynamsoft.com/barcode-reader-js/). If the barcode is not being picked up under normal settings, let's try out some different settings in the demo. By default, the demo runs on the Best Speed mode, which you can see under the "Scan Settings" on the left-hand side. To potentially improve the performance, we recommend trying out the two other available modes in the demo: Balance or Best Coverage. Best Coverage will prioritize read rate over speed, while Best Speed will prioritize speed over accuracy or read rate. Balance offers the perfect mixture between the two. - - - - Best coverage -> **_NOTE:_** To learn more about scan modes, please visit the [updateRuntimeSettings](../api-reference/BarcodeReader.md#updateruntimesettings) API page. - -2. Enable Full HD resolution in the demo - - - Full HD -> **_NOTE:_** If the barcode is decoded, then you can output the settings and use that setting template via the `updateRuntimeSettings` method. If the barcode still can’t be decoded via the online demo, then move on to step 2. - -## Step 2 - capture image frames and send to Dynamsoft for analysis - -1. Go to [JavaScript online demo debug mode](https://demo.dynamsoft.com/barcode-reader-js?debug=true) -> Click "START SCAN" -> Click the "capture video frames" button at the top to capture video frames. - - Frames crop - -2. Share the video frames set with [Dynamsoft Support team](https://www.dynamsoft.com/contact/). Our support team will investigate the video frames and get back to you with a solution as soon as possible. - diff --git a/dynamsoft-server/general.md b/dynamsoft-server/general.md deleted file mode 100644 index 9fb9ed3..0000000 --- a/dynamsoft-server/general.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -title: Dynamsoft Barcode Reader FAQ - General -keywords: faq, general -description: Dynamsoft Barcode Reader FAQ - General -needAutoGenerateSidebar: false -permalink: /faq/general/general.html ---- - -## General - -[<< Back to FAQ index](index.md) - -1. [What business needs can Dynamsoft Barcode Reader meet?](what-is-dbr.html) - -2. [What barcode types are supported by Dynamsoft Barcode Reader?](supported-barcode-formats.html) - -3. [Which edition of Barcode Reader should I use?](different-editions-of-dbr.html) - -4. [Can Barcode Reader SDK read PDF files? Do I need to pay for this feature?](dbr-supports-pdf.html) - -5. [How to scan specific pages of a pdf file?](scan-specific-page.html) - -6. [How to scan barcodes on US Driver's Licenses and extract the information?](scan-us-drivers-license.html) - -7. [How does your SDK compare to other commercial SDKs?](competitors-comparison.html) diff --git a/dynamsoft-server/get-intermediate-result-images.md b/dynamsoft-server/get-intermediate-result-images.md deleted file mode 100644 index 2211fa6..0000000 --- a/dynamsoft-server/get-intermediate-result-images.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: How to get intermediate result images? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, intermediate result images -description: How to get intermediate result images? -needAutoGenerateSidebar: false ---- - -# How to get intermediate result images? - -[<< Back to FAQ index](index.md) - -The intermediate result images can be retrieved using the `getIntermediateCanvas` method, as explained in the [Advanced Usage guide](https://www.dynamsoft.com/barcode-reader/programming/javascript/user-guide/advanced-usage.html?ver=latest#display-images-in-different-stages-of-the-reading-process). - -Should you need any more help with intermediate results, do not hesitate to [contact us](https://www.dynamsoft.com/contact/). diff --git a/dynamsoft-server/get-sdk-logs.md b/dynamsoft-server/get-sdk-logs.md deleted file mode 100644 index c07c363..0000000 --- a/dynamsoft-server/get-sdk-logs.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: How to get the logs for the SDK? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, logs -description: How to get the logs for the SDK? -needAutoGenerateSidebar: false ---- - -# How to get the logs for the SDK? - -[<< Back to FAQ index](index.md) - -The SDK can provide logs via the browser console. Logging can be activated by the `_onLog` property. - -```javascript -Dynamsoft.DBR.BarcodeReader._onLog = console.log; -``` diff --git a/dynamsoft-server/hide-laser-message-ui.md b/dynamsoft-server/hide-laser-message-ui.md deleted file mode 100644 index 0fadb61..0000000 --- a/dynamsoft-server/hide-laser-message-ui.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: default-layout -title: How can I hide the laser bar and Dynamsoft message in the default UI of the BarcodeScanner? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, barcodeReader, barcodeScanner, hide, UI -description: How can I hide the laser bar and Dynamsoft message in the default UI of the BarcodeScanner? -needAutoGenerateSidebar: false ---- - -# How can I hide the laser bar and Dynamsoft message in the default UI of the BarcodeScanner? - -In order to show or hide these specific UI elements, all you need to do is access them individually via their class names and setting the corresponding display property. - -By default, these elements will be shown. In order to hide them, an edited Hello World code snippet can be found below that will get the job done. Please note that the elements must be hidden after `scanner.show()` is called since that is when the elements are created. - -``` html - - -``` \ No newline at end of file diff --git a/dynamsoft-server/how-to-enable-dpm-v9.6.42.md b/dynamsoft-server/how-to-enable-dpm-v9.6.42.md deleted file mode 100644 index 81b4cb6..0000000 --- a/dynamsoft-server/how-to-enable-dpm-v9.6.42.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: How to enable DPM? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, enable DPM -description: How to enable DPM? -needAutoGenerateSidebar: false ---- - -## How to enable DPM? - -[<< Back to FAQ index](index.md) - -To enable DPM, assign the `DPMCRM_GENERAL` enumeration to the `DPMCodeReadingModes` array of the furtherModes interface, as such: - -```javascript -await settings = await scanner.getRuntimeSettings(); -settings.furtherModes.dpmCodeReadingModes[0] = Dynamsoft.DBR.EnumDPMCodeReadingMode.DPMCRM_GENERAL; -await scanner.updateRuntimeSettings(settings); -``` \ No newline at end of file diff --git a/dynamsoft-server/how-to-enable-qr-model-one.md b/dynamsoft-server/how-to-enable-qr-model-one.md deleted file mode 100644 index a75e6ce..0000000 --- a/dynamsoft-server/how-to-enable-qr-model-one.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default-layout -title: How an I enable QR Code Model 1 support in BarcodeScannerX? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, QR code, model 1, ios -description: How an I enable QR Code Model 1 support in BarcodeScannerX? -needAutoGenerateSidebar: true ---- - -# How an I enable QR Code Model 1 support in BarcodeScannerX? - -[<< Back to FAQ index](index.md) - -Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: - -1. Visit Dynamsoft barcode reader online demo. -2. Click on Advanced Settings - -
-

advanced settings

-
- -3. Check **EnableQRCodeModel1**.(You can modify any other settings as you like) -4. Save the template. - -
-

save template

-
- -5. Send the template to Dynamsoft support team. -6. We will generate and send a link to you. -7. Click **Import Template** in the Advanced Scan settings of BarcodeScannerX. Then input the link. -8. Now you can scan QR code Model 1! diff --git a/dynamsoft-server/index.md b/dynamsoft-server/index.md deleted file mode 100644 index 99641a7..0000000 --- a/dynamsoft-server/index.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -layout: default-layout -title: Dynamsoft Barcode Reader FAQ - General -keywords: faq, general -description: Dynamsoft Barcode Reader FAQ - General -needAutoGenerateSidebar: false -permalink: /faq/general/index.html ---- - -# FAQ Index - -## [General](general.md) - -1. [What business needs can Dynamsoft Barcode Reader meet?](what-is-dbr.md) - -2. [What barcode types are supported by Dynamsoft Barcode Reader?](supported-barcode-formats.md) - -3. [Which edition of Barcode Reader should I use?](different-editions-of-dbr.md) - -4. [Can Barcode Reader SDK read PDF files? Do I need to pay for this feature?](dbr-supports-pdf.md) - -5. [How to scan specific pages of a pdf file?](scan-specific-page.md) - -6. [How to scan barcodes on US Driver's Licenses and extract the information?](scan-us-drivers-license.md) - -7. [How does your SDK compare to other commercial SDKs?](competitors-comparison.md) - -## [Configuration](configuration.md) - -1. [What I can do when barcode image returnes messy (non-english) characters?](non-english-characters.md) - -2. [How to enable DPM?](how-to-enable-dpm.md) - -3. [How to filter incorrect results with the barcode result length?](avoid-incorrect-results.md) - -4. [What will happen if licenses are not renewed in time?](what-happens-if-license-expires.md) - -5. [How to Handle Non-printable Characters Like "\u{1D}" or "{GS}" from the Barcode Text?](unprintable-character.md) - -6. [How to create custom settings template?](custom-settings-template.md) - -7. [How can I sort the barcodes of my image in reading order?](sort-barcodes-image.md) - -## [License & Usage](license-usage.md) - -1. [Can the SDK work without internet connection?](sdk-works-without-internet.md) - -2. [How to expand the quota of a runtime license?](expand-quota-for-runtime-license.md) - -3. [How to track the number of devices?](track-license.md) - -4. [How to use offline registration license type?](offline-registration-license.md) - -5. [How to properly use concurrent instance license?](ensure-no-overuse.md) - -6. [What I need to know about licensing process?](how-hardware-is-bind-to-license.md) - -7. [What I need to know about trial licenses?](dbr-free-trial.md) - -8. [How does license tracking work with the three standard licensing options - Per Scan, Per Device, Per Concurrent Device?](how-license-tracking-works.md) - -9. [When is a new license spot taken when using a per-device licensing model?](new-license-required-per-device-licensing.md) - -## [Multi-Platform](multi-platform.md) - -### JS - -1. [How to check the version of the JavaScript SDK I am currently using?](check-current-version.md) - -2. [How to get a copy of (Dynamsoft Barcode Reader) Dbr JS deployable files (source code, etc.) ?](ways-to-copy-dbr-js-deployable-files.md) - -3. [What are the differences between the compact edition and the full edition?](differences-between-full-and-compact-editions.md) - -4. [Is HTTPS absolutely required?](is-https-required.md) - -5. [Do we have to call loadWasm proactively?](call-loadWasm-proactively.md) - -6. [What file/image formats are supported when reading barcodes from files in local memory?](formats-supported-for-existing-files.md) - -7. [How to add/remove a "beep" sound once a barcode is found?](add-remove-beep-sound.md) - -8. [How do I create a NodeJS application using the SDK?](nodejs-implementation.md) - -9. [How to get rid of the delay when opening the camera?](delay-when-open-camera.md) - -10. [What are the general troubleshooting steps if an image fails to decode with the JavaScript SDK?](general-troubleshooting-steps-for-decode-failure.md) - -11. [How can I hide the laser bar and Dynamsoft message in the default UI of the BarcodeScanner?](hide-laser-message-ui.md) - -### Mobile - -1. iOS & Android - [How can I reduce battery consumption?](reduce-battery-consumption.md) - -2. iOS & Android - [Why does the page sometimes freeze when I start the scanner?](page-freeze.md) - -3. iOS & Android - [How to import the settings of Barcode Scanner X app into my app?](template-support.md) - -4. iOS & Android - [How to use Debug Mode in Barcode Scanner X?](debug-mode-barcodescannerx.md) - -5. iOS & Android - [How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader?](no-camera-enhancer.md) - -6. iOS - [Does Dynamsoft Barcode Reader iOS support simulator devices?](simulator-support.md) - -7. iOS - [How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator?](arm64-simulator-error.md) - -8. Android - [Can I reduce the size of the final Android app?](reduce-final-size.md) - -9. Android - [How to prevent project build failure after shrinking code?](proguard.md) - -## [Error & Debug](error-debug.md) - -1. [The error message "-10022 The PDF DLL is missing" on Linux?](error-10022-the-PDF-DLL-is-missing.html) - -2. [How to resolve error failed to read or write license buffer?](error-license-buffer.html) - diff --git a/dynamsoft-server/license-usage.md b/dynamsoft-server/license-usage.md deleted file mode 100644 index df90250..0000000 --- a/dynamsoft-server/license-usage.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: default-layout -title: Dynamsoft Barcode Reader FAQ - License & Usage -keywords: faq, license, usage -description: Dynamsoft Barcode Reader FAQ - License & Usage -needAutoGenerateSidebar: false -permalink: /faq/general/license-usage.html ---- - -## License & Usage - -[<< Back to FAQ index](index.md) - -1. [Can the SDK work without internet connection?](sdk-works-without-internet.html) - -2. [How to expand the quota of a runtime license?](expand-quota-for-runtime-license.html) - -3. [How to track the number of devices?](track-license.html) - -4. [How to use offline registration license type?](offline-registration-license.html) - -5. [How to properly use concurrent instance license?](ensure-no-overuse.html) - -6. [What I need to know about licensing process?](how-hardware-is-bind-to-license.html) - -7. [What I need to know about trial licenses?](dbr-free-trial.html) - -8. [How does license tracking work with the three standard licensing options - Per Scan, Per Device, Per Concurrent Device?](how-license-tracking-works.html) - -9. [When is a new license spot taken when using a per-device licensing model?](new-license-required-per-device-licensing.html) diff --git a/dynamsoft-server/min-system-requirements.md b/dynamsoft-server/min-system-requirements.md deleted file mode 100644 index 09472cd..0000000 --- a/dynamsoft-server/min-system-requirements.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: What are the Minimum System Requirements of Dynamsoft Barcode Reader Android? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, requirements -description: What are the Minimum System Requirements of Dynamsoft Barcode Reader Android? -needAutoGenerateSidebar: true ---- - -# What are the Minimum System Requirements of Dynamsoft Barcode Reader Android? - -[<< Back to FAQ index](index.md) - -For Android, DBR supports the following: - -* Supported OS: Android 5.0 (API Level 21) or higher - -* Supported ABI: armeabi-v7a, arm64-v8a, x86 and x86_64 - -* Supported Java Version: Java 8 \ No newline at end of file diff --git a/dynamsoft-server/multi-platform.md b/dynamsoft-server/multi-platform.md deleted file mode 100644 index b509b22..0000000 --- a/dynamsoft-server/multi-platform.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: default-layout -title: Dynamsoft Barcode Reader FAQ - Multi-Platform -keywords: faq, license, usage -description: Dynamsoft Barcode Reader FAQ - Multi-Platform -needAutoGenerateSidebar: false -permalink: /faq/general/multi-platform.html ---- - -## Multi-Platform - -[<< Back to FAQ index](index.md) - -### JS - -1. [How to check the version of the JavaScript SDK I am currently using?](check-current-version.html) - -2. [How to get a copy of (Dynamsoft Barcode Reader) Dbr JS deployable files (source code, etc.) ?](ways-to-copy-dbr-js-deployable-files.html) - -3. [What are the differences between the compact edition and the full edition?](differences-between-full-and-compact-editions.html) - -4. [Is HTTPS absolutely required?](is-https-required.html) - -5. [Do we have to call loadWasm proactively?](call-loadWasm-proactively.html) - -6. [What file/image formats are supported when reading barcodes from files in local memory?](formats-supported-for-existing-files.html) - -7. [How to add/remove a "beep" sound once a barcode is found?](add-remove-beep-sound.html) - -8. [How do I create a NodeJS application using the SDK?](nodejs-implementation.html) - -9. [How to get rid of the delay when opening the camera?](delay-when-open-camera.html) - -10. [What are the general troubleshooting steps if an image fails to decode with the JavaScript SDK?](general-troubleshooting-steps-for-decode-failure.html) - -11. [How can I hide the laser bar and Dynamsoft message in the default UI of the BarcodeScanner?](hide-laser-message-ui.html) - -### Mobile - -1. iOS & Android - [How can I reduce battery consumption?](reduce-battery-consumption.md) - -2. iOS & Android - [Why does the page sometimes freeze when I start the scanner?](page-freeze.md) - -3. iOS & Android - [How to import the settings of Barcode Scanner X app into my app?](template-support.md) - -4. iOS & Android - [How to use Debug Mode in Barcode Scanner X?](debug-mode-barcodescannerx.md) - -5. iOS & Android - [How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader?](no-camera-enhancer.md) - -6. iOS - [Does Dynamsoft Barcode Reader iOS support simulator devices?](simulator-support.md) - -7. iOS - [How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator?](arm64-simulator-error.md) - -8. Android - [Can I reduce the size of the final Android app?](reduce-final-size.md) - -9. Android - [How to prevent project build failure after shrinking code?](proguard.md) diff --git a/dynamsoft-server/no-camera-enhancer.md b/dynamsoft-server/no-camera-enhancer.md deleted file mode 100644 index bc4c820..0000000 --- a/dynamsoft-server/no-camera-enhancer.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, requirements -description: How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader? -needAutoGenerateSidebar: true ---- - -# How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader? - -[<< Back to FAQ index](index.md) - - -You can read this [article](../samples/no-camera-enhancer.md) on how to use the video stream via CameraX such that the output frames from `CameraX` are converted into `imageData` which can be used as input for the barcode reader. If you would like to see a quick code snippet on how to convert these frames from `CameraX` into `ImageData`, please see it here. - -> **_NOTE:_** The Barcode Reader decodes barcodes from an `ImageData` object. The `ImageData` object stores the pixel buffer, width, height, stride and pixel format of the image. *However, it is always recommended to use DBR in conjunction with DCE for the best results and performance*. \ No newline at end of file diff --git a/dynamsoft-server/non-english-characters-v9.6.42.md b/dynamsoft-server/non-english-characters-v9.6.42.md deleted file mode 100644 index e31f3bd..0000000 --- a/dynamsoft-server/non-english-characters-v9.6.42.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Why is the barcode image returning messy (non-english) characters on the online demo? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, messy characters, non-English characters -description: Why is the barcode image returning messy (non-english) characters on the online demo? -needAutoGenerateSidebar: false ---- - -## Why is the barcode image returning messy (non-english) characters on the online demo? - -[<< Back to FAQ index](index.md) - -The barcode text of the result is of a non-Latin based language, as by default most webpages are able to display Latin-based languages. - -In order to display the barcode text, it is best to do it via the [`barcodeBytes`](https://www.dynamsoft.com/barcode-reader/programming/c-cplusplus/struct/TextResult.html?src=c&&ver=latest#barcodebytes) of the TextResult. Once the bytes are obtained, you can 'translate' them to a string based on the encoding identifier of the language that you are trying to display. diff --git a/dynamsoft-server/page-freeze.md b/dynamsoft-server/page-freeze.md deleted file mode 100644 index a51d42b..0000000 --- a/dynamsoft-server/page-freeze.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Why does the page sometimes freeze when I start the scanner? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, freeze, page -description: Why does the page sometimes freeze when I start the scanner? -needAutoGenerateSidebar: true ---- - -# Why does the page sometimes freeze when I start the scanner? - -[<< Back to FAQ index](index.md) - -Before a barcode reader instance can be created, a one-time connection for license validation needs to occur when the app initializes (or whenever the license is set before the barcode reader instance creation). Sometimes, this license validation could take a second to complete. - -A potential "freeze" of the page can occur if `BarcodeReader.initLicense()` is called multiple times in a single process. Please make sure that `initLicense` is called only once in your code. - -To help troubleshoot whether the method is being called multiple times, we recommend stepping through the code using a debugger. \ No newline at end of file diff --git a/dynamsoft-server/proguard.md b/dynamsoft-server/proguard.md deleted file mode 100644 index db53dd1..0000000 --- a/dynamsoft-server/proguard.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -title: Proguard Instructions - Dynamsoft Barcode Reader Android FAQ -description: This page shows how to configure proguard-rules file of your project. -keywords: Proguard, android -needAutoGenerateSidebar: true -needGenerateH3Content: true -noTitleIndex: true ---- - -# How to prevent project build failure after shrinking code? - -[<< Back to FAQ index](index.md) - -This page provides you a possible solution when your project build fails after implementing the code obfuscation. - -Generally, you don't have to add any configurations when shrinking your code because **proguard rule** is already configured in the aar. However, if you still build failed after shrinking code, you can try to add the following code in the **proguard-rule.pro** file of your project. - -```bash --keep class com.dynamsoft.dbr.** { *; } -# Uncomment the following line when your project use Dynamsoft Camera Enhancer as well. -#-keep class com.dynamsoft.dce.** { *; } --keepclasseswithmembernames class * { - native ; -} -``` diff --git a/dynamsoft-server/purchase-concurrent-instance-license.md b/dynamsoft-server/purchase-concurrent-instance-license.md deleted file mode 100644 index 7e4bd96..0000000 --- a/dynamsoft-server/purchase-concurrent-instance-license.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default-layout -title: How many concurrent instances I should purchase? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, concurrent, instance, license. -description: How many concurrent instances I should purchase? -needAutoGenerateSidebar: false -permalink: /faq/general/purchase-concurrent-instance-license.html ---- - -## How many concurrent instances I should purchase? -To make the most of our DBR instance, we suggest creating no more than the same number of threads of your CPU. - -For instance, if your CPU has 2 cores with 2 threads each, creating 4 DBR instances is a good idea. - -In the cloud, such as on AWS, each vCPU represents a single thread, so it's reasonable to create DBR instances based on the number of vCPUs. - -If you're running a single DBR instance with two threads in your environment, its performance will be similar to that of two instances running in the same two-thread environment. - -Please note: - -Creating more DBR instances than the threads in your environment won't cause any problems, but it may reduce the performance of each instance. - -By default, a small portion of the DBR image decoding process uses multithreading. This multithreading occurs when there are available time slots for threads. - diff --git a/dynamsoft-server/read-from-existing-files.md b/dynamsoft-server/read-from-existing-files.md deleted file mode 100644 index 79158da..0000000 --- a/dynamsoft-server/read-from-existing-files.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: Can I read barcodes from existing files? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, existing file -description: Can I read barcodes from existing files? -needAutoGenerateSidebar: false ---- - -# Can I read barcodes from existing files? - -[<< Back to FAQ index](index.md) - -Yes, the JavaScript SDK supports reading from a file in local memory. This can be achieved via the `BarcodeReader` class instead of the `BarcodeScanner` class. - -```javascript -let reader = await Dynamsoft.DBR.BarcodeReader.createInstance(); -let results = await reader.decode(imageSource); -``` - -> [this article](https://www.dynamsoft.com/barcode-reader/programming/javascript/samples-demos/helloworld-readfile.html) shows how to read barcodes from existing images and a list of supported input types. diff --git a/dynamsoft-server/read-inverted-image.md b/dynamsoft-server/read-inverted-image.md deleted file mode 100644 index bc009af..0000000 --- a/dynamsoft-server/read-inverted-image.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: How to read an inverted barcode? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, inverted barcode -description: How to read an inverted barcode? -needAutoGenerateSidebar: false ---- - -# How to read an inverted barcode? - -[<< Back to FAQ index](index.md) - -Typically, normal barcode images include a dark barcode on a light background. An inverted image in this case would have a light barcode on a dark background instead. In order to read those types of barcodes, the `grayscaleTransformationModes` array of `furtherModes` must prioritize `GTM_INVERTED` like shown in the below example. - -```javascript -settings.furtherModes.grayscaleTransformationModes[0] = - Dynamsoft.DBR.EnumGrayscaleTransformationMode.GTM_INVERTED; -await scanner.updateRuntimeSettings(settings); -``` diff --git a/dynamsoft-server/reduce-battery-consumption.md b/dynamsoft-server/reduce-battery-consumption.md deleted file mode 100644 index f47c586..0000000 --- a/dynamsoft-server/reduce-battery-consumption.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: How can I reduce battery consumption? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, battery, consumption -description: How can I reduce battery consumption? -needAutoGenerateSidebar: true ---- - -# How can I reduce battery consumption? - -[<< Back to FAQ index](index.md) - -If you are finding that the battery of your phone is being heavily consumed when using the Barcode Reader, there are a couple of things that you can do to potentially reduce the battery consumption, depending on the usage situation. - -For a non-continuous video scanning scenario, make sure to call the [stopScanning](../api-reference/primary-video.html#stopscanning) method when the video scanning is no longer required. - -For a continuous video scanning scenario, use the [setMinImageReadingInterval](../api-reference/primary-video.html#setminimagereadinginterval) method to set a higher value for the interval in order to reduce the frequency of fetching frames, thus reducing the number of scans per unit time, and thus, less resources needing to be consumed. You can dynamically adjust `minImageReadingInterval` as needed to achieve the performance you are looking for. diff --git a/dynamsoft-server/reduce-final-size.md b/dynamsoft-server/reduce-final-size.md deleted file mode 100644 index c1bb51c..0000000 --- a/dynamsoft-server/reduce-final-size.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Can I reduce the size of the final Android app? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, battery, consumption -description: Can I reduce the size of the final Android app? -needAutoGenerateSidebar: true ---- - -# Can I reduce the size of the final Android app? - -[<< Back to FAQ index](index.md) - -It is recommended that you distribute your app using App Bundle in order to reduce the final size of the Android app. - -The second step is to utilize APK splits. To learn more about this, please refer to this [page](https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split). - -The third thing to do is to remove processor architecture support. If you won't be distributing your app via Google Play, please refer to this [page](https://developer.android.com/ndk/guides/abis#gc) on how to proceed with this step. diff --git a/dynamsoft-server/scan-specific-page-v9.6.42.md b/dynamsoft-server/scan-specific-page-v9.6.42.md deleted file mode 100644 index 5964271..0000000 --- a/dynamsoft-server/scan-specific-page-v9.6.42.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: default-layout -title: The pdf file has 10 pages but only the last page has a barcode. Is it possible to decode the last page only? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, scan specific page -description: The pdf file has 10 pages but only the last page has a barcode. Is it possible to decode the last page only? -needAutoGenerateSidebar: false ---- - -## The PDF file has 10 pages but only the last page has a barcode. Is it possible to decode the last page only? - -[<< Back to FAQ index](index.md) - -This can indeed be done via the `Pages` parameter of the `ImageParameter` interface as explained [here](https://www.dynamsoft.com/barcode-reader/parameters/scenario-settings/multipage-imgs-and-pdf.html?ver=latest). This can ONLY be set via the JSON. Here is a JSON snippet for reading the last page of a 10 page document: - -```json -{ "ImageParameter": { - "Pages": "9" - }, - "Version": "3.0" -} -``` - -Once the JSON string is set, you can initialize the runtime settings to use it via the `InitRuntimeSettingsWithString` or `InitRuntimeSettingsWithFile` method. Please note that if you are modifying any other settings, you can include them in the JSON string/file as well, or you can access them individually after calling either of the aforementioned methods. diff --git a/dynamsoft-server/server-requirements-for-dbr-js-deployment.md b/dynamsoft-server/server-requirements-for-dbr-js-deployment.md deleted file mode 100644 index 2d7b090..0000000 --- a/dynamsoft-server/server-requirements-for-dbr-js-deployment.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: default-layout -title: What are the server requirements for Dbr JS deployment? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, server requirements, deployment -description: What are the server requirements for Dbr JS deployment? -needAutoGenerateSidebar: false ---- - -# What are the server requirements for Dbr JS deployment? - -[<< Back to FAQ index](index.md) - -To deploy DBR-JS to the server, you need to - - 1. Set the MIME type for `.wasm` as `application/wasm` on your webserver. - - The goal is to configure your server to send the correct Content-Type header for the wasm file so that it is processed correctly by the browser. - - Different types of webservers are configured differently, for example: - - + Apache - + IIS - + NGINX - - 2. Enable HTTPS - - Due to the browser security restriction on camera video streaming access, a secure HTTPS connection is required to use the library with camera. - - > For convenience, self-signed certificates can be used during development and testing. diff --git a/dynamsoft-server/simulator-support.md b/dynamsoft-server/simulator-support.md deleted file mode 100644 index 623adb0..0000000 --- a/dynamsoft-server/simulator-support.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Does Dynamsoft Barcode Reader Android support simulator devices? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, simulator, camera -description: Does Dynamsoft Barcode Reader Android support simulator devices? -needAutoGenerateSidebar: true ---- - -# Does Dynamsoft Barcode Reader Android support simulator devices? - -[<< Back to FAQ index](index.md) - -Yes, DBR Android can support simulator devices, but in a very limited capacity. If you are only working with existing images in the device's photo library, and there is **no use of the camera whatsoever**, then DBR Android can work just fine on a simulator. - -If you are attempting to test the SDK in an interactive video scenario, you will most likely encounter an error that is caused by the camera open command in the code. More specifically, when the Camera Enhancer object call for the camera to open using the [open](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/android/primary-api/camera-enhancer.html#open) method. - -Please note that DCE is currently not compatible with the simulator as the required use of a camera cannot be satisfied via the simulator. \ No newline at end of file diff --git a/dynamsoft-server/stop-camera-to-open-right-away.md b/dynamsoft-server/stop-camera-to-open-right-away.md deleted file mode 100644 index f0a4147..0000000 --- a/dynamsoft-server/stop-camera-to-open-right-away.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default-layout -title: How to stop the camera stream from opening right away after DBR-JS demo is loaded? How to enable the camera on the click of a button? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, stop camera stream, start scanning -description: How to stop the camera stream from opening right away after DBR-JS demo is loaded? How to enable the camera on the click of a button? -needAutoGenerateSidebar: false ---- - -# How to stop the camera stream from opening right away after DBR-JS demo is loaded? How to enable the camera on the click of a button? - -[<< Back to FAQ index](index.md) - -Instead of creating the `BarcodeScanner` instance on page load, trigger the creation on the click of the `Start Scanning` button instead, as shown in the sample code below - - -```javascript -let startScanBtn = document.getElementById("StartScanning"); // double check the ID of the button -startScanBtn.addEventListener("click", async function () { - let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance(); - scanner.onFrameRead = (results) => { - console.log(results); - }; - scanner.onUniqueRead = (txt, result) => { - alert(txt); - }; - await scanner.show(); -}); -``` diff --git a/dynamsoft-server/template-support.md b/dynamsoft-server/template-support.md deleted file mode 100644 index d427463..0000000 --- a/dynamsoft-server/template-support.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: How to import the settings of Barcode Scanner X app into my app? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, template, driver license, settings -description: How to import the settings of Barcode Scanner X app into my app? -needAutoGenerateSidebar: true ---- - -# How to import the settings of Barcode Scanner X app into my app? - -[<< Back to FAQ index](index.md) - - -In the Barcode Scanner X app, please go to the use case scenario that you are interested. On the right-bottom, tap on "Export Template". - -Once you get the templates, you can implement them using the [`initRuntimeSettingsWithString`](../api-reference/primary-parameter-and-runtime-settings-advanced.md#initruntimesettingswithstring) or [`initRuntimeSettingsWithFile`](../api-reference/primary-parameter-and-runtime-settings-advanced.md#initruntimesettingswithfile) methods, depending on which input method you prefer. \ No newline at end of file diff --git a/dynamsoft-server/troubleshooting-failed-image.md b/dynamsoft-server/troubleshooting-failed-image.md deleted file mode 100644 index 5bc2d20..0000000 --- a/dynamsoft-server/troubleshooting-failed-image.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: How can I troubleshoot an image that fails to decode? -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, template, driver license, settings -description: How can I troubleshoot an image that fails to decode? -needAutoGenerateSidebar: true ---- - -# How can I troubleshoot an image that fails to decode? - -[<< Back to FAQ index](index.md) - -If the barcode is not recognized by Dynamsoft Barcode Reader, please do not hesitate to contact Dynamsoft support team. - -Alternatively, here is the general troubleshooting steps: - -1. Please ensure the lighting is not very bright or very dim. -2. Please ensure the aimming barcode format has been checked on.(Advanced Scan -> settings -> Barcode Format -> check the barcode formats) -3. We can decrease the Confidence level to increase the read rate.(Advanced Scan -> settings -> Result Settings -> Set Confidence Level to 10) -4. We can increase the deblur level to increase the read rate.(Advanced Scan -> settings -> Additional Settings -> increase DeblurLevel) \ No newline at end of file diff --git a/dynamsoft-server/unprintable-character-v9.6.42.md b/dynamsoft-server/unprintable-character-v9.6.42.md deleted file mode 100644 index c4c739b..0000000 --- a/dynamsoft-server/unprintable-character-v9.6.42.md +++ /dev/null @@ -1,481 +0,0 @@ ---- -layout: default-layout -title: How to ? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, enable DPM -description: -needAutoGenerateSidebar: false ---- - -# How to Handle Non-printable Characters Like "\u{1D}" or "{GS}" from the Barcode Text? - -This page helps to you modify the barcode results when non-printable characters exists in the barcode text you decoded. - -You always get 2 values that stands for the barcode decoding result from the `textResult` object: - -- `barcodeBytes` -- `barcodeText` - -Since `barcodeText` is a string value that generated from the `barcodeBytes`, is might be decoded into different characters based on different character encoding formats. When there exists a non-printable ASCII value (0 ~ 31 or 127) in the `barcodeBytes` array, the value is decoded into a messy code. Currently, the library doesn't provide methods to remove the non-printable characters nor convert them into printable characters, you have to add your own code to recognize the non-printable characters and replace or remove them. The following code snippet is an example for how to create a method for processing the `barcodeBytes` into a string you want. - -**Code Snippet** - -
- >- JavaScript - >- Android - >- Objective-C - >- Swift - >- Python - >- Java - >- C# - >- C++ - > -> -```javascript -const ProcessNonPrintingCharsMode = { - PNPCM_KEEP: 0, - PNPCM_REMOVE: 1, - PNPCM_CONVERT: 2}; -class ProcessBarcodeBytesUtil { - #__non_printing_ascii_chars_value_to_string_dict = new Map([ - [0, '{NUL}'], - [1, '{SOH}'], - [2, '{STX}'], - [3, '{ETX}'], - [4, '{EOT}'], - [5, '{ENQ}'], - [6, '{ACK}'], - [7, '{BEL}'], - [8, '{BS}'], - [9, '{HT}'], - [10, '{LF}'], - [11, '{VT}'], - [12, '{FF}'], - [13, '{CR}'], - [14, '{SO}'], - [15, '{SI}'], - [16, '{DLE}'], - [17, '{DC1}'], - [18, '{DC2}'], - [19, '{DC3}'], - [20, '{DC4}'], - [21, '{NAK}'], - [22, '{SYN}'], - [23, '{ETB}'], - [24, '{CAN}'], - [25, '{EM}'], - [26, '{SUB}'], - [27, '{ESC}'], - [28, '{FS}'], - [29, '{GS}'], - [30, '{RS}'], - [31, '{US}'], - [127, '{DEL}'] - ]) - process_barcode_bytes(bytes, mode, keepLineBreak = true) { - // Process the non-printing chars of barcode bytes to obtain desired text. - // Parameters - // ---------- - // bytes : bytearray - // The barcode content in a byte array. - // mode : ProcessNonPrintingCharsMode - // The mode indicates how to processing non-printing chars. - // keepLineBreak : bool - // The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT. - // Returns - // ------- - // result : str - // Returns The text result after processing barcode bytes. - let result = ""; - for (let _byte in bytes) { - if (this.#__non_printing_ascii_chars_value_to_string_dict.has(_byte) || mode == ProcessNonPrintingCharsMode.PNPCM_KEEP || keepLineBreak && (_byte == 10 || _byte == 13)) { - result += String.fromCharCode(_byte); - } else if (mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT) { - result += this.#__non_printing_ascii_chars_value_to_string_dict.get(_byte); - } - } - return result; - } -} -let barcode_bytes = text_result.barcode_bytes; -let util = new ProcessBarcodeBytesUtil(); -let origin_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_KEEP); -console.log('original text:\n' + origin_str); -let removed_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE); -console.log('2.text after removing non-printing chars except line break:\n' + removed_str); -let removed_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, false); -console.log('3.text after removing non-printing chars:\n' + removed_str2); -let converted_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT); -console.log('4.text after converting non-printing chars except line break:\n' + converted_str); -let converted_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, false); -console.log('5.text after converting non-printing chars:\n' + converted_str2); -``` -> -```java -mReader.setTextResultListener(new TextResultListener() { - // Obtain the recognized barcode results and display. - @Override - public void textResultCallback(int id, ImageData imageData, TextResult[] textResults) { - process = new ProcessBarcodeResultUtil(); - if (textResults!=null && textResults.length!=0){ - for (int i=0; i< textResults.length; i++){ - String processedResult = process.processBarcodeByte(textResults[i].barcodeBytes,ProcessBarcodeResultUtil.ProcessNonPrintingCharsMode.PNPCM_REMOVE,true); - Log.i("ProcessByte", "textResultCallback: processeResult = "+processedResult); - textResults[i].barcodeText = processedResult; - } - } - } -} -// Create a ProcessBarcodeResultUtil class -public class ProcessBarcodeResultUtil { - enum ProcessNonPrintingCharsMode{ - PNPCM_KEEP, - PNPCM_REMOVE, - PNPCM_CONVERT - } - final HashMap charValueToStringDict = new HashMap(); - ProcessBarcodeResultUtil(){ - final int[] NonPrintingAsciiCharsValue = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127}; - final String[] NonPrintingAsciiCharsString = { - "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}", - "{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}" - }; - for (int i = 0; i < 33; ++i){ - charValueToStringDict.put(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]); - } - } - public String processBarcodeByte(byte[] barcodeByte, ProcessNonPrintingCharsMode mode, boolean keepLineBreak){ - StringBuilder processedResult = new StringBuilder(); - for (int i=0; i -```objc -typedef NS_ENUM(NSInteger,EnumResultProcessMode) -{ - RPM_KEEP = 0, - RPM_CONVERT = 1, - RPM_REMOVE = 2 -}; -... -- (void)textResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData results:(NSArray *)results{ - if (results) { - for (NSInteger i = 0; i< [results count]; i++) { - results[i].barcodeText = [self processResult:results[i].barcodeBytes mode:RPM_CONVERT isBreaklineKept:NO]; - msgText = [msgText stringByAppendingString:[NSString stringWithFormat:@"\nFormat: %@\nText: %@\n", results[i].barcodeFormatString, results[i].barcodeText]]; - } - } -} -- (NSString *)processBarcodeBytes:(NSData *)byte - mode:(EnumResultProcessMode)mode - isBreaklineKept:(BOOL)isKept{ - NSArray* _nonPrintingAsciiCharsKey = @[@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12,@13,@14,@15,@16,@17,@18,@19,@20,@21,@22,@23,@24,@25,@26,@27,@28,@29,@30,@31,@127]; - NSArray* _nonPrintingAsciiCharsString = @[@"{NUL}",@"{SOH}",@"{STX}",@"{ETX}",@"{EOT}",@"{ENQ}",@"{ACK}",@"{BEL}",@"{BS}",@"{HT}",@"{LF}",@"{VT}",@"{FF}",@"{CR}",@"{SO}",@"{SI}",@"{DLE}",@"{DC1}",@"{DC2}",@"{DC3}",@"{DC4}",@"{NAK}",@"{SYN}",@"{ETB}",@"{CAN}",@"{EM}",@"{SUB}",@"{ESC}",@"{FS}",@"{GS}",@"{RS}",@"{US}",@"{DEL}"]; - NSMapTable * _charValueToStringDict = [NSMapTable strongToStrongObjectsMapTable]; - for (int i=0; i<_nonPrintingAsciiCharsKey.count;i++){ - [_charValueToStringDict setObject:_nonPrintingAsciiCharsString[i] forKey:_nonPrintingAsciiCharsKey[i]]; - } - const char* _Nonnull barcodeByteChar = byte.bytes; - NSString *processedText = @""; - for (int i=0;i31 && (int)barcodeByteChar[i]!=127 && (int)barcodeByteChar[i]!=0)){ - NSString *nextString = [NSString stringWithFormat:@"%c",barcodeByteChar[i]]; - processedText = [processedText stringByAppendingString:nextString]; - } - else if (mode == RPM_CONVERT){ - NSNumber *keyValue = [[NSNumber alloc] initWithInt:(int)barcodeByteChar[i]]; - NSString *nextString = [_charValueToStringDict objectForKey:@2]; - processedText = [processedText stringByAppendingString:nextString]; - } - } - return processedText; -} -``` -> -```swift -enum EnumResultProcessMode{ - case keep - case convert - case remove -} -func textResultCallback(_ frameId: Int, imageData: iImageData, results: [iTextResult]?) { - if (results != nil){ - for item in results! { - let processedBarcodeText = processBarcodeBytes(byte: item.barcodeBytes!, processMode: EnumResultProcessMode.convert, isKeep: true) - item.barcodeText = processedBarcodeText - } - } -} -private func processBarcodeBytes(byte:Data, processMode:EnumResultProcessMode, isKeep:Bool) -> String{ - let charValueToStringDict:NSDictionary = [0:"{NUL}",1:"{SOH}",2:"{STX}",3:"{ETX}",4:"{EOT}",5:"{ENQ}",6:"{ACK}",7:"{BEL}",8:"{BS}",9:"{HT}",10:"{LF}",11:"{VT}",12:"{FF}",13:"{CR}",14:"{SO}",15:"{SI}",16:"{DLE}",17:"{DC1}",18:"{DC2}",19:"{DC3}",20:"{DC4}",21:"{NAK}",22:"{SYN}",23:"{ETB}",24:"{CAN}",25:"{EM}",26:"{SUB}",27:"{ESC}",28:"{FS}",29:"{GS}",30:"{RS}",31:"{US}",127:"{DEL}"] - var processedString = "" - for i in 0...byte.count-1{ - if ((isKeep && ((byte[i]==10) || (byte[i]==13))) || (processMode == EnumResultProcessMode.keep) || ((byte[i]>31) && (byte[i] != 127) && (byte[i] != 0))){ - let nextText:String = String(bytes: [byte[i]], encoding: String.Encoding.utf8)! - processedString += nextText as String - } - else if (processMode == EnumResultProcessMode.convert){ - let nextText:NSString = charValueToStringDict.object(forKey: byte[i]) as! NSString - processedString += nextText as String - } - } - return processedString -} -``` -> -```python -class ProcessNonPrintingCharsMode: - PNPCM_KEEP = 0 - PNPCM_REMOVE = 1 - PNPCM_CONVERT = 2 -class ProcessBarcodeBytesUtil: - def __init__(self): - self.__non_printing_ascii_chars_value_to_string_dict:dict = dict({ - (0,'{NUL}'),(1,'{SOH}'),(2,'{STX}'),(3,'{ETX}'),(4,'{EOT}'),(5,'{ENQ}'),(6,'{ACK}'),(7,'{BEL}'), - (8,'{BS}'),(9,'{HT}'),(10,'{LF}'),(11,'{VT}'),(12,'{FF}'),(13,'{CR}'),(14,'{SO}'),(15,'{SI}'), - (16,'{DLE}'),(17,'{DC1}'),(18,'{DC2}'),(19,'{DC3}'),(20,'{DC4}'),(21,'{NAK}'),(22,'{SYN}'),(23,'{ETB}'), - (24,'{CAN}'),(25,'{EM}'),(26,'{SUB}'),(27,'{ESC}'),(28,'{FS}'),(29,'{GS}'),(30,'{RS}'),(31,'{US}'),(127,'{DEL}') - }) - def process_barcode_bytes(self, bytes:bytearray, mode:ProcessNonPrintingCharsMode, keepLineBreak:bool = True)->str: - """ - Process the non-printing chars of barcode bytes to obtain desired text. - Parameters - ---------- - bytes : bytearray - The barcode content in a byte array. - mode : ProcessNonPrintingCharsMode - The mode indicates how to processing non-printing chars. - keepLineBreak : bool - The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT. - Returns - ------- - result : str - Returns The text result after processing barcode bytes. - """ - result:str = '' - for _byte in bytes: - if not self.__non_printing_ascii_chars_value_to_string_dict.__contains__(_byte) \ - or mode == ProcessNonPrintingCharsMode.PNPCM_KEEP \ - or keepLineBreak and (_byte == 10 or _byte == 13): - result += chr(_byte) - elif mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT: - result += self.__non_printing_ascii_chars_value_to_string_dict.get(_byte) - return result -if __name__ == '__main__': - barcode_bytes = text_result.barcode_bytes - util = ProcessBarcodeBytesUtil() - origin_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_KEEP) - print('original text:\n' + origin_str) - removed_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE) - print('\n2.text after removing non-printing chars except line break:\n' + removed_str) - removed_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, False) - print('\n3.text after removing non-printing chars:\n' + removed_str2) - converted_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT) - print('\n4.text after converting non-printing chars except line break:\n' + converted_str) - converted_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, False) - print('\n5.text after converting non-printing chars:\n' + converted_str2) -``` -> -```java -public class ProcessBarcodeBytesUtil { - enum ProcessNonPrintingCharsMode - { - PNPCM_KEEP, - PNPCM_REMOVE, - PNPCM_CONVERT - } - final HashMap charValueToStringDict = new HashMap(); - ProcessBarcodeBytesUtil() { - final int[] NonPrintingAsciiCharsValue = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127}; - final String[] NonPrintingAsciiCharsString = {"{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}","{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}" - }; - for (int i = 0; i < 33; ++i) - charValueToStringDict.put(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]); - } - /** - * Process the non-printing chars of barcode bytes to obtain desired text. - * - * @param bytes The barcode content in a byte array. - * @param mode The mode indicates how to processing non-printing chars. - * @param keepLineBreak The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT. - * @return Returns The text result after processing barcode bytes. - * - */ - public String processBarcodeBytes(byte[] bytes, ProcessNonPrintingCharsMode mode, boolean keepLineBreak) { - StringBuilder result = new StringBuilder(); - for (int i = 0; i < bytes.length; ++i) - { - int byteValue = (int)bytes[i]; - if (!charValueToStringDict.containsKey(byteValue) - || mode == ProcessNonPrintingCharsMode.PNPCM_KEEP - || keepLineBreak && (byteValue == 10 || byteValue == 13)) { - result.append((char)bytes[i]); - } - else if (mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT) { - result.append(charValueToStringDict.get(byteValue)); - } - } - return result.toString(); - } - public static void main(String[] args) throws InterruptedException { - byte[] barcodeBytes = textResult.barcodeBytes; - ProcessBarcodeBytesUtil util = new ProcessBarcodeBytesUtil(); - String s0 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_KEEP, true); - String s1 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, true); - String s2 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, false); - String s3 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, true); - String s4 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, false); - System.out.println("1.original text:\n" + s0); - System.out.println("\n2.text after removing non-printing chars except line break:\n" + s1); - System.out.println("\n3.text after removing non-printing chars:\n" + s2); - System.out.println("\n4.text after converting non-printing chars except line break:\n" + s3); - System.out.println("\n5.text after converting non-printing chars:\n" + s4); - } -} -``` -> -```csharp -class ProcessBarcodeBytesUtil -{ - internal enum ProcessNonPrintingCharsMode - { - PNPCM_KEEP, - PNPCM_REMOVE, - PNPCM_CONVERT - } - Hashtable charValueToStringDict = new Hashtable(); - ProcessBarcodeBytesUtil() - { - int[] NonPrintingAsciiCharsValue = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127 }; - string[] NonPrintingAsciiCharsString = { - "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}", - "{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}" - }; - for (int i = 0; i < 33; ++i) - charValueToStringDict.Add(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]); - } - /// - /// Process the non-printing chars of barcode bytes to obtain desired text. - /// - /// The barcode content in a byte array. - /// The mode indicates how to processing non-printing chars. - /// The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT. - /// Returns The text result after processing barcode bytes. - public string ProcessBarcodeBytes(byte[] bytes, ProcessNonPrintingCharsMode mode, bool keepLineBreak = true) - { - StringBuilder result = new StringBuilder(); - for (int i = 0; i < bytes.Length; ++i) - { - int byteValue = (int)bytes[i]; - if (!charValueToStringDict.ContainsKey(byteValue) - || mode == ProcessNonPrintingCharsMode.PNPCM_KEEP - || keepLineBreak && (byteValue == 10 || byteValue == 13)) - { - result.Append((char)bytes[i]); - } - else if (mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT) - { - result.Append(charValueToStringDict[byteValue]); - } - } - return result.ToString(); - } - public static void Main(string[] args) - { - byte[] barcodeBytes = textResult.barcodeBytes; - ProcessBarcodeBytesUtil util = new ProcessBarcodeBytesUtil(); - String s0 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_KEEP); - String s1 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE); - String s2 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, false); - String s3 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT); - String s4 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, false); - Console.WriteLine("1.original text:\n" + s0); - Console.WriteLine("\n2.text after removing non-printing chars except line break:\n" + s1); - Console.WriteLine("\n3.text after removing non-printing chars:\n" + s2); - Console.WriteLine("\n4.text after converting non-printing chars except line break:\n" + s3); - Console.WriteLine("\n5.text after converting non-printing chars:\n" + s4); - } -} -``` -> -```c++ -#include -#include -typedef enum ProcessNonPrintingCharsMode -{ - PNPCM_KEEP, - PNPCM_REMOVE, - PNPCM_CONVERT -}ProcessNonPrintingCharsMode; -class ProcessBarcodeBytesUtil -{ -private: - std::map charValueToStringDict; -public: - ProcessBarcodeBytesUtil() - { - int NonPrintingAsciiCharsValue[33] = { - 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x7f - }; - const char* NonPrintingAsciiCharsString[33] = { - "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}","{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}" - }; - for (int i = 0; i < 33; ++i) - charValueToStringDict.insert(std::make_pair(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i])); - } - /** - * Process the non-printing chars of barcode bytes to obtain desired text. - * - * @param [in] bytes The barcode content in a byte array. - * @param [in] bytesLength The length of the byte array. - * @param [in] mode The mode indicates how to processing non-printing chars. - * @param [in] keepLineBreak The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT. - * - * @return Returns The text result after processing barcode bytes. - * - */ - std::string processBarcodeBytes(unsigned char* bytes, int bytesLength, ProcessNonPrintingCharsMode mode, bool keepLineBreak = true) { - std::string result; - for (int i = 0; i < bytesLength; ++i) - { - int byteValue = (int)bytes[i]; - if (charValueToStringDict.find(byteValue) == charValueToStringDict.end() - || mode == PNPCM_KEEP - || keepLineBreak && (byteValue == 10 || byteValue == 13)) { - result.append(1, bytes[i]); - } - else if (mode == PNPCM_CONVERT) { - result.append(charValueToStringDict[byteValue]); - } - } - return result; - } -}; -int main() -{ - // obtain bytes from TextResult. - unsigned char barcodeBytes = textResult->barcodeBytes; - int bytesLength = textResult->bytesLength; - ProcessBarcodeBytesUtil util; - std::string originStr = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_KEEP); - std::cout << "1.original text:" << std::endl << originStr << std::endl << std::endl; - std::string strAfterRemoveExceptLineBreack = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_REMOVE); - std::cout << "2.text after removing non-printing chars except line break:" << std::endl << strAfterRemoveExceptLineBreack << std::endl << std::endl; - std::string strAfterRemove= util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_REMOVE, false); - std::cout << "3.text after removing non-printing chars:" << std::endl << strAfterRemove << std::endl << std::endl; - std::string strAfterConvertExceptLineBreack = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_CONVERT); - std::cout << "4.text after converting non-printing chars except line break:" << std::endl << strAfterConvertExceptLineBreack << std::endl << std::endl; - std::string strAfterConvert = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_CONVERT, false); - std::cout << "5.text after converting non-printing chars:" << std::endl << strAfterConvert << std::endl << std::endl; - return 0; -} -``` diff --git a/dynamsoft-server/unprintable-character.md b/dynamsoft-server/unprintable-character.md deleted file mode 100644 index 2be7dfb..0000000 --- a/dynamsoft-server/unprintable-character.md +++ /dev/null @@ -1,225 +0,0 @@ ---- -layout: default-layout -title: How to Handle Non-printable Characters Like "\u{1D}" or "{GS}" from the Barcode Text? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, enable DPM -description: How to Handle Non-printable Characters Like "\u{1D}" or "{GS}" from the Barcode Text? -needAutoGenerateSidebar: false -permalink: /faq/general/unprintable-character.html ---- - -# How to Handle Non-printable Characters Like "\u{1D}" or "{GS}" from the Barcode Text? - -This page helps to you modify the barcode results when non-printable characters exists in the barcode text you decoded. - -You always get 2 values that stands for the barcode decoding result from the `CBarcodeResultItem` object: - -- `barcodeBytes` -- `barcodeText` - -Since `barcodeText` is a string value that generated from the `barcodeBytes`, is might be decoded into different characters based on different character encoding formats. When there exists a non-printable ASCII value (0 ~ 31 or 127) in the `barcodeBytes` array, the value is decoded into a messy code. Currently, the library doesn't provide methods to remove the non-printable characters nor convert them into printable characters, you have to add your own code to recognize the non-printable characters and replace or remove them. The following code snippet is an example for how to create a method for processing the `barcodeBytes` into a string you want. - -**Code Snippet** - -
- >- C++ - >- Android - >- Objective-C - >- Swift - > -> -```c++ -#include -#include -typedef enum ProcessNonPrintingCharsMode -{ - PNPCM_KEEP, - PNPCM_REMOVE, - PNPCM_CONVERT -}ProcessNonPrintingCharsMode; -class ProcessBarcodeBytesUtil -{ -private: - std::map charValueToStringDict; -public: - ProcessBarcodeBytesUtil() - { - int NonPrintingAsciiCharsValue[33] = { - 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x7f - }; - const char* NonPrintingAsciiCharsString[33] = { - "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}","{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}" - }; - for (int i = 0; i < 33; ++i) - charValueToStringDict.insert(std::make_pair(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i])); - } - /** - * Process the non-printing chars of barcode bytes to obtain desired text. - * - * @param [in] bytes The barcode content in a byte array. - * @param [in] bytesLength The length of the byte array. - * @param [in] mode The mode indicates how to processing non-printing chars. - * @param [in] keepLineBreak The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT. - * - * @return Returns The text result after processing barcode bytes. - * - */ - std::string processBarcodeBytes(unsigned char* bytes, int bytesLength, ProcessNonPrintingCharsMode mode, bool keepLineBreak = true) { - std::string result; - for (int i = 0; i < bytesLength; ++i) - { - int byteValue = (int)bytes[i]; - if (charValueToStringDict.find(byteValue) == charValueToStringDict.end() - || mode == PNPCM_KEEP - || keepLineBreak && (byteValue == 10 || byteValue == 13)) { - result.append(1, bytes[i]); - } - else if (mode == PNPCM_CONVERT) { - result.append(charValueToStringDict[byteValue]); - } - } - return result; - } -}; -int main() -{ - // obtain bytes from CBarcodeResultItem. - unsigned char* barcodeBytes = barcodeResult->GetBytes(); - int bytesLength = barcodeResult->GetBytesLength(); - ProcessBarcodeBytesUtil util; - std::string originStr = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_KEEP); - std::cout << "1.original text:" << std::endl << originStr << std::endl << std::endl; - std::string strAfterRemoveExceptLineBreack = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_REMOVE); - std::cout << "2.text after removing non-printing chars except line break:" << std::endl << strAfterRemoveExceptLineBreack << std::endl << std::endl; - std::string strAfterRemove= util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_REMOVE, false); - std::cout << "3.text after removing non-printing chars:" << std::endl << strAfterRemove << std::endl << std::endl; - std::string strAfterConvertExceptLineBreack = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_CONVERT); - std::cout << "4.text after converting non-printing chars except line break:" << std::endl << strAfterConvertExceptLineBreack << std::endl << std::endl; - std::string strAfterConvert = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_CONVERT, false); - std::cout << "5.text after converting non-printing chars:" << std::endl << strAfterConvert << std::endl << std::endl; - return 0; -} -``` -> -```java -mRouter.addResultReceiver(new CapturedResultReceiver() { - @Override - // Implement the callback method to receive DecodedBarcodesResult. - // The method returns a DecodedBarcodesResult object that contains an array of BarcodeResultItems. - // BarcodeResultItems is the basic unit from which you can get the basic info of the barcode like the barcode text and barcode format. - public void onDecodedBarcodesReceived(DecodedBarcodesResult result) { - process = new ProcessBarcodeResultUtil(); - if (result!=null && result.getItems().length!=0){ - for (int i=0; i< result.getItems().length; i++){ - // The return value is the modified barcode text. - String processedResult = process.processBarcodeByte(result.getItems().getBytes(),ProcessBarcodeResultUtil.ProcessNonPrintingCharsMode.PNPCM_REMOVE,true); - Log.i("ProcessByte", "onDecodedBarcodesReceived: processeResult = "+processedResult); - } - } - } -}); -// Create a ProcessBarcodeResultUtil class -public class ProcessBarcodeResultUtil { - enum ProcessNonPrintingCharsMode{ - PNPCM_KEEP, - PNPCM_REMOVE, - PNPCM_CONVERT - } - final HashMap charValueToStringDict = new HashMap(); - ProcessBarcodeResultUtil(){ - final int[] NonPrintingAsciiCharsValue = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127}; - final String[] NonPrintingAsciiCharsString = { - "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}", - "{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}" - }; - for (int i = 0; i < 33; ++i){ - charValueToStringDict.put(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]); - } - } - public String processBarcodeByte(byte[] barcodeByte, ProcessNonPrintingCharsMode mode, boolean keepLineBreak){ - StringBuilder processedResult = new StringBuilder(); - for (int i=0; i -```objc -typedef NS_ENUM(NSInteger,EnumResultProcessMode) -{ - RPM_KEEP = 0, - RPM_CONVERT = 1, - RPM_REMOVE = 2 -}; -... -- (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult *)result { - if (result.items.count > 0) { - for (DSBarcodeResultItem *item in result.items) { - NSString *modifiedBarcodeText = [self processResult:item.bytes mode:RPM_CONVERT isBreaklineKept:NO]; - msgText = [msgText stringByAppendingString:[NSString stringWithFormat:@"\nFormat: %@\nText: %@\n", item.formatString, modifiedBarcodeText]]; - } - } -} -- (NSString *)processBarcodeBytes:(NSData *)byte - mode:(EnumResultProcessMode)mode - isBreaklineKept:(BOOL)isKept{ - NSArray* _nonPrintingAsciiCharsKey = @[@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12,@13,@14,@15,@16,@17,@18,@19,@20,@21,@22,@23,@24,@25,@26,@27,@28,@29,@30,@31,@127]; - NSArray* _nonPrintingAsciiCharsString = @[@"{NUL}",@"{SOH}",@"{STX}",@"{ETX}",@"{EOT}",@"{ENQ}",@"{ACK}",@"{BEL}",@"{BS}",@"{HT}",@"{LF}",@"{VT}",@"{FF}",@"{CR}",@"{SO}",@"{SI}",@"{DLE}",@"{DC1}",@"{DC2}",@"{DC3}",@"{DC4}",@"{NAK}",@"{SYN}",@"{ETB}",@"{CAN}",@"{EM}",@"{SUB}",@"{ESC}",@"{FS}",@"{GS}",@"{RS}",@"{US}",@"{DEL}"]; - NSMapTable * _charValueToStringDict = [NSMapTable strongToStrongObjectsMapTable]; - for (int i=0; i<_nonPrintingAsciiCharsKey.count;i++){ - [_charValueToStringDict setObject:_nonPrintingAsciiCharsString[i] forKey:_nonPrintingAsciiCharsKey[i]]; - } - const char* _Nonnull barcodeByteChar = byte.bytes; - NSString *processedText = @""; - for (int i=0;i31 && (int)barcodeByteChar[i]!=127 && (int)barcodeByteChar[i]!=0)){ - NSString *nextString = [NSString stringWithFormat:@"%c",barcodeByteChar[i]]; - processedText = [processedText stringByAppendingString:nextString]; - } - else if (mode == RPM_CONVERT){ - NSNumber *keyValue = [[NSNumber alloc] initWithInt:(int)barcodeByteChar[i]]; - NSString *nextString = [_charValueToStringDict objectForKey:@2]; - processedText = [processedText stringByAppendingString:nextString]; - } - } - return processedText; -} -``` -> -```swift -enum EnumResultProcessMode{ - case keep - case convert - case remove -} -func onDecodedBarcodesReceived(_ result: DecodedBarcodesResult) { - if let items = result.items, items.count > 0 { - for item in items { - let processedBarcodeText = processBarcodeBytes(byte: item.bytes, processMode: EnumResultProcessMode.convert, isKeep: true) - item.barcodeText = processedBarcodeText - } - } -} -private func processBarcodeBytes(byte:Data, processMode:EnumResultProcessMode, isKeep:Bool) -> String{ - let charValueToStringDict:NSDictionary = [0:"{NUL}",1:"{SOH}",2:"{STX}",3:"{ETX}",4:"{EOT}",5:"{ENQ}",6:"{ACK}",7:"{BEL}",8:"{BS}",9:"{HT}",10:"{LF}",11:"{VT}",12:"{FF}",13:"{CR}",14:"{SO}",15:"{SI}",16:"{DLE}",17:"{DC1}",18:"{DC2}",19:"{DC3}",20:"{DC4}",21:"{NAK}",22:"{SYN}",23:"{ETB}",24:"{CAN}",25:"{EM}",26:"{SUB}",27:"{ESC}",28:"{FS}",29:"{GS}",30:"{RS}",31:"{US}",127:"{DEL}"] - var processedString = "" - for i in 0...byte.count-1{ - if ((isKeep && ((byte[i]==10) || (byte[i]==13))) || (processMode == EnumResultProcessMode.keep) || ((byte[i]>31) && (byte[i] != 127) && (byte[i] != 0))){ - let nextText:String = String(bytes: [byte[i]], encoding: String.Encoding.utf8)! - processedString += nextText as String - } - else if (processMode == EnumResultProcessMode.convert){ - let nextText:NSString = charValueToStringDict.object(forKey: byte[i]) as! NSString - processedString += nextText as String - } - } - return processedString -} -``` diff --git a/dynamsoft-server/ways-to-copy-dbr-js-deployable-files.md b/dynamsoft-server/ways-to-copy-dbr-js-deployable-files.md deleted file mode 100644 index ab6d27d..0000000 --- a/dynamsoft-server/ways-to-copy-dbr-js-deployable-files.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: How to get a copy of Dbr JS deployable files (source code, etc.) ? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, deployable files -description: How to get a copy of Dbr JS deployable files (source code, etc.) ? -needAutoGenerateSidebar: false ---- - -# How to get a copy of (Dynamsoft Barcode Reader) Dbr JS deployable files (source code, etc.) ? - -[<< Back to FAQ index](index.md) - -A copy of Dbr JS deployable files can be obtained using any of the methods mentioned below . - -1. Download the DBR-JS package from the [Dynamsoft website](https://www.dynamsoft.com/barcode-reader/downloads) or from the [Dynamsoft Customer Portal](https://www.dynamsoft.com/customer/download) (Download Products tab on the left hand side) -2. Install the library via `npm` - * `npm install dynamsoft-javascript-barcode --save` -3. Install the library via `yarn` - * `yarn add dynamsoft-javascript-barcode` diff --git a/dynamsoft-server/what-happens-if-license-expires.md b/dynamsoft-server/what-happens-if-license-expires.md deleted file mode 100644 index 1799d70..0000000 --- a/dynamsoft-server/what-happens-if-license-expires.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default-layout -title: What will happen if licenses are not renewed in time? -keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, expired license -description: What will happen if licenses are not renewed in time? -needAutoGenerateSidebar: false -permalink: /faq/general/what-happens-if-license-expires.html ---- - -## What will happen if licenses are not renewed in time? - -[<< Back to FAQ index](index.md) - -Your users will be met with a message saying that the license has expired when they try to use the application that has the Barcode Reader SDK integrated. In order to renew the license immediately, you can do so via the [customer portal](https://www.dynamsoft.com/customer/license/fullLicense) or by contacting the [Dynamsoft Support Team](https://www.dynamsoft.com/contact/). diff --git a/dynamsoft-server/what-is-dbr.md b/dynamsoft-server/what-is-dbr.md deleted file mode 100644 index 6bf8321..0000000 --- a/dynamsoft-server/what-is-dbr.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default-layout -title: What business needs can Dynamsoft Barcode Reader meet? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction -description: What business needs can Dynamsoft Barcode Reader meet? -needAutoGenerateSidebar: false -permalink: /faq/general/what-is-dbr.html ---- - -## What business needs can Dynamsoft Barcode Reader meet? - -[<< Back to FAQ index](index.md) - -For a comprehensive overview of the Dynamsoft Barcode Reader SDK and why you or your customer's business should choose the SDK, please refer to the [DBR overview page](https://www.dynamsoft.com/barcode-reader/overview/). In this overview you will find a few usage scenarios which are important to refer to when a prospective customer initially contacts us. diff --git a/dynamsoft-server/when-singleFrameMode-is-enabled.md b/dynamsoft-server/when-singleFrameMode-is-enabled.md deleted file mode 100644 index d54699f..0000000 --- a/dynamsoft-server/when-singleFrameMode-is-enabled.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: When is singleFrameMode enabled? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, singleFrameMode -description: When is singleFrameMode enabled? -needAutoGenerateSidebar: false ---- - -# When is singleFrameMode enabled? - -[<< Back to FAQ index](index.md) - -`singleFrameMode` is enable in the below two scenarios - - -1. When using the library from a non-secure origin (no HTTPS). -2. When using a browser that doesn't support `getUserMedia/MediaDevices` API that is required for video streaming. To confirm whether or not your browser is supported, please refer to the [System Requirements](https://www.dynamsoft.com/barcode-reader/programming/javascript/user-guide/?ver=latest#system-requirements) section of the user guide. diff --git a/dynamsoft-web/camera-cannot-open-in-pwa.md b/dynamsoft-web/camera/camera-cannot-open-in-pwa.md similarity index 100% rename from dynamsoft-web/camera-cannot-open-in-pwa.md rename to dynamsoft-web/camera/camera-cannot-open-in-pwa.md diff --git a/dynamsoft-web/check-camera.md b/dynamsoft-web/camera/check-camera.md similarity index 100% rename from dynamsoft-web/check-camera.md rename to dynamsoft-web/camera/check-camera.md diff --git a/dynamsoft-web/delay-when-open-camera.md b/dynamsoft-web/camera/delay-when-open-camera.md similarity index 100% rename from dynamsoft-web/delay-when-open-camera.md rename to dynamsoft-web/camera/delay-when-open-camera.md diff --git a/dynamsoft-web/stop-camera-to-open-right-away.md b/dynamsoft-web/camera/stop-camera-to-open-right-away.md similarity index 100% rename from dynamsoft-web/stop-camera-to-open-right-away.md rename to dynamsoft-web/camera/stop-camera-to-open-right-away.md diff --git a/dynamsoft-web/webcam-support-dense.md b/dynamsoft-web/camera/webcam-support-dense.md similarity index 100% rename from dynamsoft-web/webcam-support-dense.md rename to dynamsoft-web/camera/webcam-support-dense.md diff --git a/dynamsoft-web/when-singleFrameMode-is-enabled.md b/dynamsoft-web/camera/when-singleFrameMode-is-enabled.md similarity index 100% rename from dynamsoft-web/when-singleFrameMode-is-enabled.md rename to dynamsoft-web/camera/when-singleFrameMode-is-enabled.md diff --git a/dynamsoft-server/ios-16-incompatible.md b/dynamsoft-web/capabilities/ios-16-incompatible.md similarity index 100% rename from dynamsoft-server/ios-16-incompatible.md rename to dynamsoft-web/capabilities/ios-16-incompatible.md diff --git a/dynamsoft-server/ios-17-readability.md b/dynamsoft-web/capabilities/ios-17-readability.md similarity index 100% rename from dynamsoft-server/ios-17-readability.md rename to dynamsoft-web/capabilities/ios-17-readability.md diff --git a/dynamsoft-server/is-https-required.md b/dynamsoft-web/capabilities/is-https-required.md similarity index 100% rename from dynamsoft-server/is-https-required.md rename to dynamsoft-web/capabilities/is-https-required.md diff --git a/dynamsoft-server/pros-and-cons-of-cdn.md b/dynamsoft-web/capabilities/pros-and-cons-of-cdn.md similarity index 100% rename from dynamsoft-server/pros-and-cons-of-cdn.md rename to dynamsoft-web/capabilities/pros-and-cons-of-cdn.md diff --git a/dynamsoft-web/system-requirement.md b/dynamsoft-web/capabilities/system-requirement.md similarity index 100% rename from dynamsoft-web/system-requirement.md rename to dynamsoft-web/capabilities/system-requirement.md diff --git a/dynamsoft-web/avoid-incorrect-barcode-results.md b/dynamsoft-web/configuration/avoid-incorrect-barcode-results.md similarity index 100% rename from dynamsoft-web/avoid-incorrect-barcode-results.md rename to dynamsoft-web/configuration/avoid-incorrect-barcode-results.md diff --git a/dynamsoft-web/call-loadWasm-proactively.md b/dynamsoft-web/configuration/call-loadWasm-proactively.md similarity index 100% rename from dynamsoft-web/call-loadWasm-proactively.md rename to dynamsoft-web/configuration/call-loadWasm-proactively.md diff --git a/dynamsoft-web/change-domain-binding-of-product-key.md b/dynamsoft-web/configuration/change-domain-binding-of-product-key.md similarity index 100% rename from dynamsoft-web/change-domain-binding-of-product-key.md rename to dynamsoft-web/configuration/change-domain-binding-of-product-key.md diff --git a/dynamsoft-web/formats-supported-for-existing-files.md b/dynamsoft-web/configuration/formats-supported-for-existing-files.md similarity index 100% rename from dynamsoft-web/formats-supported-for-existing-files.md rename to dynamsoft-web/configuration/formats-supported-for-existing-files.md diff --git a/dynamsoft-web/get-intermediate-result-images.md b/dynamsoft-web/configuration/get-intermediate-result-images.md similarity index 100% rename from dynamsoft-web/get-intermediate-result-images.md rename to dynamsoft-web/configuration/get-intermediate-result-images.md diff --git a/dynamsoft-server/javascript-sdk-offline-mode-use.md b/dynamsoft-web/configuration/javascript-sdk-offline-mode-use.md similarity index 100% rename from dynamsoft-server/javascript-sdk-offline-mode-use.md rename to dynamsoft-web/configuration/javascript-sdk-offline-mode-use.md diff --git a/dynamsoft-server/newline-character-not-being-rendered.md b/dynamsoft-web/configuration/newline-character-not-being-rendered.md similarity index 100% rename from dynamsoft-server/newline-character-not-being-rendered.md rename to dynamsoft-web/configuration/newline-character-not-being-rendered.md diff --git a/dynamsoft-server/nodejs-implementation.md b/dynamsoft-web/configuration/nodejs-implementation.md similarity index 100% rename from dynamsoft-server/nodejs-implementation.md rename to dynamsoft-web/configuration/nodejs-implementation.md diff --git a/dynamsoft-server/pop-up-window-during-trail-process.md b/dynamsoft-web/configuration/pop-up-window-during-trail-process.md similarity index 100% rename from dynamsoft-server/pop-up-window-during-trail-process.md rename to dynamsoft-web/configuration/pop-up-window-during-trail-process.md diff --git a/dynamsoft-web/read-from-existing-files.md b/dynamsoft-web/configuration/read-from-existing-files.md similarity index 100% rename from dynamsoft-web/read-from-existing-files.md rename to dynamsoft-web/configuration/read-from-existing-files.md diff --git a/dynamsoft-web/scan-US-drivers-license.md b/dynamsoft-web/configuration/scan-US-drivers-license.md similarity index 100% rename from dynamsoft-web/scan-US-drivers-license.md rename to dynamsoft-web/configuration/scan-US-drivers-license.md diff --git a/dynamsoft-server/upgrade-old-to-new.md b/dynamsoft-web/configuration/upgrade-old-to-new.md similarity index 100% rename from dynamsoft-server/upgrade-old-to-new.md rename to dynamsoft-web/configuration/upgrade-old-to-new.md diff --git a/dynamsoft-server/use-of-onFrameRead-and-onUnduplicateRead.md b/dynamsoft-web/configuration/use-of-onFrameRead-and-onUnduplicateRead.md similarity index 100% rename from dynamsoft-server/use-of-onFrameRead-and-onUnduplicateRead.md rename to dynamsoft-web/configuration/use-of-onFrameRead-and-onUnduplicateRead.md diff --git a/dynamsoft-web/ways-to-copy-dbr-js-deployable-files.md b/dynamsoft-web/configuration/ways-to-copy-dbr-js-deployable-files.md similarity index 100% rename from dynamsoft-web/ways-to-copy-dbr-js-deployable-files.md rename to dynamsoft-web/configuration/ways-to-copy-dbr-js-deployable-files.md diff --git a/dynamsoft-web/check-current-version.md b/dynamsoft-web/debug/check-current-version.md similarity index 100% rename from dynamsoft-web/check-current-version.md rename to dynamsoft-web/debug/check-current-version.md diff --git a/dynamsoft-web/general-troubleshooting-steps-for-decode-failure.md b/dynamsoft-web/debug/general-troubleshooting-steps-for-decode-failure.md similarity index 100% rename from dynamsoft-web/general-troubleshooting-steps-for-decode-failure.md rename to dynamsoft-web/debug/general-troubleshooting-steps-for-decode-failure.md diff --git a/dynamsoft-web/get-sdk-logs.md b/dynamsoft-web/debug/get-sdk-logs.md similarity index 100% rename from dynamsoft-web/get-sdk-logs.md rename to dynamsoft-web/debug/get-sdk-logs.md diff --git a/dynamsoft-server/resolve-magic-word.md b/dynamsoft-web/debug/resolve-magic-word.md similarity index 100% rename from dynamsoft-server/resolve-magic-word.md rename to dynamsoft-web/debug/resolve-magic-word.md diff --git a/dynamsoft-web/differences-between-full-and-compact-editions.md b/dynamsoft-web/differences-between-full-and-compact-editions.md deleted file mode 100644 index 095a608..0000000 --- a/dynamsoft-web/differences-between-full-and-compact-editions.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -title: What are the differences between the compact edition and the full edition? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, compact edition, full edition -description: What are the differences between the compact edition and the full edition? -needAutoGenerateSidebar: false ---- - -# What are the differences between the compact edition and the full edition? How do you switch between the two editions? - -[<< Back to FAQ index](index.md) - -*Please note that starting from v8.6 of the JavaScript Edition, the default engine that the library uses is the **full edition** engine.* - -The main difference between the two is the set of supported barcode formats as well as the size of each edition. For the full list of differences between the two, please refer to this [article](https://www.dynamsoft.com/barcode-reader/programming/javascript/user-guide/features-requirements.html#compact-and-full-editions). - -**Compact edition** supports `1D`, `QR`, `PDF417`, and `Datamatrix` (the most popular barcode formats), while the **full edition** supports the complete set of Dynamsoft Barcode Reader's supported barcode formats. -In terms of API methods, the full edition supports the following features while the compact does not: `getIntermediateCanvas`, `initRuntimeSettingsWithString`, and ` outputSettingsToString`. - -As a result of that, the **compact edition** is smaller in size compared to the full edition, offering a slightly faster compilation time when the user first uses the application. Using the **compact edition** can also help in reducing the size of the compiled *wasm*. - -To switch from the full edition to the compact edition, you need to set `_bUseFullFeature` to `false` before `createInstance` or `loadWasm` is called. - -```javascript -Dynamsoft.DBR.BarcodeScanner._bUseFullFeature = false; -``` \ No newline at end of file diff --git a/dynamsoft-web/how-license-tracking-works.md b/dynamsoft-web/how-license-tracking-works.md deleted file mode 100644 index 5d46fff..0000000 --- a/dynamsoft-web/how-license-tracking-works.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: default-layout -title: How does license tracking work with the three standard licensing options - Per Scan, Per Device, Per Concurrent Device? -keywords: Dynamsoft Barcode Reader, FAQ, Sales & Licensing, license tracking -description: How does license tracking work with the three standard licensing options - Per Scan, Per Device, Per Concurrent Device? -needAutoGenerateSidebar: false ---- - -# How does license tracking work with the three standard licensing options - Per Scan, Per Device, Per Concurrent Device? - -[<< Back to FAQ index](index.md) - -Each option is explained in the [About section](https://www.dynamsoft.com/license-server/docs/about/licensetypes.html?ver=latest) of the license tracking documentation. Please read through each option to have a good understanding of what each entails. If you have any more questions, please contact the [Dynamsoft support team](https://www.dynamsoft.com/company/contact/). diff --git a/dynamsoft-web/ios-16-incompatible.md b/dynamsoft-web/ios-16-incompatible.md deleted file mode 100644 index 3ec94ac..0000000 --- a/dynamsoft-web/ios-16-incompatible.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -layout: default-layout -title: Why is the Javascript SDK not recognizing any barcodes on iOS 16.4? -keywords: iOS, incompatible, JS, V7.5.0, V8.8.7 -description: Why is the Javascript SDK not recognizing any barcodes on iOS 16.4? -needAutoGenerateSidebar: false ---- - -# Why is the Javascript SDK not recognizing any barcodes on iOS 16.4? - -[<< Back to FAQ index](index.md) - -## Background - -iOS 16.4 was released on March 27th, 2023. In this version, all browsers on iOS have begun to support `OffscreenCanvas`. Unfortunately, Apple's implementation of the API is still incomplete and is missing the important feature "webgl context". Please see the MDN docs on [OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas) for more details. - -## Impact - -`OffscreenCanvas` is utilized in older versions of DBR-JS. Specifically in versions **7.5.0 ~ 8.8.7**. However, we moved away from this API as of DBR-JS v9.0.0. Therefore, all 9+ versions are not affected by this breaking change. - -If you encounter the issue, you will see the following error in the browser console: - -![ios-16-incompatible](assets/ios-16-incompatible.png) - -## Solution: - -There are three solutions to the issue: - -### Option 1: Upgrade to the latest v9.x version (Recommended Option) - -If it is convenient, we recommend that you upgrade to the latest v9.x version to avoid the issue. Please refer to the [upgrade guide](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/upgrade-guide/?ver=latest). - -However, if you are not able to upgrade to the v9.x, please refer to the two options below. - -### Option 2: Disable the API directly before creating a `BarcodeScanner` instance - -```js -window.OffscreenCanvas = null; -let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance(); -//... -``` - -> NOTE: -> -> If you application, or other libraries in your application, requires the use of `OffscreenCanvas`, then this approach will not be suitable, as the `OffscreenCanvas` would be disabled globally. - -### Option 3: Disable webgl context usage in DBR-JS - -If you are unsure whether `OffscreenCanvas` can be disabled globally as suggested in Option 1, you can enable `ifSaveOriginalImageInACanvas` after creating the `BarcodeScanner` instance as a workaround. - -```js -let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance(); -scanner.ifSaveOriginalImageInACanvas = true; -//... -``` - -> NOTE -> -> This approach may slow DBR-JS down a little bit, but the difference can be ignored on devices capable of running iOS 16.4. - -If none of the options work for you, please [contact us](https://www.dynamsoft.com/contact/). diff --git a/dynamsoft-web/ios-17-readability.md b/dynamsoft-web/ios-17-readability.md deleted file mode 100644 index 5fba46a..0000000 --- a/dynamsoft-web/ios-17-readability.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: default-layout -title: How do I resolve the issue of the Barcode Reader not recognizing any barcodes via video in iOS 16.7 or 17? -keywords: iOS, incompatible, JS, 16.7, 17 -description: How do I resolve the issue of the Barcode Reader not recognizing any barcodes via video in iOS 16.7 or 17? -needAutoGenerateSidebar: false ---- - -# How do I resolve the issue of the Barcode Reader not recognizing any barcodes via video in iOS 16.7 or 17? - -iOS 17 and iOS 16.7 were released by Apple on September 18, 2023 and September 21, 2023 respectively. Our team has found that with these most recent iOS releases, **some** iPhones and iPads will run into an issue where it seems like no barcode can be read under any condition. - -We found that this issue is inconsistent across all iPhones and iPads on iOS 17 or 16.7. However, if you find that this issue is occurring to a subset of your users, please implement the following workaround in the code: - -If you use version 9.x: - -```js -scanner._dce._bWebGLSupported=false; -//... -await scanner.show(); -``` - -If you use version 8.8.0 ~ 8.8.7: - -```js -scanner.ifSaveOriginalImageInACanvas= true; -//... -await scanner.show(); -``` - -If you use version 8.0.0 ~ 8.6.3 - -```js -scanner._bUseWebgl=false; -//... -await scanner.show(); -``` - -If you are unsure which version it is, you can use the following that works for version 8.0.0 ~ 9.6.30 - -```js -scanner.dce && (scanner.dce._bWebGLSupported = false); -scanner.ifSaveOriginalImageInACanvas= true; -scanner._bUseWebgl = false; -//... -await scanner.show(); -``` - -Once implemented, all iOS devices using iOS 17 or 16.7 should not encounter this issue anymore. For a quick test, please use the [online demo](https://demo.dynamsoft.com/barcode-reader-js/). - -Dynamsoft has released a patch version 9.6.31 to work around this iOS bug on Oct 11th, 2023. - -If you have any questions, please contact the [Dynamsoft Support team](https://www.dynamsoft.com/contact/). \ No newline at end of file diff --git a/dynamsoft-web/is-https-required.md b/dynamsoft-web/is-https-required.md deleted file mode 100644 index 88141e0..0000000 --- a/dynamsoft-web/is-https-required.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Is HTTPs absolutely required? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, HTTPS -description: Is HTTPs absolutely required? -needAutoGenerateSidebar: false ---- - -# Is HTTPS absolutely required? - -[<< Back to FAQ index](index.md) - -HTTPS is required to utilize `getUserMedia`/`MediaDevices` and initialize online license keys. If HTTPS is not enabled, you won't be able to use a camera and you will need an offline license key. - -> 1. If you don't want to use a camera, you can enable [singleFrameMode](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/BarcodeScanner/properties.html?ver=latest#singleframemode) to scan barcodes on exisiting images. -> 2. During evaluation & testing, you can use 'http://localhost' which allows camera usage as well as online licensing. - diff --git a/dynamsoft-web/javascript-sdk-offline-mode-use.md b/dynamsoft-web/javascript-sdk-offline-mode-use.md deleted file mode 100644 index 2bd6378..0000000 --- a/dynamsoft-web/javascript-sdk-offline-mode-use.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: How to use the JavaScript SDK in offline mode? -keywords: Dynamsoft Barcode Reader, FAQ, Sales & Licensing, offline mode use -description: How to use the JavaScript SDK in offline mode? -needAutoGenerateSidebar: false ---- - -# How to use the Dynamsoft Barcode Reader JavaScript SDK in offline mode? - -[<< Back to FAQ index](index.md) - - -It depends on the license option you are using: - - 1. If it is Per Barcode Scan License, the client device can work in an offline scenario after it is registered, but no more than 3 days. The initial registration of the device requires an internet connection if the license is hosted on the Dynamsoft server. If you chose the self-hosting option when activating the license, then the device must have a connection to your internally hosted license server for the initial registration. - - 2. If it is Per Client Device License, we have some per-device license types: **Yearly**, **Quarterly**, **Monthly** and **Daily** active device license, which allows users to set the offline usage interval in an allowed time period (365 days, 90 days, 30 days and 24 hours), in the settled interval the SDK could work successfully. - -The full details are explained [here](https://www.dynamsoft.com/license-server/docs/about/licensefaq.html?ver=latest#can-a-client-device-work-offline). diff --git a/dynamsoft-web/new-license-required-per-device-licensing.md b/dynamsoft-web/new-license-required-per-device-licensing.md deleted file mode 100644 index 62efa91..0000000 --- a/dynamsoft-web/new-license-required-per-device-licensing.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: When is a new license spot taken when using a per-device licensing model? -keywords: Dynamsoft Barcode Reader, FAQ, Sales & Licensing, per-device, new license -description: When is a new license spot taken when using a per-device licensing model? -needAutoGenerateSidebar: false ---- - -# When is a new license spot taken when using a per-device licensing model? - -[<< Back to FAQ index](index.md) - -A new license spot is required in any of these three conditions - - -- if you use another browser. -- if you clear the cookies or indexedDB of the browser. -- if you open the page in the Incognito mode. - -When a device is registered under the license, the info is stored in the indexedDB of the specific browser's memory. Should the cache/cookies be cleared, another browser gets used, or an Incognito window of the main browser is used (when using incognito, the browser starts with a 'fresh' indexedDB), then a new license seat is configured for that same device. diff --git a/dynamsoft-web/newline-character-not-being-rendered.md b/dynamsoft-web/newline-character-not-being-rendered.md deleted file mode 100644 index 1b7904b..0000000 --- a/dynamsoft-web/newline-character-not-being-rendered.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: default-layout -title: Why are newline characters not being rendered when displaying the barcode results in a textbox? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, newline character, barcode result -description: Why are newline characters not being rendered when displaying the barcode results in a textbox? -needAutoGenerateSidebar: false ---- - -# Why are newline characters not being rendered when displaying the barcode results in a textbox? - -[<< Back to FAQ index](index.md) - -That is because in normal HTML, newline characters are not interpreted as they normally would, so newline characters in the barcode result will be ignored. To account for them, it's best to either wrap the element used to display the result in a `
` element, or manually replace each newline character with `
`. Please refer to [this article](https://www.dynamsoft.com/barcode-reader/programming/javascript/user-guide/?ver=latest#accounting-for-newline-characters-in-the-barcode-result) for more details. diff --git a/dynamsoft-web/nodejs-implementation.md b/dynamsoft-web/nodejs-implementation.md deleted file mode 100644 index 6fb15a4..0000000 --- a/dynamsoft-web/nodejs-implementation.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: How do I create a NodeJS application using the SDK? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, wasm, nodejs, server -description: How do I create a NodeJS application using the SDK? -needAutoGenerateSidebar: false ---- - -# How do I create a NodeJS application using the SDK? - -[<< Back to FAQ index](index.md) - -In order to create a backend or server-side NodeJS application, it is best to use the NodeJS extension that utilizes the C/C++ edition of the Dynamsoft Barcode Reader. You can find the npm package here. Instructions on how to use the package are available on the npm page. - -However, if you are looking for examples on how to use this NodeJS extension, please visit the Github page. - -If you attempt to use DBR-JS or its associated npm package in a NodeJS server application, you will most likely be met with errors at runtime. The JavaScript edition is meant only for client-side solutions. - -If you have any questions on how to use the barcode4nodejs package, please contact us. \ No newline at end of file diff --git a/dynamsoft-web/pop-up-window-during-trail-process.md b/dynamsoft-web/pop-up-window-during-trail-process.md deleted file mode 100644 index 06a4940..0000000 --- a/dynamsoft-web/pop-up-window-during-trail-process.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -title: How to remove the expired warning message pop-up window in Dynamsoft Barcode Reader online demo scanning process? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, barcodeReader, barcodeScanner, pop-up window -description: How to remove the expired warning message pop-up window in Dynamsoft Barcode Reader online demo scanning process? -needAutoGenerateSidebar: false ---- - -# How to remove the expired warning message pop-up window in Dynamsoft Barcode Reader online demo scanning process? - -[<< Back to FAQ index](index.md) - -Users may meet pop-up window when using our online demo, don't worry about how to remove them, after purchasing the official license it will not pop up during the usage. - -The pop up window in our online demo: - -![warning_info](https://github.com/dynamsoft-docs/barcode-reader-docs-js/blob/95872c441452d9fb056fe8258512a009a056ce72/programming/javascript/assets/warning_information.png) - -![expired_info](https://github.com/dynamsoft-docs/barcode-reader-docs-js/blob/39d3605d319456dbe0f42f99c6704de9d612b6d5/programming/javascript/assets/warning_information.png) - - diff --git a/dynamsoft-web/pros-and-cons-of-cdn.md b/dynamsoft-web/pros-and-cons-of-cdn.md deleted file mode 100644 index c2922e5..0000000 --- a/dynamsoft-web/pros-and-cons-of-cdn.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -title: What are the pros and cons of using the CDN? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, CDN -description: What are the pros and cons of using the CDN? -needAutoGenerateSidebar: false ---- - -# What are the pros and cons of using the CDN? - -[<< Back to FAQ index](index.md) - -**Pros**: - -- No need for server configuration since your server is not hosting the library. -- Integrating the library into your app using the CDN would only take a minute compared to hosting it yourself. - -**Cons**: - -- No control over the availability of the source files should the CDN servers go down. -- Requires an external connection to the CDN servers to download the library. diff --git a/dynamsoft-web/resolve-magic-word.md b/dynamsoft-web/resolve-magic-word.md deleted file mode 100644 index 45a9070..0000000 --- a/dynamsoft-web/resolve-magic-word.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: How to resolve the expected magic word error that occurs when using DBR-JS? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, Magic Word, MIME -description: How to resolve the expected magic word error that occurs when using DBR-JS? -needAutoGenerateSidebar: false ---- - -# How to resolve the expected magic word error that occurs when using DBR-JS? - -[<< Back to FAQ index](index.md) - -When you build an application using DBR-JS, and you choose to self-host the resources on your own server by getting a copy of the resource files of the library, there is a chance that you could run into an error along the lines of: - -`Failed to get license info: WebAssembly.instantiate(): expected magic word...` - -This error is most probably happening because you failed to configure the MIME types to include the `.wasm` file type when setting up the server. To learn how to configure the server, including the MIME type as well as enabling HTTPS, please refer to this [article](https://www.dynamsoft.com/barcode-reader/programming/javascript/user-guide/?ver=latest#step-two-configure-the-server). diff --git a/dynamsoft-web/difference-between-barcodeReader-and-barcodeScanner.md b/dynamsoft-web/scan-setting/difference-between-barcodeReader-and-barcodeScanner.md similarity index 100% rename from dynamsoft-web/difference-between-barcodeReader-and-barcodeScanner.md rename to dynamsoft-web/scan-setting/difference-between-barcodeReader-and-barcodeScanner.md diff --git a/dynamsoft-web/difference-between-bestspeed-and-bestcoverage.md b/dynamsoft-web/scan-setting/difference-between-bestspeed-and-bestcoverage.md similarity index 100% rename from dynamsoft-web/difference-between-bestspeed-and-bestcoverage.md rename to dynamsoft-web/scan-setting/difference-between-bestspeed-and-bestcoverage.md diff --git a/dynamsoft-server/differences-between-full-and-compact-editions.md b/dynamsoft-web/scan-setting/differences-between-full-and-compact-editions.md similarity index 100% rename from dynamsoft-server/differences-between-full-and-compact-editions.md rename to dynamsoft-web/scan-setting/differences-between-full-and-compact-editions.md diff --git a/dynamsoft-web/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md b/dynamsoft-web/scan-setting/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md similarity index 100% rename from dynamsoft-web/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md rename to dynamsoft-web/scan-setting/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md diff --git a/dynamsoft-web/enable-supported-barcode-format.md b/dynamsoft-web/scan-setting/enable-supported-barcode-format.md similarity index 100% rename from dynamsoft-web/enable-supported-barcode-format.md rename to dynamsoft-web/scan-setting/enable-supported-barcode-format.md diff --git a/dynamsoft-web/read-inverted-image.md b/dynamsoft-web/scan-setting/read-inverted-image.md similarity index 100% rename from dynamsoft-web/read-inverted-image.md rename to dynamsoft-web/scan-setting/read-inverted-image.md diff --git a/dynamsoft-web/remove-duplicates.md b/dynamsoft-web/scan-setting/remove-duplicates.md similarity index 100% rename from dynamsoft-web/remove-duplicates.md rename to dynamsoft-web/scan-setting/remove-duplicates.md diff --git a/dynamsoft-web/unable-to-scan-aztec-code.md b/dynamsoft-web/scan-setting/unable-to-scan-aztec-code.md similarity index 100% rename from dynamsoft-web/unable-to-scan-aztec-code.md rename to dynamsoft-web/scan-setting/unable-to-scan-aztec-code.md diff --git a/dynamsoft-web/add-remove-beep-sound.md b/dynamsoft-web/ui-customization/add-remove-beep-sound.md similarity index 100% rename from dynamsoft-web/add-remove-beep-sound.md rename to dynamsoft-web/ui-customization/add-remove-beep-sound.md diff --git a/dynamsoft-web/different-ways-to-customize-ui.md b/dynamsoft-web/ui-customization/different-ways-to-customize-ui.md similarity index 100% rename from dynamsoft-web/different-ways-to-customize-ui.md rename to dynamsoft-web/ui-customization/different-ways-to-customize-ui.md diff --git a/dynamsoft-web/hide-laser-message-ui.md b/dynamsoft-web/ui-customization/hide-laser-message-ui.md similarity index 100% rename from dynamsoft-web/hide-laser-message-ui.md rename to dynamsoft-web/ui-customization/hide-laser-message-ui.md diff --git a/dynamsoft-web/upgrade-old-to-new.md b/dynamsoft-web/upgrade-old-to-new.md deleted file mode 100644 index 49cf4f1..0000000 --- a/dynamsoft-web/upgrade-old-to-new.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: How do you upgrade to a newer version of the SDK? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, upgrade, version -description: How do you upgrade to a newer version of the SDK? -needAutoGenerateSidebar: false ---- - -# How do you upgrade to a newer version of the SDK? - -[<< Back to FAQ index](index.md) - -- If you are performing a **major upgrade** by upgrading from one major version to another (7.x -> 8.x), the primary contact of the license must get in touch with Dynamsoft Support by sending an email to [support@dynamsoft.com](mailto:support@dynamsoft.com) and request to upgrade their valid annual license. If you own several licenses, please specify if all or a specific subset needs to be upgraded. Once the request is received, the upgrade is processed within one business day. - -- If you would like to do a **minor upgrade** (8.0 -> 8.1.1) then there is no need to send an email for an upgrade as the license doesn't need to be upgraded between minor versions. All you need to do is simply reference the newer version or download a copy of the new version. - -> Please also make sure to note these [changes](https://www.dynamsoft.com/barcode-reader/programming/javascript/upgrade-guide/?ver=latest) between the versions. diff --git a/dynamsoft-web/use-of-onFrameRead-and-onUnduplicateRead.md b/dynamsoft-web/use-of-onFrameRead-and-onUnduplicateRead.md deleted file mode 100644 index 3ec43a4..0000000 --- a/dynamsoft-web/use-of-onFrameRead-and-onUnduplicateRead.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: When to use onFrameRead and when to use onUniqueRead? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, onFrameRead, onUniqueRead -description: When to use onFrameRead and when to use onUniqueRead? -needAutoGenerateSidebar: false ---- - -# When to use onFrameRead and when to use onUniqueRead? - -[<< Back to FAQ index](index.md) - -`onFrameRead` is triggered with each captured video frame, whether there are barcode results or not. If a barcode is within the frame, then it will show in the `results` of onFrameRead. - -`onUniqueRead` is triggered once a new barcode is found. This event does not repeat for the same barcode until the `duplicateForgetTime` passes.