diff --git a/about/getsupport.md b/_articles/about/getsupport.md
similarity index 93%
rename from about/getsupport.md
rename to _articles/about/getsupport.md
index f55169cb..44f42a04 100644
--- a/about/getsupport.md
+++ b/_articles/about/getsupport.md
@@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Support
keywords: Dynamic Web TWAIN, Documentation, Support
breadcrumbText: Support
description: Dynamic Web TWAIN SDK Documentation Support Page
-permalink: /about/getsupport.html
---
diff --git a/about/index.md b/_articles/about/index.md
similarity index 87%
rename from about/index.md
rename to _articles/about/index.md
index 7f3a4200..5706863b 100644
--- a/about/index.md
+++ b/_articles/about/index.md
@@ -6,7 +6,6 @@ title: Document Scanning SDK | Dynamic Web TWAIN Documentation
keywords: Dynamic Web TWAIN, TWAIN, About, Documentation
breadcrumbText: About Dynamic Web TWAIN
description: Dynamic Web TWAIN SDK Documentation. This will help you integrate document scanning into your app, no matter whether you are building a workflow from scratch or optimizing an existing workflow.
-permalink: /about/
ignore: true
---
@@ -22,18 +21,18 @@ Being in the market for over 17 years, it has won the trust of many fortune 500
Download 30-Day Free Trial
-For more info, please check out DWT release history.
+For more info, please check out [DWT release history](/_articles/info/schedule/Stable.md){:target="_blank"}.
## Document Capture and Process
DWT makes the following tasks easy
-* [Scanning documents from scanners]({{site.hello-world}}scanning.html)
-* [Loading or downloading existing documents]({{site.extended-usage}}file-import.html)
-* [Editing images]({{site.indepth}}features/edit.html)
-* [Saving documents locally]({{site.indepth}}features/output.html#save)
-* [Uploading documents to the server]({{site.indepth}}features/output.html#upload)
-* [Reading barcodes]({{site.indepth}}features/barcode.html)
+* [Scanning documents from scanners](/_articles/hello-world/scanning.md)
+* [Loading or downloading existing documents](/_articles/extended-usage/file-import.md)
+* [Editing images](/_articles/general-usage/image-processing/index.md)
+* [Saving documents locally](/_articles/general-usage/image-export/index.md#save)
+* [Uploading documents to the server](/_articles/general-usage/image-export/index.md#upload)
+* [Reading barcodes](/_articles/extended-usage/barcode-processing.md)
## Highlights
diff --git a/about/resources.md b/_articles/about/resources.md
similarity index 98%
rename from about/resources.md
rename to _articles/about/resources.md
index 0aa2438c..44dc6b4e 100644
--- a/about/resources.md
+++ b/_articles/about/resources.md
@@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Resources
keywords: Dynamic Web TWAIN, TWAIN, Documentation, Resources
breadcrumbText: Resources
description: Dynamic Web TWAIN SDK Documentation Resources Page
-permalink: /about/resources.html
---
# Resources
diff --git a/articles/extended-usage/advanced-initialization.md b/_articles/extended-usage/advanced-initialization.md
similarity index 69%
rename from articles/extended-usage/advanced-initialization.md
rename to _articles/extended-usage/advanced-initialization.md
index 1976070e..aeca1ad7 100644
--- a/articles/extended-usage/advanced-initialization.md
+++ b/_articles/extended-usage/advanced-initialization.md
@@ -5,16 +5,15 @@ title: Advanced DWT Initialization
keywords: Dynamic Web TWAIN, extended guide, advanced, advanced initialization, initialization, webtwain, webtwain initialization, headless, configuration
breadcrumbText: Advanced DWT Initialization
description: Advanced DWT Initialization
-permalink: /extended-usage/advanced-initialization.html
---
# Advanced DWT Initialization
-> Prerequisite: [DWT Initialization]({{site.general-usage}}initialization.html)
+> Prerequisite: [DWT Initialization](/_articles/general-usage/initialization.md)
-As presented in the standard [initialization guide]({{site.general-usage}}initialization.html), DWT instantiates a default `WebTwain` object in its default configuration. Here, we offer some alternative ways to instantiate `WebTwain` objects, as well as ways to alter the configuration of `WebTwain` objects.
+As presented in the standard [initialization guide](/_articles/general-usage/initialization.md), DWT instantiates a default `WebTwain` object in its default configuration. Here, we offer some alternative ways to instantiate `WebTwain` objects, as well as ways to alter the configuration of `WebTwain` objects.
-> Note: jsDelivr currently has problems delivering the Dynamic Web TWAIN Service installer (`https://cdn.jsdelivr.net/npm/dwt@latest/dist/dist/DynamicWebTWAINServiceSetup.msi`) due to [size restrictions](https://www.jsdelivr.com/documentation#id-configuring-a-default-file-in-packagejson); please consider hosting this particular resource file elsewhere. UKPKG is currently unaffected. For information about the Dynamic Web TWAIN Service, learn more [here]({{site.extended-usage}}dynamsoft-service-configuration.html).
+> Note: jsDelivr currently has problems delivering the Dynamic Web TWAIN Service installer (`https://cdn.jsdelivr.net/npm/dwt@latest/dist/dist/DynamicWebTWAINServiceSetup.msi`) due to [size restrictions](https://www.jsdelivr.com/documentation#id-configuring-a-default-file-in-packagejson); please consider hosting this particular resource file elsewhere. UKPKG is currently unaffected. For information about the Dynamic Web TWAIN Service, learn more [here](/_articles/extended-usage/dynamsoft-service-configuration.md).
## Auto-Loading with CDN/Package Manager Resources
@@ -64,24 +63,24 @@ The resource files loaded from CDNs and package managers slightly differ from th
APIs used:
-- [`Dynamsoft.DWT.RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`Dynamsoft.DWT.GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`Dynamsoft.DWT.ResourcesPath`]({{site.api}}Dynamsoft_WebTwainEnv.html#resourcespath)
-- [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey)
-- [`Dynamsoft.DWT.Containers`]({{site.api}}Dynamsoft_WebTwainEnv.html#containers)
-- [`Dynamsoft.DWT.Container`]({{site.api}}Interfaces.html#Container)
-- [`Dynamsoft.DWT.AutoLoad`]({{site.api}}Dynamsoft_WebTwainEnv.html#autoload)
+- [`Dynamsoft.DWT.RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`Dynamsoft.DWT.GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`Dynamsoft.DWT.ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath)
+- [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey)
+- [`Dynamsoft.DWT.Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers)
+- [`Dynamsoft.DWT.Container`](/_articles/info/api/interfaces.md#Container)
+- [`Dynamsoft.DWT.AutoLoad`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#autoload)
### Explanation
Setting values for `Dynamsoft.DWT.AutoLoad` and `Dynamsoft.DWT.Containers` results in identical startup behavior for resources obtained from CDNs and package managers to resources obtained from the official SDK.
-> Note: jsDelivr currently has problems delivering the Dynamic Web TWAIN Service installer (`https://cdn.jsdelivr.net/npm/dwt@latest/dist/dist/DynamicWebTWAINServiceSetup.msi`) due to [size restrictions](https://www.jsdelivr.com/documentation#id-configuring-a-default-file-in-packagejson); please consider hosting this particular resource file elsewhere. UKPKG is currently unaffected. For information about the Dynamic Web TWAIN Service, learn more [here]({{site.extended-usage}}dynamsoft-service-configuration.html).
+> Note: jsDelivr currently has problems delivering the Dynamic Web TWAIN Service installer (`https://cdn.jsdelivr.net/npm/dwt@latest/dist/dist/DynamicWebTWAINServiceSetup.msi`) due to [size restrictions](https://www.jsdelivr.com/documentation#id-configuring-a-default-file-in-packagejson); please consider hosting this particular resource file elsewhere. UKPKG is currently unaffected. For information about the Dynamic Web TWAIN Service, learn more [here](/_articles/extended-usage/dynamsoft-service-configuration.md).
## Configuring Default `WebTwain` Instances
-Since [`Dynamsoft.DWT.Containers`]({{site.api}}Dynamsoft_WebTwainEnv.html#containers) controls the configuration for the `WebTwain` instance, we can use it to control the initial dimensions of the `Viewer`, and the container that the `Viewer` is bound to. `Dynamsoft.DWT.Containers` is an array of objects of the interface [`Dynamsoft.DWT.Container`]({{site.api}}Interfaces.html#Container), which looks like this:
+Since [`Dynamsoft.DWT.Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) controls the configuration for the `WebTwain` instance, we can use it to control the initial dimensions of the `Viewer`, and the container that the `Viewer` is bound to. `Dynamsoft.DWT.Containers` is an array of objects of the interface [`Dynamsoft.DWT.Container`](/_articles/info/api/interfaces.md#Container), which looks like this:
``` typescript
interface Container {
@@ -98,7 +97,7 @@ To create multiple `WebTwain` instances with `Dynamsoft.DWT.Containers`, simply
## Instantiating `WebTwain` Without Auto-Load
-Some use cases call for instantiating `WebTwain` objects on demand. To do this, we use the [`Dynamsoft.DWT.Load()`]({{site.api}}Dynamsoft_WebTwainEnv.html#load) API to create the `WebTwain` instance. This following example demonstrates this method with resources obtained from a CDN, but resources from other sources also work:
+Some use cases call for instantiating `WebTwain` objects on demand. To do this, we use the [`Dynamsoft.DWT.Load()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#load) API to create the `WebTwain` instance. This following example demonstrates this method with resources obtained from a CDN, but resources from other sources also work:
### Sample Code
@@ -147,26 +146,26 @@ Some use cases call for instantiating `WebTwain` objects on demand. To do this,
APIs Used:
-- [`Dynamsoft.DWT.RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`Dynamsoft.DWT.GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`Dynamsoft.DWT.ResourcesPath`]({{site.api}}Dynamsoft_WebTwainEnv.html#resourcespath)
-- [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey)
-- [`Dynamsoft.DWT.Containers`]({{site.api}}Dynamsoft_WebTwainEnv.html#containers)
-- [`Dynamsoft.DWT.Container`]({{site.api}}Interfaces.html#Container)
-- [`Dynamsoft.DWT.Load()`]({{site.api}}Dynamsoft_WebTwainEnv.html#load)
+- [`Dynamsoft.DWT.RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`Dynamsoft.DWT.GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`Dynamsoft.DWT.ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath)
+- [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey)
+- [`Dynamsoft.DWT.Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers)
+- [`Dynamsoft.DWT.Container`](/_articles/info/api/interfaces.md#Container)
+- [`Dynamsoft.DWT.Load()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#load)
### Explanation
> Note: When using resources from the official SDK, we must set `Dynamsoft.DWT.AutoLoad = false` in the `dynamsoft.webtwain.config.js` file.
-This sample above instantiates a `WebTwain` object upon demand. In this case the button triggers instantiation, which calls [`Dynamsoft.DWT.Load()`]({{site.api}}Dynamsoft_WebTwainEnv.html#load). `Dynamsoft.DWT.Load()` creates `WebTwain` instances based on the value of `Dynamsoft.DWT.Containers`. `Dynamsoft.DWT.Load()` also triggers the `OnWebTwainReady` event, which allows us to store the `WebTwain` object in the `DWTObject` variable.
+This sample above instantiates a `WebTwain` object upon demand. In this case the button triggers instantiation, which calls [`Dynamsoft.DWT.Load()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#load). `Dynamsoft.DWT.Load()` creates `WebTwain` instances based on the value of `Dynamsoft.DWT.Containers`. `Dynamsoft.DWT.Load()` also triggers the `OnWebTwainReady` event, which allows us to store the `WebTwain` object in the `DWTObject` variable.
> Note: `Dynamsoft.DWT.Load()` also triggers `OnWebTwainReady` during auto-load; DWT just invokes `Dynamsoft.DWT.Load()` automatically.
## Instantiating WebTwain Without `OnWebTwainReady`
-The previous two methods relied on listening to the `OnWebTwainReady` event to grab the `WebTwain` instance, and using `Dynamsoft.DWT.Containers` for the configuration. For more flexibility, DWT offers the [`Dynamsoft.DWT.CreateDWTObject()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobject) API. The following sample works with resources obtained from any source:
+The previous two methods relied on listening to the `OnWebTwainReady` event to grab the `WebTwain` instance, and using `Dynamsoft.DWT.Containers` for the configuration. For more flexibility, DWT offers the [`Dynamsoft.DWT.CreateDWTObject()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobject) API. The following sample works with resources obtained from any source:
### Sample Code
@@ -203,18 +202,18 @@ The previous two methods relied on listening to the `OnWebTwainReady` event to g
APIs Used:
-- [`Dynamsoft.DWT.RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`Dynamsoft.DWT.GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`Dynamsoft.DWT.ResourcesPath`]({{site.api}}Dynamsoft_WebTwainEnv.html#resourcespath)
-- [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey)
-- [`Dynamsoft.DWT.CreateDWTObject()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobject)
+- [`Dynamsoft.DWT.RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`Dynamsoft.DWT.GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`Dynamsoft.DWT.ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath)
+- [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey)
+- [`Dynamsoft.DWT.CreateDWTObject()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobject)
### Explanation
> Note: When using resources from the official SDK, we must set `Dynamsoft.DWT.AutoLoad = false` and `Dynamsoft.DWT.Containers = []` in the `dynamsoft.webtwain.config.js` file to disable auto-loading.
-This method creates a `WebTwain` instance, and makes it available through the success callback function, rather than registering a callback handler to the `OnWebTwainReady` event. [`Dynamsoft.DWT.CreateDWTObject()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobject) also binds the `WebTwain` instance to a container via a container `id`. This method does not provide a way to configure the size of the `Viewer`, so the `Viewer` size must be set after instantiation (e.g. with the `Viewer` [`width`]({{site.api}}WebTwain_Viewer.html#width) and [`height`]({{site.api}}WebTwain_Viewer.html#width) properties).
+This method creates a `WebTwain` instance, and makes it available through the success callback function, rather than registering a callback handler to the `OnWebTwainReady` event. [`Dynamsoft.DWT.CreateDWTObject()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobject) also binds the `WebTwain` instance to a container via a container `id`. This method does not provide a way to configure the size of the `Viewer`, so the `Viewer` size must be set after instantiation (e.g. with the `Viewer` [`width`](/_articles/info/api/WebTwain_Viewer.md#width) and [`height`](/_articles/info/api/WebTwain_Viewer.md#width) properties).
`Dynamsoft.DWT.CreateDWTObject()` can also set network configurations with an overloaded method like so:
@@ -231,7 +230,7 @@ CreateDWTObject(
## Creating Headless `WebTwain` Instances
-The other instantiation methods all create a `Viewer` component in the `WebTwain` instance. To forgo a `Viewer`, or to create one separately after the fact, DWT provides the [`Dynamsoft.DWT.CreateDWTObjectEx()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobjectex). This sample demonstrates creating a `WebTwain` instance on demand. This works with resource files obtained from any source.
+The other instantiation methods all create a `Viewer` component in the `WebTwain` instance. To forgo a `Viewer`, or to create one separately after the fact, DWT provides the [`Dynamsoft.DWT.CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex). This sample demonstrates creating a `WebTwain` instance on demand. This works with resource files obtained from any source.
### Sample Code
@@ -286,20 +285,20 @@ The other instantiation methods all create a `Viewer` component in the `WebTwain
APIs Used:
-- [`Dynamsoft.DWT.ResourcesPath`]({{site.api}}Dynamsoft_WebTwainEnv.html#resourcespath)
-- [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey)
-- [`Dynamsoft.DWT.CreateDWTObjectEx()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobjectex)
-- [`DWTInitialConfig`]({{site.api}}Interfaces.html#DWTInitialConfig)
-- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync)
-- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync)
-- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage)
-- [`HowManyImagesInBuffer`]({{site.api}}WebTwain_Buffer.html#howmanyimagesinbuffer)
+- [`Dynamsoft.DWT.ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath)
+- [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey)
+- [`Dynamsoft.DWT.CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex)
+- [`DWTInitialConfig`](/_articles/info/api/interfaces.md#DWTInitialConfig)
+- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync)
+- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync)
+- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage)
+- [`HowManyImagesInBuffer`](/_articles/info/api/WebTwain_Buffer.md#howmanyimagesinbuffer)
### Explanation
> Note: When using resources from the official SDK, we must set `Dynamsoft.DWT.AutoLoad = false` and `Dynamsoft.DWT.Containers = []` in the `dynamsoft.webtwain.config.js` file to disable auto-loading.
-[`Dynamsoft.DWT.CreateDWTObjectEx()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobjectex) creates a `WebTwain` instance provided by the [`DWTInitialConfig`]({{site.api}}Interfaces.html#DWTInitialConfig) interface (this can also configure `host`, `port`, `ssl`). In this example, the object simply defines an identifier. Since this `WebTwain` instance is headless, it cannot be identifier by its container's `id`, so we use the `WebTwainId` property instead.
+[`Dynamsoft.DWT.CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex) creates a `WebTwain` instance provided by the [`DWTInitialConfig`](/_articles/info/api/interfaces.md#DWTInitialConfig) interface (this can also configure `host`, `port`, `ssl`). In this example, the object simply defines an identifier. Since this `WebTwain` instance is headless, it cannot be identifier by its container's `id`, so we use the `WebTwainId` property instead.
## Customizing the instances
@@ -350,9 +349,9 @@ Dynamsoft.DWT.Containers = [{
DWT operates under the `Dynamsoft` namespace, and most of its features may be found in `Dynamsoft.DWT`. Here is the break-down:
-- [`Dynamsoft.DWT`]({{site.api}}Dynamsoft_WebTwainEnv.html)
+- [`Dynamsoft.DWT`](/_articles/info/api/Dynamsoft_WebTwainEnv.md)
- This contains global methods and properties such as DWT initialization and `WebTwain` instantiation. This also contains enumerations, e.g. [`Dynamsoft.DWT.EnumDWT_PixelType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftenumdwt_pixeltype).
+ This contains global methods and properties such as DWT initialization and `WebTwain` instantiation. This also contains enumerations, e.g. [`Dynamsoft.DWT.EnumDWT_PixelType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftenumdwt_pixeltype).
- `Dynamsoft.Lib`
diff --git a/articles/extended-usage/barcode-processing.md b/_articles/extended-usage/barcode-processing.md
similarity index 94%
rename from articles/extended-usage/barcode-processing.md
rename to _articles/extended-usage/barcode-processing.md
index 8a585b3c..3eb290de 100644
--- a/articles/extended-usage/barcode-processing.md
+++ b/_articles/extended-usage/barcode-processing.md
@@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Features - Read Barcode
keywords: Dynamic Web TWAIN, Documentation, Read Barcode
breadcrumbText: Read Barcode
description: Dynamic Web TWAIN SDK Documentation Read Barcode Page
-permalink: /extended-usage/barcode-processing.html
---
# Barcode Reader
@@ -14,7 +13,7 @@ With the increasing use of barcode reading in document management systems, the B
> NOTE
>
-> Barcode reading can be performed on the client side as well as the server side. For `Dynamic Web TWAIN` , we only consider client-side reading. If you are interested in reading on the server side, you can contact [Dynamsoft Support]({{site.about}}getsupport.html).
+> Barcode reading can be performed on the client side as well as the server side. For `Dynamic Web TWAIN` , we only consider client-side reading. If you are interested in reading on the server side, you can contact [Dynamsoft Support](/_articles/about/getsupport.md).
## Environment
@@ -24,7 +23,7 @@ With the increasing use of barcode reading in document management systems, the B
### Step one - Include the add-on
-To include this add-on is to reference the necessary JavaScript file which is included in the [resources files]({{site.faq}}what-are-the-resources-files.html).
+To include this add-on is to reference the necessary JavaScript file which is included in the [resources files](/_articles/faq/what-are-the-resources-files.md).
> If you are using the [dwt package](https://www.npmjs.com/package/dwt), the barcode reader is already included in the main JavaScript file ( `dynamsoft.webtwain.min.js` or `dynamsoft.webtwain.min.mjs` ) which means you can skip this step.
@@ -34,7 +33,7 @@ To include this add-on is to reference the necessary JavaScript file which is in
### Step two - Start the reading
-Now that the add-on has been referenced, we can call [`decode()`]({{site.info}}api/Addon_BarcodeReader.html#initruntimesettingswithstring) to start reading barcode(s).
+Now that the add-on has been referenced, we can call [`decode()`](/_articles/info/api/Addon_BarcodeReader.md#initruntimesettingswithstring) to start reading barcode(s).
``` javascript
function readBarcodes(imageIndex) {
@@ -51,7 +50,7 @@ function readBarcodes(imageIndex) {
}
```
-Note that the barcode reading does take a bit of time, so it'll help to add an indicator as mentioned in [Loading Bar and Backdrop]({{site.indepth}}features/ui.html#loading-bar-and-backdrop)
+Note that the barcode reading does take a bit of time, so it'll help to add an indicator as mentioned in [Loading Bar and Backdrop](/_articles/extended-usage/ui-customization.md#loading-bar-and-backdrop)
``` javascript
function readBarcodes(imageIndex) {
@@ -76,7 +75,7 @@ function readBarcodes(imageIndex) {
### Step three - Check the result
-Check the structure of the resulting object [here]({{site.info}}api/Addon_BarcodeReader.html#decode). The following code prints out the text contained in the barcode(s)
+Check the structure of the resulting object [here](/_articles/info/api/Addon_BarcodeReader.md#decode). The following code prints out the text contained in the barcode(s)
``` javascript
Dynamsoft.DWT.OnWebTwainPreExecute();
@@ -98,7 +97,7 @@ DWTObject.Addon.BarcodeReader.decode(imageIndex)
Most of the time, you simply need to use the default decode method to read most of the barcode images out there. However, you may encounter some barcodes that fail to be read and sometimes you might want to limit which barcode types the reader should pick up, and more.
-The runtime settings of the add-on gives you access to a wide array of customizable parameters, all of which you can check out with the method [ `getRuntimeSettings()` ]({{site.info}}api/Addon_BarcodeReader.html#getruntimesettings) and change with the method [ `updateRuntimeSettings()` ]({{site.info}}api/Addon_BarcodeReader.html#updateruntimesettings). Now to demonstrate a few typical customization scenarios:
+The runtime settings of the add-on gives you access to a wide array of customizable parameters, all of which you can check out with the method [ `getRuntimeSettings()` ](/_articles/info/api/Addon_BarcodeReader.md#getruntimesettings) and change with the method [ `updateRuntimeSettings()` ](/_articles/info/api/Addon_BarcodeReader.md#updateruntimesettings). Now to demonstrate a few typical customization scenarios:
### Specify the Barcode Type(s) to Read
@@ -160,7 +159,7 @@ DWTObject.Addon.BarcodeReader.updateRuntimeSettings(runtimeSettings);
### Set the runtime settings using JSON
-So far, we edited the values of specific runtime settings via accessing each individual setting and adjusting its value. However, the add-on also provides the developer the ability to set everything at once using a JSON string. The method is called [ `initRuntimeSettingsWithString()` ]({{site.info}}api/Addon_BarcodeReader.html#initruntimesettingswithstring).
+So far, we edited the values of specific runtime settings via accessing each individual setting and adjusting its value. However, the add-on also provides the developer the ability to set everything at once using a JSON string. The method is called [ `initRuntimeSettingsWithString()` ](/_articles/info/api/Addon_BarcodeReader.md#initruntimesettingswithstring).
> Some advanced features, such as dedicated configuration of a binarization mode, are only possible when using the method `initRuntimeSettingsWithString()` .
@@ -281,7 +280,7 @@ DWTObject.Addon.BarcodeReader.updateRuntimeSettings('coverage').then( /*---*/ );
### Reset settings
-You can always go back to the default settings with the method [ `resetRuntimeSettings()` ]({{site.info}}api/Addon_BarcodeReader.html#resetruntimesettings).
+You can always go back to the default settings with the method [ `resetRuntimeSettings()` ](/_articles/info/api/Addon_BarcodeReader.md#resetruntimesettings).
## Use barcode to classify and separate documents
diff --git a/articles/extended-usage/buffer-caching.md b/_articles/extended-usage/buffer-caching.md
similarity index 89%
rename from articles/extended-usage/buffer-caching.md
rename to _articles/extended-usage/buffer-caching.md
index dd8f0ce4..4097ec9c 100644
--- a/articles/extended-usage/buffer-caching.md
+++ b/_articles/extended-usage/buffer-caching.md
@@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Guide - Buffer Caching
keywords: Dynamic Web TWAIN, Documentation, Deployment, Dynamic Web TWAIN Service, caching, buffer,
breadcrumbText: Dynamic Web TWAIN Service
description: Dynamic Web TWAIN SDK Documentation Dynamic Web TWAIN Service Page
-permalink: /extended-usage/buffer-caching.html
---
# Buffer Caching
@@ -16,9 +15,9 @@ The DWT image buffer is controlled by the Dynamic Web TWAIN Service(formerly kno
The DWT image buffer handles data using the `DIB` format, which take up a lot of space in memory. For example, one A4 paper scanned in 300 DPI takes around 24MB in memory, which means 2GB of physical memory can only store no more than 85 of these images. As more images are processed, more memory gets used which may pose a threat to other programs on the machine. Due to this, the disk cache function was added. After enabling disk caching, most images will be temporarily cached on the disk, while keeping some active images in the memory to maintain high performance.
-The disk caching feature is enabled by default, but can be disabled by setting [`IfAllowLocalCache`]({{site.info}}api/WebTwain_Buffer.html#ifallowlocalcache) to `false` .
+The disk caching feature is enabled by default, but can be disabled by setting [`IfAllowLocalCache`](/_articles/info/api/WebTwain_Buffer.md#ifallowlocalcache) to `false` .
-You can also set how much memory `Dynamic Web TWAIN` can use before images start to be cached. By default, **800MB** is used. You can change it using the property [`BufferMemoryLimit`]({{site.api}}WebTwain_Buffer.html#buffermemorylimit).
+You can also set how much memory `Dynamic Web TWAIN` can use before images start to be cached. By default, **800MB** is used. You can change it using the property [`BufferMemoryLimit`](/_articles/info/api/WebTwain_Buffer.md#buffermemorylimit).
> Note: All cached data is encrypted and can only be accessed by `Dynamic Web TWAIN`. When `Dynamic Web TWAIN` is unloaded (like when the browser tab refreshes or closes), the cached data is destroyed and removed from the disk automatically.
@@ -38,7 +37,7 @@ Starting from version 18.5, Dynamic Web TWAIN introduces a new feature that faci
### Create a storage folder
-First of all, you need to create a storage item by [`createLocalStorage()`]({{site.info}}api/WebTwain_IO.html#createlocalstorage) which is used to save the encrypted image caches. For example,
+First of all, you need to create a storage item by [`createLocalStorage()`](/_articles/info/api/WebTwain_IO.md#createlocalstorage) which is used to save the encrypted image caches. For example,
```javascript
var folderSettings = {
@@ -56,7 +55,7 @@ The local directory of the created storage folder is under
**Save image caches**
-To save the specified image(s) to the storage folder, [`saveToLocalStorage()`]({{site.info}}api/WebTwain_IO.html#savetolocalstorage) method is required.
+To save the specified image(s) to the storage folder, [`saveToLocalStorage()`](/_articles/info/api/WebTwain_IO.md#savetolocalstorage) method is required.
```javascript
var bExist = await DWTObject.localStorageExist(storageItemUid); // Determine whether the folder exists
@@ -76,7 +75,7 @@ else {
**Load image(s) from the storage folder**
-To load the encypted image caches into Dynamic Web TWAIN again, please use the method [`loadFromLocalStorage()`]({{site.info}}api/WebTwain_IO.html#loadfromlocalstorage).
+To load the encypted image caches into Dynamic Web TWAIN again, please use the method [`loadFromLocalStorage()`](/_articles/info/api/WebTwain_IO.md#loadfromlocalstorage).
```javascript
var bExist = await DWTObject.localStorageExist(storageItemUid); // Determine whether the folder exists
@@ -95,7 +94,7 @@ else {
**Remove the storage folder**
-If you would like to remove the storage folder by programming, the method [`removeLocalStorage()`]({{site.info}}api/WebTwain_IO.html#removelocalstorage) can help.
+If you would like to remove the storage folder by programming, the method [`removeLocalStorage()`](/_articles/info/api/WebTwain_IO.md#removelocalstorage) can help.
```javascript
var bExist = await DWTObject.localStorageExist(storageItemUid); // Determine whether the folder exists
diff --git a/articles/extended-usage/dynamsoft-service-configuration.md b/_articles/extended-usage/dynamsoft-service-configuration.md
similarity index 82%
rename from articles/extended-usage/dynamsoft-service-configuration.md
rename to _articles/extended-usage/dynamsoft-service-configuration.md
index b984a066..99dd913a 100644
--- a/articles/extended-usage/dynamsoft-service-configuration.md
+++ b/_articles/extended-usage/dynamsoft-service-configuration.md
@@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK Deployment - Dynamic Web TWAIN Service
keywords: Dynamic Web TWAIN, Documentation, Deployment, Dynamic Web TWAIN Service
breadcrumbText: Dynamic Web TWAIN Service
description: Dynamic Web TWAIN SDK Documentation Dynamic Web TWAIN Service Page
-permalink: /extended-usage/dynamsoft-service-configuration.html
---
# Configuring the Dynamic Web TWAIN Service
@@ -51,7 +50,7 @@ Access-Control-Allow-Origin=http://192.168.8.212, http://192.168.8.126:8033, htt

-After configuring the origins in the `DSConfiguration.ini` file, please set [`IfCheckCORS`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#ifcheckcors) to `true` in `dynamsoft.webtwain.config.js`.
+After configuring the origins in the `DSConfiguration.ini` file, please set [`IfCheckCORS`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifcheckcors) to `true` in `dynamsoft.webtwain.config.js`.
When a request comes from a different origin, a CORS error message will be displayed, both in a pop-up and in the console.
@@ -63,7 +62,7 @@ When a request comes from a different origin, a CORS error message will be displ
On a desktop, when a new user accesses a web page using Dynamic Web TWAIN SDK for the first time, he will be prompted to install the Dynamic Web TWAIN Service. This is a built-in behaviour of the library. The prompt will display the download link. Once the installer is downloaded, the installation process will take just a few seconds.
-The prompt comes up when you try to [create a WebTwain instance]({{site.extended-usage}}advanced-initialization.html#instantiating-webtwain-without-onwebtwainready) in Service mode.
+The prompt comes up when you try to [create a WebTwain instance](/_articles/extended-usage/advanced-initialization.md#instantiating-webtwain-without-onwebtwainready) in Service mode.

@@ -93,7 +92,7 @@ If Dynamic Web TWAIN Service is not installed, users may receive the error 'The
## Related Resources:
-* What does Dynamic Web TWAIN Service do?
-* I have installed the Dynamic Web TWAIN Service on an end-user machine but still got asked to install it repeatedly. Why?
-* How to uninstall Dynamic Web TWAIN Service?
-* Can I install Dynamic Web TWAIN Service silently?
+* [What does Dynamic Web TWAIN Service do?](/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md){:target="_blank"}
+* [I have installed the Dynamic Web TWAIN Service on an end-user machine but still got asked to install it repeatedly. Why?](/_articles/faq/service-prompting-to-install-repeatedly.md){:target="_blank"}
+* [How to uninstall Dynamic Web TWAIN Service?](/_articles/faq/how-to-uninstall-dynamsoft-service.md){:target="_blank"}
+* [Can I install Dynamic Web TWAIN Service silently?](/_articles/faq/can-i-install-dynamsoft-service-silently.md){:target="_blank"}
diff --git a/articles/general-usage/file-import.md b/_articles/extended-usage/file-import.md
similarity index 73%
rename from articles/general-usage/file-import.md
rename to _articles/extended-usage/file-import.md
index b16b0f6c..2c324497 100644
--- a/articles/general-usage/file-import.md
+++ b/_articles/extended-usage/file-import.md
@@ -5,24 +5,23 @@ title: Dynamic Web TWAIN SDK Basics - Loading Documents from Files
keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, importing images, image import, importing documents, documents, document import
breadcrumbText: Loading Documents from Files
description: Dynamic Web TWAIN SDK General Usage Guide - Loading Documents from Files
-permalink: /extended-usage/file-import.html
---
# Loading Documents from Files
-> Prerequisite: [DWT Initialization]({{site.general-usage}}initialization.html)
+> Prerequisite: [DWT Initialization](/_articles/general-usage/initialization.md)
On top of scanning images, DWT can also load documents from files on the file system, or files shared over the network. It can display, edit, and export these documents just the same as scanned images. This flexible design caters to mixed use, scanner-only, or file-only scenarios. We support the following file types: BMP, JPG, TIF, PNG, and PDF. DWT does not support all PDFs due to the complexities of the format, but the PDF rasterizer add-on does provide extra compatibility on top of base support in DWT. We can load in files through the following methods:
## Note on PDF Compatibility
-The PDF rasterizer add-on provides compatibility for a broader range of PDFs. Here, we added the add-on script in the html head. For any loaded PDFs, the add-on rasterizes every page at the set resolution of 200 DPI. The PDF rasterizer can also selectively rasterize images only - check [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode) and [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions) for details.
+The PDF rasterizer add-on provides compatibility for a broader range of PDFs. Here, we added the add-on script in the html head. For any loaded PDFs, the add-on rasterizes every page at the set resolution of 200 DPI. The PDF rasterizer can also selectively rasterize images only - check [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode) and [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) for details.
## Loading Files from the Selection UI
The most common file loading method is by prompting the user with a file selection interface. DWT brings up this interface slightly differently for desktop and mobile platforms.
-On desktop browsers, DWT brings up the file selection interface, where users can select files on the local file system, as well as accessible files on the local network. On mobile browsers, the prompt allows users to select files from the local file system, select images from the local file system, or to take a picture. This is done with either the [`LoadImageEx()`]({{site.api}}WebTwain_IO.html#loadimageex) or [`LoadImage()`]({{site.api}}WebTwain_IO.html#loadimage) API. Here we demonstrate with `LoadImageEx()`:
+On desktop browsers, DWT brings up the file selection interface, where users can select files on the local file system, as well as accessible files on the local network. On mobile browsers, the prompt allows users to select files from the local file system, select images from the local file system, or to take a picture. This is done with either the [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex) or [`LoadImage()`](/_articles/info/api/WebTwain_IO.md#loadimage) API. Here we demonstrate with `LoadImageEx()`:
### Sample Code
@@ -77,20 +76,20 @@ On desktop browsers, DWT brings up the file selection interface, where users can
APIs used:
-- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`LoadImageEx()`]({{site.api}}WebTwain_IO.html#loadimageex)
-- [`IfShowFileDialog`]({{site.api}}WebTwain_IO.html#ifshowfiledialog)
-- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype)
-- [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode)
-- [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions)
+- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex)
+- [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog)
+- [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype)
+- [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode)
+- [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)
### Explanation
-We first enable file selection dialogue with the [`IfShowFileDialog`]({{site.api}}WebTwain_IO.html#ifshowfiledialog) property. Then, the call to [`LoadImageEx()`]({{site.api}}WebTwain_IO.html#loadimageex) can omit an explicit file path (the `""`). The second argument allows all DWT-supported file formats to appear in the selection dialogue.
+We first enable file selection dialogue with the [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) property. Then, the call to [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex) can omit an explicit file path (the `""`). The second argument allows all DWT-supported file formats to appear in the selection dialogue.
-[`LoadImage()`]({{site.api}}WebTwain_IO.html#loadimage), works similarly to `LoadImageEx()`, but it does not specify an image file format:
+[`LoadImage()`](/_articles/info/api/WebTwain_IO.md#loadimage), works similarly to `LoadImageEx()`, but it does not specify an image file format:
```javascript
DWTObject.LoadImage(
@@ -106,7 +105,7 @@ DWTObject.LoadImage(
When the web application only needs to load a particular file, DWT can retrieve it using a file path directly, and skip the file selection dialog altogether with the `IfShowFileDialog` property found in the `WebTwain` instance:
-> Note: This example uses [`LoadImage()`]({{site.api}}WebTwain_IO.html#loadimage), but [`LoadImageEx()`]({{site.api}}WebTwain_IO.html#loadimageex) works similarly.
+> Note: This example uses [`LoadImage()`](/_articles/info/api/WebTwain_IO.md#loadimage), but [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex) works similarly.
### Sample Code
@@ -159,17 +158,17 @@ When the web application only needs to load a particular file, DWT can retrieve
APIs used:
-- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`LoadImage()`]({{site.api}}WebTwain_IO.html#loadimage)
-- [`IfShowFileDialog`]({{site.api}}WebTwain_IO.html#ifshowfiledialog)
-- [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode)
-- [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions)
+- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`LoadImage()`](/_articles/info/api/WebTwain_IO.md#loadimage)
+- [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog)
+- [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode)
+- [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)
## Loading Files from Binary Blobs
-The [`LoadImageFromBinary()`]({{site.api}}WebTwain_IO.html#loadimagefrombinary) is used to load images from Blobs. This sample converts a sample to a Blob with another API ([`ConvertToBlob()`]({{site.api}}WebTwain_IO.html#converttoblob)) in order to demonstrate loading Blobs - `ConvertToBlob()` is not necessary as a part of the normal workflow.
+The [`LoadImageFromBinary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombinary) is used to load images from Blobs. This sample converts a sample to a Blob with another API ([`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob)) in order to demonstrate loading Blobs - `ConvertToBlob()` is not necessary as a part of the normal workflow.
### Sample Code
@@ -244,26 +243,26 @@ The [`LoadImageFromBinary()`]({{site.api}}WebTwain_IO.html#loadimagefrombinary)
APIs used:
-- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`LoadImageEx()`]({{site.api}}WebTwain_IO.html#loadimageex)
-- [`IfShowFileDialog`]({{site.api}}WebTwain_IO.html#ifshowfiledialog)
-- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype)
-- [`LoadImageFromBinary()`]({{site.api}}WebTwain_IO.html#loadimagefrombinary)
-- [`ConvertToBlob()`]({{site.api}}WebTwain_IO.html#converttoblob)
-- [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode)
-- [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions)
+- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex)
+- [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog)
+- [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype)
+- [`LoadImageFromBinary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombinary)
+- [`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob)
+- [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode)
+- [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)
### Explanation
-This sample code loads an image from a file, and then converts that image into a Blob. This step is done to get an image Blob on hand. `LoadImageFromBinary()` can then load that Blob back into the `WebTwain` instance, which results in a second copy of the image. [`ConvertToBlob()`]({{site.api}}WebTwain_IO.html#converttoblob) must specify a particular target image format - in this case PNG.
+This sample code loads an image from a file, and then converts that image into a Blob. This step is done to get an image Blob on hand. `LoadImageFromBinary()` can then load that Blob back into the `WebTwain` instance, which results in a second copy of the image. [`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob) must specify a particular target image format - in this case PNG.
## Loading Files from Base64 Strings
-Base64 strings handle similarly to Blobs, but with [`LoadImageFromBase64Binary()`]({{site.api}}WebTwain_IO.html#loadimagefrombase64binary). Once again, we use an extra API ([`ConvertToBase64()`]({{site.api}}WebTwain_IO.html#convertobase64)) for demonstration purposes.
+Base64 strings handle similarly to Blobs, but with [`LoadImageFromBase64Binary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombase64binary). Once again, we use an extra API ([`ConvertToBase64()`](/_articles/info/api/WebTwain_IO.md#convertobase64)) for demonstration purposes.
### Sample Code
@@ -337,17 +336,17 @@ Base64 strings handle similarly to Blobs, but with [`LoadImageFromBase64Binary()
APIs used:
-- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`LoadImage()`]({{site.api}}WebTwain_IO.html#loadimage)
-- [`IfShowFileDialog`]({{site.api}}WebTwain_IO.html#ifshowfiledialog)
-- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype)
-- [`LoadImageFromBase64Binary()`]({{site.api}}WebTwain_IO.html#loadimagefrombase64binary)
-- [`ConvertToBase64()`]({{site.api}}WebTwain_IO.html#convertobase64)
-- [`Base64Result`]({{site.api}}Interfaces.html#base64result)
-- [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode)
-- [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions)
+- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`LoadImage()`](/_articles/info/api/WebTwain_IO.md#loadimage)
+- [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog)
+- [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype)
+- [`LoadImageFromBase64Binary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombase64binary)
+- [`ConvertToBase64()`](/_articles/info/api/WebTwain_IO.md#convertobase64)
+- [`Base64Result`](/_articles/info/api/interfaces.md#base64result)
+- [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode)
+- [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)
### Explanation
@@ -466,20 +465,20 @@ catch (Exception)
APIs used:
-- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype)
-- [`HTTPDownload()`]({{site.api}}WebTwain_IO.html#httpdownload)
-- [`HTTPDownloadEx()`]({{site.api}}WebTwain_IO.html#httpdownloadEx)
-- [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode)
-- [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions)
+- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype)
+- [`HTTPDownload()`](/_articles/info/api/WebTwain_IO.md#httpdownload)
+- [`HTTPDownloadEx()`](/_articles/info/api/WebTwain_IO.md#httpdownloadEx)
+- [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode)
+- [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)
### Explanation
-In the example above, the two APIs request the same file at the same location on the web server. [`HTTPDownload()`]({{site.api}}WebTwain_IO.html#httpdownload) requests it using the file path itself. [`HTTPDownloadEx()`]({{site.api}}WebTwain_IO.html#httpdownloadEx) is more flexible, and as well as direct file paths, it can also be pointed to any server-side script that returns a file. The sample server script we provide happens to be in C#, but this is not a language requirement.
+In the example above, the two APIs request the same file at the same location on the web server. [`HTTPDownload()`](/_articles/info/api/WebTwain_IO.md#httpdownload) requests it using the file path itself. [`HTTPDownloadEx()`](/_articles/info/api/WebTwain_IO.md#httpdownloadEx) is more flexible, and as well as direct file paths, it can also be pointed to any server-side script that returns a file. The sample server script we provide happens to be in C#, but this is not a language requirement.
-Note that `HTTPDownload()` and `HTTPDownloadEx()` support **HTTPS**. This requires the property [`IfSSL`]({{site.api}}WebTwain_IO.html#ifssl) to be set to `true` - please check our API references on [`HTTPDownloadEx()`]({{site.api}}WebTwain_IO.html#httpdownloadEx) for more information.
+Note that `HTTPDownload()` and `HTTPDownloadEx()` support **HTTPS**. This requires the property [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to be set to `true` - please check our API references on [`HTTPDownloadEx()`](/_articles/info/api/WebTwain_IO.md#httpdownloadEx) for more information.
## Loading Files over FTP
@@ -543,30 +542,30 @@ DWT can load files retrieved over FTP, and also handle authentication when neede
APIs used:
-- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`LoadImageEx()`]({{site.api}}WebTwain_IO.html#loadimageex)
-- [`IfShowFileDialog`]({{site.api}}WebTwain_IO.html#ifshowfiledialog)
-- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype)
-- [`FTPDownloadEx()`]({{site.api}}WebTwain_IO.html#ftpdownloadex)
-- [`FTPPort`]({{site.api}}WebTwain_IO.html#ftpport)
-- [`FTPUserName`]({{site.api}}Interfaces.html#ftpusername)
-- [`FTPPassword`]({{site.api}}Interfaces.html#ftppassword)
-- [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode)
-- [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions)
+- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex)
+- [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog)
+- [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype)
+- [`FTPDownloadEx()`](/_articles/info/api/WebTwain_IO.md#ftpdownloadex)
+- [`FTPPort`](/_articles/info/api/WebTwain_IO.md#ftpport)
+- [`FTPUserName`](/_articles/info/api/interfaces.md#ftpusername)
+- [`FTPPassword`](/_articles/info/api/interfaces.md#ftppassword)
+- [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode)
+- [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)
## Drag/Dropping Files
> This feature is only supported on desktop.
-Drag/drop is built into the desktop version of the `WebTwain` `Viewer`. Users can drag and drop file icons into the viewer to load files. This feature can be turned on or off with the property [`Viewer.acceptDrop`]({{site.api}}WebTwain_Viewer.html#acceptdrop), e.g. `DWTObject.Viewer.acceptDrop = false` prevents the `Viewer` from accepting dropped images. This property is `true` by default.
+Drag/drop is built into the desktop version of the `WebTwain` `Viewer`. Users can drag and drop file icons into the viewer to load files. This feature can be turned on or off with the property [`Viewer.acceptDrop`](/_articles/info/api/WebTwain_Viewer.md#acceptdrop), e.g. `DWTObject.Viewer.acceptDrop = false` prevents the `Viewer` from accepting dropped images. This property is `true` by default.
## Loading Files from the System Clipboard
> This feature is only supported on desktop.
-This following sample loads the most recent file from the system clipboard with the [`LoadDibFromClipboard()`]({{site.api}}WebTwain_IO.html#loaddibfromclipboard) API. Note that this API only supports DIB files.
+This following sample loads the most recent file from the system clipboard with the [`LoadDibFromClipboard()`](/_articles/info/api/WebTwain_IO.md#loaddibfromclipboard) API. Note that this API only supports DIB files.
### Sample Code
@@ -654,15 +653,15 @@ This following sample loads the most recent file from the system clipboard with
APIs used:
-- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent)
-- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready)
-- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain)
-- [`LoadDibFromClipboard()`]({{site.api}}WebTwain_IO.html#loaddibfromclipboard)
-- [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode)
-- [`SetReaderOptions()`]({{site.api}}Addon_PDF.html#setreaderoptions)
-- [`CopyToClipboard()`]({{site.api}}WebTwain_Edit.html#copytoclipboard)
-- [`CurrentImageIndexInBuffer`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer)
+- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent)
+- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready)
+- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain)
+- [`LoadDibFromClipboard()`](/_articles/info/api/WebTwain_IO.md#loaddibfromclipboard)
+- [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode)
+- [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)
+- [`CopyToClipboard()`](/_articles/info/api/WebTwain_Edit.md#copytoclipboard)
+- [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer)
### Explanation
-In addition to [`LoadDibFromClipboard()`]({{site.api}}WebTwain_IO.html#loaddibfromclipboard), we also used [`CopyToClipboard()`]({{site.api}}WebTwain_Edit.html#copytoclipboard) to copy the displayed image to the clipboard. The user can then click the paste button to load that image back in. Note that `CopyToClipboard()` does not accept success/failure callbacks.
\ No newline at end of file
+In addition to [`LoadDibFromClipboard()`](/_articles/info/api/WebTwain_IO.md#loaddibfromclipboard), we also used [`CopyToClipboard()`](/_articles/info/api/WebTwain_Edit.md#copytoclipboard) to copy the displayed image to the clipboard. The user can then click the paste button to load that image back in. Note that `CopyToClipboard()` does not accept success/failure callbacks.
\ No newline at end of file
diff --git a/articles/extended-usage/index.md b/_articles/extended-usage/index.md
similarity index 50%
rename from articles/extended-usage/index.md
rename to _articles/extended-usage/index.md
index b60733f7..6f0d70d7 100644
--- a/articles/extended-usage/index.md
+++ b/_articles/extended-usage/index.md
@@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK Extended Usage Guide
keywords: Dynamic Web TWAIN, extended guide, advanced, advanced guide
breadcrumbText: Dynamic Web TWAIN SDK Extended Usage Guide
description: Extended Usage
-permalink: /extended-usage/index.html
---
# Extended Usage Guide
@@ -15,13 +14,13 @@ This set of guides builds on the fundamental features covered in the standard us
### Table of Contents
-- [Advanced DWT Initialization]({{site.extended-usage}}advanced-initialization.html)
-- [Loading Documents from Files]({{site.extended-usage}}file-import.html)
-- [Configuring System Messages]({{site.extended-usage}}system-message-configuration.html)
-- [Set Up the Dynamic Web TWAIN Service]({{site.extended-usage}}dynamsoft-service-configuration.html)
-- [UI Customization]({{site.extended-usage}}ui-customization.html)
-- [Using the DWT RESTful API]({{site.extended-usage}}restful-api.html)
-- [Barcode Recognition]({{site.extended-usage}}barcode-processing.html)
-- [PDF Handling]({{site.extended-usage}}pdf-processing.html)
-- [Buffer Caching]({{site.extended-usage}}buffer-caching.html)
+- [Advanced DWT Initialization](/_articles/extended-usage/advanced-initialization.md)
+- [Loading Documents from Files](/_articles/extended-usage/file-import.md)
+- [Configuring System Messages](/_articles/extended-usage/system-message-configuration.md)
+- [Set Up the Dynamic Web TWAIN Service](/_articles/extended-usage/dynamsoft-service-configuration.md)
+- [UI Customization](/_articles/extended-usage/ui-customization.md)
+- [Using the DWT RESTful API](/_articles/extended-usage/restful-api.md)
+- [Barcode Recognition](/_articles/extended-usage/barcode-processing.md)
+- [PDF Handling](/_articles/extended-usage/pdf-processing.md)
+- [Buffer Caching](/_articles/extended-usage/buffer-caching.md)
- [Remote Scan](https://www.dynamsoft.com/remote-scan/docs/introduction/)
\ No newline at end of file
diff --git a/articles/extended-usage/pdf-compression.md b/_articles/extended-usage/pdf-compression.md
similarity index 97%
rename from articles/extended-usage/pdf-compression.md
rename to _articles/extended-usage/pdf-compression.md
index 24ad6e79..fb399735 100644
--- a/articles/extended-usage/pdf-compression.md
+++ b/_articles/extended-usage/pdf-compression.md
@@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Features - PDF Compressor (Beta)
keywords: Dynamic Web TWAIN, Documentation, PDF Compressor
breadcrumbText: PDF Compressor (Beta)
description: Dynamic Web TWAIN SDK Documentation PDF Compressor
-permalink: /extended-usage/pdf-compression.html
---
# PDF Compressor (Beta)
diff --git a/articles/extended-usage/pdf-processing.md b/_articles/extended-usage/pdf-processing.md
similarity index 85%
rename from articles/extended-usage/pdf-processing.md
rename to _articles/extended-usage/pdf-processing.md
index 170738ea..10399a3f 100644
--- a/articles/extended-usage/pdf-processing.md
+++ b/_articles/extended-usage/pdf-processing.md
@@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Features - Handle PDF
keywords: Dynamic Web TWAIN, Documentation, Handle PDF
breadcrumbText: Handle PDF
description: Dynamic Web TWAIN SDK Documentation Handle PDF Page
-permalink: /extended-usage/pdf-processing.html
---
# Processing PDFs
@@ -14,11 +13,11 @@ PDFs are widely used in many and various industries, and presently are the only
## Environment
-* Supported on [Desktop]({{site.introduction}}system-requirements.html).
+* Supported on [Desktop](/_articles/introduction/system-requirements.md).
## Including the PDF addon
-To include the PDF addon, simply add a reference to the corresponding JavaScript file, included in the [resources folder]({{site.faq}}what-are-the-resources-files.html).
+To include the PDF addon, simply add a reference to the corresponding JavaScript file, included in the [resources folder](/_articles/faq/what-are-the-resources-files.md).
``` html
@@ -58,21 +57,21 @@ DWTObject.Addon.PDF.SetReaderOptions({
DWTObject.LoadImageEx("", Dynamsoft.DWT.EnumDWT_ImageType.IT_ALL, onSuccess, onFailure);
```
-The method [ `SetReaderOptions()` ]({{site.info}}api/Addon_PDF.html#setreaderoptions) configures how a PDF will be rasterized when being loaded into Dynamic Web TWAIN.
+The method [ `SetReaderOptions()` ](/_articles/info/api/Addon_PDF.md#setreaderoptions) configures how a PDF will be rasterized when being loaded into Dynamic Web TWAIN.
#### Other methods
-* [ `GetReaderOptions()` ]({{site.info}}api/Addon_PDF.html#getreaderoptions): This method returns the current [`ReaderOptions`]({{site.info}}api/interfaces.html#readeroptions).
+* [ `GetReaderOptions()` ](/_articles/info/api/Addon_PDF.md#getreaderoptions): This method returns the current [`ReaderOptions`](/_articles/info/api/interfaces.md#readeroptions).
## Output as PDF
### Save images as image-based PDFs
-`Dynamic Web TWAIN` can output one or multiple images in the buffer as image-based PDF file(s). This feature is built into the core module, and no addon is required as was covered in the [output]({{site.indepth}}features/output.html) section.
+`Dynamic Web TWAIN` can output one or multiple images in the buffer as image-based PDF file(s). This feature is built into the core module, and no addon is required as was covered in the [output](/_articles/general-usage/image-export/index.md) section.
### PDF save settings
-However, some advanced features are only possible with the help of the PDF addon. At present, that means configuring the resulting file(s) with the API [ `Write.Setup()` ]({{site.info}}api/Addon_PDF.html#writesetup) as shown below
+However, some advanced features are only possible with the help of the PDF addon. At present, that means configuring the resulting file(s) with the API [ `Write.Setup()` ](/_articles/info/api/Addon_PDF.md#writesetup) as shown below
``` javascript
DWTObject.Addon.PDF.Write.Setup({
diff --git a/articles/extended-usage/restful-api.md b/_articles/extended-usage/restful-api.md
similarity index 83%
rename from articles/extended-usage/restful-api.md
rename to _articles/extended-usage/restful-api.md
index a11834ac..eaee0671 100644
--- a/articles/extended-usage/restful-api.md
+++ b/_articles/extended-usage/restful-api.md
@@ -5,12 +5,11 @@ title: Using the RESTful API
keywords: Dynamic Web TWAIN, extended guide, advanced, RESTful API, REST, REST service, RESTful service, webtwain, Dynamic Web TWAIN Service, RESTful integration
breadcrumbText: RESTful API
description: RESTful API
-permalink: /extended-usage/restful-api.html
---
# Using the RESTful API
-By default, Dynamic Web TWAIN consists of the Dynamic Web TWAIN Service installed and running on a system, connected to a web application which integrates the Dynamic Web TWAIN SDK. To use DWT to access scanners on other platforms and using other programming languages, you can use the [DWT Service RESTful API]({{ site.api }}restful.html). This allows desktop, mobile, and server-side applications to access the DWT Service installed on the scanner host (local or server) in a simple, stateless, and standardized manner.
+By default, Dynamic Web TWAIN consists of the Dynamic Web TWAIN Service installed and running on a system, connected to a web application which integrates the Dynamic Web TWAIN SDK. To use DWT to access scanners on other platforms and using other programming languages, you can use the [DWT Service RESTful API](/_articles/info/api/restful.md). This allows desktop, mobile, and server-side applications to access the DWT Service installed on the scanner host (local or server) in a simple, stateless, and standardized manner.
The RESTful API simply returns scanned documents as streams of image files to the client, and **does not use the DWT Viewer**. This is because **the RESTful API functions entirely using the DWT Service**, and is viewer-agnostic. You may choose to feed the scanned images to any viewer, including a DWT Viewer in your application that you instantiate separately, if desired.
diff --git a/articles/extended-usage/system-message-configuration.md b/_articles/extended-usage/system-message-configuration.md
similarity index 90%
rename from articles/extended-usage/system-message-configuration.md
rename to _articles/extended-usage/system-message-configuration.md
index 55473632..05314416 100644
--- a/articles/extended-usage/system-message-configuration.md
+++ b/_articles/extended-usage/system-message-configuration.md
@@ -6,12 +6,11 @@ title: Configuring System Messages
keywords: Dynamic Web TWAIN, UI Customization, display language, language, message configuration, system messages, translation, translating, localization
breadcrumbText: Configuring System Messages
description: Configuring System Messages
-permalink: /extended-usage/system-message-configuration.html
---
# Configuring System Messages
-DWT provides various system messages during all parts of runtime. Some of these messages are errors which are useful for debugging/reporting purposes, such as indicating that the [Dynamic Web TWAIN Service]({{site.faq}}what-does-dynamsoft-service-do-on-end-user-machine.html) has not been installed on end user's system. Other messages provide information directly to the end user, such as labelling the image source selection prompt overlay (scanner selection).
+DWT provides various system messages during all parts of runtime. Some of these messages are errors which are useful for debugging/reporting purposes, such as indicating that the [Dynamic Web TWAIN Service](/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md) has not been installed on end user's system. Other messages provide information directly to the end user, such as labelling the image source selection prompt overlay (scanner selection).
These system messages are configurable. Notably, we recommend changing these system messages for the purposes of translating the default English messages to other localizations.
@@ -144,8 +143,8 @@ The messages are grouped into categories:
## Configuring the `_show_install_dialog()` Function
-The `Dynamsoft._show_install_dialog()` function defined in the `dynamsoft.webtwain.install.js` resource file generates the [Dynamic Web TWAIN Service]({{site.faq}}what-does-dynamsoft-service-do-on-end-user-machine.html) installation dialog box, pictured here:
+The `Dynamsoft._show_install_dialog()` function defined in the `dynamsoft.webtwain.install.js` resource file generates the [Dynamic Web TWAIN Service](/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md) installation dialog box, pictured here:

-As the dialog box contains instructions for installing the Dynamic Web TWAIN Service, consider altering the message strings for localization purposes. Generally we discourage directly modifying the resource files, but this dialogue function contains styling and messaging which may be tailored the web application itself. Try not to alter the platform detection logic too greatly, as this may interfere with the Dynamic Web TWAIN Service installation procedure. Please contact the [support team]({{site.about}}getsupport.html) for any further questions.
\ No newline at end of file
+As the dialog box contains instructions for installing the Dynamic Web TWAIN Service, consider altering the message strings for localization purposes. Generally we discourage directly modifying the resource files, but this dialogue function contains styling and messaging which may be tailored the web application itself. Try not to alter the platform detection logic too greatly, as this may interfere with the Dynamic Web TWAIN Service installation procedure. Please contact the [support team](/_articles/about/getsupport.md) for any further questions.
\ No newline at end of file
diff --git a/articles/extended-usage/ui-customization.md b/_articles/extended-usage/ui-customization.md
similarity index 83%
rename from articles/extended-usage/ui-customization.md
rename to _articles/extended-usage/ui-customization.md
index cadcebc6..89046f3e 100644
--- a/articles/extended-usage/ui-customization.md
+++ b/_articles/extended-usage/ui-customization.md
@@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Features - UI Elements
keywords: Dynamic Web TWAIN, Documentation, UI
breadcrumbText: UI
description: Dynamic Web TWAIN SDK Documentation UI Page
-permalink: /extended-usage/ui-customization.html
---
# UI Elements
@@ -58,11 +57,11 @@ or like this (with a `Cancel` button)

-The 1st bar shows up when saving, loading or converting and can be hidden by setting [ `IfShowProgressBar` ]({{site.info}}api/WebTwain_IO.html#ifshowprogressbar) to `false` .
+The 1st bar shows up when saving, loading or converting and can be hidden by setting [ `IfShowProgressBar` ](/_articles/info/api/WebTwain_IO.md#ifshowprogressbar) to `false` .
-Both bars show up when uploading or downloading and can be hidden by setting [ `IfShowCancelDialogWhenImageTransfer` ]({{site.info}}api/WebTwain_IO.html#ifshowcanceldialogwhenimagetransfer) to `false` .
+Both bars show up when uploading or downloading and can be hidden by setting [ `IfShowCancelDialogWhenImageTransfer` ](/_articles/info/api/WebTwain_IO.md#ifshowcanceldialogwhenimagetransfer) to `false` .
-For uploading or downloading, you can also build your own progress bar with the help of the built-in event [ `OnInternetTransferPercentage` ]({{site.info}}api/WebTwain_IO.html#oninternettransferpercentage).
+For uploading or downloading, you can also build your own progress bar with the help of the built-in event [ `OnInternetTransferPercentage` ](/_articles/info/api/WebTwain_IO.md#oninternettransferpercentage).
``` javascript
DWTObject.RegisterEvent('OnInternetTransferPercentage',
@@ -77,7 +76,7 @@ DWTObject.RegisterEvent('OnInternetTransferPercentage',
### Error Messages
-`Dynamic Web TWAIN` has many built-in error messages as shown [here]({{site.info}}api/appendix.html#error-list). Each `ErrorString` has its own `ErrorCode` . To change the language of the message, you can read the `ErrorCode` and output the error string you have customized. For example
+`Dynamic Web TWAIN` has many built-in error messages as shown [here](/_articles/info/api/appendix.md#error-list). Each `ErrorString` has its own `ErrorCode` . To change the language of the message, you can read the `ErrorCode` and output the error string you have customized. For example
``` javascript
if (DWTObject.ErrorCode === -2359) {
diff --git a/faq/.gitignore b/_articles/faq/.gitignore
similarity index 100%
rename from faq/.gitignore
rename to _articles/faq/.gitignore
diff --git a/faq/DVS-is-not-defined.md b/_articles/faq/DVS-is-not-defined.md
similarity index 80%
rename from faq/DVS-is-not-defined.md
rename to _articles/faq/DVS-is-not-defined.md
index 16aa8cad..c5327c45 100644
--- a/faq/DVS-is-not-defined.md
+++ b/_articles/faq/DVS-is-not-defined.md
@@ -6,7 +6,6 @@ title: Uncaught ReferenceError - DVS is not defined
keywords: Dynamic Web TWAIN, Error Troubleshooting, DVS
breadcrumbText: Uncaught ReferenceError - DVS is not defined
description: Uncaught ReferenceError - DVS is not defined
-permalink: /faq/DVS-is-not-defined.html
---
# Error Troubleshooting
@@ -17,4 +16,4 @@ You may see this error if the Dynamic Web TWAIN resources are deployed in a cust
Please make sure the path to Resources folder is defined correctly and that you can find `\*.viewer.js` under the `{ResourcesPath}/src` folder. If `viewer.js` does not exist in the target directory, please verify that the Dynamic Web TWAIN resources are deployed correctly and all files have been deployed.
-Please refer to Dynamic Web TWAIN Deployment - Server Deployment for more details on server deployment
+Please refer to Dynamic Web TWAIN Deployment - Server Deployment for more details on server deployment
diff --git a/faq/HTTP-process-error.md b/_articles/faq/HTTP-process-error.md
similarity index 84%
rename from faq/HTTP-process-error.md
rename to _articles/faq/HTTP-process-error.md
index 285c8ca3..54055814 100644
--- a/faq/HTTP-process-error.md
+++ b/_articles/faq/HTTP-process-error.md
@@ -6,7 +6,6 @@ title: HTTP process error
keywords: Dynamic Web TWAIN, Error Troubleshooting, HTTP process
breadcrumbText: HTTP process error
description: HTTP process error
-permalink: /faq/HTTP-process-error.html
---
# Error Troubleshooting
@@ -27,15 +26,15 @@ When attempting to upload images using any of the HTTPUpload\*\*\* methods the u
### Solution
1. Make sure the users who are uploading have permission to write images to the specified directory on the web server. (For example, give "Write" permission to the Authenticated Users.)
-2. Check the response string returned from the HTTP server to determine the cause of the HTTP process error. You can get this string by using the [HTTPPostResponseString]({{site.info}}api/WebTwain_IO.html#httppostresponsestring) property.
-3. Set the port to the correct one using [HTTPPort]({{site.info}}api/WebTwain_IO.html#httpport). We recommend you get the Port and Server values this way:
+2. Check the response string returned from the HTTP server to determine the cause of the HTTP process error. You can get this string by using the [HTTPPostResponseString](/_articles/info/api/WebTwain_IO.md#httppostresponsestring) property.
+3. Set the port to the correct one using [HTTPPort](/_articles/info/api/WebTwain_IO.md#httpport). We recommend you get the Port and Server values this way:
```javascript
var strHTTPServer = location.hostname;
DWTObject.HTTPPort = location.port == "" ? 80 : location.port;
```
- - If you have set [IfSSL]({{site.info}}api/WebTwain_IO.html#ifssl) to true, you must set a secure port for the HTTPPort property. For example,
+ - If you have set [IfSSL](/_articles/info/api/WebTwain_IO.md#ifssl) to true, you must set a secure port for the HTTPPort property. For example,
```javascript
DWTObject.IfSSL = true;
diff --git a/faq/HTTP-request-error.md b/_articles/faq/HTTP-request-error.md
similarity index 97%
rename from faq/HTTP-request-error.md
rename to _articles/faq/HTTP-request-error.md
index 3c4af9cc..268fd9df 100644
--- a/faq/HTTP-request-error.md
+++ b/_articles/faq/HTTP-request-error.md
@@ -6,7 +6,6 @@ title: HTTP request error
keywords: Dynamic Web TWAIN, Error Troubleshooting, HTTP request
breadcrumbText: HTTP request error
description: HTTP request error
-permalink: /faq/HTTP-request-error.html
---
# Error Troubleshooting
diff --git a/faq/JPEG-compression.md b/_articles/faq/JPEG-compression.md
similarity index 93%
rename from faq/JPEG-compression.md
rename to _articles/faq/JPEG-compression.md
index b6337def..3b317e4c 100644
--- a/faq/JPEG-compression.md
+++ b/_articles/faq/JPEG-compression.md
@@ -6,7 +6,6 @@ title: Only 24-bit true color bmp and 8-bit gray-scaled images are supported for
keywords: Dynamic Web TWAIN, Error Troubleshooting, jpeg, 24-bit, 8-bit
breadcrumbText: Only 24-bit true color bmp and 8-bit gray-scaled images are supported for JPEG compression
description: Only 24-bit true color bmp and 8-bit gray-scaled images are supported for JPEG compression
-permalink: /faq/JPEG-compression.html
---
# Error Troubleshooting
@@ -23,7 +22,7 @@ You are saving a black and white image as a JPEG file but JPEG standard only all
### Resolution
-Make sure the pixel type of the image in the buffer is Gray or RGB. If it is not, you can either save it in another format or convert the image to grayscale using the method [ConvertToGrayScale()]({{site.info}}api/WebTwain_Edit.html#converttograyscale).
+Make sure the pixel type of the image in the buffer is Gray or RGB. If it is not, you can either save it in another format or convert the image to grayscale using the method [ConvertToGrayScale()](/_articles/info/api/WebTwain_Edit.md#converttograyscale).
```javascript
if ( /*If save in JPEG*/ ) {
diff --git a/faq/XMLHttpRequest-cannot-load.md b/_articles/faq/XMLHttpRequest-cannot-load.md
similarity index 97%
rename from faq/XMLHttpRequest-cannot-load.md
rename to _articles/faq/XMLHttpRequest-cannot-load.md
index 3456b1e5..f0ad8331 100644
--- a/faq/XMLHttpRequest-cannot-load.md
+++ b/_articles/faq/XMLHttpRequest-cannot-load.md
@@ -6,7 +6,6 @@ title: XMLHttpRequest cannot load XXX
keywords: Dynamic Web TWAIN, Error Troubleshooting, XMLHttpRequest
breadcrumbText: XMLHttpRequest cannot load XXX
description: XMLHttpRequest cannot load XXX
-permalink: /faq/XMLHttpRequest-cannot-load.html
---
# Error Troubleshooting
diff --git a/faq/acquireimage-sync-or-async.md b/_articles/faq/acquireimage-sync-or-async.md
similarity index 66%
rename from faq/acquireimage-sync-or-async.md
rename to _articles/faq/acquireimage-sync-or-async.md
index 83e4a1cb..7c3dad50 100644
--- a/faq/acquireimage-sync-or-async.md
+++ b/_articles/faq/acquireimage-sync-or-async.md
@@ -6,11 +6,10 @@ title: Is the AcquireImage() method synchronous or asynchronous?
keywords: Dynamic Web TWAIN, Capture/ Image Source, acquireImage synchronous, asynchronous
breadcrumbText: Is the AcquireImage() method synchronous or asynchronous?
description: Is the AcquireImage() method synchronous or asynchronous?
-permalink: /faq/acquireimage-sync-or-async.html
---
# Capture/Image Source
## Is the AcquireImage() method synchronous or asynchronous?
-AcquireImage() is an asynchronous method, regardless of whether it includes a callback function or not.
+[AcquireImage()](/_articles/info/api/WebTwain_Acquire.md#acquireimage){:target="_blank"} is an asynchronous method, regardless of whether it includes a callback function or not.
diff --git a/faq/activeX-in-Edge-IE-mode.md b/_articles/faq/activeX-in-Edge-IE-mode.md
similarity index 91%
rename from faq/activeX-in-Edge-IE-mode.md
rename to _articles/faq/activeX-in-Edge-IE-mode.md
index edbc7177..1ced9752 100644
--- a/faq/activeX-in-Edge-IE-mode.md
+++ b/_articles/faq/activeX-in-Edge-IE-mode.md
@@ -6,7 +6,6 @@ title: How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer
keywords: Dynamic Web TWAIN, ActiveX, Internet Explorer mode, IE mode
breadcrumbText: How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer (IE) mode
description: How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer (IE) mode
-permalink: /faq/activeX-in-Edge-IE-mode.html
---
View all FAQs about [Project Deployment and End-user Installation](
@@ -14,7 +13,7 @@ https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-in
# How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer (IE) mode
-Microsoft is retiring Internet Explorer 11 on June 15, 2022. To support Dynamic Web TWAIN ActiveX, please configure IE mode in Edge following the steps below. For better browser compatibility, we strongly recommend updating your web application with our HTML5 edition.
+Microsoft is retiring Internet Explorer 11 on June 15, 2022. To support Dynamic Web TWAIN ActiveX, please configure IE mode in Edge following the steps below. For better browser compatibility, we strongly recommend updating your web application with our HTML5 edition.
### Step by step instructions to configure Microsoft Edge IE mode
diff --git a/faq/add-annotation-to-image.md b/_articles/faq/add-annotation-to-image.md
similarity index 94%
rename from faq/add-annotation-to-image.md
rename to _articles/faq/add-annotation-to-image.md
index a1d3c402..987b81ef 100644
--- a/faq/add-annotation-to-image.md
+++ b/_articles/faq/add-annotation-to-image.md
@@ -6,7 +6,6 @@ title: Can I add annotation to an image (e.g. add watermark or text)?
keywords: Dynamic Web TWAIN, Image Editing, annotation, watermark
breadcrumbText: Can I add annotation to an image (e.g. add watermark or text)?
description: Can I add annotation to an image (e.g. add watermark or text)?
-permalink: /faq/add-annotation-to-image.html
---
# Image Editing
diff --git a/faq/additional-form-fields.md b/_articles/faq/additional-form-fields.md
similarity index 67%
rename from faq/additional-form-fields.md
rename to _articles/faq/additional-form-fields.md
index 9b12b5b3..bba1f206 100644
--- a/faq/additional-form-fields.md
+++ b/_articles/faq/additional-form-fields.md
@@ -6,14 +6,13 @@ title: How can I send additional form fields with images to my server or databas
keywords: Dynamic Web TWAIN, Document Saving, additional form fields
breadcrumbText: How can I send additional form fields with images to my server or database?
description: How can I send additional form fields with images to my server or database?
-permalink: /faq/additional-form-fields.html
---
# Document Saving
## How can I send additional form fields with images to my server or database?
-You can use SetHTTPFormField to set meta data as form fields and use HTTPUpload to send it to the server side with the scanned document.
+You can use SetHTTPFormField to set meta data as form fields and use HTTPUpload to send it to the server side with the scanned document.
```javascript
// Clear old fields before adding new ones
@@ -23,10 +22,10 @@ DWTObject.SetHTTPFormField("FileType", "Insurance Doc");
You can check out this demo project for sending additional form fields when uploading the scanned document.
-SetHTTPFormField can also be used to send image data in base64 or BLOB to the server side.
+SetHTTPFormField can also be used to send image data in base64 or BLOB to the server side.
-By design, the method HTTPUpload() only contains one file. But as it essentially sends an HTTP form to the server, you can attach multiple files in that form using the methods ConvertToBlob() and SetHTTPFormField() .
-Check out the following snippet on how it is done. NOTE that the method HTTPUpload() only has 3 parameters as it doesn't need to specify a file anymore.
+By design, the method HTTPUpload() only contains one file. But as it essentially sends an HTTP form to the server, you can attach multiple files in that form using the methods ConvertToBlob() and SetHTTPFormField() .
+Check out the following snippet on how it is done. NOTE that the method HTTPUpload() only has 3 parameters as it doesn't need to specify a file anymore.
```javascript
/**
diff --git a/faq/admin-privileges-needed-to-install.md b/_articles/faq/admin-privileges-needed-to-install.md
similarity index 86%
rename from faq/admin-privileges-needed-to-install.md
rename to _articles/faq/admin-privileges-needed-to-install.md
index 8c21da57..85e0a3ec 100644
--- a/faq/admin-privileges-needed-to-install.md
+++ b/_articles/faq/admin-privileges-needed-to-install.md
@@ -6,7 +6,6 @@ title: Are admin privileges required to install the end-user component?
keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, sdmin privileges, install
breadcrumbText: Are admin privileges required to install the end-user component?
description: Are admin privileges required to install the end-user component?
-permalink: /faq/admin-privileges-needed-to-install.html
---
View all FAQs about [Project Deployment and End-user Installation](
@@ -23,7 +22,7 @@ https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-in
Yes, the Dynamic Web TWAIN Service installer is a `.msi` file which requires administrator privileges to install as the install target is `C:\Program Files (x86)`. Once the Dynamic Web TWAIN Service is installed with admin privileges, every user on that machine can has access to the Dynamic Web TWAIN Service.
-If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support]({{site.about}}getsupport.html) to get a special "Personal Installer" that does not require admin privileges.
+If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support](/_articles/about/getsupport.md) to get a special "Personal Installer" that does not require admin privileges.
The "Personal Installer", will install to the user's `C:\Users\{UserName}\AppData\Roaming\` folder. Please be aware that only one user per machine is able to have the service installed via this method. The service cannot be installed to multiple user profiles, and only the user that installs the Services in this manner will have access to the Dynamic Web TWAIN Service.
@@ -33,7 +32,7 @@ The "Personal Installer", will install to the user's `C:\Users\{UserName}\AppDat
Yes, the Dynamsoft Service installer is a `.msi` file which requires administrator privileges to install as the install target is `C:\Windows\SysWOW64\`. Once the Dynamsoft Service is installed with admin privileges, every user on that machine can has access to the Dynamsoft Service.
-If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support]({{site.about}}getsupport.html) to get a special "Personal Installer" that does not require admin privileges.
+If your organization does not allow end users to have admin privileges, you can contact [Dynamsoft Support](/_articles/about/getsupport.md) to get a special "Personal Installer" that does not require admin privileges.
The "Personal Installer", will install to the user's `C:\Users\{UserName}\AppData\Roaming\` folder. Please be aware that only one user per machine is able to have the service installed via this method. The service cannot be installed to multiple user profiles, and only the user that installs the Services in this manner will have access to the Dynamsoft Service.
diff --git a/faq/automatically-detect-border.md b/_articles/faq/automatically-detect-border.md
similarity index 81%
rename from faq/automatically-detect-border.md
rename to _articles/faq/automatically-detect-border.md
index 8a57a36b..fd4b8546 100644
--- a/faq/automatically-detect-border.md
+++ b/_articles/faq/automatically-detect-border.md
@@ -6,7 +6,6 @@ title: Can the Dynamic Web TWAIN SDK automatically detect borders of the scanned
keywords: Dynamic Web TWAIN, Capture/ Image Source, default source, automatically, detect border
breadcrumbText: Can the Dynamic Web TWAIN SDK automatically detect borders of the scanned document and crop it out?
description: Can the Dynamic Web TWAIN SDK automatically detect borders of the scanned document and crop it out?
-permalink: /faq/automatically-detect-border.html
---
# Capture/Image Source
@@ -15,6 +14,6 @@ permalink: /faq/automatically-detect-border.html
Yes, Dynamic Web TWAIN SDK can automatically detect borders of the scanned document if it is supported by the device and its driver. You can check whether your device supports this capability from its user manual.
-Please use IfAutomaticBorderDetection property to enable this functionality.
+Please use IfAutomaticBorderDetection property to enable this functionality.
> Note: Once enabled, the data source (scanner) will automatically detect the borders of the document so that no extra margins are scanned.
diff --git a/faq/automatically-rotate-upside-down-pages.md b/_articles/faq/automatically-rotate-upside-down-pages.md
similarity index 69%
rename from faq/automatically-rotate-upside-down-pages.md
rename to _articles/faq/automatically-rotate-upside-down-pages.md
index c1b38efc..13b1b34b 100644
--- a/faq/automatically-rotate-upside-down-pages.md
+++ b/_articles/faq/automatically-rotate-upside-down-pages.md
@@ -6,13 +6,12 @@ title: Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages duri
keywords: Dynamic Web TWAIN, Capture/ Image Source, automatically rotate pages
breadcrumbText: Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process?
description: Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process?
-permalink: /faq/automatically-rotate-upside-down-pages.html
---
# Capture/Image Source
## Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process?
-No, the rotation is not automatic, but it can be achieved by leveraging the rotating functionality explained in this link.
+No, the rotation is not automatic, but it can be achieved by leveraging the rotating functionality explained in this link.
-If you need to do automatic skew correction on scanned pages, you can refer to [this article]({{site.faq}}support-image-deskew.html) for our automatic de-skewing feature.
+If you need to do automatic skew correction on scanned pages, you can refer to [this article](/_articles/faq/support-image-deskew.md) for our automatic de-skewing feature.
diff --git a/faq/camera-play-and-showvideo.md b/_articles/faq/camera-play-and-showvideo.md
similarity index 81%
rename from faq/camera-play-and-showvideo.md
rename to _articles/faq/camera-play-and-showvideo.md
index be618633..017e8990 100644
--- a/faq/camera-play-and-showvideo.md
+++ b/_articles/faq/camera-play-and-showvideo.md
@@ -6,7 +6,6 @@ title: What is the difference between Camera.play and Camera.showVideo?
keywords: Dynamic Web TWAIN, Addon, webassembly, webcam capture
breadcrumbText: What is the difference between Camera.play and Camera.showVideo?
description: What is the difference between Camera.play and Camera.showVideo?
-permalink: /faq/camera-play-and-showvideo.html
---
# Addon
@@ -19,4 +18,4 @@ permalink: /faq/camera-play-and-showvideo.html
Note that these two APIs cannot be mixed with each other.
-Please check here for more information on the Camera APIs.
+Please check here for more information on the Camera APIs.
diff --git a/faq/can-i-install-dynamsoft-service-silently.md b/_articles/faq/can-i-install-dynamsoft-service-silently.md
similarity index 97%
rename from faq/can-i-install-dynamsoft-service-silently.md
rename to _articles/faq/can-i-install-dynamsoft-service-silently.md
index c618689b..b71a4bbf 100644
--- a/faq/can-i-install-dynamsoft-service-silently.md
+++ b/_articles/faq/can-i-install-dynamsoft-service-silently.md
@@ -6,7 +6,6 @@ title: Can I install Dynamic Web TWAIN Service silently?
keywords: Dynamic Web TWAIN, Dynamic Web TWAIN Service, silently
breadcrumbText: Can I install Dynamic Web TWAIN Service silently?
description: Can I install Dynamic Web TWAIN Service silently?
-permalink: /faq/can-i-install-dynamsoft-service-silently.html
---
View all FAQs about [Project Deployment and End-user Installation](
diff --git a/faq/change-background-color.md b/_articles/faq/change-background-color.md
similarity index 94%
rename from faq/change-background-color.md
rename to _articles/faq/change-background-color.md
index c4ae0769..b4aea770 100644
--- a/faq/change-background-color.md
+++ b/_articles/faq/change-background-color.md
@@ -6,7 +6,6 @@ title: How can I change the background color of the image viewer?
keywords: Dynamic Web TWAIN, Image Viewer, background color
breadcrumbText: How can I change the background color of the image viewer?
description: How can I change the background color of the image viewer?
-permalink: /faq/change-background-color.html
---
# Image Viewer
diff --git a/faq/change-display-language.md b/_articles/faq/change-display-language.md
similarity index 99%
rename from faq/change-display-language.md
rename to _articles/faq/change-display-language.md
index 1bee2f76..0cbb7513 100644
--- a/faq/change-display-language.md
+++ b/_articles/faq/change-display-language.md
@@ -6,7 +6,6 @@ title: How can I change the display language of all messages from English to ano
keywords: Dynamic Web TWAIN, UI Customization, display language, language
breadcrumbText: How can I change the display language of all messages from English to another language?
description: How can I change the display language of all messages from English to another language?
-permalink: /faq/change-display-language.html
---
# UI Customization
diff --git a/faq/change-dynamsoft-service-certificate.md b/_articles/faq/change-dynamsoft-service-certificate.md
similarity index 96%
rename from faq/change-dynamsoft-service-certificate.md
rename to _articles/faq/change-dynamsoft-service-certificate.md
index d788d0bf..eb386625 100644
--- a/faq/change-dynamsoft-service-certificate.md
+++ b/_articles/faq/change-dynamsoft-service-certificate.md
@@ -6,7 +6,6 @@ title: How can I change the certificate of the Dynamic Web TWAIN Service?
keywords: Dynamic Web TWAIN, Security, change certificate, service
breadcrumbText: How can I change the certificate of the Dynamic Web TWAIN Service?
description: How can I change the certificate of the Dynamic Web TWAIN Service?
-permalink: /faq/change-dynamsoft-service-certificate.html
---
# Security
diff --git a/faq/change-hide-spinner.md b/_articles/faq/change-hide-spinner.md
similarity index 68%
rename from faq/change-hide-spinner.md
rename to _articles/faq/change-hide-spinner.md
index eed7b80a..88862726 100644
--- a/faq/change-hide-spinner.md
+++ b/_articles/faq/change-hide-spinner.md
@@ -6,15 +6,14 @@ title: How can I change/hide the spinner which shows during document scanning?
keywords: Dynamic Web TWAIN, UI Customization, hide spinner
breadcrumbText: How can I change/hide the spinner which shows during document scanning?
description: How can I change/hide the spinner which shows during document scanning?
-permalink: /faq/change-hide-spinner.html
---
# UI Customization
## How can I change/hide the spinner which shows during document scanning?
-You can change/hide the loading bar which is shown during document scanning. The detailed steps can be found in this link.
+You can change/hide the loading bar which is shown during document scanning. The detailed steps can be found in this link.
-> Note: there is a known issue in v17.3, if you cannot hide the loading bar with the above method, please refer to this [link]({{site.faq}}unable-hide-loading-bar.html).
\ No newline at end of file
+> Note: there is a known issue in v17.3, if you cannot hide the loading bar with the above method, please refer to this [link](/_articles/faq/unable-hide-loading-bar.md).
\ No newline at end of file
diff --git a/faq/change-reference-path.md b/_articles/faq/change-reference-path.md
similarity index 98%
rename from faq/change-reference-path.md
rename to _articles/faq/change-reference-path.md
index 6e05aea7..5a325158 100644
--- a/faq/change-reference-path.md
+++ b/_articles/faq/change-reference-path.md
@@ -6,7 +6,6 @@ title: How can I change the reference path to the Dynamsoft's resources in my pr
keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, reference path, resources path, 2803, 2804
breadcrumbText: How can I change the reference path to the Dynamsoft's resources in my project?
description: How can I change the reference path to the Dynamsoft's resources in my project?
-permalink: /faq/change-reference-path.html
---
View all FAQs about [Project Deployment and End-user Installation](
https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-installation)
diff --git a/_articles/faq/change-resolution-of-image.md b/_articles/faq/change-resolution-of-image.md
new file mode 100644
index 00000000..316e0ae4
--- /dev/null
+++ b/_articles/faq/change-resolution-of-image.md
@@ -0,0 +1,17 @@
+---
+layout: default-layout
+noTitleIndex: true
+needAutoGenerateSidebar: true
+title: Can I change the resolution/DPI of an image in the viewer?
+keywords: Dynamic Web TWAIN, Image Editing, change resolution
+breadcrumbText: Can I change the resolution/DPI of an image in the viewer?
+description: Can I change the resolution/DPI of an image in the viewer?
+---
+
+# Image Editing
+
+## Can I change the resolution/DPI of an image in the viewer?
+
+You can use the Resolution property to check the resolution while acquiring an image. To change the resolution/DPI in the viewer, you can use the following methods:
+
+DWTObject.SetDPI() // Changes the DPI (dots per inch) of the specified image depending on the input resolution parameters
diff --git a/faq/chrome-106-107-warning.md b/_articles/faq/chrome-106-107-warning.md
similarity index 97%
rename from faq/chrome-106-107-warning.md
rename to _articles/faq/chrome-106-107-warning.md
index 84079322..e5a613b2 100644
--- a/faq/chrome-106-107-warning.md
+++ b/_articles/faq/chrome-106-107-warning.md
@@ -6,7 +6,6 @@ title: Warning message - Canvas2D Warning
keywords: Dynamic Web TWAIN, Error Troubleshooting, Canvas2D, Warning
breadcrumbText: Warning message - Canvas2D Warning
description: Canvas2D Warning
-permalink: /faq/chrome-106-107-warning.html
---
# Error Troubleshooting
diff --git a/faq/component-needs-to-be-installed-on-end-user-machine.md b/_articles/faq/component-needs-to-be-installed-on-end-user-machine.md
similarity index 57%
rename from faq/component-needs-to-be-installed-on-end-user-machine.md
rename to _articles/faq/component-needs-to-be-installed-on-end-user-machine.md
index de8ff77d..48b30a25 100644
--- a/faq/component-needs-to-be-installed-on-end-user-machine.md
+++ b/_articles/faq/component-needs-to-be-installed-on-end-user-machine.md
@@ -6,7 +6,6 @@ title: Is there any component of the Dynamic Web TWAIN SDK that needs to be inst
keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, installation on end-user
breadcrumbText: Is there any component of the Dynamic Web TWAIN SDK that needs to be installed on end-user machines?
description: Is there any component of the Dynamic Web TWAIN SDK that needs to be installed on end-user machines?
-permalink: /faq/component-needs-to-be-installed-on-end-user-machine.html
---
View all FAQs about [Project Deployment and End-user Installation](
@@ -14,10 +13,10 @@ https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-in
# Is there any component of the Dynamic Web TWAIN SDK that needs to be installed on end-user machines?
-For the Desktop Service Edition, the Dynamic Web TWAIN Service (also called "Dynamsoft Service") needs to be installed on end-user machines. By default end-users will be prompted to install Dynamic Web TWAIN Service when they access your application for the first time.
+For the Desktop Service Edition, the Dynamic Web TWAIN Service (also called "Dynamsoft Service") needs to be installed on end-user machines. By default end-users will be prompted to install Dynamic Web TWAIN Service when they access your application for the first time.
-When you upgrade Dynamic Web TWAIN, you may also need a reinstallation of Dynamic Web TWAIN Service on the client-side. For more information, please refer to Update Dynamic Web TWAIN Service on the Client-side.
+When you upgrade Dynamic Web TWAIN, you may also need a reinstallation of Dynamic Web TWAIN Service on the client-side. For more information, please refer to Update Dynamic Web TWAIN Service on the Client-side.
If you do not want to install anything, there is an option.
-You can enable Remote Scan, which scans documents from remote scanners connected to host machines. No installation is required on the client machine. Please check here for more information on how remote scan works and how to enable it.
+You can enable Remote Scan, which scans documents from remote scanners connected to host machines. No installation is required on the client machine. Please check here for more information on how remote scan works and how to enable it.
diff --git a/faq/connection-couldnt-be-established.md b/_articles/faq/connection-couldnt-be-established.md
similarity index 88%
rename from faq/connection-couldnt-be-established.md
rename to _articles/faq/connection-couldnt-be-established.md
index 2ab9b8c3..093ca6ff 100644
--- a/faq/connection-couldnt-be-established.md
+++ b/_articles/faq/connection-couldnt-be-established.md
@@ -6,7 +6,6 @@ title: A connection with the server could not be established
keywords: Dynamic Web TWAIN, Error Troubleshooting, connection not established
breadcrumbText: A connection with the server could not be established
description: A connection with the server could not be established
-permalink: /faq/connection-couldnt-be-established.html
---
# Error Troubleshooting
@@ -23,7 +22,7 @@ The problem may occur when a connection with the server is not available.
### Resolution
-- Check if the HTTP port you set in your code coincides with the port number you set on your web server. You can use the [HTTPPort]({{site.info}}api/WebTwain_IO.html#httpport) property to set the port number.
+- Check if the HTTP port you set in your code coincides with the port number you set on your web server. You can use the [HTTPPort](/_articles/info/api/WebTwain_IO.md#httpport) property to set the port number.
- Make sure the address of the server is available. To check this, you can ping the address from a client machine.
> Note:
diff --git a/faq/connection-from-the-insecure-HTTP-to-service-failed.md b/_articles/faq/connection-from-the-insecure-HTTP-to-service-failed.md
similarity index 89%
rename from faq/connection-from-the-insecure-HTTP-to-service-failed.md
rename to _articles/faq/connection-from-the-insecure-HTTP-to-service-failed.md
index a2f7fc2c..64e6b3ab 100644
--- a/faq/connection-from-the-insecure-HTTP-to-service-failed.md
+++ b/_articles/faq/connection-from-the-insecure-HTTP-to-service-failed.md
@@ -6,7 +6,6 @@ title: Error Message - The connection from the insecure (HTTP) web page to the l
keywords: Dynamic Web TWAIN, Error Meaasge, connection failed, Dynamsoft Service, HTTP
breadcrumbText: Error Message - The connection from the insecure (HTTP) web page to the local 'Dynamsoft Service' failed
description: Error Message - The connection from the insecure (HTTP) web page to the local 'Dynamsoft Service' failed
-permalink: /faq/connection-from-the-insecure-HTTP-to-service-failed.html
---
# Error Troubleshooting
@@ -15,7 +14,7 @@ permalink: /faq/connection-from-the-insecure-HTTP-to-service-failed.html
### Symptom
-On Windows 7 x86, Win7 64 Enterprise (or any older Windows OS), you get an error message that says **"The connection from the insecure (HTTP) web page to the local 'Dynamsoft Service' failed. To fix the issue, please update your website to HTTPS or refer to this article for other workarounds"** even if you are accessing a secure (HTTPs) web page.
+On Windows 7 x86, Win7 64 Enterprise (or any older Windows OS), you get an error message that says **"The connection from the insecure (HTTP) web page to the local 'Dynamsoft Service' failed. To fix the issue, please update your website to HTTPS or refer to this article for other workarounds"** even if you are accessing a secure (HTTPs) web page.
And refresh the web page does not work.
diff --git a/faq/content-security-policy-violated.md b/_articles/faq/content-security-policy-violated.md
similarity index 96%
rename from faq/content-security-policy-violated.md
rename to _articles/faq/content-security-policy-violated.md
index b6bd5dc6..5f063bda 100644
--- a/faq/content-security-policy-violated.md
+++ b/_articles/faq/content-security-policy-violated.md
@@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK – Content-Security-Policy violated
keywords: Dynamic Web TWAIN, Content-Security-Policy
breadcrumbText: Dynamic Web TWAIN – Content-Security-Policy violated
description: Dynamic Web TWAIN – Content-Security-Policy violated
-permalink: /faq/content-security-policy-violated.html
---
View all FAQs about [Project Deployment and End-user Installation](
diff --git a/faq/convert-color-image-to-grayscale.md b/_articles/faq/convert-color-image-to-grayscale.md
similarity index 58%
rename from faq/convert-color-image-to-grayscale.md
rename to _articles/faq/convert-color-image-to-grayscale.md
index 1c932ec2..6807f6be 100644
--- a/faq/convert-color-image-to-grayscale.md
+++ b/_articles/faq/convert-color-image-to-grayscale.md
@@ -6,7 +6,6 @@ title: Can I convert a color image to grayscale or black & white?
keywords: Dynamic Web TWAIN, Image Editing, convert color to grayscale, grayscale, black and white
breadcrumbText: Can I convert a color image to grayscale or black & white?
description: Can I convert a color image to grayscale or black & white?
-permalink: /faq/convert-color-image-to-grayscale.html
---
# Image Editing
@@ -15,6 +14,6 @@ permalink: /faq/convert-color-image-to-grayscale.html
Yes, you can convert the color of an image easily by using the below methods:
-- DWTObject.ConvertToBW() // Converts the specified image to a black-and-white image
+- DWTObject.ConvertToBW() // Converts the specified image to a black-and-white image
-- DWTObject.ConvertToGrayScale() // Converts the specified image to a grayscale image
+- DWTObject.ConvertToGrayScale() // Converts the specified image to a grayscale image
diff --git a/faq/coordinates-of-selected-area.md b/_articles/faq/coordinates-of-selected-area.md
similarity index 55%
rename from faq/coordinates-of-selected-area.md
rename to _articles/faq/coordinates-of-selected-area.md
index 74a2356a..6cf6a5fa 100644
--- a/faq/coordinates-of-selected-area.md
+++ b/_articles/faq/coordinates-of-selected-area.md
@@ -6,11 +6,10 @@ title: How to get the coordinates of the selected area on an image?
keywords: Dynamic Web TWAIN, Image Viewer, coordinates of the selected area
breadcrumbText: How to get the coordinates of the selected area on an image?
description: How to get the coordinates of the selected area on an image?
-permalink: /faq/coordinates-of-selected-area.html
---
# Image Viewer
## How to get the coordinates of the selected area on an image?
-You can use the [`pageAreaSelected`]({{site.api}}WebTwain_Viewer.html#pageareaselected) event to get the coordinates of the selected area on an image. This event is triggered when the user selects an area (draws a rectangle) or moves a selected area on the current page. (Click the link to view syntax and sample usage)
\ No newline at end of file
+You can use the [`pageAreaSelected`](/_articles/info/api/WebTwain_Viewer.md#pageareaselected) event to get the coordinates of the selected area on an image. This event is triggered when the user selects an area (draws a rectangle) or moves a selected area on the current page. (Click the link to view syntax and sample usage)
\ No newline at end of file
diff --git a/faq/create-thumbnail-viewer-to-navigate-images.md b/_articles/faq/create-thumbnail-viewer-to-navigate-images.md
similarity index 81%
rename from faq/create-thumbnail-viewer-to-navigate-images.md
rename to _articles/faq/create-thumbnail-viewer-to-navigate-images.md
index 3263a17f..ed372dd8 100644
--- a/faq/create-thumbnail-viewer-to-navigate-images.md
+++ b/_articles/faq/create-thumbnail-viewer-to-navigate-images.md
@@ -6,14 +6,13 @@ title: How can I create a thumbnail viewer to view images?
keywords: Dynamic Web TWAIN, Image Viewer, navigate images, thumbnail viewer
breadcrumbText: How can I create a thumbnail viewer to view images?
description: How can I create a thumbnail viewer to view images?
-permalink: /faq/create-thumbnail-viewer-to-navigate-images.html
---
# Image Viewer
## How can I create a thumbnail viewer to view images?
-You can create a thumbnail viewer by using the API createThumbnailViewer(). You can either use the default settings or customize the viewer as shown below:
+You can create a thumbnail viewer by using the API createThumbnailViewer(). You can either use the default settings or customize the viewer as shown below:
```javascript
// Use default settings
diff --git a/faq/custom-capability.md b/_articles/faq/custom-capability.md
similarity index 84%
rename from faq/custom-capability.md
rename to _articles/faq/custom-capability.md
index e6118120..562c5348 100644
--- a/faq/custom-capability.md
+++ b/_articles/faq/custom-capability.md
@@ -6,7 +6,6 @@ title: How can I use a custom capability of my scanner hardware when there is no
keywords: Dynamic Web TWAIN, Capture/ Image Source, custom capability
breadcrumbText: How can I use a custom capability of my scanner hardware when there is no direct API to set it?
description: How can I use a custom capability of my scanner hardware when there is no direct API to set it?
-permalink: /faq/custom-capability.html
---
# Capture/Image Source
@@ -22,7 +21,7 @@ You can use Capability Negotiation to set it. Capability Negotiation is the way
The steps are:
-1. Use getCapabilities to find the capability you want to set.
+1. Use getCapabilities to find the capability you want to set.
```javascript
DWTObject.OpenSource();
@@ -38,7 +37,7 @@ DWTObject.getCapabilities(
- Alternatively, you can install the [TWAIN Sample App](http://www.dynamsoft.com/download/support/twainapp.win32.installer.msi) to check the capabilities available and their values.
-2. Use setCapabilities to set the capability.
+2. Use setCapabilities to set the capability.
```javascript
DWTObject.setCapabilities(
diff --git a/faq/customize-ui-elements-of-image-editor.md b/_articles/faq/customize-ui-elements-of-image-editor.md
similarity index 98%
rename from faq/customize-ui-elements-of-image-editor.md
rename to _articles/faq/customize-ui-elements-of-image-editor.md
index 2f578f9c..b57274c3 100644
--- a/faq/customize-ui-elements-of-image-editor.md
+++ b/_articles/faq/customize-ui-elements-of-image-editor.md
@@ -6,7 +6,6 @@ title: Can I customize UI elements of the built-in image editor?
keywords: Dynamic Web TWAIN, UI Customization, customize, ui elements
breadcrumbText: Can I customize UI elements of the built-in image editor?
description: Can I customize UI elements of the built-in image editor?
-permalink: /faq/customize-ui-elements-of-image-editor.html
---
# UI Customization
diff --git a/faq/debug-on-online-demo.md b/_articles/faq/debug-on-online-demo.md
similarity index 97%
rename from faq/debug-on-online-demo.md
rename to _articles/faq/debug-on-online-demo.md
index 0f242daf..0adedb2a 100644
--- a/faq/debug-on-online-demo.md
+++ b/_articles/faq/debug-on-online-demo.md
@@ -6,7 +6,6 @@ title: How to debug on Dynamic Web TWAIN online demo?
keywords: Dynamic Web TWAIN, Error Troubleshooting, debug, online demo
breadcrumbText: How to debug on Dynamic Web TWAIN online demo?
description: How to debug on Dynamic Web TWAIN online demo?
-permalink: /faq/debug-on-online-demo.html
---
# Error Troubleshooting
diff --git a/faq/deploy-to-all-users.md b/_articles/faq/deploy-to-all-users.md
similarity index 98%
rename from faq/deploy-to-all-users.md
rename to _articles/faq/deploy-to-all-users.md
index 5d2e52c8..0a9f6524 100644
--- a/faq/deploy-to-all-users.md
+++ b/_articles/faq/deploy-to-all-users.md
@@ -6,7 +6,6 @@ title: Is there an easy way to deploy the end-user components to all users?
keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, deploy, end-users
breadcrumbText: Is there an easy way to deploy the end-user components to all users?
description: Is there an easy way to deploy the end-user components to all users?
-permalink: /faq/deploy-to-all-users.html
---
View all FAQs about [Project Deployment and End-user Installation](
diff --git a/faq/deploy-your-own-upload-server-with-asp.net.md b/_articles/faq/deploy-your-own-upload-server-with-asp.net.md
similarity index 99%
rename from faq/deploy-your-own-upload-server-with-asp.net.md
rename to _articles/faq/deploy-your-own-upload-server-with-asp.net.md
index 25a4270d..91616fa4 100644
--- a/faq/deploy-your-own-upload-server-with-asp.net.md
+++ b/_articles/faq/deploy-your-own-upload-server-with-asp.net.md
@@ -6,7 +6,6 @@ title: How to deploy your own upload server with ASP.NET?
keywords: Dynamic Web TWAIN, Document Saving, Upload
breadcrumbText: How to deploy your own upload server with ASP.NET?
description: How to deploy your own upload server with ASP.NET?
-permalink: /faq/deploy-your-own-upload-server-with-asp.net.html
---
# Document Saving
diff --git a/faq/deploy-your-own-upload-server-with-jsp.md b/_articles/faq/deploy-your-own-upload-server-with-jsp.md
similarity index 99%
rename from faq/deploy-your-own-upload-server-with-jsp.md
rename to _articles/faq/deploy-your-own-upload-server-with-jsp.md
index b08e632e..b37da62f 100644
--- a/faq/deploy-your-own-upload-server-with-jsp.md
+++ b/_articles/faq/deploy-your-own-upload-server-with-jsp.md
@@ -6,7 +6,6 @@ title: How to deploy your own upload server with JSP?
keywords: Dynamic Web TWAIN, Document Saving, Upload
breadcrumbText: How to deploy your own upload server with JSP?
description: How to deploy your own upload server with JSP?
-permalink: /faq/deploy-your-own-upload-server-with-jsp.html
---
# Document Saving
diff --git a/faq/deploy-your-own-upload-server-with-node.js.md b/_articles/faq/deploy-your-own-upload-server-with-node.js.md
similarity index 99%
rename from faq/deploy-your-own-upload-server-with-node.js.md
rename to _articles/faq/deploy-your-own-upload-server-with-node.js.md
index 8db61c20..ed2f0b1f 100644
--- a/faq/deploy-your-own-upload-server-with-node.js.md
+++ b/_articles/faq/deploy-your-own-upload-server-with-node.js.md
@@ -6,7 +6,6 @@ title: How to deploy your own upload server with Node.js?
keywords: Dynamic Web TWAIN, Document Saving, Upload
breadcrumbText: How to deploy your own upload server with Node.js?
description: How to deploy your own upload server with Node.js?
-permalink: /faq/deploy-your-own-upload-server-with-node.js.html
---
# Document Saving
diff --git a/faq/deploy-your-own-upload-server-with-php.md b/_articles/faq/deploy-your-own-upload-server-with-php.md
similarity index 99%
rename from faq/deploy-your-own-upload-server-with-php.md
rename to _articles/faq/deploy-your-own-upload-server-with-php.md
index 103deb4e..80c8766a 100644
--- a/faq/deploy-your-own-upload-server-with-php.md
+++ b/_articles/faq/deploy-your-own-upload-server-with-php.md
@@ -6,7 +6,6 @@ title: How to deploy your own upload server with PHP?
keywords: Dynamic Web TWAIN, Document Saving, Upload
breadcrumbText: How to deploy your own upload server with PHP?
description: How to deploy your own upload server with PHP?
-permalink: /faq/deploy-your-own-upload-server-with-php.html
---
# Document Saving
diff --git a/faq/detect-paper-on-flatbed.md b/_articles/faq/detect-paper-on-flatbed.md
similarity index 62%
rename from faq/detect-paper-on-flatbed.md
rename to _articles/faq/detect-paper-on-flatbed.md
index e430416e..d81f2364 100644
--- a/faq/detect-paper-on-flatbed.md
+++ b/_articles/faq/detect-paper-on-flatbed.md
@@ -6,14 +6,13 @@ title: Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed?
keywords: Dynamic Web TWAIN, Capture/ Image Source, detect paper, flatbed
breadcrumbText: Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed?
description: Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed?
-permalink: /faq/detect-paper-on-flatbed.html
---
# Capture/Image Source
## Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed?
-Yes. You can use IfFeederLoaded API to inspect whether papers are loaded in the feeder of your current scanner. Before calling this API, please use IfPaperDetectable to inspect whether your current scanner hardware has a sensor to detect papers.
+Yes. You can use IfFeederLoaded API to inspect whether papers are loaded in the feeder of your current scanner. Before calling this API, please use IfPaperDetectable to inspect whether your current scanner hardware has a sensor to detect papers.
Code Example:
diff --git a/faq/difference-between-Twain-and-wia.md b/_articles/faq/difference-between-Twain-and-wia.md
similarity index 87%
rename from faq/difference-between-Twain-and-wia.md
rename to _articles/faq/difference-between-Twain-and-wia.md
index e7406e1b..8bca71c5 100644
--- a/faq/difference-between-Twain-and-wia.md
+++ b/_articles/faq/difference-between-Twain-and-wia.md
@@ -6,7 +6,6 @@ title: What are the differences between TWAIN and WIA?
keywords: Dynamic Web TWAIN, Capture/ Image Source, twain, wia, difference
breadcrumbText: What are the differences between TWAIN and WIA?
description: What are the differences between TWAIN and WIA?
-permalink: /faq/difference-between-Twain-and-wia.html
---
# Capture/Image Source
@@ -19,7 +18,7 @@ TWAIN is the most widely used protocol for physical document scanners. Almost al
Prior to Dynamic Web TWAIN version 18.2, WIA drivers are not officially supported. But `WIA` devices can be used by `TWAIN` applications like `Dynamic Web TWAIN` through a `TWAIN compatibility layer`. This means `WIA` is not supported natively; therefore, when a device supports both `TWAIN` and `WIA`, `TWAIN` is the better option.
-As of Dynamic Web TWAIN version 18.2, we officially support WIA 2.0 drivers. To make sure your web application works with WIA scanner drivers, please refer to the article: How do I support WIA scanner drivers in my application?
+As of Dynamic Web TWAIN version 18.2, we officially support WIA 2.0 drivers. To make sure your web application works with WIA scanner drivers, please refer to the article: How do I support WIA scanner drivers in my application?
diff --git a/faq/difference-between-camera-and-webcam.md b/_articles/faq/difference-between-camera-and-webcam.md
similarity index 94%
rename from faq/difference-between-camera-and-webcam.md
rename to _articles/faq/difference-between-camera-and-webcam.md
index 501914b1..9fd818ba 100644
--- a/faq/difference-between-camera-and-webcam.md
+++ b/_articles/faq/difference-between-camera-and-webcam.md
@@ -6,7 +6,6 @@ title: What is the difference between WebTwain.Addon.Camera and WebTwain.Addon.W
keywords: Dynamic Web TWAIN, Addon, camera, webcam
breadcrumbText: What is the difference between WebTwain.Addon.Camera and WebTwain.Addon.Webcam?
description: What is the difference between WebTwain.Addon.Camera and WebTwain.Addon.Webcam?
-permalink: /faq/difference-between-camera-and-webcam.html
---
# Addon
diff --git a/faq/difference-between-ocr-basic-and-pro.md b/_articles/faq/difference-between-ocr-basic-and-pro.md
similarity index 94%
rename from faq/difference-between-ocr-basic-and-pro.md
rename to _articles/faq/difference-between-ocr-basic-and-pro.md
index e3bc3fe4..9770290b 100644
--- a/faq/difference-between-ocr-basic-and-pro.md
+++ b/_articles/faq/difference-between-ocr-basic-and-pro.md
@@ -6,7 +6,6 @@ title: What's the difference between your OCR Basic and OCR Pro SDK?
keywords: Dynamic Web TWAIN, Addon, OCR, OCR basic, OCR pro
breadcrumbText: What's the difference between your OCR Basic and OCR Pro SDK?
description: What's the difference between your OCR Basic and OCR Pro SDK?
-permalink: /faq/difference-between-ocr-basic-and-pro.html
---
# Addon
diff --git a/faq/difference-in-service-and-webassembly-editions.md b/_articles/faq/difference-in-service-and-webassembly-editions.md
similarity index 77%
rename from faq/difference-in-service-and-webassembly-editions.md
rename to _articles/faq/difference-in-service-and-webassembly-editions.md
index 9e57b792..b04cfd23 100644
--- a/faq/difference-in-service-and-webassembly-editions.md
+++ b/_articles/faq/difference-in-service-and-webassembly-editions.md
@@ -6,14 +6,13 @@ title: What's the difference between the Desktop Service Edition and WebAssembly
keywords: Dynamic Web TWAIN, Licensing and Purchase, difference, service, webassembly
breadcrumbText: What's the difference between the Desktop Service Edition and WebAssembly Edition?
description: What's the difference between the Desktop Service Edition and WebAssembly Edition?
-permalink: /faq/difference-in-service-and-webassembly-editions.html
---
# Licensing and Purchase
## What's the difference between the Desktop Service Edition and WebAssembly Edition?
-Desktop Service Edition means Dynamic Web TWAIN operates through the Dynamsoft Service which is a quiet, background system service that handles the communication between connected physical document scanners and the browser client.
+Desktop Service Edition means Dynamic Web TWAIN operates through the Dynamsoft Service which is a quiet, background system service that handles the communication between connected physical document scanners and the browser client.
WebAssembly Edition means Dynamic Web TWAIN operates completely within the browser with the help of Web Worker and WebAssembly. No additional installation is required for each end user.
diff --git a/faq/disable-drag-and-drop-in-images.md b/_articles/faq/disable-drag-and-drop-in-images.md
similarity index 65%
rename from faq/disable-drag-and-drop-in-images.md
rename to _articles/faq/disable-drag-and-drop-in-images.md
index d5cca497..25243552 100644
--- a/faq/disable-drag-and-drop-in-images.md
+++ b/_articles/faq/disable-drag-and-drop-in-images.md
@@ -6,14 +6,13 @@ title: How can I disable drag and drop images in the viewer?
keywords: Dynamic Web TWAIN, Image Viewer, object defined
breadcrumbText: How can I disable drag and drop images in the viewer?
description: How can I disable drag and drop images in the viewer?
-permalink: /faq/disable-drag-and-drop-in-images.html
---
# Image Viewer
## How can I disable drag and drop images in the viewer?
-You can leverage the inbuilt API acceptDrop to disable the load functionality of the dropped images in the viewer.
+You can leverage the inbuilt API acceptDrop to disable the load functionality of the dropped images in the viewer.
```javascript
DWTObject.Viewer.acceptDrop = false;
diff --git a/faq/discount-policy.md b/_articles/faq/discount-policy.md
similarity index 95%
rename from faq/discount-policy.md
rename to _articles/faq/discount-policy.md
index e6faa290..792e4197 100644
--- a/faq/discount-policy.md
+++ b/_articles/faq/discount-policy.md
@@ -6,7 +6,6 @@ title: What is your discount policy?
keywords: Dynamic Web TWAIN, Licensing and Purchase, discount policy
breadcrumbText: What is your discount policy?
description: What is your discount policy?
-permalink: /faq/discount-policy.html
---
# Licensing and Purchase
diff --git a/faq/document-scanning-slow-than-native.md b/_articles/faq/document-scanning-slow-than-native.md
similarity index 60%
rename from faq/document-scanning-slow-than-native.md
rename to _articles/faq/document-scanning-slow-than-native.md
index 14943a1e..b19f443b 100644
--- a/faq/document-scanning-slow-than-native.md
+++ b/_articles/faq/document-scanning-slow-than-native.md
@@ -6,7 +6,6 @@ title: Document scanning via the Dynamic Web TWAIN SDK is slower than using the
keywords: Dynamic Web TWAIN, Capture/ Image Source, slow scan
breadcrumbText: Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up?
description: Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up?
-permalink: /faq/document-scanning-slow-than-native.html
---
# Capture/Image Source
@@ -15,6 +14,6 @@ permalink: /faq/document-scanning-slow-than-native.html
Please first check if you use the same pre-scanning settings (e.g. color mode, resolution, etc.).
-Assuming the pre-scanning settings are the same, please double check if there are any automatic actions after scanning pages. You may double check the call back functions of the AcquireImage function or check if you write any code in the OnPostTransfer or OnPostAllTransfers event. If you need to run some automatic actions right after each page is scanned, it's recommendeded to use the OnPostTransferAsync event.
+Assuming the pre-scanning settings are the same, please double check if there are any automatic actions after scanning pages. You may double check the call back functions of the AcquireImage function or check if you write any code in the OnPostTransfer or OnPostAllTransfers event. If you need to run some automatic actions right after each page is scanned, it's recommendeded to use the OnPostTransferAsync event.
If the scanning performance issue persists, please contact us.
diff --git a/faq/does-barcode-addon-support-patch-code.md b/_articles/faq/does-barcode-addon-support-patch-code.md
similarity index 80%
rename from faq/does-barcode-addon-support-patch-code.md
rename to _articles/faq/does-barcode-addon-support-patch-code.md
index 58c75d55..a772b549 100644
--- a/faq/does-barcode-addon-support-patch-code.md
+++ b/_articles/faq/does-barcode-addon-support-patch-code.md
@@ -6,7 +6,6 @@ title: Does your Barcode Reader addon support patch code?
keywords: Dynamic Web TWAIN, Addon, patch code
breadcrumbText: Does your Barcode Reader addon support patch code?
description: Does your Barcode Reader addon support patch code?
-permalink: /faq/does-barcode-addon-support-patch-code.html
---
# Addon
@@ -19,4 +18,4 @@ Check Specfiy the Barcode Type(s) to Read.
+More information can be found here: Specfiy the Barcode Type(s) to Read.
diff --git a/faq/does-per-server-allow-unlimited.md b/_articles/faq/does-per-server-allow-unlimited.md
similarity index 95%
rename from faq/does-per-server-allow-unlimited.md
rename to _articles/faq/does-per-server-allow-unlimited.md
index c8f57888..261d6622 100644
--- a/faq/does-per-server-allow-unlimited.md
+++ b/_articles/faq/does-per-server-allow-unlimited.md
@@ -6,7 +6,6 @@ title: Does the per-server license allow unlimited number of client devices and
keywords: Dynamic Web TWAIN, Licensing and Purchase, per-server, unlimited
breadcrumbText: Does the per-server license allow unlimited number of client devices and end users?
description: Does the per-server license allow unlimited number of client devices and end users?
-permalink: /faq/does-per-server-allow-unlimited.html
---
# Licensing and Purchase
diff --git a/faq/download-image-from-FTP-or-HTTP-server.md b/_articles/faq/download-image-from-FTP-or-HTTP-server.md
similarity index 75%
rename from faq/download-image-from-FTP-or-HTTP-server.md
rename to _articles/faq/download-image-from-FTP-or-HTTP-server.md
index a688b37b..7507f90c 100644
--- a/faq/download-image-from-FTP-or-HTTP-server.md
+++ b/_articles/faq/download-image-from-FTP-or-HTTP-server.md
@@ -6,11 +6,10 @@ title: Can I download an image from an FTP or HTTP server using the Dynamic Web
keywords: Dynamic Web TWAIN, Capture/ Image Source, download, FTP, HTTP server
breadcrumbText: Can I download an image from an FTP or HTTP server using the Dynamic Web TWAIN SDK?
description: Can I download an image from an FTP or HTTP server using the Dynamic Web TWAIN SDK?
-permalink: /faq/download-image-from-FTP-or-HTTP-server.html
---
# Capture/Image Source
## Can I download an image from a FTP or HTTP server using the Dynamic Web TWAIN SDK?
-Yes, you can download an image from a FTP or HTTP server using the Dynamic Web TWAIN SDK by using FTPDownload and HTTPDownload. You can find here all the input methods that are provided by Dynamic Web TWAIN SDK.
+Yes, you can download an image from a FTP or HTTP server using the Dynamic Web TWAIN SDK by using FTPDownload and HTTPDownload. You can find here all the input methods that are provided by Dynamic Web TWAIN SDK.
diff --git a/faq/download-older-version-sdk.md b/_articles/faq/download-older-version-sdk.md
similarity index 95%
rename from faq/download-older-version-sdk.md
rename to _articles/faq/download-older-version-sdk.md
index 1a71dd81..9128df3e 100644
--- a/faq/download-older-version-sdk.md
+++ b/_articles/faq/download-older-version-sdk.md
@@ -6,7 +6,6 @@ title: Where can I download an older version of the Dynamic Web TWAIN SDK?
keywords: Dynamic Web TWAIN, SDK Download, free trial, older version
breadcrumbText: Where can I download an older version of the Dynamic Web TWAIN SDK?
description: Where can I download an older version of the Dynamic Web TWAIN SDK?
-permalink: /faq/download-older-version-sdk.html
---
# SDK Download/Free Trial
diff --git a/faq/download-service-only.md b/_articles/faq/download-service-only.md
similarity index 98%
rename from faq/download-service-only.md
rename to _articles/faq/download-service-only.md
index 289e5289..72781522 100644
--- a/faq/download-service-only.md
+++ b/_articles/faq/download-service-only.md
@@ -6,7 +6,6 @@ title: Where can I download the Dynamic Web TWAIN Service installers only?
keywords: Dynamic Web TWAIN, Installation, Dynamic Web TWAIN Service, installer
breadcrumbText: Where can I download the Dynamic Web TWAIN Service installers only?
description: Where can I download the Dynamic Web TWAIN Service installers only?
-permalink: /faq/download-service-only.html
---
View all FAQs about [Project Deployment and End-user Installation](
diff --git a/faq/download-virtual-scanner-for-testing.md b/_articles/faq/download-virtual-scanner-for-testing.md
similarity index 92%
rename from faq/download-virtual-scanner-for-testing.md
rename to _articles/faq/download-virtual-scanner-for-testing.md
index c26863e7..9969fe78 100644
--- a/faq/download-virtual-scanner-for-testing.md
+++ b/_articles/faq/download-virtual-scanner-for-testing.md
@@ -6,7 +6,6 @@ title: Download virtual scanner for testing
keywords: Dynamic Web TWAIN, virtual scanner
breadcrumbText: Download virtual scanner for testing
description: Download virtual scanner for testing
-permalink: /faq/download-virtual-scanner-for-testing.html
---
# Capture/Image Source
diff --git a/faq/dwt-md5-is-not-allowed.md b/_articles/faq/dwt-md5-is-not-allowed.md
similarity index 97%
rename from faq/dwt-md5-is-not-allowed.md
rename to _articles/faq/dwt-md5-is-not-allowed.md
index 942a15d5..a564db9d 100644
--- a/faq/dwt-md5-is-not-allowed.md
+++ b/_articles/faq/dwt-md5-is-not-allowed.md
@@ -6,7 +6,6 @@ title: Request header field dwt-md5 is not allowed by Access-Control-Allow-Heade
keywords: Dynamic Web TWAIN, Error Troubleshooting, dwt-md5, Access-Control-Allow-Headers
breadcrumbText: Request header field dwt-md5 is not allowed by Access-Control-Allow-Headers in preflight response
description: Request header field dwt-md5 is not allowed by Access-Control-Allow-Headers in preflight response
-permalink: /faq/dwt-md5-is-not-allowed.html
---
# Error Troubleshooting
diff --git a/faq/dwt-with-annotation.md b/_articles/faq/dwt-with-annotation.md
similarity index 94%
rename from faq/dwt-with-annotation.md
rename to _articles/faq/dwt-with-annotation.md
index 868615d7..6403cd4a 100644
--- a/faq/dwt-with-annotation.md
+++ b/_articles/faq/dwt-with-annotation.md
@@ -6,7 +6,6 @@ title: Dynamic Web TWAIN with Annotations
keywords: Dynamic Web TWAIN, Annotation
breadcrumbText: Dynamic Web TWAIN with Annotations – Hello World
description: Dynamic Web TWAIN with Annotations – Hello World
-permalink: /faq/dwt-with-annotation.html
---
# Dynamic Web TWAIN with Annotations – Hello World
@@ -137,7 +136,7 @@ Dynamsoft.DWT.CreateDWTObjectEx({
Links to API Reference:
- Dynamic Web TWAIN:
- - [`CreateDWTObjectEx()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#createdwtobjectex)
+ - [`CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex)
## 4. Use SDK Features
@@ -183,9 +182,9 @@ function Dynamsoft_OnPostTransferAsync(outputInfo){
Links to API Reference:
- Dynamic Web TWAIN:
- - [`OnPostTransferAsync`]({{site.info}}api/WebTwain_Acquire.html#onposttransferasync)
- - [`ImageIDToIndex()`]({{site.info}}api/WebTwain_Buffer.html#imageidtoindex)
- - [`ConvertToBlob()`]({{site.info}}api/WebTwain_IO.html#converttoblob)
+ - [`OnPostTransferAsync`](/_articles/info/api/WebTwain_Acquire.md#onposttransferasync)
+ - [`ImageIDToIndex()`](/_articles/info/api/WebTwain_Buffer.md#imageidtoindex)
+ - [`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob)
- Dynamsoft Document Viewer:
- [`loadSource()`](https://www.dynamsoft.com/document-viewer/docs/api/interface/idocument/index.html#loadsource)
@@ -207,8 +206,8 @@ function AcquireImage() {
Links to API Reference:
- Dynamic Web TWAIN:
- - [`SelectSourceAsync()`]({{site.info}}api/WebTwain_Acquire.html#selectsourceasync)
- - [`AcquireImageAsync()`]({{site.info}}api/WebTwain_Acquire.html#acquireimageasync)
+ - [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync)
+ - [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync)
### 4.2 Add PDF Saving to Local Functionality
@@ -232,8 +231,8 @@ function SavePDFs(){
Links to API Reference:
- Dynamic Web TWAIN:
- - [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog)
- - [`saveBlob()`]({{site.info}}api/WebTwain_IO.html#saveblob)
+ - [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog)
+ - [`saveBlob()`](/_articles/info/api/WebTwain_IO.md#saveblob)
- Dynamsoft Document Viewer:
- [`saveToPdf()`](https://www.dynamsoft.com/document-viewer/docs/api/interface/idocument/index.html#savetopdf)
@@ -267,7 +266,7 @@ Links to related documentation:
Links to API Reference:
- Dynamic Web TWAIN:
- - [`httpUploadBlob()`]({{site.info}}api/WebTwain_IO.html#httpuploadblob)
+ - [`httpUploadBlob()`](/_articles/info/api/WebTwain_IO.md#httpuploadblob)
- Dynamsoft Document Viewer:
- [`saveToPdf()`](https://www.dynamsoft.com/document-viewer/docs/api/interface/idocument/index.html#savetopdf)
diff --git a/faq/earliest-iphone-model-supported.md b/_articles/faq/earliest-iphone-model-supported.md
similarity index 93%
rename from faq/earliest-iphone-model-supported.md
rename to _articles/faq/earliest-iphone-model-supported.md
index ece077e2..f10ef898 100644
--- a/faq/earliest-iphone-model-supported.md
+++ b/_articles/faq/earliest-iphone-model-supported.md
@@ -6,7 +6,6 @@ title: What is the earliest iPhone model that your SDK supports?
keywords: Dynamic Web TWAIN, Capture/ Image Source, earliest iphone
breadcrumbText: What is the earliest iPhone model that your SDK supports?
description: What is the earliest iPhone model that your SDK supports?
-permalink: /faq/earliest-iphone-model-supported.html
---
# Capture/Image Source
diff --git a/faq/enable-https-support.md b/_articles/faq/enable-https-support.md
similarity index 55%
rename from faq/enable-https-support.md
rename to _articles/faq/enable-https-support.md
index 6f8ab276..340d9f9e 100644
--- a/faq/enable-https-support.md
+++ b/_articles/faq/enable-https-support.md
@@ -6,7 +6,6 @@ title: How can I enable HTTPS support?
keywords: Dynamic Web TWAIN, Document Saving, enable HTTPS support
breadcrumbText: How can I enable HTTPS support?
description: How can I enable HTTPS support?
-permalink: /faq/enable-https-support.html
---
# Document Saving
@@ -17,12 +16,12 @@ Dynamic Web TWAIN provides SSL support.
To enable HTTPS,
-- Set IfSSL to true to turn on SSL in HTTP requests.
+- Set IfSSL to true to turn on SSL in HTTP requests.
-- Set the SSL port with the API HTTPPort.
+- Set the SSL port with the API HTTPPort.
-- Call the API HTTPUpload to upload the documents.
+- Call the API HTTPUpload to upload the documents.
-For more information on how to use HTTPUpload, please check here.
+For more information on how to use HTTPUpload, please check here.
Note that if you use this feature, you need to enable HTTPS on the server. For how to enable HTTPS, please check out the manual of your webserver.
diff --git a/faq/encrypt-pdf-files.md b/_articles/faq/encrypt-pdf-files.md
similarity index 62%
rename from faq/encrypt-pdf-files.md
rename to _articles/faq/encrypt-pdf-files.md
index 026e176c..f96b1403 100644
--- a/faq/encrypt-pdf-files.md
+++ b/_articles/faq/encrypt-pdf-files.md
@@ -6,13 +6,12 @@ title: Can I generate/load an encrypted file in PDF format?
keywords: Dynamic Web TWAIN, Security, encrypt PDF
breadcrumbText: Can I generate/load an encrypted file in PDF format?
description: Can I generate/load an encrypted file in PDF format?
-permalink: /faq/encrypt-pdf-files.html
---
# Security
## Can I generate/load an encrypted file in PDF format?
-Yes. In v18.5, Dynaimc Web TWAIN supports the function of [`encrypting the generated PDF files`]({{site.indepth}}features/pdf.html#pdf-save-settings).
+Yes. In v18.5, Dynaimc Web TWAIN supports the function of [`encrypting the generated PDF files`](/_articles/extended-usage/pdf-processing.md#pdf-save-settings).
-Moreover, loading password-protected PDFs has been supported by utilizing the [`ReaderOptions`]({{site.info}}api/Interfaces.html#readeroptions) interface along with the [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions) method.
+Moreover, loading password-protected PDFs has been supported by utilizing the [`ReaderOptions`](/_articles/info/api/interfaces.md#readeroptions) interface along with the [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) method.
diff --git a/faq/error-message-current-product-key-does-not-support.md b/_articles/faq/error-message-current-product-key-does-not-support.md
similarity index 93%
rename from faq/error-message-current-product-key-does-not-support.md
rename to _articles/faq/error-message-current-product-key-does-not-support.md
index 2956f86b..9e808bfd 100644
--- a/faq/error-message-current-product-key-does-not-support.md
+++ b/_articles/faq/error-message-current-product-key-does-not-support.md
@@ -6,7 +6,6 @@ title: Error message - The current product key does not support XXX, please cont
keywords: Dynamic Web TWAIN, Error Troubleshooting, product key does not support version
breadcrumbText: Error message - The current product key does not support XXX, please contact the site administrator
description: Error message - The current product key does not support XXX, please contact the site administrator
-permalink: /faq/error-message-current-product-key-does-not-support.html
---
# Error Troubleshooting
diff --git a/faq/error-message-current-product-key-is-empty-or-invalid.md b/_articles/faq/error-message-current-product-key-is-empty-or-invalid.md
similarity index 93%
rename from faq/error-message-current-product-key-is-empty-or-invalid.md
rename to _articles/faq/error-message-current-product-key-is-empty-or-invalid.md
index b0787957..9da2fb3c 100644
--- a/faq/error-message-current-product-key-is-empty-or-invalid.md
+++ b/_articles/faq/error-message-current-product-key-is-empty-or-invalid.md
@@ -6,7 +6,6 @@ title: Error message - The current product key is empty or invalid, please conta
keywords: Dynamic Web TWAIN, Error Troubleshooting
breadcrumbText: Error message - The current product key is empty or invalid, please contact the site administrator
description: Error message - The current product key is empty or invalid, please contact the site administrator
-permalink: /faq/error-message-current-product-key-is-empty-or-invalid.html
---
# Error Troubleshooting
diff --git a/faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md b/_articles/faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md
similarity index 93%
rename from faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md
rename to _articles/faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md
index ee41c10f..9cc673dd 100644
--- a/faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md
+++ b/_articles/faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md
@@ -6,7 +6,6 @@ title: Error message - The domain of your current site does not match the domain
keywords: Dynamic Web TWAIN, Error Troubleshooting, doamin, mismatch with product key
breadcrumbText: Error message - The domain of your current site does not match the domain bound in the current product key, please contact the site administrator.
description: Error message - The domain of your current site does not match the domain bound in the current product key, please contact the site administrator.
-permalink: /faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.html
---
# Error Troubleshooting
diff --git a/faq/error-message-exceeded-ocr-attempts.md b/_articles/faq/error-message-exceeded-ocr-attempts.md
similarity index 82%
rename from faq/error-message-exceeded-ocr-attempts.md
rename to _articles/faq/error-message-exceeded-ocr-attempts.md
index 526881e3..436be140 100644
--- a/faq/error-message-exceeded-ocr-attempts.md
+++ b/_articles/faq/error-message-exceeded-ocr-attempts.md
@@ -6,7 +6,6 @@ title: Error message - You have exceeded the number of OCR attempts allowed by t
keywords: Dynamic Web TWAIN, Error Troubleshooting, exceeded OCR attempts
breadcrumbText: Error message - You have exceeded the number of OCR attempts allowed by the current license
description: Error message - You have exceeded the number of OCR attempts allowed by the current license
-permalink: /faq/error-message-exceeded-ocr-attempts.html
---
# Error Troubleshooting
@@ -15,7 +14,7 @@ permalink: /faq/error-message-exceeded-ocr-attempts.html
### Symptom
-When you use the OCRPro addon, you may receive this error message returned by the member method GetErrorString() of the OCRResult class.
+When you use the OCRPro addon, you may receive this error message returned by the member method GetErrorString() of the OCRResult class.
### Cause
diff --git a/faq/error-message-license-generated-with-license-of-major-version.md b/_articles/faq/error-message-license-generated-with-license-of-major-version.md
similarity index 93%
rename from faq/error-message-license-generated-with-license-of-major-version.md
rename to _articles/faq/error-message-license-generated-with-license-of-major-version.md
index 34aa9d2e..677ea126 100644
--- a/faq/error-message-license-generated-with-license-of-major-version.md
+++ b/_articles/faq/error-message-license-generated-with-license-of-major-version.md
@@ -6,7 +6,6 @@ title: Error message - The current product key is invalid because it's generated
keywords: Dynamic Web TWAIN, Error Troubleshooting, product key, invalid, different major version
breadcrumbText: Error message - The current product key is invalid because it's generated with the licenses of a different major version
description: Error message - The current product key is invalid because it's generated with the licenses of a different major version
-permalink: /faq/error-message-license-generated-with-license-of-major-version.html
---
# Error Troubleshooting
diff --git a/faq/error-message-product-key-does-not-support-current-os.md b/_articles/faq/error-message-product-key-does-not-support-current-os.md
similarity index 94%
rename from faq/error-message-product-key-does-not-support-current-os.md
rename to _articles/faq/error-message-product-key-does-not-support-current-os.md
index 7591c877..2a7b0127 100644
--- a/faq/error-message-product-key-does-not-support-current-os.md
+++ b/_articles/faq/error-message-product-key-does-not-support-current-os.md
@@ -6,7 +6,6 @@ title: Error message - The current product key does not support current OS for e
keywords: Dynamic Web TWAIN, Error Troubleshooting, does not support currrent OS
breadcrumbText: Error message - The current product key does not support current OS for embed device, please contact the site administrator
description: Error message - The current product key does not support current OS for embed device, please contact the site administrator
-permalink: /faq/error-message-product-key-does-not-support-current-os.html
---
# Error Troubleshooting
diff --git a/faq/error-message-product-key-expired.md b/_articles/faq/error-message-product-key-expired.md
similarity index 84%
rename from faq/error-message-product-key-expired.md
rename to _articles/faq/error-message-product-key-expired.md
index 17a9c7ea..070d4143 100644
--- a/faq/error-message-product-key-expired.md
+++ b/_articles/faq/error-message-product-key-expired.md
@@ -6,7 +6,6 @@ title: Error message – The current product key has expired on XXX, please cont
keywords: Dynamic Web TWAIN, Error Troubleshooting, product key, expired
breadcrumbText: Error message – The current product key has expired on XXX, please contact the site administrator
description: Error message – The current product key has expired on XXX, please contact the site administrator
-permalink: /faq/error-message-product-key-expired.html
---
# Error Troubleshooting
@@ -26,5 +25,5 @@ The trial product key has expired.
### Resolution
Follow the instructions on that pop-up which are:
-1. Request a new trial product key here. Refer to this article to update the ProductKey
+1. Request a new trial product key here. Refer to this article to update the ProductKey
2. Do a hard refresh or clear cache in your browser to make sure the new ProductKey is used
diff --git a/faq/error-message-product-key-is-missing-the-core-license.md b/_articles/faq/error-message-product-key-is-missing-the-core-license.md
similarity index 93%
rename from faq/error-message-product-key-is-missing-the-core-license.md
rename to _articles/faq/error-message-product-key-is-missing-the-core-license.md
index e2dbafeb..55b029aa 100644
--- a/faq/error-message-product-key-is-missing-the-core-license.md
+++ b/_articles/faq/error-message-product-key-is-missing-the-core-license.md
@@ -6,7 +6,6 @@ title: Error message - The current product key is missing the core license, plea
keywords: Dynamic Web TWAIN, Error Troubleshooting, missing core license
breadcrumbText: Error message - The current product key is missing the core license, please contact the site administrator
description: Error message - The current product key is missing the core license, please contact the site administrator
-permalink: /faq/error-message-product-key-is-missing-the-core-license.html
---
# Error Troubleshooting
diff --git a/faq/error-message-product-key-is-not-for-full-version.md b/_articles/faq/error-message-product-key-is-not-for-full-version.md
similarity index 94%
rename from faq/error-message-product-key-is-not-for-full-version.md
rename to _articles/faq/error-message-product-key-is-not-for-full-version.md
index 0baf2bd6..03f025c3 100644
--- a/faq/error-message-product-key-is-not-for-full-version.md
+++ b/_articles/faq/error-message-product-key-is-not-for-full-version.md
@@ -6,7 +6,6 @@ title: Error message - The current product key is not for full/trial version, pl
keywords: Dynamic Web TWAIN, Error Troubleshooting, product key, full/trial
breadcrumbText: Error message - The current product key is not for full/trial version, please contact the site administrator
description: Error message - The current product key is not for full/trial version, please contact the site administrator
-permalink: /faq/error-message-product-key-is-not-for-full-version.html
---
# Error Troubleshooting
diff --git a/faq/error-message-user-cancelled-the-operation.md b/_articles/faq/error-message-user-cancelled-the-operation.md
similarity index 95%
rename from faq/error-message-user-cancelled-the-operation.md
rename to _articles/faq/error-message-user-cancelled-the-operation.md
index a131f526..0d6261ae 100644
--- a/faq/error-message-user-cancelled-the-operation.md
+++ b/_articles/faq/error-message-user-cancelled-the-operation.md
@@ -6,7 +6,6 @@ title: Error message - User cancelled the operation
keywords: Dynamic Web TWAIN, Error Troubleshooting, product key does not support version
breadcrumbText: Error message - User cancelled the operation
description: Error message - User cancelled the operation
-permalink: /faq/error-message-user-cancelled-the-operation.html
---
# Error Troubleshooting
diff --git a/faq/extend-free-trial.md b/_articles/faq/extend-free-trial.md
similarity index 95%
rename from faq/extend-free-trial.md
rename to _articles/faq/extend-free-trial.md
index 2a278307..b654576d 100644
--- a/faq/extend-free-trial.md
+++ b/_articles/faq/extend-free-trial.md
@@ -6,7 +6,6 @@ title: How can I extend my free trial?
keywords: Dynamic Web TWAIN, SDK Download, free trial, extend
breadcrumbText: How can I extend my free trial?
description: How can I extend my free trial?
-permalink: /faq/extend-free-trial.html
---
# SDK Download/Free Trial
diff --git a/faq/failed-to-load-resource.md b/_articles/faq/failed-to-load-resource.md
similarity index 89%
rename from faq/failed-to-load-resource.md
rename to _articles/faq/failed-to-load-resource.md
index 4878faeb..b79b1d71 100644
--- a/faq/failed-to-load-resource.md
+++ b/_articles/faq/failed-to-load-resource.md
@@ -6,7 +6,6 @@ title: Error Message - Failed to load resource
keywords: Dynamic Web TWAIN, Error Meaasge, Failed to load resource, CERT INVALID
breadcrumbText: Error Message - Failed to load resource
description: Error Message - Failed to load resource
-permalink: /faq/failed-to-load-resource.html
---
# Error Troubleshooting
@@ -45,11 +44,11 @@ In the case that you have used our expired certificate - local.dynamsoft.com, yo
- Method 2. If you must fix the issue on a few client machines immediately, manually update the following cert files on the client-side machine. Click here to download the new certificate and use the new server.pem.ldsc & server_key.pem.ldsc to replace the old one under **`C:\Windows\SysWOW64\Dynamsoft\DynamsoftService(DynamsoftServicex64_{version number})\cert`** (from v19.0+, the path is `C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN Service {version number}\cert`). Then restart Dynamic Web TWAIN Service.
> Note: the new certificate from Dynamsoft will expire on December 8th, 2023. This means you must update the certificate again after this certificate expires.
- - Method 3. Contact Dynamsoft for a new MSI for client-side. Please specify the exact service version build number found from the version your client currently has installed.
+ - Method 3. Contact Dynamsoft for a new MSI for client-side. Please specify the exact service version build number found from the version your client currently has installed.
### Explanation
-This sample uploads the scanned images to the server as a PDF in binary form, and hands the data off to the server for further processing. Note that the upload handler script (here `https://demo.dynamsoft.com/sample-uploads/`) must be defined in order to receive the data accordingly, but is otherwise language- and logic-agnostic. Read our [server-side scripting guide]({{site.indepth}}development/Server-script.html) for more information.
+This sample uploads the scanned images to the server as a PDF in binary form, and hands the data off to the server for further processing. Note that the upload handler script (here `https://demo.dynamsoft.com/sample-uploads/`) must be defined in order to receive the data accordingly, but is otherwise language- and logic-agnostic. Read our [server-side scripting guide](/_articles/general-usage/server-side-scripting.md) for more information.
-We use [`HTTPUpload()`]({{site.api}}WebTwain_IO.html#httpupload) to perform the following tasks:
+We use [`HTTPUpload()`](/_articles/info/api/WebTwain_IO.md#httpupload) to perform the following tasks:
> Note: Only `PDF` and `TIF` support multi-page documents. When using other image formats, `HTTPUpload()` can only upload one image per API call - it will fail when selecting more than one image.
@@ -127,7 +126,7 @@ Before calling `HTTPUpload()`, we first select all images in the buffer using `S
Also, note that `HTTPUpload()` supports `HTTPS` when there is an SSL certificate. In this case, the sample upload site supplies an SSL certificate, so we enable `HTTPS` with `Dynamsoft.DWT.IfSSL = true`. (the default value is `false`)
-DWT provides other `HTTP` uploading APIs as well, such as for specifically uploading multi-page PDFs, or for uploading via `HTTP` post requests, among others. Read more about them in detail in our [API reference]({{site.api}}WebTwain_IO.html).
+DWT provides other `HTTP` uploading APIs as well, such as for specifically uploading multi-page PDFs, or for uploading via `HTTP` post requests, among others. Read more about them in detail in our [API reference](/_articles/info/api/WebTwain_IO.md).
### Using Existing Upload Logic with DWT
@@ -172,15 +171,15 @@ function getExtension(fileFormat) {
APIs used:
-- [`ConvertToBlob()`]({{site.api}}WebTwain_IO.html#converttoblob)
+- [`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob)
#### Explanation
-The only DWT API used in this example is [`ConvertToBlob()`]({{site.api}}WebTwain_IO.html#converttoblob), which takes care of file format encoding and binary conversion of the images, with a given array of image buffer indices and a file format enum.
+The only DWT API used in this example is [`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob), which takes care of file format encoding and binary conversion of the images, with a given array of image buffer indices and a file format enum.
## Uploading over FTP
-Aside from `HTTP`, DWT also supports `FTP`, which is much simpler to use. The [`FTPUpload()`]({{site.api}}WebTwain_IO.html#ftpupload) is used to upload a single image like so:
+Aside from `HTTP`, DWT also supports `FTP`, which is much simpler to use. The [`FTPUpload()`](/_articles/info/api/WebTwain_IO.md#ftpupload) is used to upload a single image like so:
``` javascript
DWTObject.FTPUserName = 'username';
@@ -197,25 +196,25 @@ DWTObject.FTPUpload(
APIs used:
-- [ `FTPUserName` ]({{site.api}}WebTwain_IO.html#ftpusername)
-- [ `FTPPort` ]({{site.api}}WebTwain_IO.html#ftpport)
-- [ `FTPPassword` ]({{site.api}}WebTwain_IO.html#ftppassword)
-- [ `FTPUpload()` ]({{site.api}}WebTwain_IO.html#ftpupload)
+- [ `FTPUserName` ](/_articles/info/api/WebTwain_IO.md#ftpusername)
+- [ `FTPPort` ](/_articles/info/api/WebTwain_IO.md#ftpport)
+- [ `FTPPassword` ](/_articles/info/api/WebTwain_IO.md#ftppassword)
+- [ `FTPUpload()` ](/_articles/info/api/WebTwain_IO.md#ftpupload)
Note that the FTP port (and credentials) are set using `WebTwain` instance properties, unlike the host address which is passed as an argument.
-DWT provides other HTTP upload APIs, for example, to better handle multi-page files (in the case of `TIF` and `PDF` formats). Please read more in our [API reference]({{site.api}}WebTwain_IO.html).
+DWT provides other HTTP upload APIs, for example, to better handle multi-page files (in the case of `TIF` and `PDF` formats). Please read more in our [API reference](/_articles/info/api/WebTwain_IO.md).
## `FileUploader`
The `FileUploader` is a special feature that uploads files using the Dynamic Web TWAIN Service, rather than directly from the web application. This is useful for uploading large amounts of data which may otherwise degrade browser performance. Here is a quick run-down of its operation:
-1. `Dynamic Web TWAIN` will prepare the file to upload with the method [ `GenerateURLForUploadData()` ]({{site.api}}WebTwain_Util.html#generateurlforuploaddata)
-2. Create a File Uploader instance with the method [ `Init()` ]({{site.api}}Dynamsoft_FileUploader.html#init)
-3. Create an upload job with [ `CreateJob()` ]({{site.api}}Dynamsoft_FileUploader.html#createjob)
- - Define the target URL [ `ServerUrl` ]({{site.api}}Dynamsoft_FileUploader.html#serverurl)
- - Define the upload content [ `SourceValue` ]({{site.api}}Dynamsoft_FileUploader.html#sourcevalue)
- - (Optional) Define callback functions [ `OnUploadTransferPercentage` ]({{site.api}}Dynamsoft_FileUploader.html#onuploadtransferpercentage) , [ `OnRunSuccess` ]({{site.api}}Dynamsoft_FileUploader.html#onrunsuccess), [ `OnRunFailure` ]({{site.api}}Dynamsoft_FileUploader.html#onrunfailure)
+1. `Dynamic Web TWAIN` will prepare the file to upload with the method [ `GenerateURLForUploadData()` ](/_articles/info/api/WebTwain_Util.md#generateurlforuploaddata)
+2. Create a File Uploader instance with the method [ `Init()` ](/_articles/info/api/Dynamsoft_FileUploader.md#init)
+3. Create an upload job with [ `CreateJob()` ](/_articles/info/api/Dynamsoft_FileUploader.md#createjob)
+ - Define the target URL [ `ServerUrl` ](/_articles/info/api/Dynamsoft_FileUploader.md#serverurl)
+ - Define the upload content [ `SourceValue` ](/_articles/info/api/Dynamsoft_FileUploader.md#sourcevalue)
+ - (Optional) Define callback functions [ `OnUploadTransferPercentage` ](/_articles/info/api/Dynamsoft_FileUploader.md#onuploadtransferpercentage) , [ `OnRunSuccess` ](/_articles/info/api/Dynamsoft_FileUploader.md#onrunsuccess), [ `OnRunFailure` ](/_articles/info/api/Dynamsoft_FileUploader.md#onrunfailure)
4. Run the job
5. Wait for the confirmation from the server
@@ -276,4 +275,4 @@ Check out how to use the Uploader in the following code snippets