diff --git a/_config.yml b/_config.yml index 383b1679..6c47793e 100644 --- a/_config.yml +++ b/_config.yml @@ -26,7 +26,7 @@ faq: /faq/barcode-reader/ structs: /barcode-reader/docs/server/programming/c-cplusplus/struct/ -c: /barcode-reader/docs/v9/server/programming/c/ +c: /barcode-reader/docs-v9/server/programming/c/ cpp: /barcode-reader/docs/server/programming/cplusplus/ cpp_api: /barcode-reader/docs/server/programming/cplusplus/api-reference/ diff --git a/faq/general/add-remove-beep-sound.md b/faq/general/add-remove-beep-sound.md deleted file mode 100644 index 1d5b1fa5..00000000 --- a/faq/general/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/faq/general/arm64-simulator-error.md b/faq/general/arm64-simulator-error.md deleted file mode 100644 index fee770de..00000000 --- a/faq/general/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/faq/general/armv7-architecture-error.md b/faq/general/armv7-architecture-error.md deleted file mode 100644 index 119a3e2e..00000000 --- a/faq/general/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/faq/general/assets/activate.jpg b/faq/general/assets/activate.jpg deleted file mode 100644 index 65a7ddb8..00000000 Binary files a/faq/general/assets/activate.jpg and /dev/null differ diff --git a/faq/general/assets/cp-license.jpg b/faq/general/assets/cp-license.jpg deleted file mode 100644 index 5474e205..00000000 Binary files a/faq/general/assets/cp-license.jpg and /dev/null differ diff --git a/faq/general/assets/offline-activate.jpg b/faq/general/assets/offline-activate.jpg deleted file mode 100644 index d256a1a6..00000000 Binary files a/faq/general/assets/offline-activate.jpg and /dev/null differ diff --git a/faq/general/assets/submit-uuid.jpg b/faq/general/assets/submit-uuid.jpg deleted file mode 100644 index f8337b97..00000000 Binary files a/faq/general/assets/submit-uuid.jpg and /dev/null differ diff --git a/faq/general/assets/uuid-tool.jpg b/faq/general/assets/uuid-tool.jpg deleted file mode 100644 index 777e118e..00000000 Binary files a/faq/general/assets/uuid-tool.jpg and /dev/null differ diff --git a/faq/general/assets/uuid.jpg b/faq/general/assets/uuid.jpg deleted file mode 100644 index 675b44d2..00000000 Binary files a/faq/general/assets/uuid.jpg and /dev/null differ diff --git a/faq/general/avoid-incorrect-barcode-results.md b/faq/general/avoid-incorrect-barcode-results.md deleted file mode 100644 index 139cd1b0..00000000 --- a/faq/general/avoid-incorrect-barcode-results.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default-layout -title: How to avoid incorrect barcode results? -keywords: Dynamsoft Barcode Reader, FAQ, JavaScript, Troubleshooting / User Cases, avoid incorrect barcode results -description: How to avoid incorrect barcode results? -needAutoGenerateSidebar: false ---- - -# How to avoid incorrect barcode results? - -[<< Back to FAQ index](index.md) - -- One method is to raise the value of [minResultConfidence](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/interface/RuntimeSettings.html#minresultconfidence) of the `RuntimeSettings` to a value of 50 or higher. It is set to 30 by default. -- If the issue has to do with the length of the text result, you can try setting a minimum length for the barcode text(s) that are returned by the SDK. By setting the [minBarcodeTextLength](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/interface/RuntimeSettings.html#minbarcodetextlength) property of the `RuntimeSettings`, the SDK can ignore results that are consistently coming out shorter than expected. diff --git a/faq/general/avoid-incorrect-results.md b/faq/general/avoid-incorrect-results.md deleted file mode 100644 index 17404579..00000000 --- a/faq/general/avoid-incorrect-results.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -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/faq/general/bitcode-support.md b/faq/general/bitcode-support.md deleted file mode 100644 index ca1ed700..00000000 --- a/faq/general/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/faq/general/call-loadWasm-proactively.md b/faq/general/call-loadWasm-proactively.md deleted file mode 100644 index b99dc18a..00000000 --- a/faq/general/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/faq/general/change-domain-binding-of-product-key.md b/faq/general/change-domain-binding-of-product-key.md deleted file mode 100644 index 3f4657ec..00000000 --- a/faq/general/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/faq/general/check-camera.md b/faq/general/check-camera.md deleted file mode 100644 index 05583d89..00000000 --- a/faq/general/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/faq/general/check-current-version.md b/faq/general/check-current-version.md deleted file mode 100644 index fd24e2d5..00000000 --- a/faq/general/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/faq/general/competitors-comparison.md b/faq/general/competitors-comparison.md deleted file mode 100644 index 1febfc82..00000000 --- a/faq/general/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/faq/general/configuration.md b/faq/general/configuration.md deleted file mode 100644 index 6730efed..00000000 --- a/faq/general/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/faq/general/cordova-signature-error.md b/faq/general/cordova-signature-error.md deleted file mode 100644 index cab36582..00000000 --- a/faq/general/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/faq/general/custom-settings-template.md b/faq/general/custom-settings-template.md deleted file mode 100644 index 70348c87..00000000 --- a/faq/general/custom-settings-template.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -title: How to create custom settings template? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, runtime settings, template -description: How to create custom settings template? -needAutoGenerateSidebar: false -permalink: /faq/general/custom-settings-template.html ---- - -## How to create custom settings template? - -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 [InitSettingsFromFile](https://www.dynamsoft.com/capture-vision/docs/server/programming/cplusplus/api-reference/capture-vision-router/settings.html?product=dbr&repoType=server#initsettingsfromfile) 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 `InitSettingsFromFile` method! \ No newline at end of file diff --git a/faq/general/dbr-free-trial.md b/faq/general/dbr-free-trial.md deleted file mode 100644 index bd2fc335..00000000 --- a/faq/general/dbr-free-trial.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: What I need to know about trial licenses? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, free trial -description: What I need to know about trial licenses? -needAutoGenerateSidebar: false -permalink: /faq/general/dbr-free-trial.html ---- - -## What I need to know about trial licenses? - -[<< Back to FAQ index](index.md) - -To get a free trial of the SDK, please download it from [our website](https://www.dynamsoft.com/barcode-reader/downloads/). - -The main way to get the trial license is via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&utm_source=docs){:target="_blank"} link through which you can extend your trial license once your original expires. The trial can be extended twice, for 15 days each, and a total of 30 days. diff --git a/faq/general/dbr-supports-pdf.md b/faq/general/dbr-supports-pdf.md deleted file mode 100644 index abedc7ee..00000000 --- a/faq/general/dbr-supports-pdf.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -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. diff --git a/faq/general/debug-mode-barcodescannerx.md b/faq/general/debug-mode-barcodescannerx.md deleted file mode 100644 index f8e45e4e..00000000 --- a/faq/general/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/faq/general/delay-when-open-camera.md b/faq/general/delay-when-open-camera.md deleted file mode 100644 index 0caeda8b..00000000 --- a/faq/general/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/faq/general/difference-between-barcodeReader-and-barcodeScanner.md b/faq/general/difference-between-barcodeReader-and-barcodeScanner.md deleted file mode 100644 index 0400d21a..00000000 --- a/faq/general/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/faq/general/difference-between-bestspeed-and-bestcoverage.md b/faq/general/difference-between-bestspeed-and-bestcoverage.md deleted file mode 100644 index 0e70a830..00000000 --- a/faq/general/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/faq/general/differences-between-full-and-compact-editions.md b/faq/general/differences-between-full-and-compact-editions.md deleted file mode 100644 index 095a608c..00000000 --- a/faq/general/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/faq/general/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md b/faq/general/differences-between-updateScanSettings-updateVideoSettings-and-updateRuntimeSettings.md deleted file mode 100644 index dac17e80..00000000 --- a/faq/general/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/faq/general/different-editions-of-dbr.md b/faq/general/different-editions-of-dbr.md deleted file mode 100644 index 065a3c23..00000000 --- a/faq/general/different-editions-of-dbr.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: default-layout -title: Which edition of Barcode Reader should I use? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, editions -description: Which edition of Barcode Reader should I use? -needAutoGenerateSidebar: false -breadcrumbText: FAQ -permalink: /faq/general/different-editions-of-dbr.html ---- - -## Which edition of Barcode Reader should I use? - -[<< Back to FAQ index](index.md) - -The edition of the SDK depends on the application environment/type, which is one of: a desktop app, native mobile app, web app (server-side), or web app (client-side). - -- desktop app: Windows/Linux edition -- desktop app (embedded – e.g. raspberry pi): Windows/Linux edition -- native mobile app: iOS/Android edition -- webapp (server-side): Windows/Linux edition -- webapp (client-side): JavaScript edition - -> Note - It is important to note the difference the Windows/Linux edition and the JavaScript edition when it comes to web applications. The Windows/Linux edition can only operate on the server-side, so it cannot offer live video decoding, while the JavaScript edition can since it is client-side. diff --git a/faq/general/different-ways-to-customize-ui.md b/faq/general/different-ways-to-customize-ui.md deleted file mode 100644 index e5dd4d0f..00000000 --- a/faq/general/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/faq/general/disable-continuous-scanning.md b/faq/general/disable-continuous-scanning.md deleted file mode 100644 index 99725e02..00000000 --- a/faq/general/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/faq/general/drivers-license-extraction.md b/faq/general/drivers-license-extraction.md deleted file mode 100644 index 67cc26c9..00000000 --- a/faq/general/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/faq/general/ensure-no-overuse.md b/faq/general/ensure-no-overuse.md deleted file mode 100644 index d751cf34..00000000 --- a/faq/general/ensure-no-overuse.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -layout: default-layout -title: How to properly use concurrent instance license? -keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, General, ensure no overuse -description: How to properly use concurrent instance license? -needAutoGenerateSidebar: false ---- - -## How to properly use concurrent instance license? - -[<< Back to FAQ index](index.md) - -The standard way to use concurrent instance license is: - -* Call method `SetMaxConcurrentInstanceCount` to set the license count you purchased. -* Update the parameter `MaxParallelTasks` to align with the purchased quantity. - -
- >- C++ - >- C# - >- Python - > -> -```cpp - int licenseCount = YOUR-PURCHASED-LICENSE-COUNT; - int errorCode = 1; - char errorMsg[512]; - // Set the license count you purchased - SetMaxConcurrentInstanceCount(licenseCount); - errorCode = CLicenseManager::InitLicense("YOUR-LICENSE-KEY", errorMsg, 512); - if (errorCode != EC_OK) - cout << "License initialization error: " << errorMsg << endl; - CCaptureVisionRouter *cvRouter = new CCaptureVisionRouter; - // Update parameter maxParallelTasks - SimplifiedCaptureVisionSettings setting; - cvRouter->GetSimplifiedSettings(CPresetTemplate::PT_READ_BARCODES, &setting); - setting.maxParallelTasks = licenseCount; - cvRouter->UpdateSettings(CPresetTemplate::PT_READ_BARCODES, &setting); - // add further process - // CCapturedResult *result = cvRouter->Capture("IMAGE-FILE", CPresetTemplate::PT_READ_BARCODES); -``` -> -```csharp - int licenseCount = YOUR-PURCHASED-LICENSE-COUNT; - int errorCode = 0; - string errorMsg; - errorCode = LicenseManager.InitLicense("YOUR-LICENSE-KEY", out errorMsg); - LicenseManager.SetMaxConcurrentInstanceCount(licenseCount) - if (errorCode != (int)EnumErrorCode.EC_OK && errorCode != (int)EnumErrorCode.EC_LICENSE_CACHE_USED) - { - Console.WriteLine("License initialization error: " + errorMsg); - } - else - { - CaptureVisionRouter cvRouter = new CaptureVisionRouter(); - SimplifiedCaptureVisionSettings settings; - cvRouter.GetSimplifiedSettings(PresetTemplate.PT_READ_BARCODES, out settings); - setting.maxParallelTasks = licenseCount; - cvRouter.UpdateSettings(PresetTemplate.PT_READ_BARCODES, settings, out errorMsg); - // add code for further process - // CapturedResult result = cvRouter.Capture("IMAGE-FILE", PresetTemplate.PT_READ_BARCODES); - } -``` -> -```python -license_count = YOUR-PURCHASED-LICENSE-COUNT -LicenseManager.set_max_concurrent_instance_count(license_count) -error_code, error_msg = LicenseManager.init_license("YOUR-LICENSE-KEY") -if error_code != EnumErrorCode.EC_OK and error_code != EnumErrorCode.EC_LICENSE_CACHE_USED: - print("License initialization error: " + error_msg) -else: - cvr_instance = CaptureVisionRouter() - error_code, error_msg, settings = cvr_instance.get_simplified_settings(EnumPresetTemplate.PT_READ_BARCODES) - settings.max_parallel_tasks = license_count - error_code, error_msg = cvr_instance.update_settings(EnumPresetTemplate.PT_READ_BARCODES, settings) - # add code for further process - # result_array = cvr_instance.capture_multi_pages("IMAGE-FILE", EnumPresetTemplate.PT_READ_BARCODES) -``` - -## Managing Instance Limits and Parallel Tasks on a Device - -Sometimes, a device may encounter an error indicating that the instance count has exceeded the permitted limit. This typically occurs when the total number of concurrently used instances surpasses the maximum number allowed for the device, either due to over-requesting instances or initiating more parallel decoding tasks than permitted. - -### About `SetMaxConcurrentInstanceCount` - -The `SetMaxConcurrentInstanceCount` function is used to **declare the maximum number of instances a device is allowed to use**. This count is **managed per device**, not per program. - -- If multiple programs are running on the same device and each calls `SetMaxConcurrentInstanceCount`, the device will be allocated **the highest value** among the calls, **not the sum**. - -- If `SetMaxConcurrentInstanceCount` is **not called**, the device will by default request **only one instance**, not the full number available from the purchased license quantity. - -### About `MaxParallelTasks` - -The `MaxParallelTasks` setting defines how many decoding tasks can run in parallel within a single `CaptureVisionRouter` instance. It controls the level of concurrency during barcode processing. - -- Each `CaptureVisionRouter` instance will open up to `MaxParallelTasks` decoding tasks simultaneously. -- By default, if `MaxParallelTasks` is **not set, 4 parallel tasks** will be opened. - -### How Instance Usage Is Calculated - -The actual instance usage on a device is calculated using the following formula: - -```text -Total Instance Usage = Number of concurrent programs × -Number of CaptureVisionRouter instances per program × -MaxParallelTasks per CaptureVisionRouter instance -``` -For example, if two programs are running on the same device, and each creates 2 `CaptureVisionRouter` instances with `MaxParallelTasks = 4`, then the total instance usage is: - -`2 programs × 2 instances × 4 tasks = 16 instances` - -### When Will an Error Occur? - -An error will be thrown if the total instance usage on the device exceeds the maximum instance count declared via `SetMaxConcurrentInstanceCount`. This can happen in the following scenarios: - -- The device tries to open more decoding tasks (via `MaxParallelTasks`) than the number of instances allowed. -- Multiple programs together consume more instances than what the device was granted. - ->Example: ->Program A calls `SetMaxConcurrentInstanceCount(10)` and Program B calls `SetMaxConcurrentInstanceCount(5)`. The device will be allowed to use up to **10 instances**. ->If Program A uses `MaxParallelTasks = 6` and Program B uses `MaxParallelTasks = 5`, and both have only one `CaptureVisionRouter` instance, the total becomes `6 + 5 = 11` which exceeds the limit of 10, causing an error. - -### Best Practices - -- Always call `SetMaxConcurrentInstanceCount` early to explicitly declare your instance needs. -- Avoid exceeding the limit by carefully managing how many `CaptureVisionRouter` instances and `MaxParallelTasks` for each instance are being used across all running programs on a device. -- Monitor actual usage during development to avoid runtime errors in production. \ No newline at end of file diff --git a/faq/general/error-10022-the-PDF-DLL-is-missing.md b/faq/general/error-10022-the-PDF-DLL-is-missing.md deleted file mode 100644 index 02542c89..00000000 --- a/faq/general/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/faq/general/error-debug.md b/faq/general/error-debug.md deleted file mode 100644 index 07f2efdd..00000000 --- a/faq/general/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/faq/general/error-license-buffer.md b/faq/general/error-license-buffer.md deleted file mode 100644 index d2af9fcc..00000000 --- a/faq/general/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/faq/general/expand-quota-for-runtime-license.md b/faq/general/expand-quota-for-runtime-license.md deleted file mode 100644 index c971f0c1..00000000 --- a/faq/general/expand-quota-for-runtime-license.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: default-layout -title: How to expand the quota of a runtime license? -keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, General, expand quota -description: How to expand the quota of a runtime license? -needAutoGenerateSidebar: false -permalink: /faq/general/expand-quota-for-runtime-license.html ---- - -## How to expand the quota of a runtime license? - -[<< Back to FAQ index](index.md) - -The quota of a runtime license can indeed be expanded before the expiration of the license. This can be done in a couple of ways. - -- By accessing the license page in the [customer portal](https://www.dynamsoft.com/customer/license/fullLicense), under the `Manage License` operation, one of the options include `Add Quota`. This leads the user to a checkout page confirming the extra quantity that they want to add (by default they will be adding the same quantity that they originally bought, which can be multiplied by the `Quantity` number. After confirming the customer details and payment info, the order will be processed for the quota expansion. - -- You can contact the [Dynamsoft support team](https://www.dynamsoft.com/contact/) and ask for a quote for this expansion. The quote can then be paid by the customer in order to get processed right away. Alternatively, the customer can send the team a signed PO based on this quote, and the order will be processed and the unpaid invoice sent to the customer for payment. diff --git a/faq/general/formats-supported-for-existing-files.md b/faq/general/formats-supported-for-existing-files.md deleted file mode 100644 index 8890eb69..00000000 --- a/faq/general/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/faq/general/general-troubleshooting-steps-for-decode-failure.md b/faq/general/general-troubleshooting-steps-for-decode-failure.md deleted file mode 100644 index f2e33318..00000000 --- a/faq/general/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/faq/general/general.md b/faq/general/general.md deleted file mode 100644 index 9fb9ed30..00000000 --- a/faq/general/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/faq/general/get-intermediate-result-images.md b/faq/general/get-intermediate-result-images.md deleted file mode 100644 index 2211fa65..00000000 --- a/faq/general/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/faq/general/get-sdk-logs.md b/faq/general/get-sdk-logs.md deleted file mode 100644 index c07c3635..00000000 --- a/faq/general/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/faq/general/hide-laser-message-ui.md b/faq/general/hide-laser-message-ui.md deleted file mode 100644 index 0fadb614..00000000 --- a/faq/general/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/faq/general/how-hardware-is-bind-to-license.md b/faq/general/how-hardware-is-bind-to-license.md deleted file mode 100644 index 3f6b51fb..00000000 --- a/faq/general/how-hardware-is-bind-to-license.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: What I need to know about licensing process? -keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, General, information gathered, hardware bind, new license consumption -description: What I need to know about licensing process? -needAutoGenerateSidebar: false -permalink: /faq/general/how-hardware-is-bind-to-license.html ---- - -## What I need to know about licensing process? - -[<< Back to FAQ index](index.md) - -- When devices are registered, they get a UUID that is generated based on some hardware and OS info. The exact breakdown of what is collected when using the mobile edition or server/desktop edition is mentioned [here](https://www.dynamsoft.com/license-server/docs/about/terms.html#generate-a-uuid). -- Should the user change the OS (upgrade/downgrade), then the same device will take up a new license since the UUID that is generated for the device after the change will be different. diff --git a/faq/general/how-license-tracking-works.md b/faq/general/how-license-tracking-works.md deleted file mode 100644 index 5d46fffe..00000000 --- a/faq/general/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/faq/general/how-to-enable-dpm.md b/faq/general/how-to-enable-dpm.md deleted file mode 100644 index 86699122..00000000 --- a/faq/general/how-to-enable-dpm.md +++ /dev/null @@ -1,43 +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 -permalink: /faq/general/how-to-enable-dpm.html ---- - -## How to enable DPM? - -[<< Back to FAQ index](index.md) - -To enable DPM, assign the `DPMCRM_GENERAL` enumeration to the `DPMCodeReadingModes` array. - -You can use [OutputSettingsToFile](https://www.dynamsoft.com/capture-vision/docs/server/programming/cplusplus/api-reference/capture-vision-router/settings.html?product=dbr&repoType=server#outputsettingstofile) to save the current runtime settings into a JSON file: -```cpp -int OutputSettingsToFile(const char* templateName, const char* filePath) -``` - - Here is a JSON snippet for enabling DPM, update it in your output template: - -```json - "BarcodeReaderTaskSettingOptions" : - [ - { - "DPMCodeReadingModes" : - [ - { - "Mode" : "DPMCRM_GENERAL" - } - ] - } - ] -``` - -Once the JSON string is set, you can initialize the runtime settings to use it via the [InitSettingsFromFile](https://www.dynamsoft.com/capture-vision/docs/server/programming/cplusplus/api-reference/capture-vision-router/settings.html?product=dbr&repoType=server#outputsettingstofile) to update your current runtime settings with your modified template: -```cpp -int InitSettingsFromFile(const char* filePath, char errorMsgBuffer[]=NULL, const int errorMsgBufferLen=0) -``` - -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/faq/general/how-to-enable-qr-model-one.md b/faq/general/how-to-enable-qr-model-one.md deleted file mode 100644 index a75e6ce9..00000000 --- a/faq/general/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/faq/general/index.md b/faq/general/index.md deleted file mode 100644 index 99641a70..00000000 --- a/faq/general/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/faq/general/ios-16-incompatible.md b/faq/general/ios-16-incompatible.md deleted file mode 100644 index 3ec94ac4..00000000 --- a/faq/general/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/faq/general/ios-17-readability.md b/faq/general/ios-17-readability.md deleted file mode 100644 index 5fba46a5..00000000 --- a/faq/general/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/faq/general/is-https-required.md b/faq/general/is-https-required.md deleted file mode 100644 index 88141e03..00000000 --- a/faq/general/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/faq/general/javascript-sdk-offline-mode-use.md b/faq/general/javascript-sdk-offline-mode-use.md deleted file mode 100644 index 2bd6378b..00000000 --- a/faq/general/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/faq/general/license-usage.md b/faq/general/license-usage.md deleted file mode 100644 index df90250d..00000000 --- a/faq/general/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/faq/general/min-system-requirements.md b/faq/general/min-system-requirements.md deleted file mode 100644 index 09472cdc..00000000 --- a/faq/general/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/faq/general/multi-platform.md b/faq/general/multi-platform.md deleted file mode 100644 index b509b226..00000000 --- a/faq/general/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/faq/general/new-license-required-per-device-licensing.md b/faq/general/new-license-required-per-device-licensing.md deleted file mode 100644 index 62efa916..00000000 --- a/faq/general/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/faq/general/newline-character-not-being-rendered.md b/faq/general/newline-character-not-being-rendered.md deleted file mode 100644 index 1b7904b5..00000000 --- a/faq/general/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/faq/general/no-camera-enhancer.md b/faq/general/no-camera-enhancer.md deleted file mode 100644 index bc4c820b..00000000 --- a/faq/general/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/faq/general/nodejs-implementation.md b/faq/general/nodejs-implementation.md deleted file mode 100644 index 6fb15a48..00000000 --- a/faq/general/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/faq/general/non-english-characters.md b/faq/general/non-english-characters.md deleted file mode 100644 index fe8ce3b5..00000000 --- a/faq/general/non-english-characters.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: What I can do when barcode image returnes messy (non-english) characters? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, messy characters, non-English characters -description: What I can do when barcode image returnes messy (non-english) characters? -needAutoGenerateSidebar: false -permalink: /faq/general/non-english-characters.html ---- - -## What I can do when barcode image returnes messy (non-english) characters? - -[<< 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 [`getBytes`](https://www.dynamsoft.com/barcode-reader/docs/server/programming/cplusplus/api-reference/barcode-result-item.html#getbytes) of the CBarcodeResultItem. 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/faq/general/offline-registration-license.md b/faq/general/offline-registration-license.md deleted file mode 100644 index d1741683..00000000 --- a/faq/general/offline-registration-license.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -layout: default-layout -title: How to use offline registration license type? -keywords: Dynamsoft Barcode Reader, FAQ, offline, license type -description: How to use offline registration license type? -needAutoGenerateSidebar: false -permalink: /faq/general/offline-registration-license.html ---- - -## How to use offline registration license type? - -[<< Back to FAQ index](index.md) - - -You can follow the steps below to manually register the device and get the license key for each device: - -1. Log in [Customer Portal](https://www.dynamsoft.com/customer/license/fullLicense) -> Click the Activate button to activate the license -![activate](./assets/activate.jpg) - - -2. Select the 3rd option "No License Server. Register Offline Device(s) Manually" and click Activate. -![offline-activate](./assets/offline-activate.jpg) - -3. Click the Add Device button then it will pop up a dialog. Download the tool from the pop up. -![uuid-tool](./assets/uuid-tool.jpg) - -4. Unzip the file and run the GenerateUUID tool on the device to be registered and get the UUID.
- -For Windows:
--Open Command Prompt (cmd.exe)
--Change the working directory to the one where GenerateUUID.exe is
--Run the command `GenerateUUID.exe`
-The returned string, e.g. 8ECCA3B6-66F9-4fd6-B6B6-308C874140C6, is the machine ID.
-![uuid](./assets/uuid.jpg)
- - -For Linux:
--Open Terminal
--Change the working directory to the one where GenerateUUID.exe is
--Run the command ` sudo chmod 777 GenerateUUID`
--After inputting the password, run `./GenerateUUID`
- -You will see the generated UUID like this (the ID should be different)
-SoftbindUUID:230e089a-7dc3-4caa-9c77-f7cc6d567f9b
-"230e089a-7dc3-4caa-9c77-f7cc6d567f9b" is the generated UUID. You can now use it to register the device and get an Authorization String for it.
- -> Note: If your device is an arm based architecture, please use get device uuid API to generate the uuid: -> ```python -> # sample code in python -> print(BarcodeReader.get_device_uuid(1)) -> ``` - -> Note: If you want multiple users in operating system to use the license, you will need to move the .Dynamsoft folder to a path where all the users can access. Let us say `/Home/shared/.Dynamsoft`. -> For all the programs in the devices, you will need to set the license cache path to `/Home/shared` before initialize the license -> ```python -> # set license cache path before initialize the license -> BarcodeReader.set_license_cache_path("/Home/shared") -> ``` - - -5. Input the generated UUID and device name and click Submit. -![submit-uuid](./assets/submit-uuid.jpg) - -6. Then an authorization string will be generated. This string is the license for this device. Copy the license and set it in the code -![cp-license](./assets/cp-license.jpg) - -Code snippet in JavaScript: -```javascript -Dynamsoft.DBR.BarcodeScanner.license = "DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…"; -let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance(); -``` - -Code snippet in C: -```C - char errorBuf[512]; - DBR_InitLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", errorBuf, 512); - void* barcodeReader = DBR_CreateInstance(); - // add further process -``` -Code snippet in C++ -```C++ - char errorBuf[512]; - dynamsoft::dbr::CBarcodeReader::InitLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL …", errorBuf, 512); - CBarcodeReader* reader = new CBarcodeReader(); - // add further process -``` -Code snippet in C#: -```C# -string errorMsg; - BarcodeReader.InitLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", out errorMsg); - BarcodeReader reader = new BarcodeReader(); - // add further process -``` -Code snippet in Java: -```Java - BarcodeReader.initLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…"); - BarcodeReader reader = new BarcodeReader(); - // add further process -``` -Code snippet in Python: -```Python -error = BarcodeReader.init_license("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…") -dbr = BarcodeReader() -``` -Code snippet in Android SDK: -```java -BarcodeReader.initLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", new DBRLicenseVerificationListener() { - @Override - public void DBRLicenseVerificationCallback(boolean isSuccessful, Exception e) { -// Add your code for license verification. - } -}); -``` -Code snippet in Objective-C: -```Objective-C -[DynamsoftBarcodeReader initLicense:@" DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…" verificationDelegate:self]; -- (void)DBRLicenseVerificationCallback:(bool)isSuccess error:(NSError *)error -{ - // Add your code for license verification. -} -``` -Code snippet in Swift: -```Swift -DynamsoftBarcodeReader.initLicense("DLC2+4LgkxoZik5yCuJxMDneqJPVQZJROL…", verificationDelegate: self) -func dbrLicenseVerificationCallback(_ isSuccess: Bool, error: Error?) -{ - // Add your code for license verification. -} -``` - - - diff --git a/faq/general/page-freeze.md b/faq/general/page-freeze.md deleted file mode 100644 index a51d42bb..00000000 --- a/faq/general/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/faq/general/pop-up-window-during-trail-process.md b/faq/general/pop-up-window-during-trail-process.md deleted file mode 100644 index 06a49400..00000000 --- a/faq/general/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/faq/general/proguard.md b/faq/general/proguard.md deleted file mode 100644 index db53dd1a..00000000 --- a/faq/general/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/faq/general/pros-and-cons-of-cdn.md b/faq/general/pros-and-cons-of-cdn.md deleted file mode 100644 index c2922e5c..00000000 --- a/faq/general/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/faq/general/purchase-concurrent-instance-license.md b/faq/general/purchase-concurrent-instance-license.md deleted file mode 100644 index 7e4bd96b..00000000 --- a/faq/general/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/faq/general/read-from-existing-files.md b/faq/general/read-from-existing-files.md deleted file mode 100644 index 79158da7..00000000 --- a/faq/general/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/faq/general/read-inverted-image.md b/faq/general/read-inverted-image.md deleted file mode 100644 index bc009aff..00000000 --- a/faq/general/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/faq/general/reduce-battery-consumption.md b/faq/general/reduce-battery-consumption.md deleted file mode 100644 index f47c5868..00000000 --- a/faq/general/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/faq/general/reduce-final-size.md b/faq/general/reduce-final-size.md deleted file mode 100644 index c1bb51cd..00000000 --- a/faq/general/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/faq/general/resolve-magic-word.md b/faq/general/resolve-magic-word.md deleted file mode 100644 index 45a90707..00000000 --- a/faq/general/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/faq/general/scan-specific-page.md b/faq/general/scan-specific-page.md deleted file mode 100644 index 3ccbd87e..00000000 --- a/faq/general/scan-specific-page.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: How to scan specific pages of a pdf file? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, scan specific page -description: How to scan specific pages of a pdf file? -needAutoGenerateSidebar: false -permalink: /faq/general/scan-specific-page.html ---- - -## How to scan specific pages of a pdf file? - -[<< Back to FAQ index](index.md) - -We are planning to add `Pages` parameter of the `ImageParameterOptions` Parameter. - -Currently you will need to manually filter out the extra results from the returned retults or you can convert the specific pages pdf file to single image files and then decode the images. diff --git a/faq/general/scan-us-drivers-license.md b/faq/general/scan-us-drivers-license.md deleted file mode 100644 index a163a3cd..00000000 --- a/faq/general/scan-us-drivers-license.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: default-layout -title: How to scan barcodes on US Driver's Licenses and extract the information? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, US driver's license -description: How to scan barcodes on US Driver's Licenses and extract the information? -needAutoGenerateSidebar: false -permalink: /faq/general/scan-us-drivers-license.html ---- - -## How to scan barcodes on US Driver's Licenses and extract the information? - -[<< Back to FAQ index](index.md) - -The SDK can indeed scan driver license barcodes and extract all the information that is encoded in the barcode. The best resources to reference in order to do this are the samples available: - -- [JavaScript edition (most popular use case)](https://github.com/Dynamsoft/dbr-browser-samples/blob/master/4.use-case/2.read-a-drivers-license.html) -- [iOS sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/v9.6.20/ios/Swift/Usecase/ReadADriversLicenseSwift/) -- [Android sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/v9.6.20/android/Java/Usecase/ReadADriversLicense/) diff --git a/faq/general/sdk-works-without-internet.md b/faq/general/sdk-works-without-internet.md deleted file mode 100644 index e5e512fd..00000000 --- a/faq/general/sdk-works-without-internet.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: Can the SDK work without internet connection? -keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, General, internet -description: Can the SDK work without internet connection? -needAutoGenerateSidebar: false -permalink: /faq/general/sdk-works-without-internet.html ---- - -## Can the SDK work without internet connection? - -[<< Back to FAQ index](index.md) - -The SDK can indeed be used without an internet connection. In order to use the SDK without an internet connection, it is best to use the Self Hosting option when it comes to setting up the Dynamsoft License Server once you obtain a full license. If the Dynamsoft Hosted option is chosen, an internet connection will be needed for the per barcode scan and various per device license types in order to connect to the license server and validate the license. - -- By using the Self Hosting option, the users will mainly just need an intranet connection in order to use the SDK since the server is hosted on the internal server(s) of the organization. - -- In some exclusive cases, Dynamsoft offers licenses that don't require a connection to any network, such as the per server and per domain licenses. Please contact the [Dynamsoft support team](https://www.dynamsoft.com/contact/) for more info on those options. - -- Full details are explained here: [Dynamsoft Licensing FAQ](https://www.dynamsoft.com/license-server/docs/about/licensefaq.html?ver=latest#can-i-use-dynamsoft-sdks-in-an-environment-with-no-internet-connection) diff --git a/faq/general/server-requirements-for-dbr-js-deployment.md b/faq/general/server-requirements-for-dbr-js-deployment.md deleted file mode 100644 index 2d7b0900..00000000 --- a/faq/general/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/faq/general/simulator-support.md b/faq/general/simulator-support.md deleted file mode 100644 index 623adb01..00000000 --- a/faq/general/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/faq/general/sort-barcodes-image.md b/faq/general/sort-barcodes-image.md deleted file mode 100644 index bf6c218f..00000000 --- a/faq/general/sort-barcodes-image.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default-layout -title: How can I sort the barcodes of my image in reading order? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, sorting, reading order -description: How can I sort the barcodes of my image in reading order? -needAutoGenerateSidebar: false -permalink: /faq/general/sort-barcodes-image.html ---- - -## How can I sort the barcodes of my image in reading order? - -When decoding a large image that contains a large number of barcodes (like a large batch of test vials in a medical lab), you will probably find that the order in which you get the results is not in a natural reading order. - -This is mainly due to the localization algorithms that the SDK utilizes in order to achieve a 100% read rate on the entire image and pick up all the barcodes. However, getting the barcodes back in reading order can be greatly helpful to your users and can be used to offer a nice visual representation of the recognized barcodes and help easily identify which barcode(s) did not get read. - -Our team created the following [article](https://www.dynamsoft.com/codepool/sort-multiple-barcodes-in-reading-order.html?utm_medium=social&utm_campaign=Codepool2023) which details how you can sort the barcode results in reading order. Please note that the article mainly deals with JavaScript code, but the same principles can be applied to other editions of the Barcode Reader SDK. \ No newline at end of file diff --git a/faq/general/stop-camera-to-open-right-away.md b/faq/general/stop-camera-to-open-right-away.md deleted file mode 100644 index f0a41470..00000000 --- a/faq/general/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/faq/general/supported-barcode-formats.md b/faq/general/supported-barcode-formats.md deleted file mode 100644 index e7bfe0ec..00000000 --- a/faq/general/supported-barcode-formats.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default-layout -title: What barcode types are supported by Dynamsoft Barcode Reader? -keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, formats -description: What barcode types are supported by Dynamsoft Barcode Reader? -needAutoGenerateSidebar: false -permalink: /faq/general/supported-barcode-formats.html ---- - -## What barcode types are supported by Dynamsoft Barcode Reader? - -[<< Back to FAQ index](index.md) - -The full list of supported barcode formats can be found [here](https://www.dynamsoft.com/barcode-reader/docs/core/introduction/?ver=latest#supported-barcode-formats). diff --git a/faq/general/template-support.md b/faq/general/template-support.md deleted file mode 100644 index d4274637..00000000 --- a/faq/general/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/faq/general/track-license.md b/faq/general/track-license.md deleted file mode 100644 index 53b18fbc..00000000 --- a/faq/general/track-license.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: How to track the number of devices? -keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, General, track license -description: How to track the number of devices? -needAutoGenerateSidebar: false -permalink: faq/general/track-license.html ---- - -## How to track the number of devices? - -[<< Back to FAQ index](index.md) - -The Dynamsoft License Server (Dynamsoft hosted or self-hosted) is able to keep a track of the number of devices in different ways, depending on the edition of the SDK. - -- On the browser (JS Edition), a device is counted as a specific browser on that device. This license gets cached in the indexedDB of the browser. If another browser is used, or the indexedDB is cleared, then a new license seat is taken up by the same device. -- With other editions of the SDK, a local license is assigned to the device that is identified by a UUID, which is unique to each device. diff --git a/faq/general/troubleshooting-failed-image.md b/faq/general/troubleshooting-failed-image.md deleted file mode 100644 index 5bc2d204..00000000 --- a/faq/general/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/faq/general/unable-to-scan-aztec-code.md b/faq/general/unable-to-scan-aztec-code.md deleted file mode 100644 index f745c5c5..00000000 --- a/faq/general/unable-to-scan-aztec-code.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: Why am I unable to scan an Aztec code in the helloworld sample? -keywords: Dynamsoft Barcode Reader, FAQ, tech basic, hello world sample, aztec code -description: Why am I unable to scan an Aztec code in the helloworld sample? -needAutoGenerateSidebar: false ---- - -# Why am I unable to scan an Aztec code in the helloworld sample? - -[<< Back to FAQ index](index.md) - -The reason for this is that the JavaScript edition defaults to the `compact engine`, rather than the `full engine`. The compact engine currently only supports `1D`, `QR`, `PDF417`, and `DataMatrix` codes. - -To switch to the full engine, please call the following before creating the `BarcodeReader/BarcodeScanner` instance: - -```javascript -Dynamsoft.DBR.BarcodeScanner._bUseFullFeature = true; -``` diff --git a/faq/general/unprintable-character.md b/faq/general/unprintable-character.md deleted file mode 100644 index 2be7dfb9..00000000 --- a/faq/general/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/faq/general/upgrade-old-to-new.md b/faq/general/upgrade-old-to-new.md deleted file mode 100644 index 49cf4f18..00000000 --- a/faq/general/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/faq/general/use-of-onFrameRead-and-onUnduplicateRead.md b/faq/general/use-of-onFrameRead-and-onUnduplicateRead.md deleted file mode 100644 index 3ec43a4e..00000000 --- a/faq/general/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. diff --git a/faq/general/ways-to-copy-dbr-js-deployable-files.md b/faq/general/ways-to-copy-dbr-js-deployable-files.md deleted file mode 100644 index ab6d27df..00000000 --- a/faq/general/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/faq/general/what-happens-if-license-expires.md b/faq/general/what-happens-if-license-expires.md deleted file mode 100644 index 1799d70e..00000000 --- a/faq/general/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/faq/general/what-is-dbr.md b/faq/general/what-is-dbr.md deleted file mode 100644 index 6bf83215..00000000 --- a/faq/general/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/faq/general/when-singleFrameMode-is-enabled.md b/faq/general/when-singleFrameMode-is-enabled.md deleted file mode 100644 index d54699fa..00000000 --- a/faq/general/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/license-activation/index.md b/license-activation/index.md index c031f978..549906c2 100644 --- a/license-activation/index.md +++ b/license-activation/index.md @@ -38,11 +38,13 @@ The following shows how to set the license in the code. > > ```js -// Option 1: Initialize using the RTU (Ready-To-Use) BarcodeScanner APIs +// Option 1: Set the license when using the RTU (Ready-To-Use) class `BarcodeScanner`. +// Note: The license initialization is deferred until `launch()` is called. const barcodeScanner = new Dynamsoft.BarcodeScanner({ license: "YOUR_LICENSE_KEY", }); -// Option 2: Initialize the license using the Foundational APIs +// Option 2: Set the license when using the Foundational API. +// Note: The license initialization is also deferred. Dynamsoft.License.LicenseManager.initLicense("YOUR_LICENSE_KEY"); ``` > diff --git a/parameters/assets/hierarchy-modes-mode-argument.png b/parameters/assets/hierarchy-modes-mode-argument.png deleted file mode 100644 index 1e04318f..00000000 Binary files a/parameters/assets/hierarchy-modes-mode-argument.png and /dev/null differ diff --git a/parameters/assets/leftRightRegions.png b/parameters/assets/leftRightRegions.png deleted file mode 100644 index e78ce6ae..00000000 Binary files a/parameters/assets/leftRightRegions.png and /dev/null differ diff --git a/parameters/assets/regionPercentagesTotal.png b/parameters/assets/regionPercentagesTotal.png deleted file mode 100644 index 359c7658..00000000 Binary files a/parameters/assets/regionPercentagesTotal.png and /dev/null differ diff --git a/parameters/assets/topBottomRegions.png b/parameters/assets/topBottomRegions.png deleted file mode 100644 index 67d86148..00000000 Binary files a/parameters/assets/topBottomRegions.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/binarized-qrcode.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/binarized-qrcode.png deleted file mode 100644 index f59d4dc6..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/binarized-qrcode.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode-contours.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode-contours.png deleted file mode 100644 index 78d48fca..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode-contours.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode-lines.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode-lines.png deleted file mode 100644 index 6d421631..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode-lines.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode.png deleted file mode 100644 index 18721b47..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/contaminated-barcode.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/dotcode.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/dotcode.png deleted file mode 100644 index dbcd1f83..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/dotcode.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode-contours.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode-contours.png deleted file mode 100644 index ceda6cae..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode-contours.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode-lines.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode-lines.png deleted file mode 100644 index e613360c..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode-lines.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode.png deleted file mode 100644 index 296e742c..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/original-barcode.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/postalcode.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/postalcode.png deleted file mode 100644 index 6c358612..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/postalcode.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/how-to-set-localization-modes/small-qrcode.png b/parameters/scenario-settings/assets/how-to-set-localization-modes/small-qrcode.png deleted file mode 100644 index ff5bb60c..00000000 Binary files a/parameters/scenario-settings/assets/how-to-set-localization-modes/small-qrcode.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/recognise-accompanying-text/accompanying-text-card.png b/parameters/scenario-settings/assets/recognise-accompanying-text/accompanying-text-card.png deleted file mode 100644 index 89fa72ef..00000000 Binary files a/parameters/scenario-settings/assets/recognise-accompanying-text/accompanying-text-card.png and /dev/null differ diff --git a/parameters/scenario-settings/assets/recognise-accompanying-text/standard-accompanying-text.png b/parameters/scenario-settings/assets/recognise-accompanying-text/standard-accompanying-text.png deleted file mode 100644 index f846c62e..00000000 Binary files a/parameters/scenario-settings/assets/recognise-accompanying-text/standard-accompanying-text.png and /dev/null differ diff --git a/parameters/scenario-settings/deblur-level.md b/parameters/scenario-settings/deblur-level.md deleted file mode 100644 index 3eaf2d87..00000000 --- a/parameters/scenario-settings/deblur-level.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: default-layout -description: How to configure DeblurLevel -title: How to configure DeblurLevel -keywords: deblur level -needAutoGenerateSidebar: false -permalink: /parameters/scenario-settings/deblur-level.html ---- - -# How to configure DeblurLevel - -In this part, we will introduce the parameter that specifies the attempt level of sampling decoding - [`DeblurLevel`]({{ site.parameters_reference }}deblur-level.html). There are a variety of approaches in DBR algorithm for sample decoding. The DeblurLevel can be set to a range of 0 to 9. The larger the value, the more preprocessing modes the DBR algorithm can apply for decoding, the more likely it is to extract the barcode value, and the slower it will be if the decoding fails. Users could adjust the value based on their actual situation. - -You could configure the DeblurLevel in RuntimeSetting: - -```cpp -CBarcodeReader * reader = new CBarcodeReader(); -reader->InitLicense("Input your License"); -char error[512]; -PublicRuntimeSettings *settings = new PublicRuntimeSettings(); -read->GetRuntimeSettings(settings); //Load current RuntimeSettings -settings->deblurLevel = 9; //Configure deblurLevel -reader->UpdateRunTimeSettings(settings); //Update RuntimeSettings -ret = reader->DecodeFile("Input file path",""); //Decoding -TextResultArray *pResults = NULL; -Reader->GetAllTextResults(&pResults); //Get result -dynamsoft::dbr::CBarcodeReader::FreeTextResults(&pResults); -delete reader; -delete settings; -``` - -You could also configure the parameter by loading JSON template. - -```javascript -{ - "Version":"3.0", - "ImageParameter": - { - "Name":"IP1", - "BarcodeFormatIds":["BF_ALL"], - "DeblurLevel":9 - } -} -``` - - - diff --git a/parameters/scenario-settings/how-to-set-localization-modes.md b/parameters/scenario-settings/how-to-set-localization-modes.md deleted file mode 100644 index ebdd9bc4..00000000 --- a/parameters/scenario-settings/how-to-set-localization-modes.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -layout: default-layout -description: This article introduces how to use different localization modes to obtain the best barcode localization results for further decoding. -title: How to use different localization modes -keywords: localization, barcode area -needAutoGenerateSidebar: false -permalink: /parameters/scenario-settings/how-to-set-localization-modes.html ---- - -# How to Use Different Localization Modes - -DBR provides a few localization modes to localize the barcode area. This article will introduce how to select the appropriate localization mode in different scenarios to obtain the best barcode localization results for further decoding. - -## LM_CONNECTED_BLOCKS - -Localizes barcodes by searching for connected blocks. This is optimized for clear images with obvious connected blocks, as shown below: - -![original-barcode][1] - -The image has clear connected blocks, which are highlighted below: - -![original-barcode-contours][5] - -## LM_LINES - -Localizes barcodes by searching for groups of lines. It is optimized for images with obvious straight lines. Compared with the LM_CONNECTED_BLOCKS mode, it can handle the situation where some bars (or lines) of the barcode stick to each other. - -As shown in the image below, the connected blocks are destroyed because of the existence of two extra lines, which cannot be found by using LM_CONNECTED_BLOCKS. - -![contaminated-barcode][2] - -But it still has obvious straight line characteristics, as shown in the image below. In this case, using LM_LINES is able to localize the barcode. - -![contaminated-barcode-lines][7] - -## LM_STATISTICS - -Localizes barcodes based on colour statistics. This mode is suitable for scenarios where the barcode area is severely damaged. For example, the original image is very large but the barcode area is small, so the barcode area may be severely damaged after image binarization, as shown in the image below: - -small-qrcode - -After binarization, the position patterns is damaged, as shown below: - -![contaminated-barcode-lines][9] - -There are obvious black and white contrast near the barcode area, so the barcode can be successfully localized using LM_STATISTICS mode. - -## LM_SCAN_DIRECTLY - -Localizes barcodes based on the direct scanning mode. It is the fastest among all localization modes, but it requires high barcode image quality, and the direction of the barcode must be horizontal or vertical. This mode is recommended in the real-time video scanning scenarios. - -There are two additional argument parameters ScanStride and ScanDirection in this mode: - -- ScanStride - - Sets the interval between adjacent scan lines. The unit is pixel. The default value is 0, which means that DBR automatically calculates the interval. The smaller the value is, the more likely it is to locate the code area, but it will also increase the time. - -- ScanDirection - - Sets the scan direction, the allowed values are 0, 1, 2. The default value is 0, which means scanning in both horizontal and vertical directions. 1 means scanning only in the vertical direction, and 2 means scanning only in the horizontal direction. Setting the appropriate scanning direction can decrease the processing speed. - -## LM_STATISTICS_MARKS - -Localizes barcodes by dot matrix information. This mode is only applicable to DPM Code and DotCode. Below is a sample image of DotCode: - -![dotcode][3] - -## LM_STATISTICS_POSTAL_CODE - -Localizes barcodes by statistics, connected blocks and straight lines. This mode is only applicable to Postal Code. Below is a sample image of Postal Code: - -![postalcode][4] - -## LM_CENTRE - -Localizes barcodes from centre. This mode uses the central area of the image as the suspected code area and then try to localize and decode. - -## Use intermediate results to obtain the localization result - -If DBR successfully localizes the barcode zone, you can use the intermediate result IRT_TYPED_BARCODE_ZONE to obtain the localization result. The localization result includes "angle" (the angle of the barcode zone), "barcodeFormat" (barcode format), "confidence" (the confidence value of the barcode zone), "moduleSize" (barcode module size), "pageNumber" (0-based page number), "terminatePhase" (terminate phase), "x1y1x2y2x3y3x4y4" (the coordinates of the barcode zone). - -## Example - -Code snippet in C++: - -```cpp - char sError[512]; - CBarcodeReader* reader = new CBarcodeReader(); - reader->InitLicense("Insert your license here"); - PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings(); - reader->GetRuntimeSettings(runtimeSettings); // Get the current runtime settings - runtimeSettings->localizationModes[0] = LM_LINES; // Only use LM_LINES as the localization mode - runtimeSettings->localizationModes[1] = LM_SKIP; - runtimeSettings->localizationModes[2] = LM_SKIP; - runtimeSettings->localizationModes[3] = LM_SKIP; - reader->UpdateRuntimeSettings(runtimeSettings); - reader->DecodeFile("Insert the image file path here", "");// Start decoding - TextResultArray* result = NULL; - reader->GetAllTextResults(&result); // Get results - int icount = result->resultsCount; - dynamsoft::dbr::CBarcodeReader::FreeTextResults(&result); - delete runtimeSettings; - delete reader; -``` - -Example JSON template: - -```json -{ - "ImageParameter": { - "Name": "ImageParameter1", - "Description": "This is LocalizationMode demonstrate", - "LocalizationModes":[ - { - "Mode":"LM_CONNECTED_BLOCKS" - }, - { - "Mode":"LM_SCAN_DIRECTLY", - "ScanStride":0, - "ScanDirection":0 - }, - { - "Mode":"LM_STATISTICS" - }, - { - "Mode":"LM_LINES" - } - ], - "DeblurLevel":9 - }, - "Version": "3.0" -} -``` - - - - -[1]:assets\how-to-set-localization-modes\original-barcode.png - -[2]:assets\how-to-set-localization-modes\contaminated-barcode.png - -[3]:assets\how-to-set-localization-modes\dotcode.png - -[4]:assets\how-to-set-localization-modes\postalcode.png - -[5]:assets\how-to-set-localization-modes\original-barcode-contours.png - -[6]:assets\how-to-set-localization-modes\contaminated-barcode-contours.png - -[7]:assets\how-to-set-localization-modes\contaminated-barcode-lines.png - -[8]:assets\how-to-set-localization-modes\original-barcode-lines.png - -[9]:assets\how-to-set-localization-modes\binarized-qrcode.png diff --git a/parameters/scenario-settings/index.md b/parameters/scenario-settings/index.md deleted file mode 100644 index cd80192f..00000000 --- a/parameters/scenario-settings/index.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -layout: default-layout -needAutoGenerateSidebar: true -title: How to select the appropriate DBR parameter configuration -description: This article shows how to select the appropriate DBR parameter configuration. -breadcrumbText: Parameter scenario-settings -permalink: /parameters/scenario-settings/ ---- - -# How to set appropriate DBR parameter configurations - -Dynamsoft Barcode Reader (DBR) offers flexible parameters to meet the decoding requirements of different scenario-settings and requirements. Here you can learn how to choose the appropriate parameter configurations for your project. - -- [DBR Parameter Configuration Methods](#dbr-parameter-configuration-methods) -- [DBR Barcode Format and Expected Barcode Counts](#dbr-barcode-format-and-expected-barcode-counts) -- [DBR Algorithm Flow](#dbr-algorithm-flow) -- [Control Terminate Phase for DBR](#control-terminate-phase) -- [Configuration parameters for specific barcode formats](#configure-parameters-for-specific-barcode-formats) - -## DBR Parameter Configuration Methods - -DBR provides two parameter configuration methods: `RuntimeSetting` and JSON template. - -For more information, please refer to this article: [How to set DBR parameters](how-to-set-parameters.md). - -## DBR Barcode Format and Expected Barcode Counts - -It is common that you may want to specify Barcode Format and Expected Barcode Counts for the scanning process. - -For more information, please refer to: [How to set the barcode format and the number of barcodes expected to be detected](barcode-format-and-expected-barcode-counts.md). - -## DBR Algorithm Flow - -Understanding the general flow of the DBR algorithm can help you better choose the appropriate parameters for your project. The general processing process of DBR for images consists the below: - -- [Determine Regions Of Interest (ROI) in the image](#determine-the-region-of-interest-in-the-image) -- [Barcode region localization in ROI(s)](#barcode-region-localization-in-roi) -- [Identify the type of located barcode](#identify-the-type-of-located-barcode-region) -- [Decode located barcodes](#decode-located-barcode-region) -- [Return results](#return-results) - -### Determine the Region Of Interest in the image - -Region Of Interest (ROI) in an image usually refers to the characteristic area of the image that contains the barcode region that you care about. This step involves the following: - -- Get raw image data -For more information, please refer to this article: [How to read images from different sources](read-from-diff-source.md) and [How to process multi-page TIF & PDF](multipage-imgs-and-pdf.md). -- Image scale and colour conversion -For more information, please refer to this article: [How to set image scaling and colour transformation](image-scale-and-colour-conversion.md). -- Detect ROI -For more information, please refer to this article: [Manually define Region Of Interest](manually-define-region-of-interest.md) and - [How to use region pre-detection](how-to-use-region-predetection.md). - -### Barcode Region Localization in ROI - -This part is to locate the barcode region in ROI. Main steps: - -- Grayscale Pre-processing -Learn more: [How to preprocess images based on different scenario-settings](image-preprocessing.md). -- Grayscale Binarization -Learn more: [How to configure the binarization parameters](how-to-set-binarization-modes.md). -- Texture Detection -Learn more: [How to deal with image textures](texture-detection.md). -- Text Filter -Learn more: [How to filter text](text-filter.md). -- Localization -Learn more: [How to set localization modes](how-to-set-localization-modes.md). - -### Identify the type of located barcode region - -This step will identify and standardize the type of located Barcode Region, including the following steps: - -- Find the exact boundary of barcode region -- Barcode region standardization -- In the process of barcode region standardization, the barcode region that is too small may be enlarged. For more information, please refer to this article: [How to read barcodes with small module size](how-to-set-scaleup-modes.md). - -### Decode Located Barcode Region - -This part includes the following steps: - -- Resist Deformation -Read more: [How to deal with deformed barcodes](resist-deformation.md). -- Barcode Complementation -Read more: [How to decode incomplete barcodes](how-to-set-barcode-complement-modes.md). -- Sample Decoding -Sample decoding process mainly involves [Deblur Level](deblur-level.md) and [DPM Decoding](dpm-decoding.md). - -### Return Results - -DBR's returned results include the decoding results and intermediate results. -For more information, please refer to this article: [How to filter and sort decoding results](decode-result.md) and [How to obtain and use intermediate results](intermediate-result.md). - -## Control Terminate Phase - -Learn how to set timeout for decoding and also specify a certain stage to terminate the DBR algorithm. -For more information, please refer to this article: [How to control the Terminate Phase](terminate.md). - -## Configure parameters for specific barcode formats - -In addition to common configuration parameters, DBR also provides code-specific configuration parameters to meet the diverse user needs. -For more information, please refer to this article: [Configure parameters for specific barcode formats](format-specification.md). diff --git a/parameters/scenario-settings/multipage-imgs-and-pdf.md b/parameters/scenario-settings/multipage-imgs-and-pdf.md deleted file mode 100644 index 24d2e8b8..00000000 --- a/parameters/scenario-settings/multipage-imgs-and-pdf.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: default-layout -title: Scan Barcodes from PDF & multi-page TIF -description: This article describes how Dynamsoft's barcode SDK processes multi-page images, such as TIF and PDF. -keywords: tif, pdf, multi-page -needAutoGenerateSidebar: false -permalink: /parameters/scenario-settings/multipage-imgs-and-pdf.html ---- - -# Scan Barcodes from PDFs & multi-page TIFs - -For multi-page TIF and PDF files, DBR provides the parameter [`Pages`]({{ site.parameters_reference }}pages.html) to process them, [`PDFReadingMode`]({{ site.parameters_reference }}pdf-reading-mode.html) and [`PDFRasterDPI`]({{ site.parameters_reference }}pdf-raster-dpi.html) are used to handle PDF file specifically. - -## Specify the page number to be processed - -When DBR is processing multi-page files (TIF or PDF), you can use the parameter [`Pages`]({{ site.parameters_reference }}pages.html) to specify the specific page or range of pages to be processed. This parameter can be used to specify one or more page index values, starting from 0. The default value is "", which means all pages. - -[`Pages`]({{ site.parameters_reference }}pages.html)can be set by one or more of the following data, separated by commas: -- An integer index value, representing a specific page; -- Two integer index values, connected by "-" in the middle, representing a certain range of page numbers. - -[`Pages`]({{ site.parameters_reference }}pages.html) can only be configured in Json, for example, `{"Pages": "0,3,5,7-10"}`. - -In the returned decoding result of a certain barcode, you can get its corresponding page number (out of the entire document) via the `LocalizationResult`. Please refer to the following procedure: - -```c++ -BarcodeReader* reader = new CBarcodeReader(); -reader->InitLicense("Insert license"); -char sError[512]; -reader->DecodeFile("File path", ""); //decoding -TextResultArray* pResult = NULL; -reader->GetAllTextResults(&pResult); //get the decoded results -int iCount = pResult->resultsCount; -for(int j = 0; j < iCount; j++) //Loop through all returned results -{ - TextResult* pBarcode = pResults->results[j]; - LocalizationResult* pLocRes = pBarcode->localizationResult; - printf("pageNumber:%d\n", pLocRes->PageNumber); //get the page number in which the barcode is located -} -dynamsoft::dbr::CBarcodeReader::FreeTextResults(&pResult); -delete reader; -``` - -## Select PDFReadingMode - -The parameter [`PDFReadingMode`]({{ site.parameters_reference }}pdf-reading-mode.html) determines how to process PDF files. DBR provides two ways to read PDF data, `PDFRM_RASTER` and `PDFRM_VECTOR`. - -- `PDFRM_RASTER` -This method will render each page of the PDF as an image, which will be processed later. This reading mode can be used for all PDF files, but the drawback is that you need to choose the appropriate value of PDFRasterDPI to render the image. Otherwise, if the image is too large, the processing speed of DBR may be slowed, and if the image is too small, the barcode region may be distorted and cannot be decoded. - -- `PDFRM_VECTOR` -This method is specifically designed for PDF composed of vector data. This mode will not render PDF data into images, but directly extract PDF vector data for barcode region positioning and decoding. This mode can offer faster speed and higher accuracy, but it is only suitable for PDF composed of vector data. - -At the same time, we also provide `PDFRM_AUTO` mode, this mode will automatically choose the appropriate processing mode according to whether the PDF file has enough available vector data. - -## Select the appropriate PDFRasterDPI - -When using `PDFRM_RASTER`, we need to select an appropriate [`PDFRasterDPI`]({{ site.parameters_reference }}pdf-raster-dpi.html) to ensure that the rendered image has the right size. The higher the PDFRasterDPI, the higher the final resolution of the rendered image. A high-resolution image can ensure the image details are not distorted, which is helpful for DBR to correctly identify the barcode region but will make the processing speed slow at the same time. This section will clarify the calculation from PDFRasterDPI to the size of the rendered image. You can observe the rendered image based on the calculation method via the intermediate result `IRT_ORIGINAL_IMAGE` to decide how to adjust PDFRasterDPI. - -The resolution of the rendered image is calculated as follows: -Set PDF page height to h and page width to w, -Final rendered image height ImgHeight = h / 72 * PDFRasterDPI -Final rendered image width ImgWidth = w / 72 * PDFRasterDPI - -PDFRasterDPI is the number of pixels per inch of the image. -The page width and height unit defined in PDF is pt (length unit, 1 inch = 72 pt), so in the above formula we first divide the width and height by 72 to get the inch length of the page, and then multiply by PDFRasterDPI to get the final image pixel width and height. - -## Json Template - -In the following template, we configured PDFReadingMode to PDFRM_AUTO, PDFRasterDPI to 500, and Pages specified three Pages in index 1, 2, and 3. - -```json -{ - "ImageParameter": { - "BarcodeFormatIds": ["BF_ALL"], - "PDFRasterDPI": 500, - "PDFReadingMode": { - "Mode": "PDFRM_AUTO " - }, - "Pages": "1,2,3" - }, - "Version": "3.0" -} -``` - - - diff --git a/parameters/scenario-settings/recognise-accompanying-text.md b/parameters/scenario-settings/recognise-accompanying-text.md deleted file mode 100644 index b7de83a6..00000000 --- a/parameters/scenario-settings/recognise-accompanying-text.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -layout: default-layout -description: This article introduces how to recognize accompanying text. -title: How to recognize accompanying text -keywords: accompanyingText, OCR -needAutoGenerateSidebar: false -permalink: /parameters/scenario-settings/recognise-accompanying-text.html ---- - -# How to Recognize Accompanying Text - -In some scenarios, especially for 1D barcodes, a barcode can be accompanied by human readable text. This accompanying text might be useful for barcode value verification, or for further use in your application. Currently, DBR only supports the recognition of the accompanying text with 1D barcodes. - -DBR provides the [`AccompanyingTextRecognitionModes`]({{ site.parameters_reference }}accompanying-text-recognition-modes.html#accompanyingtextrecognitionmodes) parameter which allows you to recognize the accompanying text near the barcode. The parameter [`AccompanyingTextRecognitionModes`]({{ site.parameters_reference }}accompanying-text-recognition-modes.html#accompanyingtextrecognitionmodes) is an array of [`AccompanyingTextRecognitionMode`]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode) values. - -[`AccompanyingTextRecognitionMode`]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode) has the following enumeration values: - -| Enumeration Member | Enumeration Value | Description | -|:-----------:|:--------:|:--------------------:| -| ATRM_SKIP | 0x00 | Turn off accompanying text recognition | -| ATRM_GENERAL | 0x01 | Turn on accompanying text recognition | - -## The default searching area for accompanying text - -When [`AccompanyingTextRecognitionMode`]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode) is set to `ATRM_GENERAL`, the accompanying text recognition feature is enabled. By default, DBR uses the successfully decoded barcode as a reference, and tries to recognize possible accompanying text in close proximity around the barcode. - -The following is a sample image: - -![standard-acompanying-text][1] - -DBR is able to recognize the accompanying text marked by the red when accompanying text recognition is enabled. - -JSON template example: - -```json -{ - "ImageParameter": { - "Name": "ImageParameter1", - "Description": "This is acompanying text demonstrate", - "AccompanyingTextRecognitionModes":["ATRM_GENERAL"] - }, - "Version": "3.0" -} -``` -## Set a custom area for accompanying text - -In some scenarios, the accompanying text you need is not in the immediate vicinity of the barcode. You can set a custom area to search by using the successfully decoded barcode as a reference via `top`, `bottom`, `left` and `right` values. The unit is in percentage. - -Let's take the following image as an example. In this sample image, the information we would like to recognize is within the green box, but it is a relatively far from the barcode. We can specify a custom searching area (marked by the red box) by setting the following arguments: - -`RegionBottom = -150`, -`RegionLeft = -12`, -`RegionRight = 85`, -`RegionTop = -250` - -![a card image demo that has a customed acompanying text recognition range][3] - -Example JSON template: -```javascript -{ - "ImageParameter": { - "Name": "ImageParameter1", - "Description": "This is a acompanying text demonstrate", - "AccompanyingTextRecognitionModes":[ - { - "Mode" : "ATRM_GENERAL", - "RegionBottom" : -150, - "RegionLeft" : -12, - "RegionRight" : 85, - "RegionTop" : -250 - } - ] - }, - "Version": "3.0" -} -``` -## How to get the result of recognized accompanying text - -The result of the accompanying text is stored in the decoding result: [`ExtendedResult`]({{ site.structs }}ExtendedResult.html) -> type `RT_STANDARD_TEXT`. The following code snippet shows how to get the result of recognized accompanying text. - -```c++ -CBarcodeReader * reader = new CBarcodeReader; -reader->InitLicense("Insert your license here"); -char error[512]; -int ret = reader->InitRuntimeSettingsWithFile("JsonTemplate.txt",CM_OVERWRITE,error,512); -ret = reader->DecodeFile("Insert image file path here"); -TextResultArray* pResults = NULL; -reader->GetAllTextResults(&pResults); -for(int resultId = 0; resultId < pResults->resultsCount; ++resultId) -{ - TextResult* pBarcode = pResults->results[resultId]; - string accompany; - // Loop through all ExtendedResult - for(int extendId = 0; extendId < pBarcode->resultsCount; ++extendId) - { - PExtendedResult pExtend = pBarcode->results[extendId]; - if(pExtend->resultType == RT_STANDARD_TEXT) - { - unsigned char * accompanyStr = pExtend->accompanyingTextBytes; - int strLen = pExtend->accompanyingTextBytesLength; - accompany = string(accompanyStr,accompanyStr + strLen); - break; - } - } - if(!accompany.empty()) - { - cout << "accompanyText: " << accompany << endl; - } -} -CBarcodeReader::FreeTextResults(&pResults); -delete reader; -``` - -[1]:assets/recognise-accompanying-text/standard-accompanying-text.png -[3]:assets/recognise-accompanying-text/accompanying-text-card.png diff --git a/programming/features/barcode-formats-and-count.md b/programming/features/barcode-formats-and-count.md index 0568bcde..5cdb264f 100644 --- a/programming/features/barcode-formats-and-count.md +++ b/programming/features/barcode-formats-and-count.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Barcode Formats and Count - Dynamsoft Barcode Reader SDK -description: This page describes how to set barcode formats and count in Dynamsoft Barcode Reader SDK. +description: This page describes how to configure the target barcode formats (BarcodeFormatIds) and the expected barcode count (ExpectedBarcodesCount) in Dynamsoft Barcode Reader SDK using SimplifiedCaptureVisionSettings or a JSON template. keywords: Barcode Formats, Expected Count needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/barcode-scan-region-mobile.md b/programming/features/barcode-scan-region-mobile.md index f46c8221..6b993320 100644 --- a/programming/features/barcode-scan-region-mobile.md +++ b/programming/features/barcode-scan-region-mobile.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Barcodes from Specific Area/Region on Mobile -description: This page describes how to read specific area or region in Dynamsoft Barcode Reader SDK Mobile Edition. +description: This page describes how to restrict barcode scanning to a specific area or region on mobile platforms in Dynamsoft Barcode Reader SDK, using Dynamsoft Camera Enhancer to define the scan region on Android and iOS. keywords: Specific Area/Region needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/barcode-scan-region.md b/programming/features/barcode-scan-region.md index 1e62b7f1..d49d9873 100644 --- a/programming/features/barcode-scan-region.md +++ b/programming/features/barcode-scan-region.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read a Specific Area/Region - Dynamsoft Barcode Reader SDK -description: This page describes how to read specific area or region in Dynamsoft Barcode Reader SDK. +description: This page describes how to restrict barcode decoding to a specific region of interest (ROI) in Dynamsoft Barcode Reader SDK, covering single and multiple region configuration via SimplifiedCaptureVisionSettings and the TargetROIDef JSON parameter. keywords: Specific Area/Region needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/control-terminate-phase.md b/programming/features/control-terminate-phase.md index 4c99f255..70b75ab1 100644 --- a/programming/features/control-terminate-phase.md +++ b/programming/features/control-terminate-phase.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Control the termination phase of Dynamsoft Barcode Reader SDK -description: This article describes how to terminate the barcode decoding task as needed. +description: This article describes how to control early termination of the barcode decoding process in Dynamsoft Barcode Reader SDK using the SectionArray, Timeout, and ExpectedBarcodesCount parameters. needAutoGenerateSidebar: true keywords: terminate timeout breadcrumbText: Termination Control diff --git a/programming/features/customize-the-ui.md b/programming/features/customize-the-ui.md index dc4f4c52..2a5c1cd1 100644 --- a/programming/features/customize-the-ui.md +++ b/programming/features/customize-the-ui.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Customize the UI for DBR JS -description: This article describes how to use customize the UI used by DBR JS. +description: This article describes how to customize the built-in UI of Dynamsoft Barcode Reader JavaScript edition, including the video container, scan region overlay, and other elements provided by the BarcodeScanner class. needAutoGenerateSidebar: true keywords: ui customization breadcrumbText: UI Customization diff --git a/programming/features/filter-and-sort.md b/programming/features/filter-and-sort.md index 43e808a6..020f6c9d 100644 --- a/programming/features/filter-and-sort.md +++ b/programming/features/filter-and-sort.md @@ -1,7 +1,7 @@ --- layout: default-layout title: How to Filter and Sort Barcode Results -description: This page shows how to filter and sort barcode results. +description: This page describes how to filter barcode results by format, confidence, and region, and how to sort them by position or confidence in Dynamsoft Barcode Reader SDK. keywords: filter, decode result, barcode confidence, result length, how-to guides needAutoGenerateSidebar: false --- diff --git a/programming/features/get-barcode-location.md b/programming/features/get-barcode-location.md index 4a194e94..e235ec45 100644 --- a/programming/features/get-barcode-location.md +++ b/programming/features/get-barcode-location.md @@ -1,7 +1,7 @@ --- layout: default-layout title: How to Get Barcode Location -description: This page shows how to get barcode location. +description: This page describes how to retrieve the location coordinates of decoded barcodes in Dynamsoft Barcode Reader SDK. keywords: location, decode result, how-to guides needAutoGenerateSidebar: false --- diff --git a/programming/features/get-confidence-rotation.md b/programming/features/get-confidence-rotation.md index bf4777da..d3d91970 100644 --- a/programming/features/get-confidence-rotation.md +++ b/programming/features/get-confidence-rotation.md @@ -1,7 +1,7 @@ --- layout: default-layout title: How to Get Barcode Confidence and Angle -description: This page shows how to get barcode confidence and angle. +description: This page describes how to retrieve the confidence score and rotation angle of decoded barcodes in Dynamsoft Barcode Reader SDK. keywords: angle, confidence, decode result, how-to guides needAutoGenerateSidebar: false --- diff --git a/programming/features/get-detailed-info.md b/programming/features/get-detailed-info.md index c5db9fe8..d469d64b 100644 --- a/programming/features/get-detailed-info.md +++ b/programming/features/get-detailed-info.md @@ -1,7 +1,7 @@ --- layout: default-layout title: How to Get Detailed Barcode Information -description: This page shows how to get detailed barcode information. +description: This page describes how to retrieve format-specific details from decoded barcodes in Dynamsoft Barcode Reader SDK, such as module size, start/stop characters, and error correction level. keywords: additional information, OneDCodeDetails, QRCodeDetails, PDF417Details, DataMatrixDetails, AztecDetails needAutoGenerateSidebar: false --- diff --git a/programming/features/preprocess-images.md b/programming/features/preprocess-images.md index 7ecb0083..b2cab7ab 100644 --- a/programming/features/preprocess-images.md +++ b/programming/features/preprocess-images.md @@ -1,6 +1,6 @@ --- layout: default-layout -description: This article introduces how to perform image preprocessing including grayscale enhancement and binarization to improve the success rate of DBR positioning code area +description: This article introduces how to perform image preprocessing in Dynamsoft Barcode Reader SDK, including grayscale enhancement and binarization, to improve the barcode detection rate. title: Preprocess Images based on Different Scenarios keywords: grayscale enhancement, binarization needAutoGenerateSidebar: false diff --git a/programming/features/read-a-large-image.md b/programming/features/read-a-large-image.md index 11c9a4bb..c547f027 100644 --- a/programming/features/read-a-large-image.md +++ b/programming/features/read-a-large-image.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read barcodes from large image - Dynamsoft Barcode Reader SDK -description: This page describes how to read barcodes from large image in Dynamsoft Barcode Reader SDK. +description: This page describes how to speed up barcode reading from large images in Dynamsoft Barcode Reader SDK by configuring the ImageScaleSetting parameter to reduce image size before processing. keywords: large image, barcode needAutoGenerateSidebar: false --- diff --git a/programming/features/read-barcodes-with-imbalanced-colour.md b/programming/features/read-barcodes-with-imbalanced-colour.md index d6a4a08d..2bd29358 100644 --- a/programming/features/read-barcodes-with-imbalanced-colour.md +++ b/programming/features/read-barcodes-with-imbalanced-colour.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read barcodes with imbalanced colour - Dynamsoft Barcode Reader SDK -description: This page describes how to read huge barcodes with imbalanced colour in Dynamsoft Barcode Reader SDK. +description: This page describes how to improve barcode reading on images with imbalanced colour in Dynamsoft Barcode Reader SDK by tuning the RGB channel weights in ColourConversionModes to produce a better grayscale image. keywords: imbalanced colour barcode needAutoGenerateSidebar: false --- diff --git a/programming/features/read-barcodes-with-small-module-size.md b/programming/features/read-barcodes-with-small-module-size.md index 760b6160..ede692ee 100644 --- a/programming/features/read-barcodes-with-small-module-size.md +++ b/programming/features/read-barcodes-with-small-module-size.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read barcodes with small module size - Dynamsoft Barcode Reader SDK -description: This page describes how to read barcodes with small module size in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes with very small module size in Dynamsoft Barcode Reader SDK by using the BarcodeScaleModes parameter to upscale the barcode symbol before recognition. keywords: small barcode, small module size needAutoGenerateSidebar: false --- diff --git a/programming/features/read-barcodes-with-uneven-lighting.md b/programming/features/read-barcodes-with-uneven-lighting.md index 2960d74b..554c01e6 100644 --- a/programming/features/read-barcodes-with-uneven-lighting.md +++ b/programming/features/read-barcodes-with-uneven-lighting.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read barcodes with uneven lighting - Dynamsoft Barcode Reader SDK -description: This page describes how to read barcodes with uneven lighting in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes from images with uneven lighting in Dynamsoft Barcode Reader SDK by selecting the appropriate binarization mode (BM_THRESHOLD for global threshold or BM_LOCAL_BLOCK for local adaptive threshold). keywords: uneven lighting, barcode needAutoGenerateSidebar: false --- diff --git a/programming/features/read-deformed-barcodes.md b/programming/features/read-deformed-barcodes.md index d6f2b56a..8ab082d2 100644 --- a/programming/features/read-deformed-barcodes.md +++ b/programming/features/read-deformed-barcodes.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Deformed Barcodes - Dynamsoft Barcode Reader SDK -description: This page describes how to read deformed barcodes in Dynamsoft Barcode Reader SDK. +description: This page describes how to read distorted or deformed barcodes on flexible packaging and cylindrical surfaces in Dynamsoft Barcode Reader SDK by enabling DeformationResistingModes (DRM_BROAD_WARP, DRM_LOCAL_REFERENCE, DRM_DEWRINKLE). keywords: Deformed Barcode needAutoGenerateSidebar: false --- diff --git a/programming/features/read-dense-barcodes.md b/programming/features/read-dense-barcodes.md index 647896ad..91b123f6 100644 --- a/programming/features/read-dense-barcodes.md +++ b/programming/features/read-dense-barcodes.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read dense barcodes - Dynamsoft Barcode Reader SDK -description: This page describes how to read dense barcodes in Dynamsoft Barcode Reader SDK. +description: This page describes how to improve recognition of high-density QR codes in Dynamsoft Barcode Reader SDK, covering recommended parameter adjustments to handle small module size, perspective, and distortion. keywords: dense barcodes, qrcode, datamatrix needAutoGenerateSidebar: false --- diff --git a/programming/features/read-different-source.md b/programming/features/read-different-source.md index 000cb372..6ce51815 100644 --- a/programming/features/read-different-source.md +++ b/programming/features/read-different-source.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Image from Different Sources - Dynamsoft Barcode Reader SDK -description: This page describes how to read images from different sources in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes from different image sources in Dynamsoft Barcode Reader SDK, covering the DecodeFile, DecodeFileInMemory, and DecodeBuffer APIs for file paths, in-memory images, and raw pixel buffers. keywords: Different Source needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/read-images-with-lots-of-text.md b/programming/features/read-images-with-lots-of-text.md index 90a9dcd1..2b4a827a 100644 --- a/programming/features/read-images-with-lots-of-text.md +++ b/programming/features/read-images-with-lots-of-text.md @@ -1,6 +1,6 @@ --- layout: default-layout -description: This article introduces how to read barcodes from image with lots of text +description: This article introduces how to configure Dynamsoft Barcode Reader SDK to reliably decode barcodes from images that contain a large amount of surrounding text. title: How to read barcodes from image with lots of text keywords: text filter needAutoGenerateSidebar: false diff --git a/programming/features/read-images-with-texture.md b/programming/features/read-images-with-texture.md index 49731b39..ec86d923 100644 --- a/programming/features/read-images-with-texture.md +++ b/programming/features/read-images-with-texture.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read images with texture - Dynamsoft Barcode Reader SDK -description: This page describes how to read barcodes with texture in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes from images with textured backgrounds (e.g. screen stripes or patterned surfaces) in Dynamsoft Barcode Reader SDK by enabling TextureDetectionModes to remove the background texture before binarization. keywords: texture, barcode needAutoGenerateSidebar: false --- diff --git a/programming/features/read-incomplete-barcodes.md b/programming/features/read-incomplete-barcodes.md index 6ec000fe..73405ce0 100644 --- a/programming/features/read-incomplete-barcodes.md +++ b/programming/features/read-incomplete-barcodes.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Incomplete Barcodes - Dynamsoft Barcode Reader SDK -description: This page describes how to read incomplete barcodes in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes with missing or damaged sections in Dynamsoft Barcode Reader SDK by enabling BarcodeComplementModes, which attempts to reconstruct incomplete barcodes based on their structural characteristics. keywords: Incomplete Barcodes needAutoGenerateSidebar: false --- diff --git a/programming/features/read-inverted-barcodes.md b/programming/features/read-inverted-barcodes.md index 0b55851e..9cb31e81 100644 --- a/programming/features/read-inverted-barcodes.md +++ b/programming/features/read-inverted-barcodes.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Inverted Barcodes - Dynamsoft Barcode Reader SDK -description: This page describes how to read inverted barcodes in Dynamsoft Barcode Reader SDK. +description: This page describes how to read light-on-dark (inverted) barcodes in Dynamsoft Barcode Reader SDK by configuring GrayscaleTransformationModes to include GTM_INVERTED alongside the default GTM_ORIGINAL mode. keywords: Inverted Barcodes needAutoGenerateSidebar: false --- diff --git a/programming/features/read-video-streaming-desktop.md b/programming/features/read-video-streaming-desktop.md index 4836c1e8..6216cb6e 100644 --- a/programming/features/read-video-streaming-desktop.md +++ b/programming/features/read-video-streaming-desktop.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Barcode from Video Streaming - Dynamsoft Barcode Reader SDK -description: This page describes how to read barcodes from video streaming in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes from video streams on desktop in Dynamsoft Barcode Reader SDK, covering the frame queue mechanism, the decoding thread, and the blurred-frame filtering feature via AppendFrame and related APIs. keywords: Different Source needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/read-video-streaming-js.md b/programming/features/read-video-streaming-js.md index d077fb11..7f6bb745 100644 --- a/programming/features/read-video-streaming-js.md +++ b/programming/features/read-video-streaming-js.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Barcode from Video Streaming - Dynamsoft Barcode Reader SDK -description: This page describes how to read barcodes from video streaming in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes from a video stream in Dynamsoft Barcode Reader JavaScript edition using the BarcodeScanner class, with a quick-start code example. keywords: Different Source needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/read-video-streaming-mobile.md b/programming/features/read-video-streaming-mobile.md index 23e4cc8c..35650827 100644 --- a/programming/features/read-video-streaming-mobile.md +++ b/programming/features/read-video-streaming-mobile.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Read Barcode from Video Streaming - Dynamsoft Barcode Reader SDK -description: This page describes how to read barcodes from video streaming in Dynamsoft Barcode Reader SDK. +description: This page describes how to read barcodes from live video streams on mobile in Dynamsoft Barcode Reader SDK, covering how to configure a Dynamsoft Camera Enhancer module for camera capture, preview, and data transfer to the barcode reader. keywords: Different Source needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/ui-customization-js.md b/programming/features/ui-customization-js.md index 8e1fc642..7e4ae9f1 100644 --- a/programming/features/ui-customization-js.md +++ b/programming/features/ui-customization-js.md @@ -1,7 +1,7 @@ --- layout: default-layout title: Customize the UI - Dynamsoft Barcode Reader SDK -description: This page describes how to customize the UI in Dynamsoft Barcode Reader SDK. +description: This page describes how to customize the camera viewer UI in Dynamsoft Barcode Reader JavaScript edition using Dynamsoft Camera Enhancer's built-in UI HTML files and its customization APIs. keywords: UI customization needAutoGenerateSidebar: true needGenerateH3Content: true @@ -10,39 +10,31 @@ noTitleIndex: true # Customize the UI -When you want to customize the UI, we can leverage the extensive customization features provided by Dynamsoft Camera Enhancer (DCE) to achieve this. - ## Use the built-in UI -DCE includes several pre-defined UIs in the `DCE-LIB-PACKAGE/dist/xxxx.ui.html` (or `node_modules/dynamsoft-camera-enhancer/dist/xxxx.ui.html`). -If you are using a CDN, please find [`dce.ui.html`](https://cdn.jsdelivr.net/npm/dynamsoft-camera-enhancer@latest/dist/dce.ui.html) and [`dce.mobile-native.ui.html`](https://cdn.jsdelivr.net/npm/dynamsoft-camera-enhancer@latest/dist/dce.mobile-native.ui.html). - -* `dce.ui.html`: The default UI used by CameraView.createInstance() for simple use cases. -* `dce.mobile-native.ui.html`: A mobile-inspired UI with auto flash, suitable for most websites. Activate it with `CameraView.createInstance('@engineResourcePath/dce.mobile-native.ui.html')`. - -When `cameraEnhancer.open()` is called, the UI elements are dynamically bound to functions based on their class names, such as `dce-xxxx`. +The pre-defined UI provided by Dynamsoft Barcode Reader can be found at [`dce.ui.xml`](https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@latest/dist/ui/dce.ui.xml). The main UI elements in this file are prefixed with `dce-` and they are dynamically bound to functions when the application initiates. ## Modify the UI dynamically -To customize the UI, call `view.getUIElement()` to access the HTMLElement containing all UI elements. Before `cameraEnhancer.open()`, you can modify the UI by editing CSS, adding/removing elements, or restructuring the HTML. This usually works without issues, though testing is recommended. +To customize the UI, call `cameraView.getUIElement()` to access the `HTMLElement` that contains all UI components. Before calling `cameraEnhancer.open()`, you can modify the UI by editing CSS, adding or removing elements, or restructuring the HTML. -After `cameraEnhancer.open()`, UI adjustments are possible via JavaScript, but handle elements with `dce-` prefixed class names carefully, as they may be linked to specific logic. +After `cameraEnhancer.open()`, UI adjustments are still possible via JavaScript. However, handle elements with class names prefixed with `dce-` carefully, as they may be tied to specific internal logic. ## Define the UI in a separate HTML -For less dynamic but more structured customization, create a copy of the desired `xxxx.ui.html`, modify it as needed, and store it in your project's `public` folder. Use this customized UI with `CameraView.createInstance('PATH-TO/xxxx.ui.html')`. +For less dynamic but more structured customization, create a copy of `dce.ui.xml`, modify it as needed, and store it in your project. Use this customized UI with `Dynamsoft.DCE.CameraView.createInstance('PATH-TO/xxxx.ui.xml')`. ## Integrate HTML into Your Project Alternatively, `CameraView.createInstance()` accepts an `HTMLElement` directly. This allows you to build and manage the UI within your webpage. For example, set the UI using `CameraView.createInstance(document.getElementById('my-custom-ui'))`. -Let's see the following example. +Let's look at the following example. -**Practise: customize base on `dce.ui.html`** +**Practice: Customize Based on `dce.ui.xml`** -Start by opening dce.ui.html in your editor to review its content. You can copy several elements from this file. +Start by opening `dce.ui.xml` in your editor to review its contents. You can copy several elements from this file as needed. -Next, create a new HTML page, beginning by embedding only the video: +Next, create a new HTML page, starting by embedding only the video: ```html
@@ -94,4 +86,4 @@ Next, add the camera and resolution list. If the classes match the default ones ``` -> Ensure the selected resolution is supported by the camera. If not, the closest supported resolution will be used. The `dce-opt-gotResolution` class shows the **actual resolution**. \ No newline at end of file +> Ensure the selected resolution is supported by the camera. If not, the closest supported resolution will be used. The `dce-opt-gotResolution` class shows the **actual resolution**. diff --git a/programming/features/use-format-specific-configuration.md b/programming/features/use-format-specific-configuration.md index 4bb6cd01..ef3f189c 100644 --- a/programming/features/use-format-specific-configuration.md +++ b/programming/features/use-format-specific-configuration.md @@ -1,6 +1,6 @@ --- layout: default-layout -description: This article describes how to configure the BarcodeFormatSpecification parameter in a template to decode a particular barcode type +description: This article describes how to configure the BarcodeFormatSpecification parameter in Dynamsoft Barcode Reader SDK to apply format-specific settings when decoding a particular barcode type. title: Use Format Specific Configuration keywords: nonstandard barcode, specification, template needAutoGenerateSidebar: true diff --git a/programming/features/use-intermidiate-results.md b/programming/features/use-intermidiate-results.md index e0752114..0b6d7a06 100644 --- a/programming/features/use-intermidiate-results.md +++ b/programming/features/use-intermidiate-results.md @@ -1,7 +1,7 @@ --- layout: default-layout title: How to Use Intermediate Results -description: This page shows how to use Intermediate Results. +description: This page describes how to access and use intermediate results from the barcode recognition pipeline in Dynamsoft Barcode Reader SDK, such as grayscale images, binary images, and localization data. keywords: intermediate results, IntermediateResult, IntermediateResultUnitType, how-to guides needAutoGenerateSidebar: true needGenerateH3Content: true diff --git a/programming/features/use-region-predetection.md b/programming/features/use-region-predetection.md index b46663d8..c29cd1cd 100644 --- a/programming/features/use-region-predetection.md +++ b/programming/features/use-region-predetection.md @@ -1,6 +1,6 @@ --- layout: default-layout -description: This article describes how to configure the region predetection mode for different scenario and automatically detect ROI. +description: This article describes how to configure RegionPredetectionModes in Dynamsoft Barcode Reader SDK to automatically detect regions of interest (ROI), covering RGB contrast, grayscale contrast, and HSV contrast modes for different background scenarios. title: Use Region Predetection keywords: region predetection, ROI, region of interest needAutoGenerateSidebar: false diff --git a/programming/features/use-runtimesettings-or-templates.md b/programming/features/use-runtimesettings-or-templates.md index 852a7c4a..901f2db8 100644 --- a/programming/features/use-runtimesettings-or-templates.md +++ b/programming/features/use-runtimesettings-or-templates.md @@ -1,6 +1,6 @@ --- layout: default-layout -description: This article introduces two ways to configure DBR parameters, SimplifiedCaptureVisionSettings and JSON Template, and their syntax rules. +description: This article compares the two ways to configure Dynamsoft Barcode Reader SDK parameters - SimplifiedCaptureVisionSettings for dynamic runtime adjustments and JSON Template for full parameter access - and explains the syntax rules for each. title: Use SimplifiedCaptureVisionSettings or JSON Template keywords: DBR SimplifiedCaptureVisionSettings Json Template ImageParameter FormatSpecification needAutoGenerateSidebar: true diff --git a/programming/usecases/read-dpm-codes.md b/programming/usecases/read-dpm-codes.md index 7add2be6..b895887e 100644 --- a/programming/usecases/read-dpm-codes.md +++ b/programming/usecases/read-dpm-codes.md @@ -1,6 +1,6 @@ --- layout: default-layout -description: This article introduces how to read DPM codes. +description: This article introduces how to configure Dynamsoft Barcode Reader SDK to read Direct Part Mark (DPM) codes, which are barcodes engraved or etched directly onto manufactured parts. title: Read DPM Codes keywords: DPM, Direct Part Marking --- diff --git a/programming/usecases/read-postal-codes.md b/programming/usecases/read-postal-codes.md index 472ce32e..d8b5e26a 100644 --- a/programming/usecases/read-postal-codes.md +++ b/programming/usecases/read-postal-codes.md @@ -1,6 +1,6 @@ --- layout: default-layout -description: This article introduces how to read Postal codes. +description: This article introduces how to configure Dynamsoft Barcode Reader SDK to read postal barcodes such as USPS Intelligent Mail, Australia Post, and Royal Mail codes. title: How to read Postal codes keywords: Postal code, Direct Part Marking needAutoGenerateSidebar: true