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.
-
- > 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.
-
-
-
-2. Tap the settings icon at the top-right corner.
-
-
-
-3. Tap Debug Mode to see the drop-down list.
-
-
-
-## 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
-
-
-
-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).
-
-
-
-## 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
-
-
-
-2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan
-
-
-
-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.
-
-
-
-
-> **_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
-
-
-
-> **_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.
-
-
-
-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
-
-
-

-
-
-3. Check **EnableQRCodeModel1**.(You can modify any other settings as you like)
-4. Save the 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:
-
-
-
-## 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
-
-
-
-2. Select the 3rd option "No License Server. Register Offline Device(s) Manually" and click Activate.
-
-
-3. Click the Add Device button then it will pop up a dialog. Download the tool from the pop up.
-
-
-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.
-
-
-
-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.
-
-
-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
-
-
-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:
-
-
-
-
-
-
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