From 2c5c90a0a0c01d7fb509380d57f89654c7cfc879 Mon Sep 17 00:00:00 2001 From: DMGithubPublisher Date: Thu, 17 Apr 2025 17:43:22 +0800 Subject: [PATCH] update to internal commit 8c7852da --- {about => _articles/about}/getsupport.md | 1 - {about => _articles/about}/index.md | 15 +- {about => _articles/about}/resources.md | 1 - .../extended-usage/advanced-initialization.md | 87 ++- .../extended-usage/barcode-processing.md | 17 +- .../extended-usage/buffer-caching.md | 13 +- .../dynamsoft-service-configuration.md | 13 +- .../extended-usage}/file-import.md | 157 +++-- .../extended-usage/index.md | 19 +- .../extended-usage/pdf-compression.md | 1 - .../extended-usage/pdf-processing.md | 13 +- .../extended-usage/restful-api.md | 3 +- .../system-message-configuration.md | 7 +- .../extended-usage/ui-customization.md | 9 +- {faq => _articles/faq}/.gitignore | 0 {faq => _articles/faq}/DVS-is-not-defined.md | 3 +- {faq => _articles/faq}/HTTP-process-error.md | 7 +- {faq => _articles/faq}/HTTP-request-error.md | 1 - {faq => _articles/faq}/JPEG-compression.md | 3 +- .../faq}/XMLHttpRequest-cannot-load.md | 1 - .../faq}/acquireimage-sync-or-async.md | 3 +- .../faq}/activeX-in-Edge-IE-mode.md | 3 +- .../faq}/add-annotation-to-image.md | 1 - .../faq}/additional-form-fields.md | 9 +- .../admin-privileges-needed-to-install.md | 5 +- .../faq}/automatically-detect-border.md | 3 +- .../automatically-rotate-upside-down-pages.md | 5 +- .../faq}/camera-play-and-showvideo.md | 3 +- ...an-i-install-dynamsoft-service-silently.md | 1 - .../faq}/change-background-color.md | 1 - .../faq}/change-display-language.md | 1 - .../change-dynamsoft-service-certificate.md | 1 - {faq => _articles/faq}/change-hide-spinner.md | 5 +- .../faq}/change-reference-path.md | 1 - _articles/faq/change-resolution-of-image.md | 17 + .../faq}/chrome-106-107-warning.md | 1 - ...eds-to-be-installed-on-end-user-machine.md | 7 +- .../faq}/connection-couldnt-be-established.md | 3 +- ...rom-the-insecure-HTTP-to-service-failed.md | 3 +- .../faq}/content-security-policy-violated.md | 1 - .../faq}/convert-color-image-to-grayscale.md | 5 +- .../faq}/coordinates-of-selected-area.md | 3 +- ...ate-thumbnail-viewer-to-navigate-images.md | 3 +- {faq => _articles/faq}/custom-capability.md | 5 +- .../customize-ui-elements-of-image-editor.md | 1 - .../faq}/debug-on-online-demo.md | 1 - {faq => _articles/faq}/deploy-to-all-users.md | 1 - ...loy-your-own-upload-server-with-asp.net.md | 1 - .../deploy-your-own-upload-server-with-jsp.md | 1 - ...loy-your-own-upload-server-with-node.js.md | 1 - .../deploy-your-own-upload-server-with-php.md | 1 - .../faq}/detect-paper-on-flatbed.md | 3 +- .../faq}/difference-between-Twain-and-wia.md | 3 +- .../difference-between-camera-and-webcam.md | 1 - .../difference-between-ocr-basic-and-pro.md | 1 - ...nce-in-service-and-webassembly-editions.md | 3 +- .../faq}/disable-drag-and-drop-in-images.md | 3 +- {faq => _articles/faq}/discount-policy.md | 1 - .../document-scanning-slow-than-native.md | 3 +- .../does-barcode-addon-support-patch-code.md | 3 +- .../faq}/does-per-server-allow-unlimited.md | 1 - .../download-image-from-FTP-or-HTTP-server.md | 3 +- .../faq}/download-older-version-sdk.md | 1 - .../faq}/download-service-only.md | 1 - .../download-virtual-scanner-for-testing.md | 1 - .../faq}/dwt-md5-is-not-allowed.md | 1 - {faq => _articles/faq}/dwt-with-annotation.md | 19 +- .../faq}/earliest-iphone-model-supported.md | 1 - .../faq}/enable-https-support.md | 9 +- {faq => _articles/faq}/encrypt-pdf-files.md | 5 +- ...ge-current-product-key-does-not-support.md | 1 - ...current-product-key-is-empty-or-invalid.md | 1 - ...oesnt-match-domain-bound-to-product-key.md | 1 - .../error-message-exceeded-ocr-attempts.md | 3 +- ...generated-with-license-of-major-version.md | 1 - ...product-key-does-not-support-current-os.md | 1 - .../faq}/error-message-product-key-expired.md | 3 +- ...product-key-is-missing-the-core-license.md | 1 - ...age-product-key-is-not-for-full-version.md | 1 - ...or-message-user-cancelled-the-operation.md | 1 - {faq => _articles/faq}/extend-free-trial.md | 1 - .../faq}/failed-to-load-resource.md | 7 +- {faq => _articles/faq}/find-SDK-version.md | 1 - .../faq}/fingerprint-medical-imaging.md | 1 - .../faq}/flexible-to-custom-license.md | 1 - {faq => _articles/faq}/free-upgrade.md | 1 - {faq => _articles/faq}/gdpr-compliant.md | 1 - {faq => _articles/faq}/general-failure.md | 3 +- .../faq}/general-troubleshooting-steps.md | 9 +- {faq => _articles/faq}/generate-pdf-files.md | 1 - _articles/faq/hide-image-viewer.md | 18 + .../hide-offline-scanners-from-source-list.md | 1 - {faq => _articles/faq}/hide-progress-bars.md | 3 +- .../faq}/hide-webcam-from-source-list.md | 7 +- {faq => _articles/faq}/hipaa-compliant.md | 1 - ...come-would-you-need-local.dynamsoft.com.md | 1 - .../faq}/how-to-enable-remote-scan.md | 1 - ...-exclude-wia-sources-in-the-source-list.md | 3 +- ...-if-your-camera-is-DirectShow-compliant.md | 1 - ...f-your-camera-is-MediaDevices-compliant.md | 1 - ...o-test-if-your-device-is-SANE-compliant.md | 1 - ...scanner-supports-ICA-scanning-on-Mac-OS.md | 1 - .../how-to-uninstall-dynamsoft-service.md | 1 - ...check-if-your-device-is-TWAIN-Compliant.md | 1 - ...p-insecure-websites-in-chromium-browser.md | 3 +- .../faq}/http-servers-support.md | 5 +- .../faq}/image-document-formats-save.md | 5 +- _articles/faq/image-viewer-object-defined.md | 16 + .../import-existing-documents-or-images.md | 3 +- .../incorrect-installer-for-windowsARM64.md | 21 + _articles/faq/index.md | 227 +++++++ .../faq}/insert-image-after-selected-image.md | 1 - .../insert-new-pages-to-existing-document.md | 3 +- .../faq}/is-internet-connectivity-required.md | 1 - ...ded-to-convert-scanned-documents-to-pdf.md | 1 - {faq => _articles/faq}/is-ui-customizable.md | 1 - {faq => _articles/faq}/iso-27001-compliant.md | 1 - .../faq}/last-selected-sourcename.md | 3 +- .../faq}/license-key-protection.md | 1 - .../faq}/license-limit-reached.md | 1 - .../faq}/limit-on-scanned-pages.md | 5 +- .../faq}/limit-to-specific-scanner.md | 3 +- .../faq}/limit-upload-size-to-server.md | 3 +- .../faq}/list-supported-resolution-DPI.md | 3 +- {faq => _articles/faq}/load-pdf-files.md | 21 +- .../load-specific-page-of-pdf-to-viewer.md | 7 +- .../faq}/local-cached-images-destroyed.md | 5 +- {faq => _articles/faq}/local-resellers.md | 1 - .../faq}/macos-sonoma-distorted-scans.md | 1 - .../faq}/mouse-click-events-supported.md | 3 +- .../faq}/ocr-runs-on-client-or-server-side.md | 3 +- .../faq}/offer-perpetual-license.md | 1 - .../faq}/print-images-from-viewer.md | 5 +- .../private-network-access-in-chrome101.md | 5 +- ...ompt-end-user-when-local-resources-used.md | 1 - .../faq}/protect-sensitive-information.md | 5 +- .../faq}/provide-free-trial-version.md | 1 - .../faq}/purchase-dev-or-test-license.md | 1 - {faq => _articles/faq}/refund-policy.md | 1 - .../faq}/release-license-seats.md | 1 - .../faq}/remove-blank-page-automatically.md | 9 +- .../faq}/remove-selected-images.md | 5 +- {faq => _articles/faq}/resell-sdk.md | 1 - .../faq}/resize-view-of-image.md | 3 +- .../faq}/resort-images-in-viewer.md | 5 +- .../faq}/resources-to-be-included-in-SDK.md | 3 +- .../response-string-from-server-on-upload.md | 3 +- .../faq}/run-on-arm-based-embedded-device.md | 1 - .../faq/save-selected-images-to-server.md | 21 + ...-x-pages-from-automatic-document-feeder.md | 3 +- ...-shown-or-not-responding-in-the browser.md | 1 - .../faq}/sdk-download-for-linux-and-mac.md | 1 - .../faq}/seat-taken-if-os-reinstalled.md | 1 - .../faq}/securely-transfer-to-server.md | 9 +- .../faq}/separate-documents-by-barcode.md | 3 +- .../faq}/separate-license-for-addon.md | 3 +- {faq => _articles/faq}/sequence-error.md | 3 +- .../faq}/service-backward-compatibility.md | 1 - .../faq}/service-installation-issue.md | 1 - {faq => _articles/faq}/service-is-blocked.md | 3 +- ...service-prompting-to-install-repeatedly.md | 9 +- {faq => _articles/faq}/set-page-size.md | 5 +- .../faq}/setting-scan-settings-without-ui.md | 5 +- .../faq}/show-default-image-editor.md | 3 +- .../faq}/show-multiple-images.md | 3 +- _articles/faq/show-page-number.md | 21 + .../faq}/smallest-size-documents.md | 7 +- .../faq}/source-connected-to-maximum.md | 3 +- .../faq}/source-has-nothing-to-capture.md | 1 - .../faq}/source-not-listed-on-linux.md | 1 - .../faq}/speed-up-barcode-reading-process.md | 3 +- .../faq}/stop-default-scanner-popup.md | 1 - .../support-capture-from-mobile-camera.md | 1 - .../faq}/support-image-deskew.md | 5 +- .../faq}/support-wia-scanner-drivers.md | 3 +- .../faq}/syntax-error-unexpected-token.md | 3 +- ...th-the-server-was-terminated-abnormally.md | 1 - ...wrong-state-for-the-requested-operation.md | 3 +- ...ning-when-capture-the-image-with-iphone.md | 1 - .../faq}/trial-fully-functional.md | 1 - .../faq}/trigger-actions-server-side.md | 5 +- ...igger-automatic-workflow-after-scanning.md | 5 +- .../faq}/type-error-appendchild.md | 1 - .../faq}/unable-hide-loading-bar.md | 5 +- {faq => _articles/faq}/undo-functionality.md | 1 - .../faq}/upgrade-end-user-installations.md | 1 - .../faq}/upgrade-to-latest-version.md | 5 +- .../upload-documents-to-different-domain.md | 3 +- .../faq}/upload-json-files-to-server.md | 5 +- .../faq}/upload-multiple-files-at-a-time.md | 3 +- .../faq}/upload-using-background-service.md | 3 +- .../faq}/use-blank-page-as-a-separator.md | 3 +- .../faq}/use-deprecated-technology.md | 3 +- .../faq}/use-dwt-in-citrix-env.md | 3 +- .../faq}/use-usb-webcam-to-capture.md | 3 +- .../faq}/use-webassembly-to-support-webcam.md | 3 +- {faq => _articles/faq}/use-with-PWA.md | 1 - .../faq}/verify-if-device-is-supported.md | 1 - .../faq}/viewer-size-auto-resize.md | 3 +- ...ebcam-supported-by-webcam-capture-addon.md | 1 - .../faq}/what-are-the-resources-files.md | 1 - ...ynamsoft-service-do-on-end-user-machine.md | 15 +- .../what-image-editing-operation-supported.md | 3 +- .../what-physical-scanners-are-supported.md | 3 +- .../faq}/when-is-pdf-rasterizer-needed.md | 1 - .../faq}/where-images-are-stored.md | 5 +- .../which-license-purchase-needed-for-saas.md | 1 - .../general-usage/image-export/index.md | 9 +- .../image-export/local-export.md | 90 +++ .../image-export/server-upload.md | 67 +- .../image-processing/buffer-management.md | 127 ++-- .../image-processing/image-editing.md | 31 +- .../general-usage/image-processing/index.md | 5 +- .../general-usage/index.md | 21 +- .../general-usage/initialization.md | 21 +- .../general-usage/license.md | 29 +- .../general-usage/resource-loading.md | 27 +- .../scanner-image-acquisition.md | 29 +- .../general-usage/server-deployment.md | 7 +- .../general-usage/server-side-scripting.md | 7 +- .../general-usage/viewer-configuration.md | 87 ++- _articles/getstarted/index.md | 21 + .../getstarted}/initialize.md | 9 +- .../hello-world/editing.md | 43 +- {articles => _articles}/hello-world/index.md | 9 +- .../hello-world/scan-settings.md | 23 +- .../hello-world/scanning.md | 17 +- .../hello-world/uploading.md | 15 +- .../indepth}/deployment/index.md | 7 +- .../indepth}/development/Pro-service.md | 7 +- .../indepth/development}/activex.md | 11 +- .../indepth/development}/angular.md | 7 +- .../indepth}/development/armmips.md | 3 +- _articles/indepth/development/index.md | 25 + .../development/mobile-web-capture.md | 2 +- .../indepth/development}/react.md | 5 +- .../indepth/development}/restful.md | 1 - .../indepth/development}/upgrade.md | 9 +- .../indepth/development}/vue.md | 9 +- .../indepth/development}/vue3.md | 5 +- .../indepth}/features/OCR.md | 49 +- .../indepth}/features/index.md | 23 +- .../indepth}/features/initialize.md | 21 +- {indepth => _articles/indepth}/web.config | 0 .../info}/api/Addon_BarcodeReader.md | 15 +- {info => _articles/info}/api/Addon_Camera.md | 3 +- {info => _articles/info}/api/Addon_OCR.md | 1 - {info => _articles/info}/api/Addon_OCRPro.md | 1 - {info => _articles/info}/api/Addon_PDF.md | 29 +- {info => _articles/info}/api/Addon_Webcam.md | 29 +- {info => _articles/info}/api/Device.md | 1 - .../info}/api/Dynamsoft_Enum.md | 5 +- .../info}/api/Dynamsoft_FileUploader.md | 9 +- .../info}/api/Dynamsoft_WebTwainEnv.md | 11 +- .../info}/api/WebTwain_Acquire.md | 79 ++- .../info}/api/WebTwain_Buffer.md | 37 +- {info => _articles/info}/api/WebTwain_Edit.md | 9 +- {info => _articles/info}/api/WebTwain_IO.md | 131 ++-- {info => _articles/info}/api/WebTwain_Util.md | 21 +- .../info}/api/WebTwain_Viewer.md | 49 +- {info => _articles/info}/api/appendix.md | 1 - _articles/info/api/index.md | 632 +++++++++++++++++ {info => _articles/info}/api/interfaces.md | 79 ++- {info => _articles/info}/api/restful.md | 23 +- {info => _articles/info}/governance.md | 1 - {info => _articles/info}/schedule/Addon.md | 5 +- .../info}/schedule/Developing.md | 1 - {info => _articles/info}/schedule/Stable.md | 277 ++++---- {info => _articles/info}/schedule/beta.md | 1 - {info => _articles/info}/schedule/bugs.md | 1 - .../info}/schedule/deprecated.md | 121 ++-- _articles/info/schedule/index.md | 29 + {info => _articles/info}/schedule/proposed.md | 1 - .../introduction/imaging-hardware.md | 9 +- {articles => _articles}/introduction/index.md | 13 +- .../introduction/supported-file-formats.md | 9 +- .../introduction/system-requirements.md | 3 +- .../knowledge-base/the-dynamsoft-service.md | 0 _config.yml | 9 + .../image-export/local-export.md | 91 --- faq/change-resolution-of-image.md | 18 - faq/hide-image-viewer.md | 19 - faq/image-viewer-object-defined.md | 17 - faq/index.md | 417 ------------ faq/save-selected-images-to-server.md | 22 - faq/show-page-number.md | 22 - getstarted/index.md | 22 - indepth/development/index.md | 26 - info/api/index.md | 633 ------------------ info/schedule/index.md | 30 - 290 files changed, 2316 insertions(+), 2752 deletions(-) rename {about => _articles/about}/getsupport.md (93%) rename {about => _articles/about}/index.md (87%) rename {about => _articles/about}/resources.md (98%) rename {articles => _articles}/extended-usage/advanced-initialization.md (69%) rename {articles => _articles}/extended-usage/barcode-processing.md (94%) rename {articles => _articles}/extended-usage/buffer-caching.md (89%) rename {articles => _articles}/extended-usage/dynamsoft-service-configuration.md (82%) rename {articles/general-usage => _articles/extended-usage}/file-import.md (73%) rename {articles => _articles}/extended-usage/index.md (50%) rename {articles => _articles}/extended-usage/pdf-compression.md (97%) rename {articles => _articles}/extended-usage/pdf-processing.md (85%) rename {articles => _articles}/extended-usage/restful-api.md (83%) rename {articles => _articles}/extended-usage/system-message-configuration.md (90%) rename {articles => _articles}/extended-usage/ui-customization.md (83%) rename {faq => _articles/faq}/.gitignore (100%) rename {faq => _articles/faq}/DVS-is-not-defined.md (80%) rename {faq => _articles/faq}/HTTP-process-error.md (84%) rename {faq => _articles/faq}/HTTP-request-error.md (97%) rename {faq => _articles/faq}/JPEG-compression.md (93%) rename {faq => _articles/faq}/XMLHttpRequest-cannot-load.md (97%) rename {faq => _articles/faq}/acquireimage-sync-or-async.md (66%) rename {faq => _articles/faq}/activeX-in-Edge-IE-mode.md (91%) rename {faq => _articles/faq}/add-annotation-to-image.md (94%) rename {faq => _articles/faq}/additional-form-fields.md (67%) rename {faq => _articles/faq}/admin-privileges-needed-to-install.md (86%) rename {faq => _articles/faq}/automatically-detect-border.md (81%) rename {faq => _articles/faq}/automatically-rotate-upside-down-pages.md (69%) rename {faq => _articles/faq}/camera-play-and-showvideo.md (81%) rename {faq => _articles/faq}/can-i-install-dynamsoft-service-silently.md (97%) rename {faq => _articles/faq}/change-background-color.md (94%) rename {faq => _articles/faq}/change-display-language.md (99%) rename {faq => _articles/faq}/change-dynamsoft-service-certificate.md (96%) rename {faq => _articles/faq}/change-hide-spinner.md (68%) rename {faq => _articles/faq}/change-reference-path.md (98%) create mode 100644 _articles/faq/change-resolution-of-image.md rename {faq => _articles/faq}/chrome-106-107-warning.md (97%) rename {faq => _articles/faq}/component-needs-to-be-installed-on-end-user-machine.md (57%) rename {faq => _articles/faq}/connection-couldnt-be-established.md (88%) rename {faq => _articles/faq}/connection-from-the-insecure-HTTP-to-service-failed.md (89%) rename {faq => _articles/faq}/content-security-policy-violated.md (96%) rename {faq => _articles/faq}/convert-color-image-to-grayscale.md (58%) rename {faq => _articles/faq}/coordinates-of-selected-area.md (55%) rename {faq => _articles/faq}/create-thumbnail-viewer-to-navigate-images.md (81%) rename {faq => _articles/faq}/custom-capability.md (84%) rename {faq => _articles/faq}/customize-ui-elements-of-image-editor.md (98%) rename {faq => _articles/faq}/debug-on-online-demo.md (97%) rename {faq => _articles/faq}/deploy-to-all-users.md (98%) rename {faq => _articles/faq}/deploy-your-own-upload-server-with-asp.net.md (99%) rename {faq => _articles/faq}/deploy-your-own-upload-server-with-jsp.md (99%) rename {faq => _articles/faq}/deploy-your-own-upload-server-with-node.js.md (99%) rename {faq => _articles/faq}/deploy-your-own-upload-server-with-php.md (99%) rename {faq => _articles/faq}/detect-paper-on-flatbed.md (62%) rename {faq => _articles/faq}/difference-between-Twain-and-wia.md (87%) rename {faq => _articles/faq}/difference-between-camera-and-webcam.md (94%) rename {faq => _articles/faq}/difference-between-ocr-basic-and-pro.md (94%) rename {faq => _articles/faq}/difference-in-service-and-webassembly-editions.md (77%) rename {faq => _articles/faq}/disable-drag-and-drop-in-images.md (65%) rename {faq => _articles/faq}/discount-policy.md (95%) rename {faq => _articles/faq}/document-scanning-slow-than-native.md (60%) rename {faq => _articles/faq}/does-barcode-addon-support-patch-code.md (80%) rename {faq => _articles/faq}/does-per-server-allow-unlimited.md (95%) rename {faq => _articles/faq}/download-image-from-FTP-or-HTTP-server.md (75%) rename {faq => _articles/faq}/download-older-version-sdk.md (95%) rename {faq => _articles/faq}/download-service-only.md (98%) rename {faq => _articles/faq}/download-virtual-scanner-for-testing.md (92%) rename {faq => _articles/faq}/dwt-md5-is-not-allowed.md (97%) rename {faq => _articles/faq}/dwt-with-annotation.md (94%) rename {faq => _articles/faq}/earliest-iphone-model-supported.md (93%) rename {faq => _articles/faq}/enable-https-support.md (55%) rename {faq => _articles/faq}/encrypt-pdf-files.md (62%) rename {faq => _articles/faq}/error-message-current-product-key-does-not-support.md (93%) rename {faq => _articles/faq}/error-message-current-product-key-is-empty-or-invalid.md (93%) rename {faq => _articles/faq}/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md (93%) rename {faq => _articles/faq}/error-message-exceeded-ocr-attempts.md (82%) rename {faq => _articles/faq}/error-message-license-generated-with-license-of-major-version.md (93%) rename {faq => _articles/faq}/error-message-product-key-does-not-support-current-os.md (94%) rename {faq => _articles/faq}/error-message-product-key-expired.md (84%) rename {faq => _articles/faq}/error-message-product-key-is-missing-the-core-license.md (93%) rename {faq => _articles/faq}/error-message-product-key-is-not-for-full-version.md (94%) rename {faq => _articles/faq}/error-message-user-cancelled-the-operation.md (95%) rename {faq => _articles/faq}/extend-free-trial.md (95%) rename {faq => _articles/faq}/failed-to-load-resource.md (89%) rename {faq => _articles/faq}/find-SDK-version.md (98%) rename {faq => _articles/faq}/fingerprint-medical-imaging.md (94%) rename {faq => _articles/faq}/flexible-to-custom-license.md (93%) rename {faq => _articles/faq}/free-upgrade.md (96%) rename {faq => _articles/faq}/gdpr-compliant.md (96%) rename {faq => _articles/faq}/general-failure.md (67%) rename {faq => _articles/faq}/general-troubleshooting-steps.md (88%) rename {faq => _articles/faq}/generate-pdf-files.md (90%) create mode 100644 _articles/faq/hide-image-viewer.md rename {faq => _articles/faq}/hide-offline-scanners-from-source-list.md (94%) rename {faq => _articles/faq}/hide-progress-bars.md (80%) rename {faq => _articles/faq}/hide-webcam-from-source-list.md (55%) rename {faq => _articles/faq}/hipaa-compliant.md (97%) rename {faq => _articles/faq}/how-come-would-you-need-local.dynamsoft.com.md (94%) rename {faq => _articles/faq}/how-to-enable-remote-scan.md (99%) rename {faq => _articles/faq}/how-to-exclude-wia-sources-in-the-source-list.md (85%) rename {faq => _articles/faq}/how-to-test-if-your-camera-is-DirectShow-compliant.md (94%) rename {faq => _articles/faq}/how-to-test-if-your-camera-is-MediaDevices-compliant.md (91%) rename {faq => _articles/faq}/how-to-test-if-your-device-is-SANE-compliant.md (95%) rename {faq => _articles/faq}/how-to-test-if-your-scanner-supports-ICA-scanning-on-Mac-OS.md (96%) rename {faq => _articles/faq}/how-to-uninstall-dynamsoft-service.md (98%) rename {faq => _articles/faq}/how-to-use-TWACKER-to-check-if-your-device-is-TWAIN-Compliant.md (96%) rename {faq => _articles/faq}/http-insecure-websites-in-chromium-browser.md (93%) rename {faq => _articles/faq}/http-servers-support.md (62%) rename {faq => _articles/faq}/image-document-formats-save.md (79%) create mode 100644 _articles/faq/image-viewer-object-defined.md rename {faq => _articles/faq}/import-existing-documents-or-images.md (89%) create mode 100644 _articles/faq/incorrect-installer-for-windowsARM64.md create mode 100644 _articles/faq/index.md rename {faq => _articles/faq}/insert-image-after-selected-image.md (96%) rename {faq => _articles/faq}/insert-new-pages-to-existing-document.md (82%) rename {faq => _articles/faq}/is-internet-connectivity-required.md (96%) rename {faq => _articles/faq}/is-pdf-rasterizer-needed-to-convert-scanned-documents-to-pdf.md (89%) rename {faq => _articles/faq}/is-ui-customizable.md (96%) rename {faq => _articles/faq}/iso-27001-compliant.md (95%) rename {faq => _articles/faq}/last-selected-sourcename.md (74%) rename {faq => _articles/faq}/license-key-protection.md (97%) rename {faq => _articles/faq}/license-limit-reached.md (96%) rename {faq => _articles/faq}/limit-on-scanned-pages.md (87%) rename {faq => _articles/faq}/limit-to-specific-scanner.md (69%) rename {faq => _articles/faq}/limit-upload-size-to-server.md (80%) rename {faq => _articles/faq}/list-supported-resolution-DPI.md (90%) rename {faq => _articles/faq}/load-pdf-files.md (56%) rename {faq => _articles/faq}/load-specific-page-of-pdf-to-viewer.md (59%) rename {faq => _articles/faq}/local-cached-images-destroyed.md (58%) rename {faq => _articles/faq}/local-resellers.md (96%) rename {faq => _articles/faq}/macos-sonoma-distorted-scans.md (97%) rename {faq => _articles/faq}/mouse-click-events-supported.md (74%) rename {faq => _articles/faq}/ocr-runs-on-client-or-server-side.md (89%) rename {faq => _articles/faq}/offer-perpetual-license.md (94%) rename {faq => _articles/faq}/print-images-from-viewer.md (69%) rename {faq => _articles/faq}/private-network-access-in-chrome101.md (94%) rename {faq => _articles/faq}/prompt-end-user-when-local-resources-used.md (95%) rename {faq => _articles/faq}/protect-sensitive-information.md (65%) rename {faq => _articles/faq}/provide-free-trial-version.md (96%) rename {faq => _articles/faq}/purchase-dev-or-test-license.md (95%) rename {faq => _articles/faq}/refund-policy.md (95%) rename {faq => _articles/faq}/release-license-seats.md (95%) rename {faq => _articles/faq}/remove-blank-page-automatically.md (59%) rename {faq => _articles/faq}/remove-selected-images.md (53%) rename {faq => _articles/faq}/resell-sdk.md (96%) rename {faq => _articles/faq}/resize-view-of-image.md (81%) rename {faq => _articles/faq}/resort-images-in-viewer.md (56%) rename {faq => _articles/faq}/resources-to-be-included-in-SDK.md (76%) rename {faq => _articles/faq}/response-string-from-server-on-upload.md (84%) rename {faq => _articles/faq}/run-on-arm-based-embedded-device.md (95%) create mode 100644 _articles/faq/save-selected-images-to-server.md rename {faq => _articles/faq}/scan-x-pages-from-automatic-document-feeder.md (63%) rename {faq => _articles/faq}/scanner-not-shown-or-not-responding-in-the browser.md (97%) rename {faq => _articles/faq}/sdk-download-for-linux-and-mac.md (93%) rename {faq => _articles/faq}/seat-taken-if-os-reinstalled.md (96%) rename {faq => _articles/faq}/securely-transfer-to-server.md (54%) rename {faq => _articles/faq}/separate-documents-by-barcode.md (84%) rename {faq => _articles/faq}/separate-license-for-addon.md (74%) rename {faq => _articles/faq}/sequence-error.md (69%) rename {faq => _articles/faq}/service-backward-compatibility.md (98%) rename {faq => _articles/faq}/service-installation-issue.md (98%) rename {faq => _articles/faq}/service-is-blocked.md (94%) rename {faq => _articles/faq}/service-prompting-to-install-repeatedly.md (80%) rename {faq => _articles/faq}/set-page-size.md (81%) rename {faq => _articles/faq}/setting-scan-settings-without-ui.md (71%) rename {faq => _articles/faq}/show-default-image-editor.md (84%) rename {faq => _articles/faq}/show-multiple-images.md (73%) create mode 100644 _articles/faq/show-page-number.md rename {faq => _articles/faq}/smallest-size-documents.md (83%) rename {faq => _articles/faq}/source-connected-to-maximum.md (79%) rename {faq => _articles/faq}/source-has-nothing-to-capture.md (94%) rename {faq => _articles/faq}/source-not-listed-on-linux.md (98%) rename {faq => _articles/faq}/speed-up-barcode-reading-process.md (80%) rename {faq => _articles/faq}/stop-default-scanner-popup.md (93%) rename {faq => _articles/faq}/support-capture-from-mobile-camera.md (94%) rename {faq => _articles/faq}/support-image-deskew.md (84%) rename {faq => _articles/faq}/support-wia-scanner-drivers.md (94%) rename {faq => _articles/faq}/syntax-error-unexpected-token.md (80%) rename {faq => _articles/faq}/the-connection-with-the-server-was-terminated-abnormally.md (96%) rename {faq => _articles/faq}/the-handle-is-in-the-wrong-state-for-the-requested-operation.md (91%) rename {faq => _articles/faq}/the-loading-bar-keeps-spinning-when-capture-the-image-with-iphone.md (95%) rename {faq => _articles/faq}/trial-fully-functional.md (95%) rename {faq => _articles/faq}/trigger-actions-server-side.md (76%) rename {faq => _articles/faq}/trigger-automatic-workflow-after-scanning.md (54%) rename {faq => _articles/faq}/type-error-appendchild.md (98%) rename {faq => _articles/faq}/unable-hide-loading-bar.md (79%) rename {faq => _articles/faq}/undo-functionality.md (94%) rename {faq => _articles/faq}/upgrade-end-user-installations.md (98%) rename {faq => _articles/faq}/upgrade-to-latest-version.md (83%) rename {faq => _articles/faq}/upload-documents-to-different-domain.md (82%) rename {faq => _articles/faq}/upload-json-files-to-server.md (59%) rename {faq => _articles/faq}/upload-multiple-files-at-a-time.md (92%) rename {faq => _articles/faq}/upload-using-background-service.md (80%) rename {faq => _articles/faq}/use-blank-page-as-a-separator.md (91%) rename {faq => _articles/faq}/use-deprecated-technology.md (80%) rename {faq => _articles/faq}/use-dwt-in-citrix-env.md (95%) rename {faq => _articles/faq}/use-usb-webcam-to-capture.md (60%) rename {faq => _articles/faq}/use-webassembly-to-support-webcam.md (89%) rename {faq => _articles/faq}/use-with-PWA.md (95%) rename {faq => _articles/faq}/verify-if-device-is-supported.md (98%) rename {faq => _articles/faq}/viewer-size-auto-resize.md (89%) rename {faq => _articles/faq}/webcam-supported-by-webcam-capture-addon.md (92%) rename {faq => _articles/faq}/what-are-the-resources-files.md (99%) rename {faq => _articles/faq}/what-does-dynamsoft-service-do-on-end-user-machine.md (91%) rename {faq => _articles/faq}/what-image-editing-operation-supported.md (77%) rename {faq => _articles/faq}/what-physical-scanners-are-supported.md (92%) rename {faq => _articles/faq}/when-is-pdf-rasterizer-needed.md (95%) rename {faq => _articles/faq}/where-images-are-stored.md (62%) rename {faq => _articles/faq}/which-license-purchase-needed-for-saas.md (93%) rename {articles => _articles}/general-usage/image-export/index.md (69%) create mode 100644 _articles/general-usage/image-export/local-export.md rename {articles => _articles}/general-usage/image-export/server-upload.md (77%) rename {articles => _articles}/general-usage/image-processing/buffer-management.md (56%) rename {articles => _articles}/general-usage/image-processing/image-editing.md (81%) rename {articles => _articles}/general-usage/image-processing/index.md (77%) rename {articles => _articles}/general-usage/index.md (59%) rename {articles => _articles}/general-usage/initialization.md (74%) rename {articles => _articles}/general-usage/license.md (77%) rename {articles => _articles}/general-usage/resource-loading.md (78%) rename {articles => _articles}/general-usage/scanner-image-acquisition.md (75%) rename {articles => _articles}/general-usage/server-deployment.md (78%) rename {articles => _articles}/general-usage/server-side-scripting.md (97%) rename {articles => _articles}/general-usage/viewer-configuration.md (60%) create mode 100644 _articles/getstarted/index.md rename {getstarted => _articles/getstarted}/initialize.md (88%) rename {articles => _articles}/hello-world/editing.md (73%) rename {articles => _articles}/hello-world/index.md (77%) rename {articles => _articles}/hello-world/scan-settings.md (77%) rename {articles => _articles}/hello-world/scanning.md (90%) rename {articles => _articles}/hello-world/uploading.md (88%) rename {indepth => _articles/indepth}/deployment/index.md (56%) rename {indepth => _articles/indepth}/development/Pro-service.md (78%) rename {about => _articles/indepth/development}/activex.md (88%) rename {getstarted => _articles/indepth/development}/angular.md (93%) rename {indepth => _articles/indepth}/development/armmips.md (80%) create mode 100644 _articles/indepth/development/index.md rename {indepth => _articles/indepth}/development/mobile-web-capture.md (97%) rename {getstarted => _articles/indepth/development}/react.md (92%) rename {getstarted => _articles/indepth/development}/restful.md (98%) rename {getstarted => _articles/indepth/development}/upgrade.md (86%) rename {getstarted => _articles/indepth/development}/vue.md (94%) rename {getstarted => _articles/indepth/development}/vue3.md (91%) rename {indepth => _articles/indepth}/features/OCR.md (84%) rename {indepth => _articles/indepth}/features/index.md (60%) rename {indepth => _articles/indepth}/features/initialize.md (90%) rename {indepth => _articles/indepth}/web.config (100%) rename {info => _articles/info}/api/Addon_BarcodeReader.md (79%) rename {info => _articles/info}/api/Addon_Camera.md (99%) rename {info => _articles/info}/api/Addon_OCR.md (99%) rename {info => _articles/info}/api/Addon_OCRPro.md (99%) rename {info => _articles/info}/api/Addon_PDF.md (79%) rename {info => _articles/info}/api/Addon_Webcam.md (92%) rename {info => _articles/info}/api/Device.md (98%) rename {info => _articles/info}/api/Dynamsoft_Enum.md (97%) rename {info => _articles/info}/api/Dynamsoft_FileUploader.md (96%) rename {info => _articles/info}/api/Dynamsoft_WebTwainEnv.md (98%) rename {info => _articles/info}/api/WebTwain_Acquire.md (93%) rename {info => _articles/info}/api/WebTwain_Buffer.md (93%) rename {info => _articles/info}/api/WebTwain_Edit.md (98%) rename {info => _articles/info}/api/WebTwain_IO.md (91%) rename {info => _articles/info}/api/WebTwain_Util.md (80%) rename {info => _articles/info}/api/WebTwain_Viewer.md (95%) rename {info => _articles/info}/api/appendix.md (99%) create mode 100644 _articles/info/api/index.md rename {info => _articles/info}/api/interfaces.md (94%) rename {info => _articles/info}/api/restful.md (97%) rename {info => _articles/info}/governance.md (82%) rename {info => _articles/info}/schedule/Addon.md (97%) rename {info => _articles/info}/schedule/Developing.md (88%) rename {info => _articles/info}/schedule/Stable.md (82%) rename {info => _articles/info}/schedule/beta.md (91%) rename {info => _articles/info}/schedule/bugs.md (89%) rename {info => _articles/info}/schedule/deprecated.md (51%) create mode 100644 _articles/info/schedule/index.md rename {info => _articles/info}/schedule/proposed.md (91%) rename {articles => _articles}/introduction/imaging-hardware.md (83%) rename {articles => _articles}/introduction/index.md (66%) rename {articles => _articles}/introduction/supported-file-formats.md (78%) rename {articles => _articles}/introduction/system-requirements.md (91%) rename {articles => _articles}/knowledge-base/the-dynamsoft-service.md (100%) delete mode 100644 articles/general-usage/image-export/local-export.md delete mode 100644 faq/change-resolution-of-image.md delete mode 100644 faq/hide-image-viewer.md delete mode 100644 faq/image-viewer-object-defined.md delete mode 100644 faq/index.md delete mode 100644 faq/save-selected-images-to-server.md delete mode 100644 faq/show-page-number.md delete mode 100644 getstarted/index.md delete mode 100644 indepth/development/index.md delete mode 100644 info/api/index.md delete mode 100644 info/schedule/index.md 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 ![Access-Control-Allow-Origin]({{site.assets}}imgs/Access-Control-Allow-Origin.png) -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. ![Initialization]({{site.assets}}imgs/Initialization-1.png) @@ -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: ![install dialog]({{site.assets}}imgs/Initialization-1.png) -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) ![UI-4]({{site.assets}}imgs/UI-9.png) -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 ``` -Check out [Server-side Scripting]({{site.general-usage}}server-side-scripting.html) for more information on the target URL. \ No newline at end of file +Check out [Server-side Scripting](/_articles/general-usage/server-side-scripting.md) for more information on the target URL. \ No newline at end of file diff --git a/articles/general-usage/image-processing/buffer-management.md b/_articles/general-usage/image-processing/buffer-management.md similarity index 56% rename from articles/general-usage/image-processing/buffer-management.md rename to _articles/general-usage/image-processing/buffer-management.md index d2ab0968..b6fbae24 100644 --- a/articles/general-usage/image-processing/buffer-management.md +++ b/_articles/general-usage/image-processing/buffer-management.md @@ -5,12 +5,11 @@ title: Dynamic Web TWAIN SDK Basics - Managing the Image Buffer keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, data management, data, buffer, management, document management breadcrumbText: Managing the Image Buffer description: Dynamic Web TWAIN SDK General Usage Guide - Managing the Image Buffer -permalink: /general-usage/image-processing/buffer-management.html --- # Managing the Image Buffer -> Prerequisite: [DWT Initialization]({{site.general-usage}}initialization.html) +> Prerequisite: [DWT Initialization](/_articles/general-usage/initialization.md) Images scanned by a `WebTwain` instance are stored inside the `WebTwain`'s image buffer, which stores images in memory in the `DIB` format. This guide explains commonly-used features to manipulate the data, from reordering pages, to retrieving metadata, and more. @@ -20,29 +19,29 @@ Images scanned by a `WebTwain` instance are stored inside the `WebTwain`'s image The first step in managing the buffer is to examine its state. Images in the buffer can be identified both with its index (which may change over time), or by its image ID, which is immutable once an image enters the buffer. These buffer state querying APIs are typically used in conjunction with other buffer APIS, such as image reordering and image tagging, which we will come to discuss. -- [`DWTObject.HowManyImagesInBuffer`]({{site.api}}WebTwain_Buffer.html#howmanyimagesinbuffer) holds the number of images in the buffer of the `WebTwain` instance. +- [`DWTObject.HowManyImagesInBuffer`](/_articles/info/api/WebTwain_Buffer.md#howmanyimagesinbuffer) holds the number of images in the buffer of the `WebTwain` instance. -- [`MaxImagesInBuffer`]({{site.api}}WebTwain_Buffer.html#maximagesinbuffer) controls the maximum number of images allowed within the buffer. The default value is 32767. +- [`MaxImagesInBuffer`](/_articles/info/api/WebTwain_Buffer.md#maximagesinbuffer) controls the maximum number of images allowed within the buffer. The default value is 32767. -- [`DWTObject.CurrentImageIndexInBuffer`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer) returns the index of the currently active image (which is also the one being displayed by the `Viewer`). This property can also be used to **set** the active image by setting it to a different index. +- [`DWTObject.CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) returns the index of the currently active image (which is also the one being displayed by the `Viewer`). This property can also be used to **set** the active image by setting it to a different index. -- [`IndexToImageID(imageIndex)`]({{site.api}}WebTwain_Buffer.html#indextoimageid) and [ `ImageIDToIndex(imageID)` ]({{site.api}}WebTwain_Buffer.html#imageidtoindex) can get the image ID (a string) of an image at a given position in the buffer index (a number), and vice versa. +- [`IndexToImageID(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#indextoimageid) and [ `ImageIDToIndex(imageID)` ](/_articles/info/api/WebTwain_Buffer.md#imageidtoindex) can get the image ID (a string) of an image at a given position in the buffer index (a number), and vice versa. - Images in the buffer also have an internal URL with which they can be referenced (in [desktop browsers only]({{site.getstarted}}platform.html#browsers-on-desktop-devices)). This comes in two flavors: - - [`GetImageURL(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getimageurl) retrieves the URL of the image at the specified index using the `https://` scheme. This is useful to display images outside the `WebTwain` `Viewer`. - - [`GetImagePartURL(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getimageparturl) retrieves the URL of the image at the specified index, but using the `dwt://` scheme, which can only be used by other DWT APIs. + - [`GetImageURL(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getimageurl) retrieves the URL of the image at the specified index using the `https://` scheme. This is useful to display images outside the `WebTwain` `Viewer`. + - [`GetImagePartURL(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getimageparturl) retrieves the URL of the image at the specified index, but using the `dwt://` scheme, which can only be used by other DWT APIs. -- [`GetSkewAngle(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getskewangle) estimates the skew angle of scanned documents in degrees. This can be used to de-skew scanned images, which may be useful for last minute touch-ups. (see image rotation in our [image editing guide]({{site.general-usage}}image-processing/image-editing.html#example---rotating-images)) +- [`GetSkewAngle(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getskewangle) estimates the skew angle of scanned documents in degrees. This can be used to de-skew scanned images, which may be useful for last minute touch-ups. (see image rotation in our [image editing guide](/_articles/general-usage/image-processing/image-editing.md#example---rotating-images)) -- [`GetSkewAngleEx(imageIndex, leftmost, topmost, rightmost, bottommost)`]({{site.api}}WebTwain_Buffer.html#getskewangleex) calculates the skew angle of a rectangle (specified by its outermost pixel coordinates) within the image. This feature is only supported in [desktop browsers]({{site.getstarted}}platform.html#browsers-on-desktop-devices). +- [`GetSkewAngleEx(imageIndex, leftmost, topmost, rightmost, bottommost)`](/_articles/info/api/WebTwain_Buffer.md#getskewangleex) calculates the skew angle of a rectangle (specified by its outermost pixel coordinates) within the image. This feature is only supported in [desktop browsers]({{site.getstarted}}platform.html#browsers-on-desktop-devices). Some buffer management APIs work on images that have been "selected", for example, calculating the disk space required by selected images. The user may also select images through the `Viewer` interface, which also visually indicates selected images. The selection APIs are described below: -- [`SelectImages(indexArray)`]({{site.api}}WebTwain_Buffer.html#selectimages) selects images using an array of image indices. Note that there is no dedicated API for selecting a single image, so we use the form `SelectImages([singleImageIndex])` instead. +- [`SelectImages(indexArray)`](/_articles/info/api/WebTwain_Buffer.md#selectimages) selects images using an array of image indices. Note that there is no dedicated API for selecting a single image, so we use the form `SelectImages([singleImageIndex])` instead. -- [`SelectAllImages()`]({{site.api}}WebTwain_Buffer.html#selectallimages) selects all the images in the buffer. +- [`SelectAllImages()`](/_articles/info/api/WebTwain_Buffer.md#selectallimages) selects all the images in the buffer. -- [`SelectedImagesIndices`]({{site.api}}WebTwain_Buffer.html#selectedimagesindices) is a read-only array containing the indices of the currently selected images. +- [`SelectedImagesIndices`](/_articles/info/api/WebTwain_Buffer.md#selectedimagesindices) is a read-only array containing the indices of the currently selected images. ## Reordering Images @@ -122,20 +121,20 @@ The `WebTwain` instance provides a set of simple buffer reordering APIs to move 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) -- [`cursor`]({{site.api}}WebTwain_Viewer.html#cursor) -- [`setViewMode()`]({{site.api}}WebTwain_Viewer.html#setviewmode) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) -- [`MoveImage()`]({{site.api}}WebTwain_Buffer.html#moveimage) -- [`SwitchImage()`]({{site.api}}WebTwain_Buffer.html#switchimage) -- [`RemoveImage()`]({{site.api}}WebTwain_Buffer.html#removeimage) -- [`RemoveAllImages()`]({{site.api}}WebTwain_Buffer.html#removeallimages) -- [`HowManyImagesInBuffer`]({{site.api}}WebTwain_Buffer.html#howmanyimagesinbuffer) -- [`SelectImages()`]({{site.api}}WebTwain_Buffer.html#selectimages) -- [`RemoveAllSelectedImages()`]({{site.api}}WebTwain_Buffer.html#removeallselectedimages) +- [`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) +- [`cursor`](/_articles/info/api/WebTwain_Viewer.md#cursor) +- [`setViewMode()`](/_articles/info/api/WebTwain_Viewer.md#setviewmode) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) +- [`MoveImage()`](/_articles/info/api/WebTwain_Buffer.md#moveimage) +- [`SwitchImage()`](/_articles/info/api/WebTwain_Buffer.md#switchimage) +- [`RemoveImage()`](/_articles/info/api/WebTwain_Buffer.md#removeimage) +- [`RemoveAllImages()`](/_articles/info/api/WebTwain_Buffer.md#removeallimages) +- [`HowManyImagesInBuffer`](/_articles/info/api/WebTwain_Buffer.md#howmanyimagesinbuffer) +- [`SelectImages()`](/_articles/info/api/WebTwain_Buffer.md#selectimages) +- [`RemoveAllSelectedImages()`](/_articles/info/api/WebTwain_Buffer.md#removeallselectedimages) ### Explanation @@ -145,23 +144,23 @@ For illustration purposes, we set the `Viewer` to show multiple images at a time ## Tagging Images -DWT can tag images for custom grouping, sorting, and other data management tasks, using the [TagImages()]({{site.api}}WebTwain_Buffer.html#tagimages) API. Tags are strings associated with images for identification purposes. Images may have multiple tags as well. +DWT can tag images for custom grouping, sorting, and other data management tasks, using the [TagImages()](/_articles/info/api/WebTwain_Buffer.md#tagimages) API. Tags are strings associated with images for identification purposes. Images may have multiple tags as well. ### Setting Tags -For example, we may tag individual images with the "title" tag to identify title pages with [TagImages()]({{site.api}}WebTwain_Buffer.html#tagimages), like so: +For example, we may tag individual images with the "title" tag to identify title pages with [TagImages()](/_articles/info/api/WebTwain_Buffer.md#tagimages), like so: ```javascript DWTObject.TagImages([0, 1], "title"); ``` -This applies the tag to the first and second images in the buffer (zero-indexed). If image indices are not known ahead of time, it's also useful to apply the tag to the currently displayed image in the viewer, via the [`CurrentImageIndexInBuffer`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer) property. This allows the user to tag the image upon inspection. +This applies the tag to the first and second images in the buffer (zero-indexed). If image indices are not known ahead of time, it's also useful to apply the tag to the currently displayed image in the viewer, via the [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) property. This allows the user to tag the image upon inspection. ```javascript DWTObject.TagImages([DWTObject.CurrentImageInBuffer], "title"); ``` -Rather than applying tags to existing images, it is possible to tag images as they enter the buffer via [SetDefaultTag()]({{site.api}}WebTwain_Buffer.html#setdefaulttag). By changing the default tag in reaction to application state, the web application can create rich image tagging logic: +Rather than applying tags to existing images, it is possible to tag images as they enter the buffer via [SetDefaultTag()](/_articles/info/api/WebTwain_Buffer.md#setdefaulttag). By changing the default tag in reaction to application state, the web application can create rich image tagging logic: ```javascript DWTObject.SetDefaultTag("title"); @@ -171,19 +170,19 @@ Every image entering the buffer after this will automatically receive this tag. ### Organizing Images with Tags -Tags are only useful if they can be interacted with. Once images have been tagged, we can filter them by their tags. For example, a user may need to display only the title pages for preview purposes. Once title pages have been tagged (either as they were scanned or after the fact), we can use [FilterImagesByTag()]({{site.api}}WebTwain_Buffer.html#filterimagesbytag) to selectively display just the title pages: +Tags are only useful if they can be interacted with. Once images have been tagged, we can filter them by their tags. For example, a user may need to display only the title pages for preview purposes. Once title pages have been tagged (either as they were scanned or after the fact), we can use [FilterImagesByTag()](/_articles/info/api/WebTwain_Buffer.md#filterimagesbytag) to selectively display just the title pages: ```javascript DWTObject.FilterImagesByTag("title"); ``` -Once the user finishes with the preview, DWT can revert to displaying all images by clearing the filter with [ClearFilter()]({{site.api}}WebTwain_Buffer.html#clearfilter): +Once the user finishes with the preview, DWT can revert to displaying all images by clearing the filter with [ClearFilter()](/_articles/info/api/WebTwain_Buffer.md#clearfilter): ```javascript DWTObject.ClearFilter(); ``` -Be sure to visit our [buffer API reference]({{site.api}}WebTwain_Buffer.html) to learn more about various tagging features. +Be sure to visit our [buffer API reference](/_articles/info/api/WebTwain_Buffer.md) to learn more about various tagging features. @@ -241,22 +240,22 @@ Be sure to visit our [buffer API reference]({{site.api}}WebTwain_Buffer.html) to APIs used: -- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent) -- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready) -- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) +- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent) +- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready) +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) --> ## Organizing Images with Documents -Documents are another way to organize images within the image buffer. We may create multiple documents to group images, but unlike tags, images can each only belong to one document. Documents also preserve image order. First, we create a document with [CreateDocument()]({{site.api}}WebTwain_Buffer.html#createdocument): +Documents are another way to organize images within the image buffer. We may create multiple documents to group images, but unlike tags, images can each only belong to one document. Documents also preserve image order. First, we create a document with [CreateDocument()](/_articles/info/api/WebTwain_Buffer.md#createdocument): ```javascript DWTObject.CreateDocument("documentName"); ``` -To add images into the document, we first open the document with [OpenDocument()]({{site.api}}WebTwain_Buffer.html#opendocument), and specifying the document by name: +To add images into the document, we first open the document with [OpenDocument()](/_articles/info/api/WebTwain_Buffer.md#opendocument), and specifying the document by name: ```javascript DWTObject.OpenDocument("documentName"); @@ -264,50 +263,50 @@ DWTObject.OpenDocument("documentName"); Subsequently, all images entering the buffer will belong to this document. Only one document may be open at a time - opening another document would close the previously open one. -We may also move images after they have entered documents, for example, to copy images from one document to another with [CopyToDocumentAsync()]({{site.api}}WebTwain_Buffer.html#coppytodocumentasync): +We may also move images after they have entered documents, for example, to copy images from one document to another with [CopyToDocumentAsync()](/_articles/info/api/WebTwain_Buffer.md#coppytodocumentasync): ```javascript DWTObject.CopyToDocumentAsync("sourceDocumentName", "destinationDocumentName", sourceIndices, targetIndex) ``` -Which copies the selected images from `sourceDocumentName` with `sourceIndices` and moves them to the destination at the `targetIndex`. This API has a few overloads to specify targets and sources in different ways, refer to our [documentation]({{site.api}}WebTwain_Buffer.html#coppytodocumentasync) for more details. +Which copies the selected images from `sourceDocumentName` with `sourceIndices` and moves them to the destination at the `targetIndex`. This API has a few overloads to specify targets and sources in different ways, refer to our [documentation](/_articles/info/api/WebTwain_Buffer.md#coppytodocumentasync) for more details. -DWT also provides other document-related APIs, check them out in our [buffer API reference]({{site.api}}WebTwain_Buffer.html). +DWT also provides other document-related APIs, check them out in our [buffer API reference](/_articles/info/api/WebTwain_Buffer.md). ## Querying Image Data DWT provides APIs to quickly retrieve image metadata. The following retrieves data for an image at the specified buffer index: -* Pixel bit depth: [`GetImageBitDepth(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getimagebitdepth) -* Image pixel height: [`GetImageHeight(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getimageheight) -* Image pixel width: [`GetImageWidth(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getimagewidth) -* Horizontal image resolution (in DPI): [`GetImageXResolution(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getimagexresolution) -* Vertical image resolution (in DPI): [`GetImageYResolution(imageIndex)`]({{site.api}}WebTwain_Buffer.html#getimageyresolution) +* Pixel bit depth: [`GetImageBitDepth(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getimagebitdepth) +* Image pixel height: [`GetImageHeight(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getimageheight) +* Image pixel width: [`GetImageWidth(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getimagewidth) +* Horizontal image resolution (in DPI): [`GetImageXResolution(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getimagexresolution) +* Vertical image resolution (in DPI): [`GetImageYResolution(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#getimageyresolution) Additionally, the following APIs used calculate image sizes are only supported by [desktop browsers]({{site.getstarted}}platform.html#browsers-on-desktop-devices): -* Calculate the number of bytes the image would take up when resized to the specified dimensions: [ `GetImageSize(imageIndex, width, height)` ]({{site.api}}WebTwain_Buffer.html#getimagesize) -* Calculate the number of bytes the image would take up upon conversion to a specific image format: [ `GetImageSizeWithSpecifiedType(imageIndex, imageType)` ]({{site.api}}WebTwain_Buffer.html#getimagesizewithspecifiedtype) - * Refer to [Dynamsoft.DWT.EnumDWT_ImageType]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype) for image formats. -* Calculate the total number of bytes of all selected images given an expected file format: [ `GetSelectedImagesSize(imageType)` ]({{site.api}}WebTwain_Buffer.html#getselectedimagessize) - * Refer to [Dynamsoft.DWT.EnumDWT_ImageType]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype) for image formats. - * Images must first be selected by index via [SelectImages()]({{site.api}}WebTwain_Buffer.html#selectimages). There must be at least one image selected for a valid call to `GetImageSize()`. +* Calculate the number of bytes the image would take up when resized to the specified dimensions: [ `GetImageSize(imageIndex, width, height)` ](/_articles/info/api/WebTwain_Buffer.md#getimagesize) +* Calculate the number of bytes the image would take up upon conversion to a specific image format: [ `GetImageSizeWithSpecifiedType(imageIndex, imageType)` ](/_articles/info/api/WebTwain_Buffer.md#getimagesizewithspecifiedtype) + * Refer to [Dynamsoft.DWT.EnumDWT_ImageType](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype) for image formats. +* Calculate the total number of bytes of all selected images given an expected file format: [ `GetSelectedImagesSize(imageType)` ](/_articles/info/api/WebTwain_Buffer.md#getselectedimagessize) + * Refer to [Dynamsoft.DWT.EnumDWT_ImageType](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype) for image formats. + * Images must first be selected by index via [SelectImages()](/_articles/info/api/WebTwain_Buffer.md#selectimages). There must be at least one image selected for a valid call to `GetImageSize()`. ## Detecting Blank Pages The buffer also comes with a set of APIs specifically to detect blank pages: -- [`IsBlankImage(imageIndex)`]({{site.api}}WebTwain_Buffer.html#isblankimage) determines whether or not the given page is blank. This is relatively accurate. -- [`IsBlankImageExpress(imageIndex)`]({{site.api}}WebTwain_Buffer.html#isblankimageexpress) detects whether or not the given page is blank, but it trades worse accuracy for higher speed. -- [`IsBlankImageAsync(imageIndex, { minBlockHeight, maxBlockHeight })`]({{site.api}}WebTwain_Buffer.html#isblankimageasync) can optionally detect blank pages with a certain tolerance for markings within the specified size range. +- [`IsBlankImage(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) determines whether or not the given page is blank. This is relatively accurate. +- [`IsBlankImageExpress(imageIndex)`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress) detects whether or not the given page is blank, but it trades worse accuracy for higher speed. +- [`IsBlankImageAsync(imageIndex, { minBlockHeight, maxBlockHeight })`](/_articles/info/api/WebTwain_Buffer.md#isblankimageasync) can optionally detect blank pages with a certain tolerance for markings within the specified size range. -> Tip: At times, blank page detection APIs will still fail to detect some pages as blank. We can loosen the detection tolerance by reading [`BlankImageCurrentStdDev`]({{site.api}}WebTwain_Buffer.html#blankimagecurrentstddev) to get the tolerance for the current image, then increasing the tolerance by setting a new value for the [`BlankImageMaxStdDev`]({{site.api}}WebTwain_Buffer.html#blankimagemaxstddev) property. Note that the first property is read-only for safety reasons. +> Tip: At times, blank page detection APIs will still fail to detect some pages as blank. We can loosen the detection tolerance by reading [`BlankImageCurrentStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagecurrentstddev) to get the tolerance for the current image, then increasing the tolerance by setting a new value for the [`BlankImageMaxStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagemaxstddev) property. Note that the first property is read-only for safety reasons. ## Using Buffer Event Callbacks -The image buffer provides event callbacks which can be used to customize buffer behavior. Listeners can be attached to these events via the `WebTwain` object's [RegisterEvent()]({{site.api}}WebTwain_Util.html#registerevent) API. Note that this is distinct from the global [RegisterEvent()]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent) which is called from `Dynamsoft.DWT`. +The image buffer provides event callbacks which can be used to customize buffer behavior. Listeners can be attached to these events via the `WebTwain` object's [RegisterEvent()](/_articles/info/api/WebTwain_Util.md#registerevent) API. Note that this is distinct from the global [RegisterEvent()](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent) which is called from `Dynamsoft.DWT`. -- [`OnBufferChanged`]({{site.api}}WebTwain_Buffer.html#onbufferchanged) triggers whenever the state of the buffer changes. The details on how the buffer changes are provided in [`BufferChangeInfo`]({{site.api}}Interfaces.html#bufferchangeinfo): +- [`OnBufferChanged`](/_articles/info/api/WebTwain_Buffer.md#onbufferchanged) triggers whenever the state of the buffer changes. The details on how the buffer changes are provided in [`BufferChangeInfo`](/_articles/info/api/interfaces.md#bufferchangeinfo): ```javascript DWTObject.RegisterEvent('OnBufferChanged', @@ -316,14 +315,14 @@ DWTObject.RegisterEvent('OnBufferChanged', ): boolean; ``` -- [`OnBitmapChanged`]({{site.api}}WebTwain_Buffer.html#onbitmapchanged) triggers whenever image data changes. Specifically, when: +- [`OnBitmapChanged`](/_articles/info/api/WebTwain_Buffer.md#onbitmapchanged) triggers whenever image data changes. Specifically, when: - an image enters the buffer - an image is removed from the buffer - an image image in the buffer is edited -* [`OnTopImageInTheViewChanged`]({{site.api}}WebTwain_Buffer.html#ontopimageintheviewchanged) triggers when the first image visible in the `Viewer` changes. (The viewer may be configured to show more than one image at a time, see the [`Viewer` guide]({{site.general-usage}}viewer-configuration.html) for details). +* [`OnTopImageInTheViewChanged`](/_articles/info/api/WebTwain_Buffer.md#ontopimageintheviewchanged) triggers when the first image visible in the `Viewer` changes. (The viewer may be configured to show more than one image at a time, see the [`Viewer` guide](/_articles/general-usage/viewer-configuration.md) for details). ```javascript DWTObject.RegisterEvent( @@ -337,7 +336,7 @@ DWTObject.RegisterEvent( ) ``` -* [ `OnIndexChangeDragDropDone` ]({{site.api}}WebTwain_Buffer.html#onindexchangedragdropdone) triggers when the user reorders images by dragging them around using the `Viewer`. +* [ `OnIndexChangeDragDropDone` ](/_articles/info/api/WebTwain_Buffer.md#onindexchangedragdropdone) triggers when the user reorders images by dragging them around using the `Viewer`. These events are useful for enhancing and customizing the graphical user experience. diff --git a/articles/general-usage/image-processing/image-editing.md b/_articles/general-usage/image-processing/image-editing.md similarity index 81% rename from articles/general-usage/image-processing/image-editing.md rename to _articles/general-usage/image-processing/image-editing.md index ce81f9d6..a5d5d86d 100644 --- a/articles/general-usage/image-processing/image-editing.md +++ b/_articles/general-usage/image-processing/image-editing.md @@ -5,13 +5,12 @@ title: Dynamic Web TWAIN SDK Basics - Editing Images keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, image processing, editing, image editing, edit, image edit breadcrumbText: Editing Images description: Dynamic Web TWAIN SDK General Usage Guide - Image Editing -permalink: /general-usage/image-processing/image-editing.html --- # Editing Images -> Prerequisite: [DWT Initialization]({{site.general-usage}}initialization.html)
-> Prerequisite: [Managing the Image Buffer]({{site.general-usage}}image-processing/buffer-management.html) +> Prerequisite: [DWT Initialization](/_articles/general-usage/initialization.md)
+> Prerequisite: [Managing the Image Buffer](/_articles/general-usage/image-processing/buffer-management.md) DWT provides a wide range of common image editing features to modify scanned documents in web applications. The editing APIs are straight-forward for developers to implement rich editing features. @@ -73,13 +72,13 @@ We first demonstrate the use of our image rotation API, which allows users to ro 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) -- [`Rotate()`]({{site.api}}WebTwain_Edit.html#rotate) -- [`CurrentImageIndexInBuffer`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer) +- [`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) +- [`Rotate()`](/_articles/info/api/WebTwain_Edit.md#rotate) +- [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) -This sample rotates an image with the [`Rotate()`]({{site.api}}WebTwain_Edit.html#rotate) by the specified number of degrees. This can be applied to any scanned image given its index, but usually it is best to apply it to the image currently being viewed. We use the [`CurrentImageIndexInBuffer`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer) property to grab the index of the displayed image to rotate it in view of the user. We can also choose to preserve the size of the image by cutting off rotated edges as is done in the sample, or shrink the image during rotation to retain the edges. +This sample rotates an image with the [`Rotate()`](/_articles/info/api/WebTwain_Edit.md#rotate) by the specified number of degrees. This can be applied to any scanned image given its index, but usually it is best to apply it to the image currently being viewed. We use the [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) property to grab the index of the displayed image to rotate it in view of the user. We can also choose to preserve the size of the image by cutting off rotated edges as is done in the sample, or shrink the image during rotation to retain the edges. Note that the two callbacks are optional arguments. @@ -148,16 +147,16 @@ Many DWT editing APIs can use different built-in image interpolation methods to 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) -- [`RotateEx()`]({{site.api}}WebTwain_Edit.html#rotateex) -- [`CurrentImageIndexInBuffer`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer) -- [`Dynamsoft.DWT.EnumDWT_InterpolationMethod`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer) +- [`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) +- [`RotateEx()`](/_articles/info/api/WebTwain_Edit.md#rotateex) +- [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) +- [`Dynamsoft.DWT.EnumDWT_InterpolationMethod`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) ### Explanation -The function call is similar to the sample with the regular `Rotate()` API, just with an added parameter for the interpolation method. The interpolation method is defined by the [`Dynamsoft.DWT.EnumDWT_InterpolationMethod`]({{site.api}}WebTwain_Buffer.html#currentimageindexinbuffer) enumeration. Though [`RotateEx()`]({{site.api}}WebTwain_Edit.html#rotateex) can use the numeric directly, we recommend using the enumeration for legibility. +The function call is similar to the sample with the regular `Rotate()` API, just with an added parameter for the interpolation method. The interpolation method is defined by the [`Dynamsoft.DWT.EnumDWT_InterpolationMethod`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) enumeration. Though [`RotateEx()`](/_articles/info/api/WebTwain_Edit.md#rotateex) can use the numeric directly, we recommend using the enumeration for legibility. ## Common Editing APIs diff --git a/articles/general-usage/image-processing/index.md b/_articles/general-usage/image-processing/index.md similarity index 77% rename from articles/general-usage/image-processing/index.md rename to _articles/general-usage/image-processing/index.md index 96542315..1bee0e6a 100644 --- a/articles/general-usage/image-processing/index.md +++ b/_articles/general-usage/image-processing/index.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK Basics - Processing Images keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, image processing, editing, image editing, edit, image edit breadcrumbText: Processing Images description: Dynamic Web TWAIN SDK General Usage Guide - Processing Images -permalink: /general-usage/image-processing/index.html --- # Processing Images @@ -15,5 +14,5 @@ DWT has a large host of image processing tools when using it as a web-based docu ### Table of Contents -- [Managing the Image Buffer]({{site.general-usage}}image-processing/buffer-management.html) -- [Editing Images]({{site.general-usage}}image-processing/image-editing.html) \ No newline at end of file +- [Managing the Image Buffer](/_articles/general-usage/image-processing/buffer-management.md) +- [Editing Images](/_articles/general-usage/image-processing/image-editing.md) \ No newline at end of file diff --git a/articles/general-usage/index.md b/_articles/general-usage/index.md similarity index 59% rename from articles/general-usage/index.md rename to _articles/general-usage/index.md index f94e143b..18278006 100644 --- a/articles/general-usage/index.md +++ b/_articles/general-usage/index.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK General Usage Guide keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, general, general guide breadcrumbText: General usage guide description: Dynamic Web TWAIN SDK General Usage Guide -permalink: /general-usage/index.html --- # General Usage Guide @@ -20,16 +19,16 @@ Here we present a comprehensive guide on how to develop a web application with s ### Table of Contents -- [Loading Library Resources]({{site.general-usage}}resource-loading.html) -- [License]({{site.general-usage}}license.html) -- [Initializing DWT]({{site.general-usage}}initialization.html) -- [Acquiring Images from Scanners]({{site.general-usage}}scanner-image-acquisition.html) -- [Configuring the Viewer]({{site.general-usage}}viewer-configuration.html) -- [Processing Images]({{site.general-usage}}image-processing/index.html) -- [Exporting Images]({{site.general-usage}}image-export/index.html) -- [Server-Side Scripting]({{site.general-usage}}server-side-scripting.html) -- [Deploying to the Server]({{site.general-usage}}server-deployment.html) +- [Loading Library Resources](/_articles/general-usage/resource-loading.md) +- [License](/_articles/general-usage/license.md) +- [Initializing DWT](/_articles/general-usage/initialization.md) +- [Acquiring Images from Scanners](/_articles/general-usage/scanner-image-acquisition.md) +- [Configuring the Viewer](/_articles/general-usage/viewer-configuration.md) +- [Processing Images](/_articles/general-usage/image-processing/index.md) +- [Exporting Images](/_articles/general-usage/image-export/index.md) +- [Server-Side Scripting](/_articles/general-usage/server-side-scripting.md) +- [Deploying to the Server](/_articles/general-usage/server-deployment.md) -These guides cover all simple tools required to scan, view, and edit images, and then send them to the web server. Check out our Hello World guide [here]({{site.hello-world}}) for a quick demonstration of these tools. +These guides cover all simple tools required to scan, view, and edit images, and then send them to the web server. Check out our Hello World guide [here](/_articles/hello-world/index.md) for a quick demonstration of these tools. Start by learning how to initialize DWT in your web application. After that, feel free to read the other sections in no particular order. \ No newline at end of file diff --git a/articles/general-usage/initialization.md b/_articles/general-usage/initialization.md similarity index 74% rename from articles/general-usage/initialization.md rename to _articles/general-usage/initialization.md index 830e742d..eebde7a5 100644 --- a/articles/general-usage/initialization.md +++ b/_articles/general-usage/initialization.md @@ -5,14 +5,13 @@ title: Dynamic Web TWAIN SDK Basics - Initializing DWT keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, initializing DWT breadcrumbText: DWT Initialization description: Dynamic Web TWAIN SDK General Usage Guide - Initializing DWT -permalink: /general-usage/initialization.html --- # Initializing DWT -> Prerequisite: [Loading Library Resources]({{site.general-usage}}resource-loading.html) +> Prerequisite: [Loading Library Resources](/_articles/general-usage/resource-loading.md) -This article explores how to initialize the **DWT SDK** (**DWT**) for use in a web application. The main goal is to instantiate the **`WebTwain`** object, which is the entrypoint to most DWT functionalities, such as image scanning, image viewing, file uploading, and more. To load resources using other methods (via CDN or package manager), read our [resource loading guide]({{site.general-usage}}resource-loading.html), and read about initialization with these resources in our [advanced initialization guide]({{site.extended-usage}}advanced-initialization.html). +This article explores how to initialize the **DWT SDK** (**DWT**) for use in a web application. The main goal is to instantiate the **`WebTwain`** object, which is the entrypoint to most DWT functionalities, such as image scanning, image viewing, file uploading, and more. To load resources using other methods (via CDN or package manager), read our [resource loading guide](/_articles/extended-usage/advanced-initialization.md). ## Sample Code @@ -49,9 +48,9 @@ The following is a minimal amount of sample code needed to create a web applicat 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.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) > DWT resides in the `Dynamsoft` namespace. Specifically, most DWT features reside within `Dynamsoft.DWT`. @@ -59,9 +58,9 @@ APIs used: For demonstration purposes, save the sample in an HTML file (e.g. `helloWorld.html`) in a new directory. Then, open the HTML file in a browser, and the DWT UI should display a loading animation. To **verify** that the `WebTwain` object has been instantiated, you can uncomment the verification code block. -Otherwise, click [here]({{site.indepth}}deployment/server.html) to learn how to deploy DWT on your web server. +Otherwise, click [here](/_articles/general-usage/server-deployment.md) to learn how to deploy DWT on your web server. -> If your environment does not have **Dynamic Web TWAIN Service** installed, a prompt will appear to ask you to install the service. You can learn more about what the service does [here]({{site.faq}}what-does-dynamsoft-service-do-on-end-user-machine.html). +> If your environment does not have **Dynamic Web TWAIN Service** installed, a prompt will appear to ask you to install the service. You can learn more about what the service does [here](/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md). Below is more detail on what happens during initialization and how to retrieve the `WebTwain` object. @@ -77,12 +76,12 @@ During DWT initialization under default configurations, DWT **instantiates** a `
``` -Make sure that this `div` exists in the DOM. The `WebTwain` instance also uses the `id` as an identifier. We use this identifier to get the `WebTwain` instance with [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain). +Make sure that this `div` exists in the DOM. The `WebTwain` instance also uses the `id` as an identifier. We use this identifier to get the `WebTwain` instance with [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain). ## Retrieving the `WebTwain` Object -It is important to access the `WebTwain` object only after it has been instantiated. We can do this by registering the [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready) event, then invoking [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain) in the callback function. This ensures that we do not try to access the `WebTwain` object before it is instantiated. Once we can access the `WebTwain` object, we can proceed to use powerful features within DWT. +It is important to access the `WebTwain` object only after it has been instantiated. We can do this by registering the [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready) event, then invoking [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain) in the callback function. This ensures that we do not try to access the `WebTwain` object before it is instantiated. Once we can access the `WebTwain` object, we can proceed to use powerful features within DWT. ## Further Reading -For advanced DWT initialization methods, including changing default configurations, or instantiating a `WebTwain` instance without a `Viewer`, take a look at the [advanced initialization guide]({{site.extended-usage}}advanced-initialization.html). \ No newline at end of file +For advanced DWT initialization methods, including changing default configurations, or instantiating a `WebTwain` instance without a `Viewer`, take a look at the [advanced initialization guide](/_articles/extended-usage/advanced-initialization.md). \ No newline at end of file diff --git a/articles/general-usage/license.md b/_articles/general-usage/license.md similarity index 77% rename from articles/general-usage/license.md rename to _articles/general-usage/license.md index 7e38da27..5ec7fdd4 100644 --- a/articles/general-usage/license.md +++ b/_articles/general-usage/license.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK License keywords: Dynamic Web TWAIN, Documentation, License breadcrumbText: License description: Dynamic Web TWAIN SDK Documentation License Page -permalink: /general-usage/license.html --- # Using License Keys @@ -19,7 +18,7 @@ You can request a trial license of Dynamic Web TWAIN through our @@ -30,7 +29,7 @@ License keys are configured in the [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dyna 1. Locate the `dynamsoft.webtwain.config.js` file (or search for `ProductKey`). -2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey): +2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey): ```javascript Dynamsoft.DWT.ProductKey = 't0076******'; // Use an offline trial key @@ -42,11 +41,11 @@ License keys are configured in the [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dyna
-When using package managers such as `npm`, be sure to check out our web framework samples. Roughly speaking, it involves setting `Dynamsoft.DWT.ProductKey` before calling either [`Dynamsoft.DWT.Load()`]({{site.api}}Dynamsoft_WebTwainEnv.html#load) or [`Dynamsoft.DWT.CreateDWTObjectEx()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobjectex): +When using package managers such as `npm`, be sure to check out our web framework samples. Roughly speaking, it involves setting `Dynamsoft.DWT.ProductKey` before calling either [`Dynamsoft.DWT.Load()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#load) or [`Dynamsoft.DWT.CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex): -- [Use Web TWAIN in Angular]({{site.indepth}}development/angular.html) -- [Use Web TWAIN in React]({{site.indepth}}development/react.html) -- [Use Web TWAIN in Vue]({{site.indepth}}development/vue.html) +- [Use Web TWAIN in Angular](/_articles/indepth/development/angular.md) +- [Use Web TWAIN in React](/_articles/indepth/development/react.md) +- [Use Web TWAIN in Vue](/_articles/indepth/development/vue.md)
@@ -81,7 +80,7 @@ Offline license keys begin with the `f0068` prefix. ### Configuring Full License Keys -To use a full license key, set the value of [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey) to the key string. (**Note**: prior to version 17.0, this property was `Dynamsoft.WebTwainEnv.ProductKey`) The configuration differs depending on how a project loads DWT resource files (see [loading library resources]({{site.general-usage}}resource-loading.html) for more details). +To use a full license key, set the value of [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey) to the key string. (**Note**: prior to version 17.0, this property was `Dynamsoft.WebTwainEnv.ProductKey`) The configuration differs depending on how a project loads DWT resource files (see [loading library resources](/_articles/general-usage/resource-loading.md) for more details).
@@ -94,7 +93,7 @@ To use a full license key, set the value of [`Dynamsoft.DWT.ProductKey`]({{site. 1. Locate the `dynamsoft.webtwain.config.js` file (or search for `ProductKey`). -2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey): +2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey): ```javascript Dynamsoft.DWT.ProductKey = 'DLS******'; // Use an online key @@ -108,7 +107,7 @@ To use a full license key, set the value of [`Dynamsoft.DWT.ProductKey`]({{site. 1. Locate the `dynamsoft.webtwain.config.js` file (or search for `ProductKey`). -2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey): +2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey): ```javascript Dynamsoft.DWT.ProductKey = 'f0068******;'; // Use an online key @@ -124,7 +123,7 @@ Offline license keys with add-ons should be concatenated (in any order) into a s 1. Locate the `dynamsoft.webtwain.config.js` file (or search for `ProductKey`). -2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey): +2. Assign the license key string to [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey): ```javascript Dynamsoft.DWT.ProductKey = 'f0068******;f0068******'; // Use an online key @@ -136,11 +135,11 @@ Offline license keys with add-ons should be concatenated (in any order) into a s
-When using package managers such as `npm`, be sure to check out our web framework samples. Roughly speaking, it involves setting `Dynamsoft.DWT.ProductKey` before calling either [`Dynamsoft.DWT.Load()`]({{site.api}}Dynamsoft_WebTwainEnv.html#load) or [`Dynamsoft.DWT.CreateDWTObjectEx()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobjectex): +When using package managers such as `npm`, be sure to check out our web framework samples. Roughly speaking, it involves setting `Dynamsoft.DWT.ProductKey` before calling either [`Dynamsoft.DWT.Load()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#load) or [`Dynamsoft.DWT.CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex): -- [Use Web TWAIN in Angular]({{site.indepth}}development/angular.html) -- [Use Web TWAIN in React]({{site.indepth}}development/react.html) -- [Use Web TWAIN in Vue]({{site.indepth}}development/vue.html) +- [Use Web TWAIN in Angular](/_articles/indepth/development/angular.md) +- [Use Web TWAIN in React](/_articles/indepth/development/react.md) +- [Use Web TWAIN in Vue](/_articles/indepth/development/vue.md)
diff --git a/articles/general-usage/resource-loading.md b/_articles/general-usage/resource-loading.md similarity index 78% rename from articles/general-usage/resource-loading.md rename to _articles/general-usage/resource-loading.md index c93e49e4..30f6dd05 100644 --- a/articles/general-usage/resource-loading.md +++ b/_articles/general-usage/resource-loading.md @@ -5,16 +5,15 @@ title: Dynamic Web TWAIN SDK Basics - Loading Library Resources keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, initializing DWT breadcrumbText: Loading Library Resources description: Dynamic Web TWAIN SDK General Usage Guide - Loading Library Resources -permalink: /general-usage/resource-loading.html --- # Loading Library Resources -Before using the **Dynamic Web TWAIN SDK** (DWT), the web application must first load its resource files. These resource files may be gathered from three locations, with slightly different characteristics. DWT provides **core resources** (i.e. core functionality) that load directly into the web application. This in turn loads **supporting resources**, which include add-ons, css, and more - read about them in detail [here]({{site.faq}}what-are-the-resources-files.html). +Before using the **Dynamic Web TWAIN SDK** (DWT), the web application must first load its resource files. These resource files may be gathered from three locations, with slightly different characteristics. DWT provides **core resources** (i.e. core functionality) that load directly into the web application. This in turn loads **supporting resources**, which include add-ons, css, and more - read about them in detail [here](/_articles/faq/what-are-the-resources-files.md). ## Note on File Size -The installers for the [Dynamic Web TWAIN Service]({{site.extended-usage}}dynamsoft-service-configuration.html) are numerous and take up a lot of disk space. We may save disk space by removing unused installers for unused platforms/architectures if called for, whether for deployment or for development environments. +The installers for the [Dynamic Web TWAIN Service](/_articles/extended-usage/dynamsoft-service-configuration.md) are numerous and take up a lot of disk space. We may save disk space by removing unused installers for unused platforms/architectures if called for, whether for deployment or for development environments. The official SDK installers store the installers under the `/dist` directory, and the package managers/CDNs keep them under `/dist/dist`. For example, if the web application does not support end users on Linux-based platforms, we may elect to remove `DynamicWebTWAINServiceSetup.deb`, `DynamicWebTWAINServiceSetup.rpm`, etc. @@ -41,7 +40,7 @@ In which case they load like so: ``` -This method organizes the resources a little differently compared to the files from the CDNs and the package managers. Here, the **core resources** are loaded using two JavaScript files, which do not contain add-ons. These two files load other **supporting resource files** in turn (such as add-on resource files, css, and more - read about them in detail [here]({{site.faq}}what-are-the-resources-files.html)) found in the SDK directories. Here is a quick introduction to the core resource files: +This method organizes the resources a little differently compared to the files from the CDNs and the package managers. Here, the **core resources** are loaded using two JavaScript files, which do not contain add-ons. These two files load other **supporting resource files** in turn (such as add-on resource files, css, and more - read about them in detail [here](/_articles/faq/what-are-the-resources-files.md)) found in the SDK directories. Here is a quick introduction to the core resource files: - `dynamsoft.webtwain.initiate.js` - This file contains the core DWT JavaScript library. @@ -52,9 +51,9 @@ Though these core resource files do not contain add-ons, we may load add-on reso ## Loading from CDN -The most straight-forward method of loading resources is to fetch them from CDNs. (Both CDNs provide identical files) DWT resource files are hosted on [jsDelivr](https://jsdelivr.com/) and [UNPKG](https://unpkg.com/). Unlike our official SDK package, the CDNs require the user to supply a license key. See our [licensing page]({{site.general-usage}}license.html) for more details, and request a trial license [here](https://www.dynamsoft.com/customer/license/trialLicense/?product=dwt). +The most straight-forward method of loading resources is to fetch them from CDNs. (Both CDNs provide identical files) DWT resource files are hosted on [jsDelivr](https://jsdelivr.com/) and [UNPKG](https://unpkg.com/). Unlike our official SDK package, the CDNs require the user to supply a license key. See our [licensing page](/_articles/general-usage/license.md) for more details, and request a trial license [here](https://www.dynamsoft.com/customer/license/trialLicense/?product=dwt). -The resources obtained from the package managers differ slightly from the ones found in the official SDK package, in that it has the property `Dynamsoft.DWT.AutoLoad = false`, whereas it is `true` in the official SDK package. This property controls initialization behavior; read our [initialization guide]({{site.extended-usage}}advanced-initialization.html) to learn more. +The resources obtained from the package managers differ slightly from the ones found in the official SDK package, in that it has the property `Dynamsoft.DWT.AutoLoad = false`, whereas it is `true` in the official SDK package. This property controls initialization behavior; read our [initialization guide](/_articles/extended-usage/advanced-initialization.md) to learn more. Simply create a `script` element like so: @@ -78,12 +77,12 @@ Simply create a `script` element like so: APIs used: -- [`Dynamsoft.DWT.ResourcesPath`]({{site.api}}Dynamsoft_WebTwainEnv.html#resourcespath) -- [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey) +- [`Dynamsoft.DWT.ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath) +- [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey) ### Loading from [jsDelivr](https://cdn.jsdelivr.net/npm/dwt@latest/dist/dynamsoft.webtwain.min.js) -Note that jsDelivr currently has problems delivering the Dynamic Web TWAIN Service installer (`https://cdn.jsdelivr.net/npm/dwt@latest/dist/dist/`) 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 that jsDelivr currently has problems delivering the Dynamic Web TWAIN Service installer (`https://cdn.jsdelivr.net/npm/dwt@latest/dist/dist/`) 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). ```html @@ -103,8 +102,8 @@ Note that jsDelivr currently has problems delivering the Dynamic Web TWAIN Servi APIs used: -- [`Dynamsoft.DWT.ResourcesPath`]({{site.api}}Dynamsoft_WebTwainEnv.html#resourcespath) -- [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey) +- [`Dynamsoft.DWT.ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath) +- [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey) ### Explanation @@ -112,7 +111,7 @@ APIs used: ## Loading from Package Managers -The resources obtained from the package managers differ slightly from the ones found in the official SDK package, in that it has the property `Dynamsoft.DWT.AutoLoad = false`, whereas it is `true` in the official SDK package. This property controls initialization behavior; read our [initialization guide]({{site.extended-usage}}advanced-initialization.html) to learn more. Just like the CDNs, the package managers require the users to supply a license key. See our [licensing page]({{site.general-usage}}license.html) for more details, and request a trial license [here](https://www.dynamsoft.com/customer/license/trialLicense/?product=dwt). +The resources obtained from the package managers differ slightly from the ones found in the official SDK package, in that it has the property `Dynamsoft.DWT.AutoLoad = false`, whereas it is `true` in the official SDK package. This property controls initialization behavior; read our [initialization guide](/_articles/extended-usage/advanced-initialization.md) to learn more. Just like the CDNs, the package managers require the users to supply a license key. See our [licensing page](/_articles/general-usage/license.md) for more details, and request a trial license [here](https://www.dynamsoft.com/customer/license/trialLicense/?product=dwt). The DWT package is hosted on both `npm` and `yarn` (both packages are identical), and the installation commands are as follows: @@ -136,8 +135,8 @@ Dynamsoft.DWT.ProductKey = "your-product-key"; APIs used: -- [`Dynamsoft.DWT.ResourcesPath`]({{site.api}}Dynamsoft_WebTwainEnv.html#resourcespath) -- [`Dynamsoft.DWT.ProductKey`]({{site.api}}Dynamsoft_WebTwainEnv.html#productkey) +- [`Dynamsoft.DWT.ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath) +- [`Dynamsoft.DWT.ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey) ### Official Sample Check out the following sample project: diff --git a/articles/general-usage/scanner-image-acquisition.md b/_articles/general-usage/scanner-image-acquisition.md similarity index 75% rename from articles/general-usage/scanner-image-acquisition.md rename to _articles/general-usage/scanner-image-acquisition.md index 024fccc3..2f6babaf 100644 --- a/articles/general-usage/scanner-image-acquisition.md +++ b/_articles/general-usage/scanner-image-acquisition.md @@ -5,16 +5,15 @@ title: Dynamic Web TWAIN SDK Basics - Acquiring Images from Scanners keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, importing images, image import, imaging devices, selecting imaging devices, scanners, scanning, image acquisition breadcrumbText: Acquiring Images from Scanners description: Dynamic Web TWAIN SDK General Usage Guide - Acquiring Images from Scanners -permalink: /general-usage/scanner-image-acquisition.html --- # Acquiring Images from Scanners -> Prerequisite: [DWT Initialization]({{site.general-usage}}initialization.html) +> Prerequisite: [DWT Initialization](/_articles/general-usage/initialization.md) -DWT can import images in a few different ways, the most common which is to acquire images from image sources, which are scanners and other imaging hardware. (We can also load image files, both from the local file system and over the network, as explained [here]({{site.general-usage}}image-import/file-import.html)) +DWT can import images in a few different ways, the most common which is to acquire images from image sources, which are scanners and other imaging hardware. (We can also load image files, both from the local file system and over the network, as explained [here](/_articles/extended-usage/file-import.md)) -After the web application has initialized DWT and instantiated a `WebTwain` object, the `WebTwain` object can perform image acquisition, which is a term that includes scanning and file input. We will first go over scanning in this section. Note that we also provide an add-on for webcam-based scanning, which you can learn more about [here]({{site.api}}Addon_Webcam.html). +After the web application has initialized DWT and instantiated a `WebTwain` object, the `WebTwain` object can perform image acquisition, which is a term that includes scanning and file input. We will first go over scanning in this section. Note that we also provide an add-on for webcam-based scanning, which you can learn more about [here](/_articles/info/api/Addon_Webcam.md). ## Acquisition from All Available Scanners @@ -60,12 +59,12 @@ Here, we present a web application with full image scanning capabilities. The us APIs used: -- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent) -- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready) -- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain) -- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) +- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent) +- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready) +- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain) +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) ### Explanation @@ -79,11 +78,11 @@ Upon calling the `AcquireImage()` function through the button click, `SelectSour Next up, calling `SelectSourceAsync()` on the `WebTwain` instance initiates image acquisition from the previously opened data source. This step opens up the data source UI, which is specific to the selected data source. Once the user selects scan options and confirms the scan, the data source UI closes, and DWT sends the scan command. Once the `WebTwain` instance acquires the image, the instance's `Viewer` component displays the image on the web page. -Finally, `AcquireImageAsync()` closes the data source after completing the scan, because we passed it a [`DeviceConfiguration`]({{site.api}}Interfaces.html#DeviceConfiguration) argument, where we set `IfCloseSourceAfterAcquire` to `true`. +Finally, `AcquireImageAsync()` closes the data source after completing the scan, because we passed it a [`DeviceConfiguration`](/_articles/info/api/interfaces.md#DeviceConfiguration) argument, where we set `IfCloseSourceAfterAcquire` to `true`. ## Specifying Scanner Protocol -`SelectSourceAsync()` can take an [`EnumDWT_DeviceType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_devicetype) argument to specify data sources using particular scanning protocols, and show only those data sources in the source selection UI. This may be useful in an internal use scenario where there is knowledge about the scanner hardware being used with DWT. For example, to show only eSCL data sources, we use the `Dynamsoft.DWT.EnumDWT_DeviceType.ESCLSCANNER` enum like so: +`SelectSourceAsync()` can take an [`EnumDWT_DeviceType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_devicetype) argument to specify data sources using particular scanning protocols, and show only those data sources in the source selection UI. This may be useful in an internal use scenario where there is knowledge about the scanner hardware being used with DWT. For example, to show only eSCL data sources, we use the `Dynamsoft.DWT.EnumDWT_DeviceType.ESCLSCANNER` enum like so: ```javascript function AcquireImage() { @@ -103,10 +102,10 @@ function AcquireImage() { ## Specifying Scanning Options -Many use cases require a pre-specified set of scanning options (such as, but not limited to color mode and resolution) to be applied on the scan. We can pass these arguments to the image source using the [`DeviceConfiguration`]({{site.api}}Interfaces.html#DeviceConfiguration) passed to `AcquireImageAsync()`. For example, these object properties specify the following: +Many use cases require a pre-specified set of scanning options (such as, but not limited to color mode and resolution) to be applied on the scan. We can pass these arguments to the image source using the [`DeviceConfiguration`](/_articles/info/api/interfaces.md#DeviceConfiguration) passed to `AcquireImageAsync()`. For example, these object properties specify the following: - `IfShowUI: false` turns off the **image source UI** (the second menu) to prevent the user from overriding the scan configuration. -- `PixelType: Dynamsoft.DWT.EnumDWT_PixelType.TWPT_BW` sets the color mode to binary (black and white) using the [`Dynamsoft.DWT.EnumDWT_PixelType`]({{site.api}}/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pixeltype) enum. +- `PixelType: Dynamsoft.DWT.EnumDWT_PixelType.TWPT_BW` sets the color mode to binary (black and white) using the [`Dynamsoft.DWT.EnumDWT_PixelType`](/_articles/info/api//Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pixeltype) enum. - `Resolution: 200` sets the image resolution to 200 DPI. Modifying the previous `AcquireImage()` function results in this: @@ -134,4 +133,4 @@ These parameters will configure the scan using pre-set values, and also prevent ## Further Reading -We demonstrated how to use APIs to scan documents from a web application, along with some simple customizations. For more extensive customizations, read more in our [advanced guides]({{site.extended-usage}}index.html). You can also consult our [FAQ]({{site.faq}}index.html) for better product knowledge and troubleshooting. +We demonstrated how to use APIs to scan documents from a web application, along with some simple customizations. For more extensive customizations, read more in our [advanced guides](/_articles/extended-usage/index.md). You can also consult our [FAQ](/_articles/faq/index.md) for better product knowledge and troubleshooting. diff --git a/articles/general-usage/server-deployment.md b/_articles/general-usage/server-deployment.md similarity index 78% rename from articles/general-usage/server-deployment.md rename to _articles/general-usage/server-deployment.md index fac0994e..8ffb8451 100644 --- a/articles/general-usage/server-deployment.md +++ b/_articles/general-usage/server-deployment.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Deployment - Server Deployment keywords: Dynamic Web TWAIN, Documentation, Deployment, Server breadcrumbText: Server Deployment description: Dynamic Web TWAIN SDK Documentation Server Deployment Page -permalink: /general-usage/server-deployment.html --- # Deploy your application on the server @@ -25,7 +24,7 @@ The deployment of Dynamic Web TWAIN is easy. Simply copy the Resources folder to ### Make sure the static files can be served correctly -`Dynamic Web TWAIN` comes with lots of static resources files, for the full list, check out [What are the Resources files]({{site.faq}}what-are-the-resources-files.html). The following table shows each file type and its MIME type which must be configured in your webserver in order for that type of file(s) to be correctly served to the client browsers. +`Dynamic Web TWAIN` comes with lots of static resources files, for the full list, check out [What are the Resources files](/_articles/faq/what-are-the-resources-files.md). The following table shows each file type and its MIME type which must be configured in your webserver in order for that type of file(s) to be correctly served to the client browsers. | File Type | MIME Type | Required by | |:-:|:-:|:-:| @@ -48,7 +47,7 @@ For how to enable HTTPS, please check out the manual of your webserver. ### Set ResourcesPath -The global API [ `Dynamsoft.DWT.ResourcesPath` ]({{site.info}}api/Dynamsoft_WebTwainEnv.html#resourcespath) sets a relative or absolute path that tells `Dynamic Web TWAIN` where to look for the resources files at runtime. Its default value is `Resources` which means all these files are put in a directory called *Resources* that is in the same location as the web page on which `Dynamic Web TWAIN` is running. This is the simplest situation possible. However, in most cases, it's a lot more complicated and you must make sure the correct value is set. +The global API [ `Dynamsoft.DWT.ResourcesPath` ](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath) sets a relative or absolute path that tells `Dynamic Web TWAIN` where to look for the resources files at runtime. Its default value is `Resources` which means all these files are put in a directory called *Resources* that is in the same location as the web page on which `Dynamic Web TWAIN` is running. This is the simplest situation possible. However, in most cases, it's a lot more complicated and you must make sure the correct value is set. #### How to know ResourcesPath is wrong @@ -65,7 +64,7 @@ If you wish to use an absolute path to include the library, this is supported. #### Change ResourcePath using a relative path -If you do not wish to use an absolute path, you can [change the reference path]({{site.faq}}change-reference-path.html) to a relative path. +If you do not wish to use an absolute path, you can [change the reference path](/_articles/faq/change-reference-path.md) to a relative path. ```javascript Dynamsoft.DWT.ResourcesPath = "New folder/Resources"; diff --git a/articles/general-usage/server-side-scripting.md b/_articles/general-usage/server-side-scripting.md similarity index 97% rename from articles/general-usage/server-side-scripting.md rename to _articles/general-usage/server-side-scripting.md index dcf1aa6e..ed7b905c 100644 --- a/articles/general-usage/server-side-scripting.md +++ b/_articles/general-usage/server-side-scripting.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Development - Server Scripts keywords: Dynamic Web TWAIN, Documentation, Development, Server Scripts breadcrumbText: Server Scripts description: Dynamic Web TWAIN SDK Documentation Server Scripts Page -permalink: /general-usage/server-side-scripting.html --- # Server-side Scripting @@ -14,9 +13,9 @@ permalink: /general-usage/server-side-scripting.html ## How to process uploaded files -As mentioned in our [image upload guide]({{site.general-usage}}image-export/server-upload.html), `Dynamic Web TWAIN` sends an HTTP POST request to the server when doing an upload. The file in the POST Form has the name `RemoteFile` by default. If you wish to change that, you can use [ `HttpFieldNameOfUploadedImage` ]({{site.info}}api/WebTwain_IO.html#httpfieldnameofuploadedimage). +As mentioned in our [image upload guide](/_articles/general-usage/image-export/server-upload.md), `Dynamic Web TWAIN` sends an HTTP POST request to the server when doing an upload. The file in the POST Form has the name `RemoteFile` by default. If you wish to change that, you can use [ `HttpFieldNameOfUploadedImage` ](/_articles/info/api/WebTwain_IO.md#httpfieldnameofuploadedimage). -The following assumes the default `RemoteFile` is used and that [extra Form fields]({{site.indepth}}features/output.html#can-i-change-the-fields-of-the-http-form) might accompany the file. +The following assumes the default `RemoteFile` is used and that [extra Form fields](/_articles/general-usage/image-export/index.md#can-i-change-the-fields-of-the-http-form) might accompany the file. ### Upload via CSharp @@ -644,7 +643,7 @@ data.Dispose(); ## Download a file -The following scripts are used for [downloading from a URL which points to a server-side script]({{site.indepth}}features/input.html#the-url-points-to-a-server-side-script) +The following scripts are used for [downloading from a URL which points to a server-side script](/_articles/general-usage/scanner-image-acquisition.md#the-url-points-to-a-server-side-script) ### Download via CSharp diff --git a/articles/general-usage/viewer-configuration.md b/_articles/general-usage/viewer-configuration.md similarity index 60% rename from articles/general-usage/viewer-configuration.md rename to _articles/general-usage/viewer-configuration.md index 8dd36f60..29a8877a 100644 --- a/articles/general-usage/viewer-configuration.md +++ b/_articles/general-usage/viewer-configuration.md @@ -5,12 +5,11 @@ title: Dynamic Web TWAIN SDK Basics - Customizing the Viewer keywords: Dynamic Web TWAIN, Documentation, development, guide, development guide, basic, basic guide, viewer configuration, UI breadcrumbText: DWT Viewer Configuration description: Dynamic Web TWAIN SDK General Usage Guide - Customizing the Viewer -permalink: /general-usage/viewer-configuration.html --- # Configuring the Viewer -> Prerequisite: [DWT Initialization]({{site.general-usage}}initialization.html) +> Prerequisite: [DWT Initialization](/_articles/general-usage/initialization.md) The `Viewer` component of the `WebTwain` instance is responsible for displaying scanned documents, and all other UI features. This guide explains how to configure `Viewer` behavior. @@ -18,7 +17,7 @@ The `Viewer` component of the `WebTwain` instance is responsible for displaying ### Configuring Built-in Viewers -The default `WebTwain` instance automatically creates its own `Viewer` instance with default settings - the `Viewer` is bound to the HTML `
` element with `id=dwtcontrolContainer` and specified display size, which are defined by the `Dynamsoft.DWT.Containers`. We go over this process in detail in the [DWT Initialization]({{site.general-usage}}initialization.html) article. We can configure the `Viewer`'s `id` and display size by altering the configuration resource file `dynamsoft.webtwain.config.js`. Modify the existing `Dynamsoft.DWT.Containers` property as shown below: +The default `WebTwain` instance automatically creates its own `Viewer` instance with default settings - the `Viewer` is bound to the HTML `
` element with `id=dwtcontrolContainer` and specified display size, which are defined by the `Dynamsoft.DWT.Containers`. We go over this process in detail in the [DWT Initialization](/_articles/general-usage/initialization.md) article. We can configure the `Viewer`'s `id` and display size by altering the configuration resource file `dynamsoft.webtwain.config.js`. Modify the existing `Dynamsoft.DWT.Containers` property as shown below: #### Sample Code @@ -74,17 +73,17 @@ Dynamsoft.DWT.Containers = [{ APIs used: -- [`Dynamsoft.DWT.Containers`]({{site.api}}Dynamsoft_WebTwainEnv.html#containers) -- [`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) -- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) +- [`Dynamsoft.DWT.Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) +- [`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) +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) #### Explanation -In the DWT configuration resource file, we changed the `
` container ID to `customDivID`, and set new dimensions for the default `Viewer` using the [`Dynamsoft.DWT.Containers`]({{site.api}}Dynamsoft_WebTwainEnv.html#containers) property. (which contains [Containers]({{site.api}}Interfaces.html#Container)) During DWT initialization, not only does the `containerId` bind the default `Viewer`, it also acts as an identifier for the default `WebTwain` instance. Consequently, we must use `customDivID` with [`Dynamsoft.DWT.GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain) to get the default `WebTwain` instance once it has been created. +In the DWT configuration resource file, we changed the `
` container ID to `customDivID`, and set new dimensions for the default `Viewer` using the [`Dynamsoft.DWT.Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) property. (which contains [Containers](/_articles/info/api/interfaces.md#Container)) During DWT initialization, not only does the `containerId` bind the default `Viewer`, it also acts as an identifier for the default `WebTwain` instance. Consequently, we must use `customDivID` with [`Dynamsoft.DWT.GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain) to get the default `WebTwain` instance once it has been created. ### Binding a `Viewer` to a `WebTwain` Instance @@ -155,26 +154,26 @@ Dynamsoft.DWT.AutoLoad = false; APIs used: -- [`Dynamsoft.DWT.Containers`]({{site.api}}Dynamsoft_WebTwainEnv.html#containers) -- [`Dynamsoft.DWT.CreateDWTObjectEx()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobjectex) -- [`DWTInitialConfig`]({{site.api}}Interfaces.html#dwtinitialconfig) -- [`Viewer.bind()`]({{site.api}}WebTwain_Viewer.html#bind) -- [`Viewer.createThumbnailViewer()`]({{site.api}}WebTwain_Viewer.html#createthumbnailviewer) -- [`Viewer.show()`]({{site.api}}WebTwain_Viewer.html#show) -- [`ThumbnailViewer`]({{site.api}}Interfaces.html#thumbnailviewer) -- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) +- [`Dynamsoft.DWT.Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) +- [`Dynamsoft.DWT.CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex) +- [`DWTInitialConfig`](/_articles/info/api/interfaces.md#dwtinitialconfig) +- [`Viewer.bind()`](/_articles/info/api/WebTwain_Viewer.md#bind) +- [`Viewer.createThumbnailViewer()`](/_articles/info/api/WebTwain_Viewer.md#createthumbnailviewer) +- [`Viewer.show()`](/_articles/info/api/WebTwain_Viewer.md#show) +- [`ThumbnailViewer`](/_articles/info/api/interfaces.md#thumbnailviewer) +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) #### Explanation -To demonstrate `Viewer` binding, we first create a `Viewer`-less (headless) `WebTwain` instance. We must first prevent DWT from creating a default-configured `WebTwain` instance (auto-loading) during its initialization stage, as this instance comes with a `Viewer`. We can clear [`Dynamsoft.DWT.Containers`]({{site.api}}Dynamsoft_WebTwainEnv.html#containers) and set [`Dynamsoft.DWT.AutoLoad`]({{site.api}}Dynamsoft_WebTwainEnv.html#autoload) `false` in the configuration `dynamsoft.webtwain.config.js` resource file to prevent auto-loading. +To demonstrate `Viewer` binding, we first create a `Viewer`-less (headless) `WebTwain` instance. We must first prevent DWT from creating a default-configured `WebTwain` instance (auto-loading) during its initialization stage, as this instance comes with a `Viewer`. We can clear [`Dynamsoft.DWT.Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) and set [`Dynamsoft.DWT.AutoLoad`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#autoload) `false` in the configuration `dynamsoft.webtwain.config.js` resource file to prevent auto-loading. -We then use [`CreateDWTObjectEx()`]({{site.api}}Dynamsoft_WebTwainEnv.html#createdwtobjectex) to create the desired custom `WebTwain` instance without a `Viewer`. In the success callback of `CreateDWTObjectEx()`, we then customize its features, namely its `Viewer` and `ThumbnailViewer`. This is the key point of this sample. +We then use [`CreateDWTObjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex) to create the desired custom `WebTwain` instance without a `Viewer`. In the success callback of `CreateDWTObjectEx()`, we then customize its features, namely its `Viewer` and `ThumbnailViewer`. This is the key point of this sample. -[`bind()`]({{site.api}}WebTwain_Viewer.html#bind) simultaneously creates the `Viewer` instance, binds it to the `WebTwain` instance that it was called from, and also binds it to the HTML container by container `id`. This `Viewer` instance is then accessible using the `Viewer` property from the `WebTwain` instance. For example, `DWTObject.Viewer.height` is the height of the `Viewer`. +[`bind()`](/_articles/info/api/WebTwain_Viewer.md#bind) simultaneously creates the `Viewer` instance, binds it to the `WebTwain` instance that it was called from, and also binds it to the HTML container by container `id`. This `Viewer` instance is then accessible using the `Viewer` property from the `WebTwain` instance. For example, `DWTObject.Viewer.height` is the height of the `Viewer`. -Likewise, **after** the `Viewer` has been instantiated and bound, we can create a thumbnail viewer in the `Viewer` by accessing the [`createThumbnailViewer()`]({{site.api}}WebTwain_Viewer.html#createthumbnailviewer) function provided within the `Viewer` instance. Finally, we display both the `Viewer` and `ThumbnailViewer` on screen with their respective `show()` APIs. +Likewise, **after** the `Viewer` has been instantiated and bound, we can create a thumbnail viewer in the `Viewer` by accessing the [`createThumbnailViewer()`](/_articles/info/api/WebTwain_Viewer.md#createthumbnailviewer) function provided within the `Viewer` instance. Finally, we display both the `Viewer` and `ThumbnailViewer` on screen with their respective `show()` APIs. > Note: The `Viewer` is always bound to a `WebTwain` instance. As such, the `Viewer` and its properties must always be accessed as a property of a `WebTwain` instance. @@ -182,16 +181,16 @@ Likewise, **after** the `Viewer` has been instantiated and bound, we can create Users can interact with the `Viewer` graphically to work with scanned documents. These interactions also have APIs which can be called directly. Here is a non-exhaustive list of commonly used interactive features, along with their associated APIs (accessed from its parent `WebTwain` instance): -- [`Viewer.next()`]({{site.api}}WebTwain_Viewer.html#next): Display the page after the current one -- [`Viewer.previous()`]({{site.api}}WebTwain_Viewer.html#previous): Display the page before the current one -- [`Viewer.first()`]({{site.api}}WebTwain_Viewer.html#first): Display the first page -- [`Viewer.last()`]({{site.api}}WebTwain_Viewer.html#last): Display the last page -- [`Viewer.goToPage()`]({{site.api}}WebTwain_Viewer.html#last): Display the n-th page -- [`Viewer.setViewMode()`]({{site.api}}WebTwain_Viewer.html#setviewmode): Specify the dimensions of the grid of images to display at once -- [`Viewer.fitWindow()`]({{site.api}}WebTwain_Viewer.html#fitWindow): Fit the image to the `Viewer` -- [`Viewer.zoom`]({{site.api}}WebTwain_Viewer.html#zoom): Set the image display magnification factor, only when `setViewMode` is -1 x -1 -- [`Viewer.setSelectedAreas()`]({{site.api}}WebTwain_Viewer.html#setselectedareas): Select a rectangular region on the displayed page -- [`Viewer.unbind()`]({{site.api}}WebTwain_Viewer.html#unbind): Unbind and delete the `Viewer` +- [`Viewer.next()`](/_articles/info/api/WebTwain_Viewer.md#next): Display the page after the current one +- [`Viewer.previous()`](/_articles/info/api/WebTwain_Viewer.md#previous): Display the page before the current one +- [`Viewer.first()`](/_articles/info/api/WebTwain_Viewer.md#first): Display the first page +- [`Viewer.last()`](/_articles/info/api/WebTwain_Viewer.md#last): Display the last page +- [`Viewer.goToPage()`](/_articles/info/api/WebTwain_Viewer.md#last): Display the n-th page +- [`Viewer.setViewMode()`](/_articles/info/api/WebTwain_Viewer.md#setviewmode): Specify the dimensions of the grid of images to display at once +- [`Viewer.fitWindow()`](/_articles/info/api/WebTwain_Viewer.md#fitWindow): Fit the image to the `Viewer` +- [`Viewer.zoom`](/_articles/info/api/WebTwain_Viewer.md#zoom): Set the image display magnification factor, only when `setViewMode` is -1 x -1 +- [`Viewer.setSelectedAreas()`](/_articles/info/api/WebTwain_Viewer.md#setselectedareas): Select a rectangular region on the displayed page +- [`Viewer.unbind()`](/_articles/info/api/WebTwain_Viewer.md#unbind): Unbind and delete the `Viewer` Here is a rudimentary sample that demonstrates page movement APIs: @@ -254,12 +253,12 @@ Here is a rudimentary sample that demonstrates page movement APIs: APIs used: -- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent) -- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready) -- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain) -- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) -- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) \ No newline at end of file +- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent) +- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready) +- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain) +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) \ No newline at end of file diff --git a/_articles/getstarted/index.md b/_articles/getstarted/index.md new file mode 100644 index 00000000..7965dfea --- /dev/null +++ b/_articles/getstarted/index.md @@ -0,0 +1,21 @@ +--- +layout: default-layout +needAutoGenerateSidebar: true +title: Dynamic Web TWAIN SDK GetStarted +keywords: Dynamic Web TWAIN, Documentation, GetStarted +breadcrumbText: GetStarted +description: Dynamic Web TWAIN SDK Documentation GetStarted Page +ignore: true +#--- + +# Getting Started + +- [Hello World tutorial]({{site.getstarted}}Helloworld.html): follow this tutorial to create your first web-based document scanning application +- [Deploy to your server](/_articles/general-usage/server-deployment.md): how to deploy Dynamic Web TWAIN to server +- [Set up the service](/_articles/extended-usage/dynamsoft-service-configuration.md): how to set up Dynamic Web TWAIN Service if needed +- Use Web TWAIN in a framework + - [Use Web TWAIN in Angular](/_articles/indepth/development/angular.md) + - [Use Web TWAIN in React](/_articles/indepth/development/react.md) + - [Use Web TWAIN in Vue](/_articles/indepth/development/vue.md) +- [How to upgrade](/_articles/indepth/development/upgrade.md): how to upgrade to a newer version + diff --git a/getstarted/initialize.md b/_articles/getstarted/initialize.md similarity index 88% rename from getstarted/initialize.md rename to _articles/getstarted/initialize.md index 67da28c1..92f6e7f1 100644 --- a/getstarted/initialize.md +++ b/_articles/getstarted/initialize.md @@ -5,8 +5,7 @@ title: Dynamic Web TWAIN SDK HelloWorld - Initialization keywords: Dynamic Web TWAIN, Documentation, Hello World, script, import breadcrumbText: Hello World description: Dynamic Web TWAIN SDK HelloWorld - Initialization -#permalink: /getstarted/initialize.html ---- +#--- # Initializing the Environment @@ -59,12 +58,12 @@ function Dynamsoft_OnReady() { Link to API Reference: -- [`Dynamsoft.DWT.GetWebTwain()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#getwebtwain){:target="_blank" rel="noreferrer noopener"} - +- [`Dynamsoft.DWT.GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain){:target="_blank" rel="noreferrer noopener"} + +DWT's default behaviour is to initalizae the DWT environment as soon as the application has loaded the DWT scripts. Once the scripts have been completely loaded, `OnWebTwainReady` is automatically fired and will look for `Dynamsoft_OnReady()`. For more information please see the API description for the [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready){:target="_blank" rel="noreferrer noopener"}. --> ### Review the Code diff --git a/articles/hello-world/editing.md b/_articles/hello-world/editing.md similarity index 73% rename from articles/hello-world/editing.md rename to _articles/hello-world/editing.md index 519cb24e..efa75b6a 100644 --- a/articles/hello-world/editing.md +++ b/_articles/hello-world/editing.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK HelloWorld - Editing Images keywords: Dynamic Web TWAIN, Documentation, Hello World, editing, helloworld breadcrumbText: Uploading documents description: Dynamic Web TWAIN SDK HelloWorld - Editing Images -permalink: /hello-world/editing.html --- # Editing Images @@ -17,7 +16,7 @@ permalink: /hello-world/editing.html DWT offers a number of image manipulation features used after image acquisition and before uploading or exporting. These include but are not limited to rotation, cropping, and resizing. In this example, we will demonstrate image color mode conversion and image rotation in HelloWorld. > Prerequisites: Hello World - Specifying Scan Settings - + ## Add Image Binarization @@ -41,8 +40,8 @@ function binarizeImage() { APIs used: -- [`ConvertToBW()`]({{site.info}}api/WebTwain_Edit.html#convertToBW){:target="\_blank" rel="noreferrer noopener"} -- [`CurrentImageIndexInBuffer`]({{site.info}}api/WebTwain_Buffer.html#currentimageindexinbuffer){:target="\_blank" rel="noreferrer noopener"} +- [`ConvertToBW()`](/_articles/info/api/WebTwain_Edit.md#convertToBW){:target="\_blank" rel="noreferrer noopener"} +- [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer){:target="\_blank" rel="noreferrer noopener"} ## Add Image Rotation @@ -66,9 +65,9 @@ function rotateCCW() { APIs used: -- [`RotateRight()`]({{site.info}}api/WebTwain_Edit.html#rotateright){:target="\_blank" rel="noreferrer noopener"} -- [`RotateLeft()`]({{site.info}}api/WebTwain_Edit.html#rotateleft){:target="\_blank" rel="noreferrer noopener"} -- [`CurrentImageIndexInBuffer`]({{site.info}}api/WebTwain_Buffer.html#currentimageindexinbuffer){:target="\_blank" rel="noreferrer noopener"} +- [`RotateRight()`](/_articles/info/api/WebTwain_Edit.md#rotateright){:target="\_blank" rel="noreferrer noopener"} +- [`RotateLeft()`](/_articles/info/api/WebTwain_Edit.md#rotateleft){:target="\_blank" rel="noreferrer noopener"} +- [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer){:target="\_blank" rel="noreferrer noopener"} ## Review the Code @@ -164,17 +163,17 @@ APIs used: +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync){:target="_blank" rel="noreferrer noopener"} +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync){:target="_blank" rel="noreferrer noopener"} +- [`IfShowUI`](/_articles/info/api/WebTwain_Acquire.md#ifshowui){:target="_blank" rel="noreferrer noopener"} +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage){:target="_blank" rel="noreferrer noopener"} +- [`PixelType`](/_articles/info/api/WebTwain_Acquire.md#pixeltype){:target="_blank" rel="noreferrer noopener"} +- [`Resolution`](/_articles/info/api/WebTwain_Acquire.md#resolution){:target="_blank" rel="noreferrer noopener"} +- [`CloseSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#closesourceasync){:target="_blank" rel="noreferrer noopener"} +- [`ConvertToBW()`](/_articles/info/api/WebTwain_Edit.md#converttobw){:target="_blank" rel="noreferrer noopener"} +- [`RotateRight()`](/_articles/info/api/WebTwain_Edit.md#rotateright){:target="_blank" rel="noreferrer noopener"} +- [`RotateLeft()`](/_articles/info/api/WebTwain_Edit.md#rotateleft){:target="_blank" rel="noreferrer noopener"} +- [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer){:target="_blank" rel="noreferrer noopener"} --> ## Run the Application @@ -212,13 +211,13 @@ If you would like to review any of the previous steps, you can review: -- [Scanning an image]({{site.hello-world}}scanning.html) -- [Uploading images to the server]({{site.hello-world}}uploading.html) -- [Setting scan parameters]({{site.hello-world}}scan-settings.html) +- [Scanning an image](/_articles/hello-world/scanning.md) +- [Uploading images to the server](/_articles/hello-world/uploading.md) +- [Setting scan parameters](/_articles/hello-world/scan-settings.md) # Next Article -Now that you had a chance to look at what DWT can do, you can learn about how to use DWT in your web application in detail with our [general developer guide]({{site.general-usage}}index.html). +Now that you had a chance to look at what DWT can do, you can learn about how to use DWT in your web application in detail with our [general developer guide](/_articles/general-usage/index.md). diff --git a/articles/hello-world/index.md b/_articles/hello-world/index.md similarity index 77% rename from articles/hello-world/index.md rename to _articles/hello-world/index.md index 73b12cd7..5cda74c9 100644 --- a/articles/hello-world/index.md +++ b/_articles/hello-world/index.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK HelloWorld keywords: Dynamic Web TWAIN, Documentation, Hello World, upload, helloworld breadcrumbText: Scan settings description: Dynamic Web TWAIN SDK HelloWorld -permalink: /hello-world/index.html --- # Hello World @@ -16,10 +15,10 @@ To start, you can download a 30-day free trial of our DWT SDK [here](https://www To see a video version of this guide, find the video on [YouTube](https://www.youtube.com/watch?v=qShti9aVfLU). The Hello World web app covers the following features: -1. [Scanning an Image]({{site.hello-world}}scanning.html) -2. [Uploading images to the server]({{site.hello-world}}uploading.html) -3. [Specifying Scan Settings]({{site.hello-world}}scan-settings.html) -4. [Editing Images]({{site.hello-world}}editing.html) +1. [Scanning an Image](/_articles/hello-world/scanning.md) +2. [Uploading images to the server](/_articles/hello-world/uploading.md) +3. [Specifying Scan Settings](/_articles/hello-world/scan-settings.md) +4. [Editing Images](/_articles/hello-world/editing.md) Download the Code of the Hello World diff --git a/articles/hello-world/scan-settings.md b/_articles/hello-world/scan-settings.md similarity index 77% rename from articles/hello-world/scan-settings.md rename to _articles/hello-world/scan-settings.md index bf93098b..f3e0d342 100644 --- a/articles/hello-world/scan-settings.md +++ b/_articles/hello-world/scan-settings.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK HelloWorld - Specifying Scan Settings keywords: Dynamic Web TWAIN, Documentation, Hello World, upload, helloworld breadcrumbText: Scan settings description: Dynamic Web TWAIN SDK HelloWorld - Specifying Scan Settings -permalink: /hello-world/scan-settings.html --- # Specifying Scan Settings @@ -16,7 +15,7 @@ Some applications may require images to be scanned with particular scan settings ## Specify Scan Parameters with JSON -The `AcquireImagesAsync()` API accepts scan setting arguments in a JSON format (specified by [DeviceConfiguration]({{site.info}}api/Interfaces.html#DeviceConfiguration){:target="\_blank" rel="noreferrer noopener"}). For this example, we will demonstrate specifying a grayscale image with a resolution of 150 ppi by passing a few of these defined properties: +The `AcquireImagesAsync()` API accepts scan setting arguments in a JSON format (specified by [DeviceConfiguration](/_articles/info/api/interfaces.md#DeviceConfiguration){:target="\_blank" rel="noreferrer noopener"}). For this example, we will demonstrate specifying a grayscale image with a resolution of 150 ppi by passing a few of these defined properties: - `IfShowUI: false` - this disables the scanner UI. Scan settings issued through the UI would override scan settings passed by JSON, so this prevents end user misuse. - `PixelType: Dynamsoft.DWT.EnumDWT_PixelType.TWPT_GRAY` - this sets the image color mode to grayscale. @@ -113,13 +112,13 @@ function AcquireImage() { Links to API Reference: -- [`SelectSourceAsync()`]({{site.info}}api/WebTwain_Acquire.html#selectsourceasync){:target="\_blank" rel="noreferrer noopener"} -- [`AcquireImageAsync()`]({{site.info}}api/WebTwain_Acquire.html#acquireimageasync){:target="\_blank" rel="noreferrer noopener"} -- [`IfCloseSourceAfterAcquire`]({{site.info}}api/Device.html#deviceobjectacquireimage){:target="\_blank" rel="noreferrer noopener"} -- [`IfShowUI`]({{site.info}}api/WebTwain_Acquire.html#ifshowui){:target="\_blank" rel="noreferrer noopener"} -- [`PixelType`]({{site.info}}api/WebTwain_Acquire.html#pixeltype){:target="\_blank" rel="noreferrer noopener"} -- [`Dynamsoft.DWT.EnumDWT_PixelType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pixeltype){:target="\_blank" rel="noreferrer noopener"} -- [`Resolution`]({{site.info}}api/WebTwain_Acquire.html#resolution){:target="\_blank" rel="noreferrer noopener"} +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync){:target="\_blank" rel="noreferrer noopener"} +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync){:target="\_blank" rel="noreferrer noopener"} +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage){:target="\_blank" rel="noreferrer noopener"} +- [`IfShowUI`](/_articles/info/api/WebTwain_Acquire.md#ifshowui){:target="\_blank" rel="noreferrer noopener"} +- [`PixelType`](/_articles/info/api/WebTwain_Acquire.md#pixeltype){:target="\_blank" rel="noreferrer noopener"} +- [`Dynamsoft.DWT.EnumDWT_PixelType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pixeltype){:target="\_blank" rel="noreferrer noopener"} +- [`Resolution`](/_articles/info/api/WebTwain_Acquire.md#resolution){:target="\_blank" rel="noreferrer noopener"} ## Run the Application @@ -141,10 +140,10 @@ You should receive a grayscale image at 150 ppi: -If you have yet to acquire the image from the scanner, please review [scanning an image]({{ site.hello-world }}scanning.html). +If you have yet to acquire the image from the scanner, please review [scanning an image](/_articles/hello-world/scanning.md). -If this scan is all that you need, you can review [uploading images to the server]({{ site.hello-world }}uploading.html). +If this scan is all that you need, you can review [uploading images to the server](/_articles/hello-world/uploading.md). # Next Article -The next and final step in our guide is [editing images]({{ site.hello-world }}editing.html) after acquisition. +The next and final step in our guide is [editing images](/_articles/hello-world/editing.md) after acquisition. diff --git a/articles/hello-world/scanning.md b/_articles/hello-world/scanning.md similarity index 90% rename from articles/hello-world/scanning.md rename to _articles/hello-world/scanning.md index 7f377986..5a501037 100644 --- a/articles/hello-world/scanning.md +++ b/_articles/hello-world/scanning.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK HelloWorld - Scanning Images keywords: Dynamic Web TWAIN, Documentation, Hello World, scanning, helloworld breadcrumbText: Scanning Images description: Dynamic Web TWAIN SDK HelloWorld - Scanning Images -permalink: /hello-world/scanning.html --- # Scanning Images @@ -133,12 +132,12 @@ At this point, `HelloWorld.html` should look like this: APIs used: -- [`RegisterEvent()`]({{site.api}}Dynamsoft_WebTwainEnv.html#registerevent) -- [`OnWebTwainReady`]({{site.api}}Dynamsoft_WebTwainEnv.html#onwebtwainready) -- [`GetWebTwain()`]({{site.api}}Dynamsoft_WebTwainEnv.html#getwebtwain) -- [`SelectSourceAsync()`]({{site.api}}WebTwain_Acquire.html#selectsourceasync) -- [`AcquireImageAsync()`]({{site.api}}WebTwain_Acquire.html#acquireimageasync) -- [`IfCloseSourceAfterAcquire`]({{site.api}}Device.html#deviceobjectacquireimage) +- [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent) +- [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready) +- [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain) +- [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) +- [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) +- [`IfCloseSourceAfterAcquire`](/_articles/info/api/Device.md#deviceobjectacquireimage) ## Run the Application @@ -156,7 +155,7 @@ After pressing the Scan button, you will be presented with the Select Source dia ![Build-the-Hello-World-Scan-Page-4]({{site.assets}}imgs/Build-the-Hello-World-Scan-Page-4.png) -> Only TWAIN, WIA, ICA, or SANE compliant devices are listed in the Select Source dialog. If your connected scanner does not show up in the list, please confirm that the proper driver is installed. If you are using Windows and do not have a physical scanner on hand, you may install the TWAIN Virtual Scanner - a scanner simulator developed by the TWAIN Working Group for testing purposes. This guide uses the [TWAIN Virtual Scanner]({{site.faq}}download-virtual-scanner-for-testing.html) for reproducibility. +> Only TWAIN, WIA, ICA, or SANE compliant devices are listed in the Select Source dialog. If your connected scanner does not show up in the list, please confirm that the proper driver is installed. If you are using Windows and do not have a physical scanner on hand, you may install the TWAIN Virtual Scanner - a scanner simulator developed by the TWAIN Working Group for testing purposes. This guide uses the [TWAIN Virtual Scanner](/_articles/faq/download-virtual-scanner-for-testing.md) for reproducibility. ### Initiate a Scan from the Scanner UI @@ -174,4 +173,4 @@ You have just scanned an image using an image scanner controlled by a web applic ## Next Article -The next article in this series will demonstrate [uploading images to the server]({{site.hello-world}}uploading.html). +The next article in this series will demonstrate [uploading images to the server](/_articles/hello-world/uploading.md). diff --git a/articles/hello-world/uploading.md b/_articles/hello-world/uploading.md similarity index 88% rename from articles/hello-world/uploading.md rename to _articles/hello-world/uploading.md index 8a5c89e7..68272466 100644 --- a/articles/hello-world/uploading.md +++ b/_articles/hello-world/uploading.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Getting Started - Uploading Images to the Server keywords: Dynamic Web TWAIN, Documentation, Hello World, upload, helloworld breadcrumbText: Uploading documents description: Dynamic Web TWAIN SDK Documentation - Uploading Images to the Server -permalink: /hello-world/uploading.html --- # Uploading Images to the Server @@ -61,11 +60,11 @@ function onUploadFailure(errorCode, errorString, sHttpResponse) { APIs used: -- [`HowManyImagesInBuffer`]({{site.info}}api/WebTwain_Buffer.html#howmanyimagesinbuffer){:target="_blank" rel="noreferrer noopener"} -- [`CurrentImageIndexInBuffer`]({{site.info}}api/WebTwain_Buffer.html#currentimageindexinbuffer){:target="_blank" rel="noreferrer noopener"} -- [`HTTPUpload()`]({{site.info}}api/WebTwain_IO.html#httpupload){:target="_blank" rel="noreferrer noopener"} -- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype){:target="_blank" rel="noreferrer noopener"} -- [`Dynamsoft.DWT.EnumDWT_UploadDataFormat`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_uploaddataformat){:target="_blank" rel="noreferrer noopener"} +- [`HowManyImagesInBuffer`](/_articles/info/api/WebTwain_Buffer.md#howmanyimagesinbuffer){:target="_blank" rel="noreferrer noopener"} +- [`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer){:target="_blank" rel="noreferrer noopener"} +- [`HTTPUpload()`](/_articles/info/api/WebTwain_IO.md#httpupload){:target="_blank" rel="noreferrer noopener"} +- [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype){:target="_blank" rel="noreferrer noopener"} +- [`Dynamsoft.DWT.EnumDWT_UploadDataFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_uploaddataformat){:target="_blank" rel="noreferrer noopener"} ## Review the code @@ -169,11 +168,11 @@ Once an image has been acquired, click the upload button.You should receive the -You can review scanning an image with DWT [here]({{site.hello-world}}scanning.html). +You can review scanning an image with DWT [here](/_articles/hello-world/scanning.md). # Next Article -Now that HelloWorld can both scan and upload images, the next step is [specifying scan parameters]({{site.hello-world}}scan-settings.html) to control image scanning methods directly through the API. +Now that HelloWorld can both scan and upload images, the next step is [specifying scan parameters](/_articles/hello-world/scan-settings.md) to control image scanning methods directly through the API. diff --git a/indepth/development/Pro-service.md b/_articles/indepth/development/Pro-service.md similarity index 78% rename from indepth/development/Pro-service.md rename to _articles/indepth/development/Pro-service.md index e1c9859b..045409d8 100644 --- a/indepth/development/Pro-service.md +++ b/_articles/indepth/development/Pro-service.md @@ -5,12 +5,11 @@ title: Dynamic Web TWAIN SDK Development - Professional Service keywords: Dynamic Web TWAIN, Documentation, Development, Professional Service breadcrumbText: Professional Service description: Dynamic Web TWAIN SDK Documentation Professional Service Page -permalink: /indepth/development/Pro-service.html --- # Professional Service -Dynamsoft is devoted to making products as user-friendly as possible. In most cases, developers should be able to get started with the `Dynamic Web TWAIN` library in a very short time and integrate it into the workflow of their applications successfully within a matter of days. If any issues are met during the development process, the [Dynamsoft Support Team]({{site.about}}getsupport.html) is always ready to help. +Dynamsoft is devoted to making products as user-friendly as possible. In most cases, developers should be able to get started with the `Dynamic Web TWAIN` library in a very short time and integrate it into the workflow of their applications successfully within a matter of days. If any issues are met during the development process, the [Dynamsoft Support Team](/_articles/about/getsupport.md) is always ready to help. In some cases, we realize that some customers may require more advanced support from Dynamsoft and that's why we also provide a paid professional service. We offer two types of this paid professional service, applicable to different scenarios. @@ -32,8 +31,8 @@ The following is how VDS works ## Customization Service -Dynamsoft provides many public samples and code snippets free of cost to all customers. The code in these materials can be customized at will. However, the [resources files]({{site.about}}faqs.html#what-are-the-resources-files) provided with each SDK **should not be changed** unless otherwise mentioned in this documentation. If you want to make unmentioned changes to any of these files in the documentation, you must first consult [Dynamsoft Support]({{site.about}}getsupport.html) to learn whether or not it can be done and if so, what that would entail from our end. If it involves a considerable amount of extra effort from the Dynamsoft team, the "Customization Service" (CS) may apply. +Dynamsoft provides many public samples and code snippets free of cost to all customers. The code in these materials can be customized at will. However, the resources files provided with each SDK **should not be changed** unless otherwise mentioned in this documentation. If you want to make unmentioned changes to any of these files in the documentation, you must first consult [Dynamsoft Support](/_articles/about/getsupport.md) to learn whether or not it can be done and if so, what that would entail from our end. If it involves a considerable amount of extra effort from the Dynamsoft team, the "Customization Service" (CS) may apply. The difference between VDS and CS is that the latter involves changes to the `Dynamic Web TWAIN` SDK itself and is considered much more complicated from a technical standpoint. However, in term of the customer's workflow to get a customization job done, the steps are the same as VDS. -If you are interested in this type of professional service, please contact [Dynamsoft Support]({{site.about}}getsupport.html). +If you are interested in this type of professional service, please contact [Dynamsoft Support](/_articles/about/getsupport.md). diff --git a/about/activex.md b/_articles/indepth/development/activex.md similarity index 88% rename from about/activex.md rename to _articles/indepth/development/activex.md index 9f5dcee8..c777dbb0 100644 --- a/about/activex.md +++ b/_articles/indepth/development/activex.md @@ -5,12 +5,11 @@ title: Dynamic Web TWAIN SDK Development - About AcitveX keywords: Dynamic Web TWAIN, Documentation, Development, About AcitveX breadcrumbText: About AcitveX description: Dynamic Web TWAIN SDK Documentation About AcitveX Page -permalink: /indepth/development/activex.html --- # About ActiveX -April 21, 2022: Microsoft is retiring Internet Explorer 11 on June 15, 2022. To support Dynamic Web TWAIN ActiveX, please refer to this article to configure IE mode in Edge. +April 21, 2022: Microsoft is retiring Internet Explorer 11 on June 15, 2022. To support Dynamic Web TWAIN ActiveX, please refer to this article to configure IE mode in Edge. **ActiveX** is a software framework created by Microsoft widely used in Internet Explorer (IE). However, Microsoft has announced plans to end support for older browsers completely and has now deprecated this technology. @@ -32,7 +31,7 @@ Dynamsoft has a substantial customer base and their benefits are our biggest con Simultaneously, the ActiveX edition of `Dynamic Web TWAIN` will also be slowly phased out by Dynamsoft, just like IE by Microsoft. On the one hand, IE is reaching its end of life. On the other hand, outdated technologies are incompatible with updated Web standards, which hinders `Dynamic Web TWAIN` development. -If you check our [release notes]({{site.info}}schedule/stable.html), you can find that most of our development has been done to the HTML5-based editions of `Dynamic Web TWAIN` . For ActiveX, the strategy is as follows: +If you check our [release notes](/_articles/info/schedule/Stable.md), you can find that most of our development has been done to the HTML5-based editions of `Dynamic Web TWAIN` . For ActiveX, the strategy is as follows: * It'll continue to be a part of the Windows edition * No new features will be added @@ -47,10 +46,10 @@ If your organization or the end users of your application have decided to abando ### You only have an ActiveX License -In this case, you will need to purchase a new license to use the alternative edition which is the HTML5 edition. If you are using version 12.3.1 and above, you can get an HTML5 edition license for that same version, then just replacing the ActiveX license with the new license would work. Of course, we suggest that you also upgrade to use the latest edition of the SDK to keep up-to-date with the latest improvements. If you decide to upgrade, you may need to modify your code a bit. Contact [Dynamsoft Support]({{site.about}}getsupport.html) if you need help. +In this case, you will need to purchase a new license to use the alternative edition which is the HTML5 edition. If you are using version 12.3.1 and above, you can get an HTML5 edition license for that same version, then just replacing the ActiveX license with the new license would work. Of course, we suggest that you also upgrade to use the latest edition of the SDK to keep up-to-date with the latest improvements. If you decide to upgrade, you may need to modify your code a bit. Contact [Dynamsoft Support](/_articles/about/getsupport.md) if you need help. -If you are using a version older than 12.3.1, an upgrade will be inevitable. Contact [Dynamsoft Support]({{site.about}}getsupport.html) for more information. +If you are using a version older than 12.3.1, an upgrade will be inevitable. Contact [Dynamsoft Support](/_articles/about/getsupport.md) for more information. ### You already have a non-ActiveX license -In this case, if your application already works on non-IE browsers, you can just let your users know that they can make the switch at any time. If your application only uses the ActiveX now, you can test the application in the modern browsers and see if it works (make sure you have the correct license in place). Contact [Dynamsoft Support]({{site.about}}getsupport.html) if you need help. +In this case, if your application already works on non-IE browsers, you can just let your users know that they can make the switch at any time. If your application only uses the ActiveX now, you can test the application in the modern browsers and see if it works (make sure you have the correct license in place). Contact [Dynamsoft Support](/_articles/about/getsupport.md) if you need help. diff --git a/getstarted/angular.md b/_articles/indepth/development/angular.md similarity index 93% rename from getstarted/angular.md rename to _articles/indepth/development/angular.md index c5c4c759..0dc7277b 100644 --- a/getstarted/angular.md +++ b/_articles/indepth/development/angular.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Development - Angular Integration keywords: Dynamic Web TWAIN, Documentation, Development, Angular Integration breadcrumbText: Angular Integration description: Dynamic Web TWAIN SDK Documentation Angular Integration Page -permalink: /indepth/development/angular.html --- # Use Web TWAIN in Angular @@ -46,7 +45,7 @@ Open `angular.json` and add the following lines to `"build"/"options"/"assets"` } ``` -We can get these resource files in a few different ways. See our [resource loading guide]({{site.general-usage}}resource-loading.html) to see how to load resource files from our official SDK, CDNs, or package managers. +We can get these resource files in a few different ways. See our [resource loading guide](/_articles/general-usage/resource-loading.md) to see how to load resource files from our official SDK, CDNs, or package managers. ## Start to implement @@ -97,7 +96,7 @@ ngOnInit(): void { * Get a handler of the `WebTwain` instance. -Use the method [ `Dynamsoft.DWT.GetWebTwain()` ]({{site.info}}api/Dynamsoft_WebTwainEnv.html#getwebtwain) to get a handler of the created `WebTwain` instance. +Use the method [ `Dynamsoft.DWT.GetWebTwain()` ](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain) to get a handler of the created `WebTwain` instance. ``` typescript import { WebTwain } from 'dwt/dist/types/WebTwain'; @@ -239,7 +238,7 @@ export class AppComponent { ng serve -o ``` -> If you have installed `Dynamic Web TWAIN` and have configured a valid `ProductKey` . You will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on the page that guide you to install the library. [More info>>]({{site.indepth}}features/initialize.html#installation-of-the-dynamsoft-service). +> If you have installed `Dynamic Web TWAIN` and have configured a valid `ProductKey` . You will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on the page that guide you to install the library. [More info>>](/_articles/general-usage/initialization.md#installation-of-the-dynamsoft-service). ## Official Sample diff --git a/indepth/development/armmips.md b/_articles/indepth/development/armmips.md similarity index 80% rename from indepth/development/armmips.md rename to _articles/indepth/development/armmips.md index afb4edf5..4dd098db 100644 --- a/indepth/development/armmips.md +++ b/_articles/indepth/development/armmips.md @@ -5,10 +5,9 @@ title: Dynamic Web TWAIN SDK Development - ARM64 & MIPS64 support keywords: Dynamic Web TWAIN, Documentation, Development, ARM64, MIPS64 breadcrumbText: ARM64 & MIPS64 support description: Dynamic Web TWAIN SDK Documentation ARM64 & MIPS64 Support Page -permalink: /indepth/development/armmips.html --- # Support ARM64 or MIPS64 based computers -In V17.0, we added support for 64-bit ARM & MIPS64 based computers. The corresponding service installer has been included in the V17.1+ official package. To get the V17.0 service installer package for ARM64 or MIPS64, please contact [Dynamsoft Support]({{site.about}}getsupport.html). +In V17.0, we added support for 64-bit ARM & MIPS64 based computers. The corresponding service installer has been included in the V17.1+ official package. To get the V17.0 service installer package for ARM64 or MIPS64, please contact [Dynamsoft Support](/_articles/about/getsupport.md). diff --git a/_articles/indepth/development/index.md b/_articles/indepth/development/index.md new file mode 100644 index 00000000..52bc208c --- /dev/null +++ b/_articles/indepth/development/index.md @@ -0,0 +1,25 @@ +--- +layout: default-layout +needAutoGenerateSidebar: true +title: Dynamic Web TWAIN SDK Development - Index +keywords: Dynamic Web TWAIN, Documentation, Development +breadcrumbText: Development +description: Dynamic Web TWAIN SDK Documentation Development Index Page +--- + +# Development + +Popular frameworks and frequently asked development questions are covered in these articles. + +* [Use Web TWAIN in Angular](/_articles/indepth/development/angular.md) + +* [Use Web TWAIN in React](/_articles/indepth/development/react.md) + +* [Use Web TWAIN in Vue](/_articles/indepth/development/vue.md) + +* [Upload or download images with Server-side scripts](/_articles/general-usage/server-side-scripting.md) + +* [Enable mobile web capture](/_articles/indepth/development/mobile-web-capture.md) + +* [How to perform upgrade](/_articles/indepth/development/upgrade.md) + diff --git a/indepth/development/mobile-web-capture.md b/_articles/indepth/development/mobile-web-capture.md similarity index 97% rename from indepth/development/mobile-web-capture.md rename to _articles/indepth/development/mobile-web-capture.md index bc73f70d..dc56a581 100644 --- a/indepth/development/mobile-web-capture.md +++ b/_articles/indepth/development/mobile-web-capture.md @@ -94,6 +94,6 @@ Here is a working mobile capture online demo which you can test. ## Additional notes: -1. By default, the size of the viewer is 270 in width and 350 in height, so it'll appear to be too small. Check out [how to customize the viewer]({{site.indepth}}features/viewer.html#customize-the-viewer) for more information. +1. By default, the size of the viewer is 270 in width and 350 in height, so it'll appear to be too small. Check out [how to customize the viewer](/_articles/general-usage/viewer-configuration.md#customize-the-viewer) for more information. 2. Important: Not all mobile browsers allow the use of cameras. Check out [browsers on mobile devices]({{site.getstarted}}platform.html#browsers-on-mobile-devices) for more information. If you are using an unsupported browser (for example, Chrome on iOS), you may receive the error `The current browser has not implemented the MediaDevices interface`. diff --git a/getstarted/react.md b/_articles/indepth/development/react.md similarity index 92% rename from getstarted/react.md rename to _articles/indepth/development/react.md index eb8b654f..d2906ef3 100644 --- a/getstarted/react.md +++ b/_articles/indepth/development/react.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Development - React Integration keywords: Dynamic Web TWAIN, Documentation, Development, React Integration breadcrumbText: React Integration description: Dynamic Web TWAIN SDK Documentation React Integration Page -permalink: /indepth/development/react.html --- # Use Web TWAIN in React @@ -62,7 +61,7 @@ Open `package.json` and change `scripts` like this: > Note: The change ensures the static files required to run `DWT` are copied over to the built project. -We can get these resource files in a few different ways. See our [resource loading guide]({{site.general-usage}}resource-loading.html) to see how to load resource files from our official SDK, CDNs, or package managers. +We can get these resource files in a few different ways. See our [resource loading guide](/_articles/general-usage/resource-loading.md) to see how to load resource files from our official SDK, CDNs, or package managers. ## Implementation @@ -151,7 +150,7 @@ Clear the contents of the src/App.css and src/index.css files. npm run dev ``` -> Note: If you have installed `DWT` and have configured a valid `ProductKey`, you will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on the page that guide you to install the library. [More info>>]({{site.indepth}}features/initialize.html#installation-of-the-dynamsoft-service) +> Note: If you have installed `DWT` and have configured a valid `ProductKey`, you will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on the page that guide you to install the library. [More info>>](/_articles/general-usage/initialization.md#installation-of-the-dynamsoft-service) ## Official Samples diff --git a/getstarted/restful.md b/_articles/indepth/development/restful.md similarity index 98% rename from getstarted/restful.md rename to _articles/indepth/development/restful.md index da3a2bca..5bbaefee 100644 --- a/getstarted/restful.md +++ b/_articles/indepth/development/restful.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Development - RESTful Integration keywords: Dynamic Web TWAIN, Documentation, Development, RESTful Integration breadcrumbText: RESTful Integration, REST API description: Dynamic Web TWAIN SDK Documentation RESTful Integration Page -permalink: /indepth/development/restful.html --- # Dynamic Web TWAIN's RESTful API diff --git a/getstarted/upgrade.md b/_articles/indepth/development/upgrade.md similarity index 86% rename from getstarted/upgrade.md rename to _articles/indepth/development/upgrade.md index f50d3d4f..2bf9a2b5 100644 --- a/getstarted/upgrade.md +++ b/_articles/indepth/development/upgrade.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK Development - Upgrade Guide keywords: Dynamic Web TWAIN, Documentation, Development, Upgrade Guide breadcrumbText: Upgrade Guide description: Dynamic Web TWAIN SDK Documentation Upgrade Guide Page -permalink: /indepth/development/upgrade.html --- # Upgrade @@ -30,9 +29,9 @@ You can follow the steps below to upgrade Dynamic Web TWAIN: 4. Make necessary updates to the related code. - If you get a new **license key** for the new version, you may follow the steps in [License]({{site.about}}license.html) to update it. + If you get a new **license key** for the new version, you may follow the steps in [License](/_articles/general-usage/license.md) to update it. - For changes in the new version, you can check the [Release Notes]({{site.info}}schedule/stable.html) and [Deprecations]({{site.info}}schedule/deprecated.html). + For changes in the new version, you can check the [Release Notes](/_articles/info/schedule/Stable.md) and [Deprecations](/_articles/info/schedule/deprecated.md). > Note: Please be aware of the following namespace changes introduced in v17.0: @@ -47,13 +46,13 @@ You can follow the steps below to upgrade Dynamic Web TWAIN: Beginning with Dynamic Web TWAIN v16.0, the Dynamic Web TWAIN Service(formerly known as Dynamsoft Service) is backward compatible within _the same major version_. Once you upgrade Dynamic Web TWAIN for your application on the server side, for **end-users' side** - If the end-users have installed the same version or newer minor versions of Dynamic Web TWAIN Service, they don't need to do anything; -- If the end-users have never installed Dynamic Web TWAIN Service, or have an older version or a different newer major version of it, they will be required to do a reinstallation of Dynamic Web TWAIN Service. The process is described here +- If the end-users have never installed Dynamic Web TWAIN Service, or have an older version or a different newer major version of it, they will be required to do a reinstallation of Dynamic Web TWAIN Service. The process is described here ## Update `dwt` package If your application uses a framework or library like Angular, React, Vue, etc. and uses the `dwt` package, you can just install the new version of Dynamic Web TWAIN to replace the old one. For example: -> Note: the `@types/dwt` package is no longer used, and types are now included within the `dwt` package itself as of [version 17.0]({{site.info}}schedule/stable.html#17004202021). +> Note: the `@types/dwt` package is no longer used, and types are now included within the `dwt` package itself as of [version 17.0](/_articles/info/schedule/Stable.md#17004202021). For npm: diff --git a/getstarted/vue.md b/_articles/indepth/development/vue.md similarity index 94% rename from getstarted/vue.md rename to _articles/indepth/development/vue.md index 30ac346d..d6fc51b7 100644 --- a/getstarted/vue.md +++ b/_articles/indepth/development/vue.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Development - Vue Integration keywords: Dynamic Web TWAIN, Documentation, Development, Vue Integration breadcrumbText: Vue Integration description: Dynamic Web TWAIN SDK Documentation Vue Integration Page -permalink: /indepth/development/vue.html --- # Use Web TWAIN in Vue @@ -57,7 +56,7 @@ Open `package.json` and change `scripts` as seen below: > The change ensures the static files required to run `DWT` are copied over to the resulting built project. -We can get these resource files in a few different ways. See our [resource loading guide]({{site.general-usage}}resource-loading.html) to see how to load resource files from our official SDK, CDNs, or package managers. +We can get these resource files in a few different ways. See our [resource loading guide](/_articles/general-usage/resource-loading.md) to see how to load resource files from our official SDK, CDNs, or package managers. ## Start to implement @@ -198,7 +197,7 @@ yarn serve #### On desktop -If you have installed `DWT` and have configured a valid `ProductKey` . You will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on [this page]({{site.indepth}}features/initialize.html#installation-of-the-dynamsoft-service) that guides you on installing the library. +If you have installed `DWT` and have configured a valid `ProductKey` . You will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on [this page](/_articles/general-usage/initialization.md#installation-of-the-dynamsoft-service) that guides you on installing the library. #### On mobile @@ -254,7 +253,7 @@ Open `package.json` and change `scripts` as seen below: > The change ensures the static files required to run `DWT` are copied over to the resulting built project. -We can get these resource files in a few different ways. See our [resource loading guide]({{site.general-usage}}resource-loading.html) to see how to load resource files from our official SDK, CDNs, or package managers. +We can get these resource files in a few different ways. See our [resource loading guide](/_articles/general-usage/resource-loading.md) to see how to load resource files from our official SDK, CDNs, or package managers. ## Start to implement @@ -388,7 +387,7 @@ npm run dev #### On desktop -If you have installed `DWT` and have configured a valid `ProductKey` . You will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on [this page]({{site.indepth}}features/initialize.html#installation-of-the-dynamsoft-service) that guides you on installing the library. +If you have installed `DWT` and have configured a valid `ProductKey` . You will have a working page to scan documents from your scanner now. Otherwise, you should see instructions on [this page](/_articles/general-usage/initialization.md#installation-of-the-dynamsoft-service) that guides you on installing the library. ## Official Samples diff --git a/getstarted/vue3.md b/_articles/indepth/development/vue3.md similarity index 91% rename from getstarted/vue3.md rename to _articles/indepth/development/vue3.md index ddb53ae5..6c144d96 100644 --- a/getstarted/vue3.md +++ b/_articles/indepth/development/vue3.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Development - Vue 3 Integration keywords: Dynamic Web TWAIN, Documentation, Development, Vue3 Integration breadcrumbText: Vue 3 Integration description: Dynamic Web TWAIN SDK Documentation Vue 3 Integration Page -permalink: /indepth/development/vue3.html --- # Use Web TWAIN in Vue 3 @@ -58,7 +57,7 @@ Open `package.json` and change `scripts` as seen below: > The change ensures the static files required to run `DWT` are copied over to the resulting built project. -We can get these resource files in a few different ways. See our [resource loading guide]({{site.general-usage}}resource-loading.html) to see how to load resource files from our official SDK, CDNs, or package managers. +We can get these resource files in a few different ways. See our [resource loading guide](/_articles/general-usage/resource-loading.md) to see how to load resource files from our official SDK, CDNs, or package managers. ## Start to implement @@ -192,7 +191,7 @@ npm run dev #### On desktop -If you have installed `DWT` and have configured a valid `ProductKey`, you should now have a working page to scan documents from your scanner. If not, please refer to [this page]({{site.indepth}}features/initialize.html#installation-of-the-dynamsoft-service) which explains how the library is initialized or contact us for further assistance. +If you have installed `DWT` and have configured a valid `ProductKey`, you should now have a working page to scan documents from your scanner. If not, please refer to [this page](/_articles/general-usage/initialization.md#installation-of-the-dynamsoft-service) which explains how the library is initialized or contact us for further assistance. ## Official Samples diff --git a/indepth/features/OCR.md b/_articles/indepth/features/OCR.md similarity index 84% rename from indepth/features/OCR.md rename to _articles/indepth/features/OCR.md index 30b9f65c..4374cad7 100644 --- a/indepth/features/OCR.md +++ b/_articles/indepth/features/OCR.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Features - OCR keywords: Dynamic Web TWAIN, Documentation, OCR breadcrumbText: OCR description: Dynamic Web TWAIN SDK Documentation OCR Page -permalink: /indepth/features/OCR.html ignore: true --- @@ -34,7 +33,7 @@ Client side OCR only works in [browsers on Windows]({{site.getstarted}}platform. #### Step one - Include OCRB -To include this addon is to reference the necessary JavaScript file `dynamsoft.webtwain.addon.ocr.js` which is **NOT** included in the [resources files]({{site.faq}}what-are-the-resources-files.html). If you can't find this file, you can contact [Dynamsoft Support]({{site.about}}getsupport.html). +To include this addon is to reference the necessary JavaScript file `dynamsoft.webtwain.addon.ocr.js` which is **NOT** included in the [resources files](/_articles/about/getsupport.md). > If you are using the [dwt package](https://www.npmjs.com/package/dwt), the addon is already included in the main JavaScript file ( `dynamsoft.webtwain.min.js` or `dynamsoft.webtwain.min.mjs` ) which means you can skip this step. @@ -44,7 +43,7 @@ To include this addon is to reference the necessary JavaScript file `dynamsoft.w #### Step two - Install OCRB -`OCRB` is not included by default in the [service installation]({{site.indepth}}deployment/service.html#how-to-install-dwt). To use it, you need to download and install it with the APIs [ `Download()` ]({{site.info}}api/Addon_OCR.html#download) and [ `DownloadLangData()` ]({{site.info}}api/Addon_OCR.html#downloadlangdata). Check out the code snippet on how it works. +`OCRB` is not included by default in the [service installation](/_articles/extended-usage/dynamsoft-service-configuration.md#how-to-install-dwt). To use it, you need to download and install it with the APIs [ `Download()` ](/_articles/info/api/Addon_OCR.md#download) and [ `DownloadLangData()` ](/_articles/info/api/Addon_OCR.md#downloadlangdata). Check out the code snippet on how it works. > `OCRB` requires a dictionary / data when reading a specific language. The following code assumes the target language is "English". @@ -75,7 +74,7 @@ function downloadOCRB(bDownloadDLL) { downloadOCRB(true); ``` -The code asks `Dynamic Web TWAIN` to download `OCRB` from the URL `Dynamsoft.DWT.ResourcesPath + '/addon/OCRx64.zip'` and the language data from the URL `Dynamsoft.DWT.ResourcesPath + '/addon/OCRBasicLanguages/English.zip'` . Both zip files need to be placed on the server where you placed the [resources files]({{site.faq}}what-are-the-resources-files.html). As mentioned above, if you can't find these files, you can contact [Dynamsoft Support]({{site.about}}getsupport.html). +The code asks `Dynamic Web TWAIN` to download `OCRB` from the URL `Dynamsoft.DWT.ResourcesPath + '/addon/OCRx64.zip'` and the language data from the URL `Dynamsoft.DWT.ResourcesPath + '/addon/OCRBasicLanguages/English.zip'` . Both zip files need to be placed on the server where you placed the [resources files](/_articles/about/getsupport.md). Once the installation is done, you should be able to find the following files under `C:\Windows\SysWOW64\Dynamsoft\DynamsoftServicex64_17\DynamicOCR` . @@ -84,7 +83,7 @@ Once the installation is done, you should be able to find the following files un #### Step three - Perform OCR with OCRB -Once installed, you can start using the addon. Check out the following code snippet which makes use of the methods [ `SetLanguage()` ]({{site.info}}api/Addon_OCR.html#setlanguage), [ `SetOutputFormat()` ]({{site.info}}api/Addon_OCR.html#setoutputformat) and [ `Recognize()` ]({{site.info}}api/Addon_OCR.html#recognize). +Once installed, you can start using the addon. Check out the following code snippet which makes use of the methods [ `SetLanguage()` ](/_articles/info/api/Addon_OCR.md#setlanguage), [ `SetOutputFormat()` ](/_articles/info/api/Addon_OCR.md#setoutputformat) and [ `Recognize()` ](/_articles/info/api/Addon_OCR.md#recognize). ``` javascript function DoOCR() { @@ -115,16 +114,16 @@ function DoOCR() { ##### Other methods for OCRB -* [ `RecognizeFile()` ]({{site.info}}api/Addon_OCR.html#recognizefile): This method reads a specified local file. -* [ `RecognizeRect()` ]({{site.info}}api/Addon_OCR.html#recognizerect): This method reads a specified rectangular area on an image. -* [ `RecognizeSelectedImages()` ]({{site.info}}api/Addon_OCR.html#recognizeselectedimages): This method reads multiple images at a time. -* [ `GetMinFontSizeforMoreAccurateResult()` ]({{site.info}}api/Addon_OCR.html#getminfontsizeformoreaccurateresult) &[ `SetMinFontSizeforMoreAccurateResult()` ]({{site.info}}api/Addon_OCR.html#setminfontsizeformoreaccurateresult): Gets or sets the font size for a regional OCR operation. The idea is that if the engine finds a certain area on the input image to have a font size smaller than what is set, it will try to read that area one more time to get a better result. -* [ `SetPageSetMode()` ]({{site.info}}api/Addon_OCR.html#setpagesetmode): Configures how OCR is done. +* [ `RecognizeFile()` ](/_articles/info/api/Addon_OCR.md#recognizefile): This method reads a specified local file. +* [ `RecognizeRect()` ](/_articles/info/api/Addon_OCR.md#recognizerect): This method reads a specified rectangular area on an image. +* [ `RecognizeSelectedImages()` ](/_articles/info/api/Addon_OCR.md#recognizeselectedimages): This method reads multiple images at a time. +* [ `GetMinFontSizeforMoreAccurateResult()` ](/_articles/info/api/Addon_OCR.md#getminfontsizeformoreaccurateresult) &[ `SetMinFontSizeforMoreAccurateResult()` ](/_articles/info/api/Addon_OCR.md#setminfontsizeformoreaccurateresult): Gets or sets the font size for a regional OCR operation. The idea is that if the engine finds a certain area on the input image to have a font size smaller than what is set, it will try to read that area one more time to get a better result. +* [ `SetPageSetMode()` ](/_articles/info/api/Addon_OCR.md#setpagesetmode): Configures how OCR is done. > The following four methods are only effective when the output format is PDF. -* [ `GetIfUseDetectedFont()` ]({{site.info}}api/Addon_OCR.html#getifusedetectedfont) & [ `SetIfUseDetectedFont()` ]({{site.info}}api/Addon_OCR.html#setifusedetectedfont): Whether to use detected fonts in the resulting PDF. -* [ `GetUnicodeFontName()` ]({{site.info}}api/Addon_OCR.html#getunicodefontname) & [ `SetUnicodeFontName()` ]({{site.info}}api/Addon_OCR.html#setunicodefontname): Returns or sets the font to use. +* [ `GetIfUseDetectedFont()` ](/_articles/info/api/Addon_OCR.md#getifusedetectedfont) & [ `SetIfUseDetectedFont()` ](/_articles/info/api/Addon_OCR.md#setifusedetectedfont): Whether to use detected fonts in the resulting PDF. +* [ `GetUnicodeFontName()` ](/_articles/info/api/Addon_OCR.md#getunicodefontname) & [ `SetUnicodeFontName()` ](/_articles/info/api/Addon_OCR.md#setunicodefontname): Returns or sets the font to use. ##### Online demo for OCRB @@ -134,7 +133,7 @@ function DoOCR() { #### Step one - Include OCRPro -To include this addon is to reference the necessary JavaScript file `dynamsoft.webtwain.addon.ocrpro.js` which is **NOT** included in the [resources files]({{site.faq}}what-are-the-resources-files.html). If you can't find this file, you can contact [Dynamsoft Support]({{site.about}}getsupport.html). +To include this addon is to reference the necessary JavaScript file `dynamsoft.webtwain.addon.ocrpro.js` which is **NOT** included in the [resources files](/_articles/about/getsupport.md). > If you are using the [dwt package](https://www.npmjs.com/package/dwt), the addon is already included in the main JavaScript file ( `dynamsoft.webtwain.min.js` or `dynamsoft.webtwain.min.mjs` ) which means you can skip this step. @@ -144,7 +143,7 @@ To include this addon is to reference the necessary JavaScript file `dynamsoft.w #### Step two - Install OCRPro -`OCRPro` is not included by default in the [service installation]({{site.indepth}}deployment/service.html#how-to-install-dwt). To use it, you need to download and install it with the APIs [ `Download()` ]({{site.info}}api/Addon_OCRPro.html#download). +`OCRPro` is not included by default in the [service installation](/_articles/extended-usage/dynamsoft-service-configuration.md#how-to-install-dwt). To use it, you need to download and install it with the APIs [ `Download()` ](/_articles/info/api/Addon_OCRPro.md#download). > NOTE: The `OCRPro` engine is huge (over 150MB) which takes quite a bit of time to download. The good news is that it only needs to be done once. @@ -162,7 +161,7 @@ function downloadOCRPro() { downloadOCRPro(); ``` -The code asks `Dynamic Web TWAIN` to download `OCRPro` from the URL `Dynamsoft.DWT.ResourcesPath + '/addon/OCRProx64.zip'` . This zip file needs to be placed on the server where you placed the [resources files]({{site.faq}}what-are-the-resources-files.html). If you can't find this file, you can contact [Dynamsoft Support]({{site.about}}getsupport.html). +The code asks `Dynamic Web TWAIN` to download `OCRPro` from the URL `Dynamsoft.DWT.ResourcesPath + '/addon/OCRProx64.zip'` . This zip file needs to be placed on the server where you placed the [resources files](/_articles/about/getsupport.md). Once the installation is done, you should be able to find the following under `C:\Windows\SysWOW64\Dynamsoft\DynamsoftServicex64_17` * `DynamicOCRProx64_1.2.0.0806.dll` : The version number may vary. @@ -170,7 +169,7 @@ Once the installation is done, you should be able to find the following under `C #### Step three - Perform OCR with OCRPro -Once installed, you can start using the addon. Check out the following code snippet which sets up the operation with [ `Settings` ]({{site.info}}api/Addon_OCRPro.html#settings) and then starts reading with [ `Recognize()` ]({{site.info}}api/Addon_OCRPro.html#recognize). +Once installed, you can start using the addon. Check out the following code snippet which sets up the operation with [ `Settings` ](/_articles/info/api/Addon_OCRPro.md#settings) and then starts reading with [ `Recognize()` ](/_articles/info/api/Addon_OCRPro.md#recognize). ``` javascript function DoOCR() { @@ -227,7 +226,7 @@ function DoOCR() { #### About Settings -`OCRPro` is configured through `Settings` , the following shows all the configurable parameters. Check out more details [here]({{site.info}}api/Addon_OCRPro.html#settings). The following shows how to OCR and create a PDF file that has the keyword 'TWAIN' stricken out. +`OCRPro` is configured through `Settings` , the following shows all the configurable parameters. Check out more details [here](/_articles/info/api/Addon_OCRPro.md#settings). The following shows how to OCR and create a PDF file that has the keyword 'TWAIN' stricken out. ``` javascript var settings = Dynamsoft.WebTwain.Addon.OCRPro.NewSettings(); @@ -244,9 +243,9 @@ settings.Redaction.FindTextAction = Dynamsoft.DWT.EnumDWT_OCRFindTextAction.OCRF ##### Other methods for OCRPro -* [ `RecognizeFile()` ]({{site.info}}api/Addon_OCRPro.html#recognizefile): This method reads a specified local file. -* [ `RecognizeRect()` ]({{site.info}}api/Addon_OCRPro.html#recognizerect): This method reads one or multiple rectangular area(s) on an image. -* [ `RecognizeSelectedImages()` ]({{site.info}}api/Addon_OCRPro.html#recognizeselectedimages): This method reads multiple images at a time. +* [ `RecognizeFile()` ](/_articles/info/api/Addon_OCRPro.md#recognizefile): This method reads a specified local file. +* [ `RecognizeRect()` ](/_articles/info/api/Addon_OCRPro.md#recognizerect): This method reads one or multiple rectangular area(s) on an image. +* [ `RecognizeSelectedImages()` ](/_articles/info/api/Addon_OCRPro.md#recognizeselectedimages): This method reads multiple images at a time. \ No newline at end of file diff --git a/indepth/features/initialize.md b/_articles/indepth/features/initialize.md similarity index 90% rename from indepth/features/initialize.md rename to _articles/indepth/features/initialize.md index 5d7ac5ef..0b4148f8 100644 --- a/indepth/features/initialize.md +++ b/_articles/indepth/features/initialize.md @@ -6,8 +6,7 @@ keywords: Dynamic Web TWAIN, Documentation, Initialization breadcrumbText: Initialization description: Dynamic Web TWAIN SDK Documentation Initialization Page ignore: true -#permalink: /indepth/features/initialize.html ---- +#--- @@ -24,7 +23,7 @@ Inside the `Resources` directory that is included in the SDK installation folder - `dynamsoft.webtwain.initiate.js` - This file is the **core** of the Dynamic Web TWAIN JavaScript Library. You're not supposed to change it without consulting the [Dynamsoft Support Team]({{site.about}}Getsupport.html). + This file is the **core** of the Dynamic Web TWAIN JavaScript Library. You're not supposed to change it without consulting the [Dynamsoft Support Team](/_articles/about/getsupport.md). - `dynamsoft.webtwain.config.js` This file is used for setting basic configurations of Dynamic Web TWAIN, e.g., configure the product key, change the initial viewer size, and more. @@ -33,7 +32,7 @@ If you are using the official ; ## getRuntimeSettings() -Return the current runtime settings or the settings of the specified built-in template. Please refer to [`RuntimeSettings`]({{site.info}}api/Interfaces.html#runtimesettings). +Return the current runtime settings or the settings of the specified built-in template. Please refer to [`RuntimeSettings`](/_articles/info/api/interfaces.md#runtimesettings). The template can only be "speed", "balance", or "coverage". @@ -101,7 +100,7 @@ updateRuntimeSettings(settings: RuntimeSettings): Promise ; **Parameters** -`settings`: Specify the runtime settings. Please refer to [`RuntimeSettings`]({{site.info}}api/Interfaces.html#runtimesettings). +`settings`: Specify the runtime settings. Please refer to [`RuntimeSettings`](/_articles/info/api/interfaces.md#runtimesettings). **Availability** @@ -147,7 +146,7 @@ DWTObject.Addon.BarcodeReader.getRuntimeSettings("balance") ## resetRuntimeSettings() -Reset all runtime settings to default values. Please refer to [`RuntimeSettings`]({{site.info}}api/Interfaces.html#runtimesettings). +Reset all runtime settings to default values. Please refer to [`RuntimeSettings`](/_articles/info/api/interfaces.md#runtimesettings). **Syntax** @@ -195,7 +194,7 @@ initRuntimeSettingsWithString( **Return value** -Please refer to [`RuntimeSettings`]({{site.info}}api/Interfaces.html#runtimesettings). +Please refer to [`RuntimeSettings`](/_articles/info/api/interfaces.md#runtimesettings). **Availability** diff --git a/info/api/Addon_Camera.md b/_articles/info/api/Addon_Camera.md similarity index 99% rename from info/api/Addon_Camera.md rename to _articles/info/api/Addon_Camera.md index 259184ff..ad4ec416 100644 --- a/info/api/Addon_Camera.md +++ b/_articles/info/api/Addon_Camera.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API Reference - Camera Addon APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Camera Addon APIs breadcrumbText: Camera Addon description: Dynamic Web TWAIN SDK Documentation API Reference Camera Addon APIs Page -permalink: /info/api/Addon_Camera.html --- # `{WebTwainObject}.Addon.Camera` @@ -19,7 +18,7 @@ To include the Camera add-on, simply add a reference to the corresponding camera ``` html ``` -Check out [MediaDevices Cameras]({{site.indepth}}features/input.html#use-mediadevices-cameras) to learn more on how to use the camera add-on. +Check out [MediaDevices Cameras](/_articles/general-usage/scanner-image-acquisition.md#use-mediadevices-cameras) to learn more on how to use the camera add-on. **Methods** diff --git a/info/api/Addon_OCR.md b/_articles/info/api/Addon_OCR.md similarity index 99% rename from info/api/Addon_OCR.md rename to _articles/info/api/Addon_OCR.md index 8ab0faa8..1374995f 100644 --- a/info/api/Addon_OCR.md +++ b/_articles/info/api/Addon_OCR.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API Reference - OCRB Addon APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, OCRB Addon APIs breadcrumbText: OCRB Addon description: Dynamic Web TWAIN SDK Documentation API Reference OCRB Addon APIs Page -permalink: /info/api/Addon_OCR.html --- # `{WebTwainObject}.Addon.OCR` diff --git a/info/api/Addon_OCRPro.md b/_articles/info/api/Addon_OCRPro.md similarity index 99% rename from info/api/Addon_OCRPro.md rename to _articles/info/api/Addon_OCRPro.md index 2977c07f..a6bf56f0 100644 --- a/info/api/Addon_OCRPro.md +++ b/_articles/info/api/Addon_OCRPro.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API Reference - OCRPro Addon APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, OCRPro Addon APIs breadcrumbText: OCRPro Addon description: Dynamic Web TWAIN SDK Documentation API Reference OCRPro Addon APIs Page -permalink: /info/api/Addon_OCRPro.html --- # `{WebTwainObject}.Addon.OCRPro` diff --git a/info/api/Addon_PDF.md b/_articles/info/api/Addon_PDF.md similarity index 79% rename from info/api/Addon_PDF.md rename to _articles/info/api/Addon_PDF.md index 43ab7da5..007c2e8c 100644 --- a/info/api/Addon_PDF.md +++ b/_articles/info/api/Addon_PDF.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API Reference - PDF Addon APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, PDF Addon APIs breadcrumbText: PDF Addon description: Dynamic Web TWAIN SDK Documentation API Reference PDF Addon APIs Page -permalink: /info/api/Addon_PDF.html --- # `{WebTwainObject}.Addon.PDF` @@ -23,7 +22,7 @@ permalink: /info/api/Addon_PDF.html ## GetConvertMode()
-> This API has been deprecated as of release 18.4. Please use the [`GetReaderOptions()`]({{site.info}}api/Addon_PDF.html#getreaderoptions) function. +> This API has been deprecated as of release 18.4. Please use the [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions) function. Return the convert mode. @@ -33,7 +32,7 @@ Return the convert mode. GetConvertMode(): number; ``` -Please refer to [`EnumDWT_ConvertMode`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode). +Please refer to [`EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode). **Availability** @@ -60,7 +59,7 @@ Please refer to [`EnumDWT_ConvertMode`]({{site.info}}api/Dynamsoft_Enum.html#dyn --- ## GetReaderOptions() -Returns the current PDF reader options. Please refer to [`ReaderOptions`]({{site.info}}api/interfaces.html#readeroptions). +Returns the current PDF reader options. Please refer to [`ReaderOptions`](/_articles/info/api/interfaces.md#readeroptions). **Syntax** @@ -201,7 +200,7 @@ IsTextBasedPDF(path: string): boolean; ## SetConvertMode()
-> This API has been deprecated as of release 18.4. Please use the [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions) function. +> This API has been deprecated as of release 18.4. Please use the [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) function. Set the convert mode. @@ -213,7 +212,7 @@ SetConvertMode(mode: Dynamsoft.DWT.EnumDWT_ConvertMode | number): boolean; **Parameters** -`mode`: Specify the mode. Please refer to [`EnumDWT_ConvertMode`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode). The default value is 3 (`Dynamsoft.DWT.EnumDWT_ConvertMode.CM_AUTO`) +`mode`: Specify the mode. Please refer to [`EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode). The default value is 3 (`Dynamsoft.DWT.EnumDWT_ConvertMode.CM_AUTO`) **Availability** @@ -245,7 +244,7 @@ There are three conversion modes - `CM_IMAGEONLY` (2): The PDF Rasterizer is turned off. - `CM_AUTO` (3): The library automatically detect whether a file needs to be rasterized or not and then process the file accordingly. -Use this method before you import a PDF into the viewer with methods such as
`LoadImage()` , `HTTPDownload()` and `FTPDownload()`. +Use this method before you import a PDF into the viewer with methods such as `LoadImage()` , `HTTPDownload()` and `FTPDownload()`. --- ## SetReaderOptions() @@ -259,7 +258,7 @@ SetReaderOptions(options: ReaderOptions): boolean; ``` **Parameters** -`options`: Please see the [`ReaderOptions`]({{site.info}}api/interfaces.html#readeroptions) interface. +`options`: Please see the [`ReaderOptions`](/_articles/info/api/interfaces.md#readeroptions) interface. **Availability** @@ -284,7 +283,7 @@ SetReaderOptions(options: ReaderOptions): boolean;
**Usage Notes** -Use this method before you import a PDF into the viewer with methods such as `LoadImage()` , `HTTPDownload()` and `FTPDownload()`. +Use this method before you import a PDF into the viewer with methods such as `LoadImage()` , `HTTPDownload()` and `FTPDownload()`. **Examples** @@ -314,7 +313,7 @@ Use this method before you import a PDF into the viewer with methods such as
-> This API has been deprecated as of release 18.4. Please use the [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions) function. +> This API has been deprecated as of release 18.4. Please use the [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) function. Set the password for reading encrypted PDF files. @@ -352,14 +351,14 @@ SetPassword(password: string): boolean; **Usage notes** -Use this method before you import a PDF into the viewer with methods such as `LoadImage()` , `HTTPDownload()` and `FTPDownload()`. +Use this method before you import a PDF into the viewer with methods such as `LoadImage()` , `HTTPDownload()` and `FTPDownload()`. --- ## SetResolution()
-> This API has been deprecated as of release 18.4. Please use the [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions) function. +> This API has been deprecated as of release 18.4. Please use the [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) function. Set the resolution for rasterizing. @@ -399,7 +398,7 @@ SetResolution(resolution: number): boolean; The default resolution for the conversion is 200. We recommend that you set a value smaller than 300, otherwise it might slow down the program or cause the process to fail. -Use this method before you import a PDF into the viewer with methods such as `LoadImage()` , `HTTPDownload()` and `FTPDownload()`. +Use this method before you import a PDF into the viewer with methods such as `LoadImage()` , `HTTPDownload()` and `FTPDownload()`. --- @@ -415,7 +414,7 @@ Write.Setup(settings: PDFWSettings): boolean; **Parameters** -`settings`: Configures how the PDF is generated. Please refer to [`PDFWSettings`]({{site.info}}api/interfaces.html#pdfwsettings). +`settings`: Configures how the PDF is generated. Please refer to [`PDFWSettings`](/_articles/info/api/interfaces.md#pdfwsettings). **Availability** @@ -471,6 +470,6 @@ function OnFailure(errorCode, errorString) { **Usage notes** -Use this method before you create a PDF with methods such as `HTTPUpload()`, `SaveAsPDF()`, and `SaveAllAsPDF()`. +Use this method before you create a PDF with methods such as `HTTPUpload()`, `SaveAsPDF()`, and `SaveAllAsPDF()`. Only the core module license is required to use this method. \ No newline at end of file diff --git a/info/api/Addon_Webcam.md b/_articles/info/api/Addon_Webcam.md similarity index 92% rename from info/api/Addon_Webcam.md rename to _articles/info/api/Addon_Webcam.md index 2035139b..b164c2fd 100644 --- a/info/api/Addon_Webcam.md +++ b/_articles/info/api/Addon_Webcam.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API Reference - Webcam Addon APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Webcam Addon APIs breadcrumbText: Webcam Addon description: Dynamic Web TWAIN SDK Documentation API Reference Webcam Addon APIs Page -permalink: /info/api/Addon_Webcam.html --- # `{WebTwainObject}.Addon.Webcam` @@ -299,7 +298,7 @@ When you close the camera, the video stream will stop at the last frame. ## GetCameraControlPropertySetting() -Return information about the specified camera property. Please refer to [`CameraControlProperty`]({{site.info}}api/interfaces.html#cameracontrolproperty). +Return information about the specified camera property. Please refer to [`CameraControlProperty`](/_articles/info/api/interfaces.md#cameracontrolproperty). **Syntax** @@ -311,7 +310,7 @@ GetCameraControlPropertySetting( **Parameters** -`property`: Specify the property. Please refer to [EnumDWT_CameraControlProperty]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cameracontrolproperty). +`property`: Specify the property. Please refer to [EnumDWT_CameraControlProperty](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cameracontrolproperty). **Availability** @@ -339,7 +338,7 @@ GetCameraControlPropertySetting( ## GetCameraControlPropertyMoreSetting() -Return detailed information about the specified camera property. Please refer to [`CameraControlPropertyExtra`]({{site.info}}api/interfaces.html#cameracontrolpropertyextra). +Return detailed information about the specified camera property. Please refer to [`CameraControlPropertyExtra`](/_articles/info/api/interfaces.md#cameracontrolpropertyextra). **Syntax** @@ -351,7 +350,7 @@ GetCameraControlPropertyMoreSetting( **Parameters** -`property`: Specify the property. Please refer to [EnumDWT_CameraControlProperty]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cameracontrolproperty). +`property`: Specify the property. Please refer to [EnumDWT_CameraControlProperty](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cameracontrolproperty). **Availability** @@ -393,7 +392,7 @@ SetCameraControlPropertySetting( **Parameters** -`property`: Specify the property. Please refer to [EnumDWT_CameraControlProperty]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cameracontrolproperty). +`property`: Specify the property. Please refer to [EnumDWT_CameraControlProperty](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cameracontrolproperty). `value`: Specify the value. @@ -425,7 +424,7 @@ SetCameraControlPropertySetting( ## GetVideoPropertySetting() -Return information about the specified video property. Please refer to [`VideoControlProperty`]({{site.info}}api/interfaces.html#videocontrolproperty). +Return information about the specified video property. Please refer to [`VideoControlProperty`](/_articles/info/api/interfaces.md#videocontrolproperty). **Syntax** @@ -437,7 +436,7 @@ GetVideoPropertySetting( **Parameters** -`property`: Specify the property. Please refer to [EnumDWT_VideoProperty]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_videoproperty). +`property`: Specify the property. Please refer to [EnumDWT_VideoProperty](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_videoproperty). **Availability** @@ -465,7 +464,7 @@ GetVideoPropertySetting( ## GetVideoPropertyMoreSetting() -Return detailed information about the specified video property. Please refer to [`VideoControlPropertyExtra`]({{site.info}}api/interfaces.html#videocontrolpropertyextra). +Return detailed information about the specified video property. Please refer to [`VideoControlPropertyExtra`](/_articles/info/api/interfaces.md#videocontrolpropertyextra). **Syntax** @@ -477,7 +476,7 @@ GetVideoPropertyMoreSetting( **Parameters** -`property`: Specify the property. Please refer to [EnumDWT_VideoProperty]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_videoproperty). +`property`: Specify the property. Please refer to [EnumDWT_VideoProperty](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_videoproperty). **Availability** @@ -519,7 +518,7 @@ SetVideoPropertySetting( **Parameters** -`property`: Specify the property. Please refer to [EnumDWT_VideoProperty]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_videoproperty). +`property`: Specify the property. Please refer to [EnumDWT_VideoProperty](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_videoproperty). `value`: Specify the value. @@ -551,7 +550,7 @@ SetVideoPropertySetting( ## GetFrameRate() -Return the frame rates supported by the current camera. Please refer to [`FrameRate`]({{site.info}}api/interfaces.html#framerate). +Return the frame rates supported by the current camera. Please refer to [`FrameRate`](/_articles/info/api/interfaces.md#framerate). **Syntax** @@ -585,7 +584,7 @@ GetFrameRate(): FrameRate; ## GetMediaType() -Return the media types supported by the current camera. Please refer to [`MediaType`]({{site.info}}api/interfaces.html#mediatype). +Return the media types supported by the current camera. Please refer to [`MediaType`](/_articles/info/api/interfaces.md#mediatype). **Syntax** @@ -619,7 +618,7 @@ GetMediaType(): MediaType; ## GetResolution() -Return the resolutions supported by the current camera. Please refer to [`Resolution`]({{site.info}}api/interfaces.html#resolution). +Return the resolutions supported by the current camera. Please refer to [`Resolution`](/_articles/info/api/interfaces.md#resolution). **Syntax** @@ -785,7 +784,7 @@ SetVideoRotateMode( **Parameters** -`mode`: Specify the rotate mode. Please refer to [EnumDWT_VideoRotateMode]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_videorotatemode). +`mode`: Specify the rotate mode. Please refer to [EnumDWT_VideoRotateMode](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_videorotatemode). **Availability** diff --git a/info/api/Device.md b/_articles/info/api/Device.md similarity index 98% rename from info/api/Device.md rename to _articles/info/api/Device.md index a7072f70..17438a5f 100644 --- a/info/api/Device.md +++ b/_articles/info/api/Device.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN API Reference - Device APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Device APIs breadcrumbText: Device description: Dynamic Web TWAIN SDK Documentation API Reference Device APIs Page -permalink: /info/api/Device.html --- # {DeviceObject} Scan diff --git a/info/api/Dynamsoft_Enum.md b/_articles/info/api/Dynamsoft_Enum.md similarity index 97% rename from info/api/Dynamsoft_Enum.md rename to _articles/info/api/Dynamsoft_Enum.md index d934f9f4..2c5b0523 100644 --- a/info/api/Dynamsoft_Enum.md +++ b/_articles/info/api/Dynamsoft_Enum.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK API Reference - Enumerations keywords: Dynamic Web TWAIN, Documentation, API Reference, Enumerations breadcrumbText: Enumerations description: Dynamic Web TWAIN SDK Documentation API Reference Enumerations Page -permalink: /info/api/Dynamsoft_Enum.html --- # Enumerations @@ -270,8 +269,8 @@ permalink: /info/api/Dynamsoft_Enum.html | IT_MULTIPAGE_TIF | 8 | Note: -- IT_MULTIPAGE_PDF & IT_MULTIPAGE_TIF are only applicable to the ImageType of [`startScan()`]({{site.info}}api/WebTwain_Acquire.html#startscan). -- IT_ALL is only applicable to the ImageType of [`LoadImageEx()`]({{site.info}}api/WebTwain_IO.html#loadimageex){% comment %}, [`LoadImageFromBase64Binary()`]({{site.info}}api/WebTwain_IO.html#loadimagefrombase64binary), [`HTTPDownloadEx()`]({{site.info}}api/WebTwain_IO.html#httpdownloadex), [`HTTPDownloadThroughPost()`]({{site.info}}api/WebTwain_IO.html#httpdownloadthroughpost){% endcomment %}. +- IT_MULTIPAGE_PDF & IT_MULTIPAGE_TIF are only applicable to the ImageType of [`startScan()`](/_articles/info/api/WebTwain_Acquire.md#startscan). +- IT_ALL is only applicable to the ImageType of [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex){% comment %}, [`LoadImageFromBase64Binary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombase64binary), [`HTTPDownloadEx()`](/_articles/info/api/WebTwain_IO.md#httpdownloadex), [`HTTPDownloadThroughPost()`](/_articles/info/api/WebTwain_IO.md#httpdownloadthroughpost){% endcomment %}. ## `Dynamsoft.DWT.EnumDWT_ImageFormatType` diff --git a/info/api/Dynamsoft_FileUploader.md b/_articles/info/api/Dynamsoft_FileUploader.md similarity index 96% rename from info/api/Dynamsoft_FileUploader.md rename to _articles/info/api/Dynamsoft_FileUploader.md index 8e934cc4..5a574d86 100644 --- a/info/api/Dynamsoft_FileUploader.md +++ b/_articles/info/api/Dynamsoft_FileUploader.md @@ -6,12 +6,11 @@ title: Dynamic Web TWAIN SDK API Reference - Uploader APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Uploader APIs breadcrumbText: File Uploader description: Dynamic Web TWAIN SDK Documentation API Reference Uploader APIs Page -permalink: /info/api/Dynamsoft_FileUploader.html --- # FileUploader Module -The File Uploader is an independent component that is dedicated to file uploading. [>> HTTP with the File Uploader]({{site.indepth}}/features/output.html#http-with-the-file-uploader) +The File Uploader is an independent component that is dedicated to file uploading. ## Dynamsoft.FileUploader @@ -366,7 +365,7 @@ FormField: FormField; **Usage notes** -Use the `Add()` method of the Object to add fields for uploading. Please refer to [`FormField`]({{site.info}}api/interfaces.html#formfield). +Use the `Add()` method of the Object to add fields for uploading. Please refer to [`FormField`](/_articles/info/api/interfaces.md#formfield). **Example** @@ -477,7 +476,7 @@ ServerUrl: string; ### SourceValue -Specifies the files to be uploaded and the name for it. The files are specified by URLs which can be created with the method [`GenerateURLForUploadData()`]({{site.info}}api/WebTwain_Util.html#generateurlforuploaddata). +Specifies the files to be uploaded and the name for it. The files are specified by URLs which can be created with the method [`GenerateURLForUploadData()`](/_articles/info/api/WebTwain_Util.md#generateurlforuploaddata). **Syntax** @@ -509,7 +508,7 @@ SourceValue: SourceValue; **Usage notes** -Use the `Add()` method of the Object to add data for uploading. Please refer to [`SourceValue`]({{site.info}}api/interfaces.html#sourcevalue). +Use the `Add()` method of the Object to add data for uploading. Please refer to [`SourceValue`](/_articles/info/api/interfaces.md#sourcevalue). **Example** diff --git a/info/api/Dynamsoft_WebTwainEnv.md b/_articles/info/api/Dynamsoft_WebTwainEnv.md similarity index 98% rename from info/api/Dynamsoft_WebTwainEnv.md rename to _articles/info/api/Dynamsoft_WebTwainEnv.md index f2f00f06..f34deb33 100644 --- a/info/api/Dynamsoft_WebTwainEnv.md +++ b/_articles/info/api/Dynamsoft_WebTwainEnv.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API Reference - Global APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Global APIs breadcrumbText: Global description: Dynamic Web TWAIN SDK Documentation API Reference Global APIs Page -permalink: /info/api/Dynamsoft_WebTwainEnv.html --- # Global @@ -279,7 +278,7 @@ CreateDWTObjectEx( **Parameters** -`dwtInitialConfig`: Specify the initial configuration of the instance. Please refer to [`DWTInitialConfig`]({{site.info}}api/Interfaces.html#DWTInitialConfig). +`dwtInitialConfig`: Specify the initial configuration of the instance. Please refer to [`DWTInitialConfig`](/_articles/info/api/interfaces.md#DWTInitialConfig). `successCallback`: A callback function that is executed if the request succeeds. - `DWTObject`: The `WebTwain` instance. @@ -686,7 +685,7 @@ Defines the Id and UI of the WebTwain instances. Containers: Container[]; ``` -Please refer to [`Container`]({{site.info}}api/Interfaces.html#Container). +Please refer to [`Container`](/_articles/info/api/interfaces.md#Container). **Availability** @@ -722,7 +721,7 @@ Define the display info. CustomizableDisplayInfo: DisplayInfo; ``` -Please refer to [`DisplayInfo`]({{site.info}}api/Interfaces.html#DisplayInfo). +Please refer to [`DisplayInfo`](/_articles/info/api/interfaces.md#DisplayInfo). **Availability** @@ -1265,7 +1264,7 @@ This event triggers at the resolution of an asynchronous API. The default behaviour is to hide the mask and loading spinner triggered by `OnWebTwainPreExecute`. -You may override this function to implement your own post-excecute scenario. Please refer to this [article]({{site.indepth}}features/ui.html#loading-bar-and-backdrop). +You may override this function to implement your own post-excecute scenario. Please refer to this [article](/_articles/extended-usage/ui-customization.md#loading-bar-and-backdrop). **Syntax** @@ -1305,7 +1304,7 @@ This event triggers at the beginning of an asynchronous API. The default behaviour is to display a mask and a loading spinner. -You may override this function to either hide the default loading spinner, or define your own. Please refer to this [article]({{site.indepth}}features/ui.html#loading-bar-and-backdrop). +You may override this function to either hide the default loading spinner, or define your own. Please refer to this [article](/_articles/extended-usage/ui-customization.md#loading-bar-and-backdrop). **Syntax** diff --git a/info/api/WebTwain_Acquire.md b/_articles/info/api/WebTwain_Acquire.md similarity index 93% rename from info/api/WebTwain_Acquire.md rename to _articles/info/api/WebTwain_Acquire.md index 18ee7cbc..0ab58a26 100644 --- a/info/api/WebTwain_Acquire.md +++ b/_articles/info/api/WebTwain_Acquire.md @@ -5,13 +5,12 @@ title: Dynamic Web TWAIN SDK API Reference - Acquire APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Acquire APIs breadcrumbText: Acquire description: Dynamic Web TWAIN SDK Documentation API Reference Acquire APIs Page -permalink: /info/api/WebTwain_Acquire.html --- # {WebTwainObject} Scan -> The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn more about creating `WebTwain` instances [here]({{site.general-usage}}initialization.html). +> The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn more about creating `WebTwain` instances [here](/_articles/general-usage/initialization.md). **1. The following APIs are compatible with TWAIN, ICA, and SANE (Windows, macOS and Linux)** @@ -111,7 +110,7 @@ AcquireImage( **Parameters** -`deviceConfiguration`: Configuration for the acquisition. Please refer to [`DeviceConfiguration`]({{site.info}}api/Interfaces.html#DeviceConfiguration). +`deviceConfiguration`: Configuration for the acquisition. Please refer to [`DeviceConfiguration`](/_articles/info/api/interfaces.md#DeviceConfiguration). `successCallback`: A callback function that is executed if the request succeeds. @@ -336,7 +335,7 @@ DisableSource(): boolean; **Usage notes** -After calling `DisableSource()`, the data source remains open, and you can continue to acquire images by calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) or [`EnableSource()`]({{site.info}}api/WebTwain_Acquire.html#enablesource). +After calling `DisableSource()`, the data source remains open, and you can continue to acquire images by calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) or [`EnableSource()`](/_articles/info/api/WebTwain_Acquire.md#enablesource). --- @@ -530,7 +529,7 @@ GetSourceNames(bIncludeDetails?: boolean): string[] | SourceDetails[]; **Arguments** -`SourceDetails`: Please refer to [`SourceDetails`]({{site.info}}api/Interfaces.html#sourcedetails). +`SourceDetails`: Please refer to [`SourceDetails`](/_articles/info/api/interfaces.md#sourcedetails). **Availability** @@ -690,7 +689,7 @@ SelectSourceAsync(deviceType?: Dynamsoft.DWT.EnumDWT_DeviceType | number): Promi **Parameters** -`deviceType`: Specify the device type of scanners. Please refer to [`EnumDWT_DeviceType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_devicetype). +`deviceType`: Specify the device type of scanners. Please refer to [`EnumDWT_DeviceType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_devicetype). **Availability**
@@ -899,7 +898,7 @@ startScan(scanSetup: ScanSetup): Promise; **Parameters** -`scanSetup`: Configuration for the acquisition. Please refer to [`ScanSetup`]({{site.info}}api/Interfaces.html#scansetup). +`scanSetup`: Configuration for the acquisition. Please refer to [`ScanSetup`](/_articles/info/api/interfaces.md#scansetup). **Availability** @@ -1563,7 +1562,7 @@ Example argument for the parameter `fileName` - "C:\\webtwain" + <> + ".jpg": The scanned images will result in "C:\\webtwain1.jpg", "C:\\webtwain2.jpg", "C:\\webtwain3.jpg", etc. - "C:\\webtwain" + <%06d> + ".jpg": The scanned images will result in "C:\\webtwain000001.jpg", "C:\\webtwain000002.jpg", "C:\\webtwain000003.jpg", etc. -Available file formats are defined in [`Dynamsoft.DWT.EnumDWT_FileFormat`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_fileformat). +Available file formats are defined in [`Dynamsoft.DWT.EnumDWT_FileFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_fileformat). **Example** @@ -1681,7 +1680,7 @@ function failureCallback(errorCode, errorString) { ## BitDepth -Return or set the pixel bit depth for the current color mode (defined by [`PixelType`]({{site.info}}api/WebTwain_Acquire.html#pixeltype)). +Return or set the pixel bit depth for the current color mode (defined by [`PixelType`](/_articles/info/api/WebTwain_Acquire.md#pixeltype)). **Syntax** @@ -1713,7 +1712,7 @@ BitDepth: number; **Usage notes** -Set this property after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the desired bit depth to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the desired bit depth to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). The default bit depth is 1 for `TWPT_BW` , 8 for `TWPT_GRAY` and 24 for `TWPT_RGB` . @@ -1757,7 +1756,7 @@ The value of this property defaults to `true`, meaning that the newly acquired i If it's set to `false` , the images will be inserted before the current image. Note that by design, the current image is always the previously acquired image. This means that the images acquired after setting `IfAppendImage` to `false` will be displayed/retained in reverse order. -Read this [article]({{site.faq}}insert-new-pages-to-existing-document.html#can-i-insert-newly-scanned-pages-to-an-existing-document) learn how to insert new images to a specified index in the image buffer. +Read this [article](/_articles/faq/insert-new-pages-to-existing-document.md#can-i-insert-newly-scanned-pages-to-an-existing-document) learn how to insert new images to a specified index in the image buffer. --- @@ -1846,9 +1845,9 @@ IfDuplexEnabled: boolean; **Usage notes** -Set this property after calling [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the setting to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after calling [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the setting to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). -Not all scanners support duplex scanning. To confirm, check the user manual of the device or check the value of [`Duplex`]({{site.info}}api/WebTwain_Acquire.html#duplex) after calling [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource). +Not all scanners support duplex scanning. To confirm, check the user manual of the device or check the value of [`Duplex`](/_articles/info/api/WebTwain_Acquire.md#duplex) after calling [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource). **Example** @@ -1908,7 +1907,7 @@ IfFeederEnabled: boolean; **Usage notes** -Set this property after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the setting to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the setting to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). If the property is set to `true`, the data source attempt to acquire images from the document feeder first. Otherwise, if the data source does not have a document feeder, the data source will use the flatbed. @@ -1965,9 +1964,9 @@ IfShowUI: boolean; **Usage notes** -when the property is set to `true`, the data source displays its user interface when [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) is called. Otherwise, the scan starts immediately without displaying the UI. +when the property is set to `true`, the data source displays its user interface when [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) is called. Otherwise, the scan starts immediately without displaying the UI. -It is recommended to use this API after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) is called. +It is recommended to use this API after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) is called. **Example** @@ -2023,7 +2022,7 @@ ImageCaptureDriverType: Dynamsoft.DWT.EnumDWT_Driver | number; **Usage notes** -Set this property immediately after initializing the SDK, or after calling [`CloseSourceManager()`]({{site.info}}api/WebTwain_Acquire.html#closesourcemanager) and [`OpenSourceManager()`]({{site.info}}api/WebTwain_Acquire.html#opensourcemanager). +Set this property immediately after initializing the SDK, or after calling [`CloseSourceManager()`](/_articles/info/api/WebTwain_Acquire.md#closesourcemanager) and [`OpenSourceManager()`](/_articles/info/api/WebTwain_Acquire.md#opensourcemanager). The allowed values for `EnumDWT_Driver` are @@ -2050,7 +2049,7 @@ PageSize: Dynamsoft.DWT.EnumDWT_CapSupportedSizes | number; **Parameters** -`PageSize`: Please refer to [`EnumDWT_CapSupportedSizes`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_capsupportedsizes) +`PageSize`: Please refer to [`EnumDWT_CapSupportedSizes`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_capsupportedsizes) **Availability** @@ -2076,7 +2075,7 @@ PageSize: Dynamsoft.DWT.EnumDWT_CapSupportedSizes | number; **Usage notes** -Set this property after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the setting to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the setting to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). --- @@ -2090,7 +2089,7 @@ Return or set the pixel type used when acquiring images. PixelType: Dynamsoft.DWT.EnumDWT_PixelType | number; ``` -Please refer to [`EnumDWT_PixelType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pixeltype). +Please refer to [`EnumDWT_PixelType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pixeltype). **Availability** @@ -2116,7 +2115,7 @@ Please refer to [`EnumDWT_PixelType`]({{site.info}}api/Dynamsoft_Enum.html#dynam **Usage notes** -Set this property after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the setting to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the setting to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). --- @@ -2154,7 +2153,7 @@ Resolution: number; **Usage notes** -Set this property after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the setting to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the setting to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). --- @@ -2226,7 +2225,7 @@ BlankImageThreshold: number; **Usage notes** -`BlankImageThreshold` ranges from 0 to 255, and is 128 by default. This property only takes effect when [`PixelType`]({{site.info}}api/WebTwain_Acquire.html#pixeltype) is set to `TWPT_BW` . The bigger the value is, the more likely it is for an image to be classified as blank. +`BlankImageThreshold` ranges from 0 to 255, and is 128 by default. This property only takes effect when [`PixelType`](/_articles/info/api/WebTwain_Acquire.md#pixeltype) is set to `TWPT_BW` . The bigger the value is, the more likely it is for an image to be classified as blank. --- @@ -2264,7 +2263,7 @@ Brightness: number; **Usage notes** -Set this property after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the setting to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the setting to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). Typically, the value range is -1000 ~ 1000 where -1000 indicates the darkest and 1000 the brightest. @@ -2304,7 +2303,7 @@ Contrast: number; **Usage notes** -Set this property after [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) and before [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) for the setting to take effect upon calling [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage). +Set this property after [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) and before [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) for the setting to take effect upon calling [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage). Typically, the value range is -1000 ~ 1000, where -1000 indicates the lowest contrast and 1000 the highest contrast. @@ -2695,9 +2694,9 @@ IfAutoScan: boolean; **Usage notes** -This property is only valid when [`IfFeederEnabled`]({{site.info}}api/WebTwain_Acquire.html#iffeederenabled) is set to `true` . +This property is only valid when [`IfFeederEnabled`](/_articles/info/api/WebTwain_Acquire.md#iffeederenabled) is set to `true` . -The fundamental assumption behind this property is that the device can capture the number of images indicated by the property [`XferCount`]({{site.info}}api/WebTwain_Acquire.html#xfercount) without waiting for the Application to request the image transfers. This is only possible if the device has internal buffers capable of caching the images it captures. +The fundamental assumption behind this property is that the device can capture the number of images indicated by the property [`XferCount`](/_articles/info/api/WebTwain_Acquire.md#xfercount) without waiting for the Application to request the image transfers. This is only possible if the device has internal buffers capable of caching the images it captures. --- @@ -2735,7 +2734,7 @@ readonly IfFeederLoaded: boolean; **Usage notes** -This property is only valid when [`IfFeederEnabled`]({{site.info}}api/WebTwain_Acquire.html#iffeederenabled) and [`IfPaperDetectable`]({{site.info}}api/WebTwain_Acquire.html#ifpaperdetectable) are `true`. +This property is only valid when [`IfFeederEnabled`](/_articles/info/api/WebTwain_Acquire.md#iffeederenabled) and [`IfPaperDetectable`](/_articles/info/api/WebTwain_Acquire.md#ifpaperdetectable) are `true`. --- @@ -2996,7 +2995,7 @@ readonly ImageLayoutFrameNumber: number; Usually a chronological index of the acquired frames, these frames are related to one another in some way. Usually, they were acquired from the same page. The source assigns these values. The initial value is 1. The value resets upon acquiring a new image. -`ImageLayoutFrameNumber` property, along with other properties about the current image information, is valid only in the [`OnPreTransfer`]({{site.info}}api/WebTwain_Acquire.html#onpretransfer) and [`OnPostTransfer`]({{site.info}}api/WebTwain_Acquire.html#onposttransfer) events. +`ImageLayoutFrameNumber` property, along with other properties about the current image information, is valid only in the [`OnPreTransfer`](/_articles/info/api/WebTwain_Acquire.md#onpretransfer) and [`OnPostTransfer`](/_articles/info/api/WebTwain_Acquire.md#onposttransfer) events. The frame information here only applies to the current frame. To get information about all frames to be transferred in an acquire session, please use capability negotiation. In this case, the capability is `ICAP_FRAMES` (4372). --- @@ -3315,7 +3314,7 @@ Return the pixel type of the current image. readonly ImagePixelType: Dynamsoft.DWT.EnumDWT_PixelType | number; ``` -Please refer to [`EnumDWT_PixelType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pixeltype). +Please refer to [`EnumDWT_PixelType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pixeltype). **Availability** @@ -3385,7 +3384,7 @@ Return the type of the magnetic data if the data source supports magnetic data r readonly MagType: Dynamsoft.DWT.EnumDWT_MagType | number; ``` -Please refer to [`EnumDWT_MagType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_magtype). +Please refer to [`EnumDWT_MagType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_magtype). **Availability** @@ -3510,7 +3509,7 @@ Return or set the data source's transfer mode. TransferMode: Dynamsoft.DWT.EnumDWT_TransferMode | number; ``` -Please refer to [`EnumDWT_TransferMode`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_transfermode). +Please refer to [`EnumDWT_TransferMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_transfermode). **Availability** @@ -3738,7 +3737,7 @@ RegisterEvent("OnPostTransferAsync", function (outputInfo: OutputInfo) {}); **Parameters** -`outputInfo`: Detailed information about the image that just got transferred. Please refer to [`OutputInfo`]({{site.info}}api/Interfaces.html#outputinfo). +`outputInfo`: Detailed information about the image that just got transferred. Please refer to [`OutputInfo`](/_articles/info/api/interfaces.md#outputinfo). **Availability** @@ -3915,10 +3914,10 @@ getCapabilities( **Parameters** -`capabilities`: Specifies the capabilities to query. Please refer to [`Dynamsoft.DWT.EnumDWT_Cap`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cap). +`capabilities`: Specifies the capabilities to query. Please refer to [`Dynamsoft.DWT.EnumDWT_Cap`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cap). `successCallback`: A callback function that is executed if the request succeeds. -- `capabilityDetails`: Detailed information about the specified capabilities. Please refer to [`CapabilityDetails`]({{site.info}}api/Interfaces.html#capabilitydetails). +- `capabilityDetails`: Detailed information about the specified capabilities. Please refer to [`CapabilityDetails`](/_articles/info/api/interfaces.md#capabilitydetails). `failureCallback`: A callback function that is executed if the request fails. - `errorCode`: The error code. @@ -3974,7 +3973,7 @@ setCapabilities( `failureCallback`: A callback function that is executed if the request fails. - `capabilities`: The capabilities to set. -Please refer to [`Capabilities`]({{site.info}}api/Interfaces.html#capabilities). +Please refer to [`Capabilities`](/_articles/info/api/interfaces.md#capabilities). **Availability** @@ -4074,13 +4073,13 @@ GetDevicesAsync(deviceType?: Dynamsoft.DWT.EnumDWT_DeviceType | number, refresh? **Parameters** -`deviceType`: The device type. Please refer to [`EnumDWT_DeviceType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_devicetype). +`deviceType`: The device type. Please refer to [`EnumDWT_DeviceType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_devicetype). `refresh`: Default value is `false`. **Arguments** -`Device`: Please refer to [`Device`]({{site.info}}api/Interfaces.html#device). +`Device`: Please refer to [`Device`](/_articles/info/api/interfaces.md#device). **Example** @@ -4150,7 +4149,7 @@ DWTObject.GetDevicesAsync().then((deviceList)=>{ **Parameters** -`device`: the device object. Please refer to [`Device`]({{site.info}}api/Interfaces.html#device). +`device`: the device object. Please refer to [`Device`](/_articles/info/api/interfaces.md#device). **Availability** @@ -4194,7 +4193,7 @@ AcquireImageAsync(deviceConfiguration?: DeviceConfiguration): Promise< boolean>; **Parameters** -`deviceConfiguration`: The device configuration. Please refer to [`DeviceConfiguration`]({{site.info}}api/Interfaces.html#DeviceConfiguration). +`deviceConfiguration`: The device configuration. Please refer to [`DeviceConfiguration`](/_articles/info/api/interfaces.md#DeviceConfiguration). **Availability** diff --git a/info/api/WebTwain_Buffer.md b/_articles/info/api/WebTwain_Buffer.md similarity index 93% rename from info/api/WebTwain_Buffer.md rename to _articles/info/api/WebTwain_Buffer.md index ff345056..ef5575a1 100644 --- a/info/api/WebTwain_Buffer.md +++ b/_articles/info/api/WebTwain_Buffer.md @@ -5,12 +5,11 @@ title: Dynamic Web TWAIN SDK API Reference - Buffer APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Buffer APIs breadcrumbText: Buffer description: Dynamic Web TWAIN SDK Documentation API Reference Buffer APIs Page -permalink: /info/api/WebTwain_Buffer.html --- # {WebTwainObject} Buffer Manage -The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object]({{site.extended-usage}}advanced-initialization.html#instantiating-webtwain-without-onwebtwainready). +The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object](/_articles/extended-usage/advanced-initialization.md#instantiating-webtwain-without-onwebtwainready). **Methods** @@ -224,7 +223,7 @@ GetTagList(): TagInfo[]; **Arguments** -`TagInfo`: Please refer to [TagInfo]({{site.info}}api/Interfaces.html#taginfo). +`TagInfo`: Please refer to [TagInfo](/_articles/info/api/interfaces.md#taginfo). **Availability** @@ -768,7 +767,7 @@ GetSkewAngleEx( **Usage notes** -After you get the skew angle of an image, you can rotate it with the method [`Rotate()`]({{site.info}}api/WebTwain_Edit.html#rotate) to perform deskewing. +After you get the skew angle of an image, you can rotate it with the method [`Rotate()`](/_articles/info/api/WebTwain_Edit.md#rotate) to perform deskewing. --- @@ -828,7 +827,7 @@ GetImageSizeWithSpecifiedType(index: number, type: Dynamsoft.DWT.EnumDWT_ImageTy `index`: Specify the image. -`type`: Specify the expected file type. Please refer to [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: Specify the expected file type. Please refer to [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). **Availability** @@ -866,7 +865,7 @@ GetSelectedImagesSize(type: Dynamsoft.DWT.EnumDWT_ImageType | number): number; **Parameters** -`type`: Specify the expected file type. Please refer to [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: Specify the expected file type. Please refer to [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). **Availability** @@ -1507,7 +1506,7 @@ readonly BlankImageCurrentStdDev: number; **Usage notes** -This property is only valid after [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress) or [`IsBlankImage()`]({{site.info}}api/WebTwain_Buffer.html#isblankimage) is called. +This property is only valid after [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress) or [`IsBlankImage()`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) is called. --- @@ -1547,7 +1546,7 @@ BlankImageMaxStdDev: number; [0, 100] is the interval of allowed values, inclusive. 0 gives a single-color image. The default value is 1. -This property is only valid before [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress) is called. +This property is only valid before [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress) is called. --- @@ -1586,7 +1585,7 @@ BlankImageThreshold: number; **Usage notes** [0, 255] is the interval of allowed values, inclusive. The default value is 128. -This property is only valid before [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress) is called. +This property is only valid before [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress) is called. --- @@ -1716,7 +1715,7 @@ IsBlankImageAsync(index: number,
**Usage Notes** -This API uses a different algorithm than the one used in [`IsBlankImage()`]({{site.info}}api/WebTwain_Buffer.html#isblankimage) and [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress), which allows you to judge a page as not blank if it has marks within a defined size. If the mark on the page satisfies the comparison parameters, then the page will be deemed not blank. +This API uses a different algorithm than the one used in [`IsBlankImage()`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) and [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress), which allows you to judge a page as not blank if it has marks within a defined size. If the mark on the page satisfies the comparison parameters, then the page will be deemed not blank. Example: The mark on the page is 11 pixels tall, `minBlockHeight` is set to 9 pixels and `maxBlockHeight` is set to 13 pixels, the page will be marked as not blank. @@ -1760,15 +1759,15 @@ IsBlankImageExpress(index: number): boolean; **Usage notes** -[`IsBlankImage()`]({{site.info}}api/WebTwain_Buffer.html#isblankimage) is more accurate than [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress) but it works slower. +[`IsBlankImage()`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) is more accurate than [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress) but it works slower. -[`BlankImageCurrentStdDev`]({{site.info}}api/WebTwain_Buffer.html#blankimagecurrentstddev) should be read after either [`IsBlankImage()`]({{site.info}}api/WebTwain_Buffer.html#isblankimage) or [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress). +[`BlankImageCurrentStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagecurrentstddev) should be read after either [`IsBlankImage()`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) or [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress). -If you believe an image should be blank but [`IsBlankImage()`]({{site.info}}api/WebTwain_Buffer.html#isblankimage) or [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress) is returning `false`, you can read [`BlankImageCurrentStdDev`]({{site.info}}api/WebTwain_Buffer.html#blankimagecurrentstddev) for that image and then set a bigger value to [`BlankImageMaxStdDev`]({{site.info}}api/WebTwain_Buffer.html#blankimagemaxstddev). +If you believe an image should be blank but [`IsBlankImage()`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) or [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress) is returning `false`, you can read [`BlankImageCurrentStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagecurrentstddev) for that image and then set a bigger value to [`BlankImageMaxStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagemaxstddev). -Both [`BlankImageCurrentStdDev`]({{site.info}}api/WebTwain_Buffer.html#blankimagecurrentstddev) and [`BlankImageMaxStdDev`]({{site.info}}api/WebTwain_Buffer.html#blankimagemaxstddev) range from 0 to 100. +Both [`BlankImageCurrentStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagecurrentstddev) and [`BlankImageMaxStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagemaxstddev) range from 0 to 100. -If the image is not blank and it is not black and white, [`IsBlankImage()`]({{site.info}}api/WebTwain_Buffer.html#isblankimage) or [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress) may return `true`. In that case, you can increase the [`BlankImageThreshold`]({{site.info}}api/WebTwain_Buffer.html#blankimagethreshold) value so that the image is not detected as blank. +If the image is not blank and it is not black and white, [`IsBlankImage()`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) or [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress) may return `true`. In that case, you can increase the [`BlankImageThreshold`](/_articles/info/api/WebTwain_Buffer.md#blankimagethreshold) value so that the image is not detected as blank. --- @@ -1808,7 +1807,7 @@ IfAllowLocalCache: boolean; The default value of `IfAllowLocalCache` is true. When the property is true, you can scan as many images as you want as long as you have a big enough disk. The default threshold is set to 800 (MB), anything beyond 800MB gets compressed, encrypted and cached on the local disk. -If necessary, you can set the threshold using [`BufferMemoryLimit`]({{site.info}}api/WebTwain_Buffer.html#buffermemorylimit) for better performance. +If necessary, you can set the threshold using [`BufferMemoryLimit`](/_articles/info/api/WebTwain_Buffer.md#buffermemorylimit) for better performance. All cached data is encrypted and can only be read by Dynamic Web TWAIN and it will be destroyed when it is no longer used. --- @@ -1827,7 +1826,7 @@ RegisterEvent('OnBufferChanged', **Parameters** -`bufferChangeInfo`: Details about the buffer change. Please refer to [`BufferChangeInfo`]({{site.info}}api/Interfaces.html#bufferchangeinfo). +`bufferChangeInfo`: Details about the buffer change. Please refer to [`BufferChangeInfo`](/_articles/info/api/interfaces.md#bufferchangeinfo). **Availability** @@ -2416,7 +2415,7 @@ GetDocumentInfoList(): DocumentInfo[]; **Arguments** -`DocumentInfo`: Please refer to [`DocumentInfo`]({{site.info}}api/Interfaces.html#documentinfo). +`DocumentInfo`: Please refer to [`DocumentInfo`](/_articles/info/api/interfaces.md#documentinfo). **Availability** @@ -2458,7 +2457,7 @@ updateImage(imageId: string, blob: Blob): Promise ; `blob`: The blob of the new image. Only support the blob which contains single image page. Multi-pages Tiff and PDF are not supported. - + **Availability** diff --git a/info/api/WebTwain_Edit.md b/_articles/info/api/WebTwain_Edit.md similarity index 98% rename from info/api/WebTwain_Edit.md rename to _articles/info/api/WebTwain_Edit.md index eda6646a..ab6eee2a 100644 --- a/info/api/WebTwain_Edit.md +++ b/_articles/info/api/WebTwain_Edit.md @@ -5,12 +5,11 @@ title: Dynamic Web TWAIN SDK API Reference - Edit APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Edit APIs breadcrumbText: Edit description: Dynamic Web TWAIN SDK Documentation API Reference Edit APIs Page -permalink: /info/api/WebTwain_Edit.html --- # {WebTwainObject} Edit -The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object]({{site.extended-usage}}advanced-initialization.html#instantiating-webtwain-without-onwebtwainready). +The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object](/_articles/extended-usage/advanced-initialization.md#instantiating-webtwain-without-onwebtwainready). **Methods** @@ -149,7 +148,7 @@ ChangeImageSize( `height`: Specify the new height. -`method`: Specify the algorithm for the change. Please refer to [EnumDWT_InterpolationMethod]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_interpolationmethod). +`method`: Specify the algorithm for the change. Please refer to [EnumDWT_InterpolationMethod](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_interpolationmethod). `successCallback`: A callback function that is executed if the request succeeds. @@ -221,7 +220,7 @@ SetDPI( `resample`: Whether to resample the image. When it is true, the image size will change. -`method`: Specify the algorithm for the change. Please refer to [EnumDWT_InterpolationMethod]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_interpolationmethod). +`method`: Specify the algorithm for the change. Please refer to [EnumDWT_InterpolationMethod](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_interpolationmethod). `successCallback`: A callback function that is executed if the request succeeds. @@ -882,7 +881,7 @@ RotateEx( `keepSize`: Whether to keep the original size. -`method`: Specify the algorithm for the change. Please refer to [Dynamsoft.DWT.EnumDWT_InterpolationMethod]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_interpolationmethod). +`method`: Specify the algorithm for the change. Please refer to [Dynamsoft.DWT.EnumDWT_InterpolationMethod](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_interpolationmethod). `successCallback`: A callback function that is executed if the request succeeds. diff --git a/info/api/WebTwain_IO.md b/_articles/info/api/WebTwain_IO.md similarity index 91% rename from info/api/WebTwain_IO.md rename to _articles/info/api/WebTwain_IO.md index 228ee52c..f1f5e28b 100644 --- a/info/api/WebTwain_IO.md +++ b/_articles/info/api/WebTwain_IO.md @@ -6,12 +6,11 @@ title: Dynamic Web TWAIN SDK API Reference - Input and Output APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, IO APIs breadcrumbText: IO description: Dynamic Web TWAIN SDK Documentation | API Reference | IO APIs Page -permalink: /info/api/WebTwain_IO.html --- # {WebTwainObject} IO -The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object]({{site.extended-usage}}advanced-initialization.html#instantiating-webtwain-without-onwebtwainready). +The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object](/_articles/extended-usage/advanced-initialization.md#instantiating-webtwain-without-onwebtwainready). **Methods** @@ -152,7 +151,7 @@ LoadImageEx( `fileName`: The path of the image to load. -`type`: The format of the image. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the image. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. @@ -184,7 +183,7 @@ LoadImageEx( **Usage Notes** -You can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) before calling this API to enable/disable "Open File" dialog. +You can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) before calling this API to enable/disable "Open File" dialog. **Example** @@ -220,7 +219,7 @@ DWTObject.LoadImageEx( **Remark** -[Load Guide]({{site.indepth}}features/input.html#load-files) +[Load Guide](/_articles/general-usage/scanner-image-acquisition.md#load-files) --- @@ -249,7 +248,7 @@ LoadImageFromBase64Binary( `imageData`: The image data which is a base64 string without the data URI scheme. -`imageType`: The format of the image. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`imageType`: The format of the image. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. @@ -281,7 +280,7 @@ LoadImageFromBase64Binary( **Usage Notes** -You may leverage [`ConvertToBase64()`]({{site.info}}api/WebTwain_IO.html#converttobase64) to get a base64 string. +You may leverage [`ConvertToBase64()`](/_articles/info/api/WebTwain_IO.md#converttobase64) to get a base64 string. **Example** @@ -309,7 +308,7 @@ DWTObject.ConvertToBase64( **Remark** -[Load Guide]({{site.indepth}}features/input.html#load-files-in-binary-or-base64-string-format) +[Load Guide](/_articles/general-usage/scanner-image-acquisition.md#load-files-in-binary-or-base64-string-format) --- @@ -362,7 +361,7 @@ LoadImageFromBinary( **Usage Notes** -You may leverage [`ConvertToBlob()`]({{site.info}}api/WebTwain_IO.html#converttoblob) to get a Blob object. +You may leverage [`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob) to get a Blob object. **Example** @@ -389,7 +388,7 @@ DWTObject.ConvertToBlob( **Remark** -[Load Guide]({{site.indepth}}features/input.html#load-files-in-binary-or-base64-string-format) +[Load Guide](/_articles/general-usage/scanner-image-acquisition.md#load-files-in-binary-or-base64-string-format) --- @@ -441,7 +440,7 @@ LoadDibFromClipboard( **Usage Notes** -If called without any callback functions, these methods (except for [`LoadImageFromBinary()`]({{site.info}}api/WebTwain_IO.html#loadimagefrombinary) ) become synchronously and return a boolean value to indicate whether it succeeded. +If called without any callback functions, these methods (except for [`LoadImageFromBinary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombinary) ) become synchronously and return a boolean value to indicate whether it succeeded. However, calling them asynchronously is recommended. @@ -449,7 +448,7 @@ However, calling them asynchronously is recommended. ## OnGetFilePath -This event is triggered when [`ShowFileDialog()`]({{site.info}}api/WebTwain_IO.html#showfiledialog) is called or when [`LoadImageEx()`]({{site.info}}api/WebTwain_IO.html#loadimageex) is called with [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) set to true. +This event is triggered when [`ShowFileDialog()`](/_articles/info/api/WebTwain_IO.md#showfiledialog) is called or when [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex) is called with [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) set to true. **Syntax** @@ -474,7 +473,7 @@ RegisterEvent( `index`: The index of the current image. -`directory`: The parent directory of currently selected file(s), "\\\\" is not included. If the methed [`ShowFileDialog()`]({{site.info}}api/WebTwain_IO.html#showfiledialog) failed, the initial directory path set in the [`ShowFileDialog()`]({{site.info}}api/WebTwain_IO.html#showfiledialog) method is returned. +`directory`: The parent directory of currently selected file(s), "\\\\" is not included. If the methed [`ShowFileDialog()`](/_articles/info/api/WebTwain_IO.md#showfiledialog) failed, the initial directory path set in the [`ShowFileDialog()`](/_articles/info/api/WebTwain_IO.md#showfiledialog) method is returned. `fileName`: The current file name. @@ -512,7 +511,7 @@ DWTObject.RegisterEvent('OnGetFilePath', function(isSave, filesCount, index, dir ## OnPostLoad -This event triggers upon returning from [`LoadImage()`]({{site.api}}WebTwain_IO.html#loadimage) or [`LoadImageEx()`]({{site.api}}WebTwain_IO.html#loadimageex), regardless of whether they succeed or not. +This event triggers upon returning from [`LoadImage()`](/_articles/info/api/WebTwain_IO.md#loadimage) or [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex), regardless of whether they succeed or not. **Syntax** @@ -529,7 +528,7 @@ RegisterEvent( `fileName`: The name of the loaded file. For example, "image1.jpg". -`fileType`: The file type. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`fileType`: The file type. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). **Availability** @@ -636,7 +635,7 @@ FTPDownloadEx( `path`: Specify the file to download. -`type`: The format of the file. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the file. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. @@ -790,7 +789,7 @@ FTPUploadEx( `path`: The path to save the file. -`type`: The format of the file. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the file. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. @@ -1258,7 +1257,7 @@ DWTObject.HTTPDownload("localhost", "/files/sample.tif", onSuccess, onFailure); **Remark** -[Download Guide]({{site.indepth}}features/input.html#download) +[Download Guide](/_articles/general-usage/scanner-image-acquisition.md#download) --- @@ -1284,7 +1283,7 @@ HTTPDownloadEx( `path`: Specify the path of the file to download. -`type`: The format of the file. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the file. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. @@ -1316,13 +1315,13 @@ HTTPDownloadEx( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). **Example** In this example, the URL points to a server-side script. -The server-side script can be written in any language and in any logic as long as it returns a file. Please refer to [Download-Server-Script]({{site.indepth}}development/Server-script.html#download-a-file). +The server-side script can be written in any language and in any logic as long as it returns a file. Please refer to [Download-Server-Script](/_articles/general-usage/server-side-scripting.md#download-a-file). ```javascript /* The sample file path is: @@ -1342,7 +1341,7 @@ DWTObject.HTTPDownloadEx("localhost", "/getFile.aspx", Dynamsoft.DWT.EnumDWT_Ima **Remark** -[Download Guide]({{site.indepth}}features/input.html#download) +[Download Guide](/_articles/general-usage/scanner-image-acquisition.md#download) --- @@ -1368,7 +1367,7 @@ HTTPDownloadThroughPost( `path`: Specify the path of the file to download. -`type`: The format of the file. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the file. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. @@ -1431,13 +1430,13 @@ HTTPUpload( **Parameters** -`URL`: The server-side script to receive the post. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`URL`: The server-side script to receive the post. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `indices`: Specify the image(s). -`type`: The format of the file. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the file. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). -`dataFormat`: Whether to upload the file as binary or a base64 string. Please refer to [`EnumDWT_UploadDataFormat`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_uploaddataformat). +`dataFormat`: Whether to upload the file as binary or a base64 string. Please refer to [`EnumDWT_UploadDataFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_uploaddataformat). `fileName`: The file name. If `fileName` specifies the extension of the file additionally, - if the extension is not the same as the format of the file which is specified by `type`, the extra extension will be added to the file name. For example, `fileName` is set to `"test.jpg"`, and `type` is `Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF`, the final file name would be `test.jpg.pdf` and the file format is PDF. @@ -1474,7 +1473,7 @@ HTTPUpload( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). **Example** @@ -1500,7 +1499,7 @@ function OnServerReturnedSomething(errCode, errString, responseStr) { **Remark** -[Upload Guide]({{site.indepth}}features/output.html#upload) +[Upload Guide](/_articles/general-usage/image-export/index.md#upload) --- @@ -1529,7 +1528,7 @@ HTTPUploadThroughPutEx( `path`: Specify the path to put the file. -`type`: The format of the file. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the file. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. @@ -1584,7 +1583,7 @@ HTTPUploadThroughPost( `index`: Specify the image. -`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `fileName`: The file name. @@ -1619,7 +1618,7 @@ HTTPUploadThroughPost( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). **Example** @@ -1678,11 +1677,11 @@ HTTPUploadThroughPostEx( `index`: Specify the image. -`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `fileName`: The file name. -`type`: The format of the file. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The format of the file. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `onEmptyResponse`: A callback function that is executed if the response is empty. @@ -1715,7 +1714,7 @@ HTTPUploadThroughPostEx( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). --- @@ -1742,7 +1741,7 @@ HTTPUploadAllThroughPostAsMultiPageTIFF( `host`: The HTTP Host. -`target`: The target wherethe request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`target`: The target wherethe request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `fileName`: The file name. @@ -1777,7 +1776,7 @@ HTTPUploadAllThroughPostAsMultiPageTIFF( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). --- @@ -1804,7 +1803,7 @@ HTTPUploadAllThroughPostAsPDF( `host`: The HTTP Host. -`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `fileName`: The file name. @@ -1839,7 +1838,7 @@ HTTPUploadAllThroughPostAsPDF( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). --- @@ -1866,7 +1865,7 @@ HTTPUploadThroughPostAsMultiPagePDF( `host`: The HTTP Host. -`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `fileName`: The file name. @@ -1901,7 +1900,7 @@ HTTPUploadThroughPostAsMultiPagePDF( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). --- @@ -1928,7 +1927,7 @@ HTTPUploadThroughPostAsMultiPageTIFF( `host`: The HTTP Host. -`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`target`: The target where the request is sent. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `fileName`: The file name. @@ -1963,7 +1962,7 @@ HTTPUploadThroughPostAsMultiPageTIFF( **Usage Notes** -If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) to true and set the correct [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport). +If you want to use this method to upload / download files through HTTPS, please don't forget to set [`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) to true and set the correct [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). --- @@ -1995,7 +1994,7 @@ httpUploadBlob( **Parameters** -`URL`: The server-side script to receive the post. For the sample code of Server Script, please refer to [Upload-Server-Script]({{site.indepth}}development/Server-script.html#how-to-process-uploaded-files). +`URL`: The server-side script to receive the post. For the sample code of Server Script, please refer to [Upload-Server-Script](/_articles/general-usage/server-side-scripting.md#how-to-process-uploaded-files). `blobData`: The blob data of the image to upload. @@ -2004,7 +2003,7 @@ httpUploadBlob( - if the extension is the same as the blob type, the file name equals to the string which is specified by `fileName`. For example, `fileName` is set to `"test.pdf"`, and blob type is `application/pdf`, the final file name would be `test.pdf` and the file format is PDF. `optionConfig`: -- `responseType`: The response type. Please refer to [`EnumDWT_ResponseType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_responsetype). +- `responseType`: The response type. Please refer to [`EnumDWT_ResponseType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_responsetype). - `formFields`: The fields to the HTTP Post Form. - `name`: The name of field. - `value`: The value of field. @@ -2269,10 +2268,10 @@ ConvertToBase64( `indices`: Specify one or multiple images. -`type`: The file type. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The file type. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. -- `result`: The resulting base64 string. Please refer to [`Base64Result`]({{site.info}}api/Interfaces.html#base64result). +- `result`: The resulting base64 string. Please refer to [`Base64Result`](/_articles/info/api/interfaces.md#base64result). - `indices`: The indices of the converted images. - `type`: The file type. @@ -2342,7 +2341,7 @@ ConvertToBlob( `indices`: Specify one or multiple images. -`type`: The file type. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: The file type. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. - `result`: The resulting blob. @@ -2417,9 +2416,9 @@ OutputSelectedAreaAsync( `area`: Area of image to be copied. X,Y is top left corner origin, width and height is size of area to be copied -`type`: The target image type of the blob/base64 (See [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype) for allowable types). +`type`: The target image type of the blob/base64 (See [`Dynamsoft.DWT.EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype) for allowable types). -`imageFormatType`: Specify if the return should be Blob or base64 string ([`Dynamsoft.DWT.EnumDWT_ImageFormatType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imageformattype) for values) +`imageFormatType`: Specify if the return should be Blob or base64 string ([`Dynamsoft.DWT.EnumDWT_ImageFormatType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imageformattype) for values) **Availability** @@ -2502,7 +2501,7 @@ SaveAsBMP( **Usage Notes** -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to `true`. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to `true`. --- @@ -2563,7 +2562,7 @@ SaveAsJPEG( **Usage notes** -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to `true`. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to `true`. --- @@ -2624,9 +2623,9 @@ SaveAsPDF( **Usage notes** -Learn about [how to config PDF save settings]({{site.info}}api/Addon_PDF.html#writesetup). +Learn about [how to config PDF save settings](/_articles/info/api/Addon_PDF.md#writesetup). -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to `true`. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to `true`. --- @@ -2687,7 +2686,7 @@ SaveAsPNG( **Usage notes** -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to true. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to true. --- @@ -2748,7 +2747,7 @@ SaveAsTIFF( **Usage notes** -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to true. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to true. --- @@ -2807,7 +2806,7 @@ SaveAllAsMultiPageTIFF( {% comment %}If you are using WASM mode on the desktop, the image will always be saved to the Downloads folder even if you specify an absolute path.{% endcomment %} -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to true. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to true. --- @@ -2864,9 +2863,9 @@ SaveAllAsPDF( **Usage notes** -Learn about [how to config PDF save settings]({{site.info}}api/Addon_PDF.html#writesetup). +Learn about [how to config PDF save settings](/_articles/info/api/Addon_PDF.md#writesetup). -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to true. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to true. --- @@ -2923,9 +2922,9 @@ SaveSelectedImagesAsMultiPagePDF( **Usage notes** -Learn about [how to config PDF save settings]({{site.info}}api/Addon_PDF.html#write-setup). +Learn about [how to config PDF save settings](/_articles/info/api/Addon_PDF.md#write-setup). -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to `true`. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to `true`. --- @@ -2984,7 +2983,7 @@ SaveSelectedImagesAsMultiPageTIFF( If called without any callback functions, these methods become synchronously and return a boolean value to indicate whether it succeeded. However, calling them asynchronously is recommended. -If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) to `true`. +If you would like to save images by showing the 'Save File' dialog box, you can set [`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) to `true`. --- @@ -3119,7 +3118,7 @@ SetTiffCustomTag( The method `SetTiffCustomTag()` sets one or up to 32 tags to be added to a TIFF file when generating it. The content of the tags can be plain text or a base64-encoded string. If it's encoded, it'll be decoded when generating the TIFF file. -To make sure you don't included unwanted tags, call [`ClearTiffCustomTag()`]({{site.info}}api/WebTwain_IO.html#cleartiffcustomtag) to clear old tags before setting up new ones. +To make sure you don't included unwanted tags, call [`ClearTiffCustomTag()`](/_articles/info/api/WebTwain_IO.md#cleartiffcustomtag) to clear old tags before setting up new ones. **Example** @@ -3377,7 +3376,7 @@ IfShowCancelDialogWhenImageTransfer: boolean; **Usage Notes** -This API is only valid if [`IfShowProgressBar`]({{site.info}}api/WebTwain_IO.html#ifshowprogressbar) is set to `true`. +This API is only valid if [`IfShowProgressBar`](/_articles/info/api/WebTwain_IO.md#ifshowprogressbar) is set to `true`. --- @@ -3479,7 +3478,7 @@ ShowFileDialog( The `filter` pattern string consists of a combination(s) of valid file extensions with asterisk (\*). For example: `JPG, PNG and TIF | *.jpg;*png;*.tif` . On macOS, the string is different. For example `JPG, PNG , TIF` . To show all files, use `All Files | *.*` . Do not include spaces in the pattern string. -This method will trigger [`OnGetFilePath`]({{site.info}}api/WebTwain_IO.html#ongetfilepath) event even when it fails. If multiple files are selected, the event will be called multiple times. +This method will trigger [`OnGetFilePath`](/_articles/info/api/WebTwain_IO.md#ongetfilepath) event even when it fails. If multiple files are selected, the event will be called multiple times. **Example** @@ -3945,7 +3944,7 @@ When you save a new image in the same name of an existing TIFF file: ## TIFFCompressionType -Return or set the compression type for TIFF files. Please refer to [`EnumDWT_TIFFCompressionType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_tiffcompressiontype). +Return or set the compression type for TIFF files. Please refer to [`EnumDWT_TIFFCompressionType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_tiffcompressiontype). **Syntax** @@ -3985,7 +3984,7 @@ When set to `TIFF_JPEG` (7), 1-bit images will be compressed in `TIFF_T6` (4), c `TIFF_RLE` (2), `TIFF_T4` (3), `TIFF_FAX3` (3) and `TIFF_PACKBITS` (32773) only support compression of 1-bit images. `TIFF_JPEG` (7) supports compression of 8-bit above color images and 8-bit grey images. -When `TIFF_JPEG` (7) is used, you can use [`JPEGQuality`]({{site.info}}api/WebTwain_IO.html#jpegquality) to further reduce the size of the TIFF file. +When `TIFF_JPEG` (7) is used, you can use [`JPEGQuality`](/_articles/info/api/WebTwain_IO.md#jpegquality) to further reduce the size of the TIFF file. ## IfSortBySelectionOrder diff --git a/info/api/WebTwain_Util.md b/_articles/info/api/WebTwain_Util.md similarity index 80% rename from info/api/WebTwain_Util.md rename to _articles/info/api/WebTwain_Util.md index f9519a0c..706749da 100644 --- a/info/api/WebTwain_Util.md +++ b/_articles/info/api/WebTwain_Util.md @@ -5,12 +5,11 @@ title: Dynamic Web TWAIN SDK API Reference - Utility APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Utility APIs breadcrumbText: Utility description: Dynamic Web TWAIN SDK Documentation API Reference Utility APIs Page -permalink: /info/api/WebTwain_Util.html --- # {WebTwainObject} Util -The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object]({{site.extended-usage}}advanced-initialization.html#instantiating-webtwain-without-onwebtwainready). +The properties and methods on this page live in the namespace {WebTwainObject}. {WebTwainObject} denotes the `WebTwain` instance. Learn about [how to create a web twain object](/_articles/extended-usage/advanced-initialization.md#instantiating-webtwain-without-onwebtwainready). **Methods** @@ -112,7 +111,7 @@ UnregisterEvent(name: string, callback?: (...arg: any[]) => void): boolean; ## GenerateURLForUploadData() -Generate a URL to be used by a [FileUpoader]({{site.info}}api/Dynamsoft_FileUploader.html) instance to fetch the data to upload. +Generate a URL to be used by a [FileUpoader](/_articles/info/api/Dynamsoft_FileUploader.md) instance to fetch the data to upload. **Syntax** @@ -136,12 +135,12 @@ GenerateURLForUploadData( `indices`: Specify the images to upload. -`type`: Specify the file type. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +`type`: Specify the file type. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `successCallback`: A callback function that is executed if the request succeeds. - `resultURL`: The generated URL. - `indices`: The indices of the images. -- `type`: The file type. Please refer to [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype). +- `type`: The file type. Please refer to [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype). `failureCallback`: A callback function that is executed if the request fails. - `errorCode`: The error code. @@ -233,7 +232,7 @@ readonly ErrorCode: number; **Usage notes** -The [`ErrorCode`]({{site.info}}api/WebTwain_Util.html#errorcode) and [`ErrorString`]({{site.info}}api/WebTwain_Util.html#errorstring) always reflect the result of the last API call. So make sure you read them in time. +The [`ErrorCode`](/_articles/info/api/WebTwain_Util.md#errorcode) and [`ErrorString`](/_articles/info/api/WebTwain_Util.md#errorstring) always reflect the result of the last API call. So make sure you read them in time. --- @@ -305,7 +304,7 @@ readonly ErrorString: string; **Usage notes** -The [`ErrorCode`]({{site.info}}api/WebTwain_Util.html#errorcode) and [`ErrorString`]({{site.info}}api/WebTwain_Util.html#errorstring) always reflect the result of the last API call. So make sure you read them in time. +The [`ErrorCode`](/_articles/info/api/WebTwain_Util.md#errorcode) and [`ErrorString`](/_articles/info/api/WebTwain_Util.md#errorstring) always reflect the result of the last API call. So make sure you read them in time. --- @@ -386,7 +385,7 @@ readonly Manufacturer: string; **Usage notes** -[`Manufacturer`]({{site.info}}api/WebTwain_Util.html#manufacturer), [`ProductFamily`]({{site.info}}api/WebTwain_Util.html#productfamily), [`ProductName`]({{site.info}}api/WebTwain_Util.html#productname) and [`VersionInfo`]({{site.info}}api/WebTwain_Util.html#versioninfo) together form the identity string of the Dynamic Web TWAIN library. +[`Manufacturer`](/_articles/info/api/WebTwain_Util.md#manufacturer), [`ProductFamily`](/_articles/info/api/WebTwain_Util.md#productfamily), [`ProductName`](/_articles/info/api/WebTwain_Util.md#productname) and [`VersionInfo`](/_articles/info/api/WebTwain_Util.md#versioninfo) together form the identity string of the Dynamic Web TWAIN library. --- @@ -424,7 +423,7 @@ readonly ProductFamily: string; **Usage notes** -[`Manufacturer`]({{site.info}}api/WebTwain_Util.html#manufacturer), [`ProductFamily`]({{site.info}}api/WebTwain_Util.html#productfamily), [`ProductName`]({{site.info}}api/WebTwain_Util.html#productname) and [`VersionInfo`]({{site.info}}api/WebTwain_Util.html#versioninfo) together form the identity string of the Dynamic Web TWAIN library. +[`Manufacturer`](/_articles/info/api/WebTwain_Util.md#manufacturer), [`ProductFamily`](/_articles/info/api/WebTwain_Util.md#productfamily), [`ProductName`](/_articles/info/api/WebTwain_Util.md#productname) and [`VersionInfo`](/_articles/info/api/WebTwain_Util.md#versioninfo) together form the identity string of the Dynamic Web TWAIN library. --- @@ -462,7 +461,7 @@ readonly ProductName: string; **Usage notes** -[`Manufacturer`]({{site.info}}api/WebTwain_Util.html#manufacturer), [`ProductFamily`]({{site.info}}api/WebTwain_Util.html#productfamily), [`ProductName`]({{site.info}}api/WebTwain_Util.html#productname) and [`VersionInfo`]({{site.info}}api/WebTwain_Util.html#versioninfo) together form the identity string of the Dynamic Web TWAIN library. +[`Manufacturer`](/_articles/info/api/WebTwain_Util.md#manufacturer), [`ProductFamily`](/_articles/info/api/WebTwain_Util.md#productfamily), [`ProductName`](/_articles/info/api/WebTwain_Util.md#productname) and [`VersionInfo`](/_articles/info/api/WebTwain_Util.md#versioninfo) together form the identity string of the Dynamic Web TWAIN library. --- @@ -500,7 +499,7 @@ readonly VersionInfo: string; **Usage notes** -[`Manufacturer`]({{site.info}}api/WebTwain_Util.html#manufacturer), [`ProductFamily`]({{site.info}}api/WebTwain_Util.html#productfamily), [`ProductName`]({{site.info}}api/WebTwain_Util.html#productname) and [`VersionInfo`]({{site.info}}api/WebTwain_Util.html#versioninfo) together form the identity string of the Dynamic Web TWAIN library. +[`Manufacturer`](/_articles/info/api/WebTwain_Util.md#manufacturer), [`ProductFamily`](/_articles/info/api/WebTwain_Util.md#productfamily), [`ProductName`](/_articles/info/api/WebTwain_Util.md#productname) and [`VersionInfo`](/_articles/info/api/WebTwain_Util.md#versioninfo) together form the identity string of the Dynamic Web TWAIN library. diff --git a/info/api/WebTwain_Viewer.md b/_articles/info/api/WebTwain_Viewer.md similarity index 95% rename from info/api/WebTwain_Viewer.md rename to _articles/info/api/WebTwain_Viewer.md index 8b105fc5..4a2a1e43 100644 --- a/info/api/WebTwain_Viewer.md +++ b/_articles/info/api/WebTwain_Viewer.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API Reference - Viewer APIs keywords: Dynamic Web TWAIN, Documentation, API Reference, Viewer APIs breadcrumbText: Viewer description: Dynamic Web TWAIN SDK Documentation API Reference Viewer APIs Page -permalink: /info/api/WebTwain_Viewer.html needGenerateH3Content: true --- @@ -167,11 +166,11 @@ createCustomElement( `location`: Define where to place the custom element. The allowed values are "left" and "right", and the default value is "right". - `ifFull`: The default value is `false`, that is, the created [`CustomElement`]({{site.info}}api/Interfaces.html#customelement) is displayed according to the set area. If set to true, the main viewer will be covered by the [`CustomElement`]({{site.info}}api/Interfaces.html#customelement). + `ifFull`: The default value is `false`, that is, the created [`CustomElement`](/_articles/info/api/interfaces.md#customelement) is displayed according to the set area. If set to true, the main viewer will be covered by the [`CustomElement`](/_articles/info/api/interfaces.md#customelement). **Arguments** -`CustomElement`: Please refer to [`CustomElement`]({{site.info}}api/Interfaces.html#customelement). +`CustomElement`: Please refer to [`CustomElement`](/_articles/info/api/interfaces.md#customelement). **Availability** @@ -214,7 +213,7 @@ Only one CustomElement object can be created. If you try creating another one, y If the width defined by the CustomElement object exceeds the width of the main viewer, the width of the main viewer is used. -The method [`unbind()`]({{site.info}}api/WebTwain_Viewer.html#unbind) will dispose all created CustomElement objects. +The method [`unbind()`](/_articles/info/api/WebTwain_Viewer.md#unbind) will dispose all created CustomElement objects. --- @@ -232,11 +231,11 @@ createImageEditor( **Parameters** -`editorSettings`: Configure the object. Please refer to [`EditorSettings`]({{site.info}}api/Interfaces.html#editorsettings). +`editorSettings`: Configure the object. Please refer to [`EditorSettings`](/_articles/info/api/interfaces.md#editorsettings). **Arguments** -`ImageEditor`: Please refer to [`ImageEditor`]({{site.info}}api/Interfaces.html#imageeditor). +`ImageEditor`: Please refer to [`ImageEditor`](/_articles/info/api/interfaces.md#imageeditor). **Availability** @@ -513,7 +512,7 @@ Replace the previous `ShowImageEditor()` method. Only one ImageEditor object can be created. If you try creating it again, you'll get the error 'An ImageEditor already exists.' and the existing ImageEditor object will be returned. -The method [`unbind()`]({{site.info}}api/WebTwain_Viewer.html#unbind) will dispose all created ImageEditor objects. +The method [`unbind()`](/_articles/info/api/WebTwain_Viewer.md#unbind) will dispose all created ImageEditor objects. --- @@ -531,11 +530,11 @@ createThumbnailViewer( **Parameters** -`thumbnailViewerSettings`: Configure the ThumbnailViewer object. Please refer to [`ThumbnailViewerSettings`]({{site.info}}api/Interfaces.html#thumbnailviewersettings). +`thumbnailViewerSettings`: Configure the ThumbnailViewer object. Please refer to [`ThumbnailViewerSettings`](/_articles/info/api/interfaces.md#thumbnailviewersettings). **Arguments** -`ThumbnailViewer`: Please refer to [`ThumbnailViewer`]({{site.info}}api/Interfaces.html#thumbnailviewer). +`ThumbnailViewer`: Please refer to [`ThumbnailViewer`](/_articles/info/api/interfaces.md#thumbnailviewer). **Availability** @@ -607,7 +606,7 @@ objThumbnailViewer.on("pageRendered", PageRendered); **Usage notes** -For the CheckboxSettings and PageNumberSettings interface, please refer to the APIs [`updateCheckboxStyle()`]({{site.info}}api/WebTwain_Viewer.html#updatecheckboxstyle) and [`updatePageNumberStyle()`]({{site.info}}api/WebTwain_Viewer.html#updatepagenumberstyle). +For the CheckboxSettings and PageNumberSettings interface, please refer to the APIs [`updateCheckboxStyle()`](/_articles/info/api/WebTwain_Viewer.md#updatecheckboxstyle) and [`updatePageNumberStyle()`](/_articles/info/api/WebTwain_Viewer.md#updatepagenumberstyle). The following table shows the events available to a ThumbnailViewer object. @@ -630,7 +629,7 @@ By default, scrolling the scroll bar on Thumbnail does not trigger the `topchang Only one ThumbnailViewer object can be created. If you try creating it again, you will get the error 'A ThumbnailViewer already exists.' and the existing ThumbnailViewer object will be returned. -The method [`unbind()`]({{site.info}}api/WebTwain_Viewer.html#unbind) will dispose all created ThumbnailViewer objects. +The method [`unbind()`](/_articles/info/api/WebTwain_Viewer.md#unbind) will dispose all created ThumbnailViewer objects. --- @@ -720,7 +719,7 @@ DWTObject.Viewer.fitWindow(); **Usage notes** -This API only works if the view mode of the viewer is set to -1 by -1 ([`singlePageMode`]({{site.info}}api/WebTwain_Viewer.html#singlepagemode) is true). +This API only works if the view mode of the viewer is set to -1 by -1 ([`singlePageMode`](/_articles/info/api/WebTwain_Viewer.md#singlepagemode) is true). The allowed values are @@ -1050,7 +1049,7 @@ setSelectedAreas( **Parameters** -`areas`: Specify the rectangular area(s). Please refer to [`Area`]({{site.info}}api/Interfaces.html#area). +`areas`: Specify the rectangular area(s). Please refer to [`Area`](/_articles/info/api/interfaces.md#area). **Availability** @@ -1078,7 +1077,7 @@ setSelectedAreas( The coordinates are based on the size of the original page (instead of the size of the viewer). -This method only works when [`cursor`]({{site.info}}api/WebTwain_Viewer.html#cursor) is set to "crosshair". +This method only works when [`cursor`](/_articles/info/api/WebTwain_Viewer.md#cursor) is set to "crosshair". **Example** @@ -1144,7 +1143,7 @@ setViewMode( **Usage notes** -Setting the view mode as -1 by -1 is equivalent to setting [`singlePageMode`]({{site.info}}api/WebTwain_Viewer.html#singlepagemode) to true. +Setting the view mode as -1 by -1 is equivalent to setting [`singlePageMode`](/_articles/info/api/WebTwain_Viewer.md#singlepagemode) to true. **Example** @@ -1741,7 +1740,7 @@ pageMargin: number | string; **Usage Notes** -The page margin is only effective when the view mode is not -1 \* -1 (in other words, [`singlePageMode`]({{site.info}}api/WebTwain_Viewer.html#singlepagemode) is `false` ). +The page margin is only effective when the view mode is not -1 \* -1 (in other words, [`singlePageMode`](/_articles/info/api/WebTwain_Viewer.md#singlepagemode) is `false` ). **Example** @@ -1756,7 +1755,7 @@ DWTObject.Viewer.pageMargin = 10;
> This API has been deprecated as of release 18.4. -Please use the [`updateSelectionBoxStyle()`]({{site.info}}api/WebTwain_Viewer.html#updateselectionboxstyle) function. +Please use the [`updateSelectionBoxStyle()`](/_articles/info/api/WebTwain_Viewer.md#updateselectionboxstyle) function. Set the border color of the selected area. Also applies to the selection box on the video opened by the method `showVideo`. @@ -1878,7 +1877,7 @@ selectedPageBorder: string; **Usage Notes** -This API is only effective when the view mode is not -1 \* -1 (in other words, [`singlePageMode`]({{site.info}}api/WebTwain_Viewer.html#singlepagemode) is `false` ). +This API is only effective when the view mode is not -1 \* -1 (in other words, [`singlePageMode`](/_articles/info/api/WebTwain_Viewer.md#singlepagemode) is `false` ). The default value is "1px solid rgb(125, 162, 206)". Now you can specify the border by CSS. Read more on the [border shorthand CSS](https://developer.mozilla.org/en-US/docs/Web/CSS/border). @@ -1924,7 +1923,7 @@ selectionRectAspectRatio: number | string; **Usage Notes** -This API is only effective when drawing manually (it won't work if the selection is done with the API [`setSelectedAreas()`]({{site.info}}api/WebTwain_Viewer.html#setselectedareas)). +This API is only effective when drawing manually (it won't work if the selection is done with the API [`setSelectedAreas()`](/_articles/info/api/WebTwain_Viewer.md#setselectedareas)). **Example** @@ -1998,7 +1997,7 @@ updateSelectionBoxStyle(selectionBoxStyleSettings?: SelectionBoxStyleSettings): ``` **Parameters** -`selectionBoxStyleSettings`: Selection box settings. Please refer to [`SelectionBoxStyleSettings`]({{site.info}}api/Interfaces.html#selectionboxstylesettings) for details. +`selectionBoxStyleSettings`: Selection box settings. Please refer to [`SelectionBoxStyleSettings`](/_articles/info/api/interfaces.md#selectionboxstylesettings) for details. **Availability** @@ -2190,7 +2189,7 @@ updateCheckboxStyle(checkboxSettings?: CheckboxSettings): boolean; **Parameters** -`checkboxSettings`: Settings for checkboxes. Please refer to [`CheckboxSettings`]({{site.info}}api/Interfaces.html#checkboxsettings). +`checkboxSettings`: Settings for checkboxes. Please refer to [`CheckboxSettings`](/_articles/info/api/interfaces.md#checkboxsettings). **Availability** @@ -2228,7 +2227,7 @@ updatePageNumberStyle(pageNumberSettings?: PageNumberSettings): boolean; **Parameters** -`pageNumberSettings`: Settings for page numbers. Please refer to [`PageNumberSettings`]({{site.info}}api/Interfaces.html#pagenumbersettings). +`pageNumberSettings`: Settings for page numbers. Please refer to [`PageNumberSettings`](/_articles/info/api/interfaces.md#pagenumbersettings). **Availability** @@ -2291,7 +2290,7 @@ selectionMode: Dynamsoft.DWT.EnumDWT_SelectionMode | number; The default value is 0 (Single). Even if checkbox is used, only one image can be selected if the selection mode is set to 0 (Single). -Please refer to [`EnumDWT_SelectionMode`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_selectionmode). +Please refer to [`EnumDWT_SelectionMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_selectionmode). **Example** @@ -2376,7 +2375,7 @@ on( `eventName`: Specify the event. Value: click, contextmenu, dblclick, mousemove, mousedown, mouseup, mouseout, mouseover, keydown, keyup. `callback`: Specify the callback. -- `dwtEvent`: The viewer-specific event object. Please refer to [`ViewerEvent`]({{site.info}}api/Interfaces.html#viewerevent) and `KeyboardEvent`. +- `dwtEvent`: The viewer-specific event object. Please refer to [`ViewerEvent`](/_articles/info/api/interfaces.md#viewerevent) and `KeyboardEvent`. - `domEvent`: The original mouse event object. Please refer to `MouseEvent`. **Availability** @@ -2520,7 +2519,7 @@ on('pageAreaSelected', `index`: The index of the current page. -`rect`: Some attribute values of the selected area. Please refer to [`rect`]({{site.info}}api/Interfaces.html#rect). +`rect`: Some attribute values of the selected area. Please refer to [`rect`](/_articles/info/api/interfaces.md#rect). **Availability** diff --git a/info/api/appendix.md b/_articles/info/api/appendix.md similarity index 99% rename from info/api/appendix.md rename to _articles/info/api/appendix.md index f1adc3c2..661efd1f 100644 --- a/info/api/appendix.md +++ b/_articles/info/api/appendix.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK API - Appendix keywords: Dynamic Web TWAIN, Documentation, API Appendix breadcrumbText: API Appendix description: Dynamic Web TWAIN SDK Documentation API Appendix Page -permalink: /info/api/appendix.html --- # Web TWAIN Appendix diff --git a/_articles/info/api/index.md b/_articles/info/api/index.md new file mode 100644 index 00000000..a655ade0 --- /dev/null +++ b/_articles/info/api/index.md @@ -0,0 +1,632 @@ +--- +layout: default-layout +needAutoGenerateSidebar: true +title: Dynamic Web TWAIN SDK API Reference - Index +keywords: Dynamic Web TWAIN, Documentation, API Reference, Index +description: Dynamic Web TWAIN Documentation API List +breadcrumbText: API Reference +--- + +> Some old APIs are deprecated, check out [Deprecated Features and APIs](/_articles/info/schedule/deprecated.md) + +# API List + + + +## Global + +### Methods + + +| [`CreateDWTObject()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobject) | [`CreateDWTobjectEx()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex) | [`DeleteDWTObject()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#deletedwtobject) | [`GetWebTwain()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#getwebtwain) | +| [`Load()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#load) | [`RegisterEvent()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#registerevent) | [`Unload()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#unload) | | + + + + +### Properties + + +| [`Autoload`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#autoload) | [`Containers`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#containers) | [`CustomizableDisplayInfo`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#customizabledisplayinfo) | [`DeviceFriendlyName`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#devicefriendlyname) | +| [`Host`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#host) | [`IfAddMD5InUploadHeader`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifconfinemaskwithintheviewer) | [`JSVersion`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#jsversion) | +| [`ProductKey`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#productkey) | [`ResourcesPath`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#resourcespath) | [`ServiceInstallerLocation`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#serviceinstallerlocation) | [`UseDefaultViewer`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#usedefaultviewer) | +|[`IfCheckCORS`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifalwaysfocusonpopupwindow) | | + + +### Events + + +| [`OnWebTwainReady`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainready) | [`OnWebTwainError`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainerror) | [`OnWebTwainPostExecute`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainpostexecute) | [`OnWebTwainPreExecute`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainpreexecute) | + +## Buffer + +### Methods + + + + + +|[`ClearImageTags()`](/_articles/info/api/WebTwain_Buffer.md#clearimagetags) | [`RenameTag()`](/_articles/info/api/WebTwain_Buffer.md#renametag) |[`RemoveTag()`](/_articles/info/api/WebTwain_Buffer.md#removetag) |[`GetTagList()`](/_articles/info/api/WebTwain_Buffer.md#gettaglist) | +|[`FilterImagesByTag()`](/_articles/info/api/WebTwain_Buffer.md#filterimagesbytag)|[`ClearFilter()`](/_articles/info/api/WebTwain_Buffer.md#clearfilter) | [`SetDefaultTag()`](/_articles/info/api/WebTwain_Buffer.md#setdefaulttag) | [`TagImages()`](/_articles/info/api/WebTwain_Buffer.md#tagimages)| +|[`GetImageBitDepth()`](/_articles/info/api/WebTwain_Buffer.md#getimagebitdepth)| [`GetImageSize()`](/_articles/info/api/WebTwain_Buffer.md#getimagesize)| [`GetImageSizeWithSpecifiedType()`](/_articles/info/api/WebTwain_Buffer.md#getimagesizewithspecifiedtype)|[`GetSelectedImagesSize()`](/_articles/info/api/WebTwain_Buffer.md#getselectedimagessize) | +|[`GetImageHeight()`](/_articles/info/api/WebTwain_Buffer.md#getimageheight) |[`GetImageWidth()`](/_articles/info/api/WebTwain_Buffer.md#getimagewidth) | [`GetImagePartURL()`](/_articles/info/api/WebTwain_Buffer.md#getimageparturl) |[`GetImageURL()`](/_articles/info/api/WebTwain_Buffer.md#getimageurl)| +|[`GetImageXResolution()`](/_articles/info/api/WebTwain_Buffer.md#getimagexresolution) |[`GetImageYResolution()`](/_articles/info/api/WebTwain_Buffer.md#getimageyresolution) |[`GetSkewAngle()`](/_articles/info/api/WebTwain_Buffer.md#getskewangle) | [`GetSkewAngleEx()`](/_articles/info/api/WebTwain_Buffer.md#getskewangleex)| +|[`ImageIDToIndex()`](/_articles/info/api/WebTwain_Buffer.md#imageidtoindex) | [`IndexToImageID()`](/_articles/info/api/WebTwain_Buffer.md#indextoimageid)| [`IsBlankImage()`](/_articles/info/api/WebTwain_Buffer.md#isblankimage) | [`IsBlankImageExpress()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress)| +|[`SelectAllImages()`](/_articles/info/api/WebTwain_Buffer.md#selectallimages)|[`MoveImage()`](/_articles/info/api/WebTwain_Buffer.md#moveimage) | [`SwitchImage()`](/_articles/info/api/WebTwain_Buffer.md#switchimage)| [`RemoveImage()`](/_articles/info/api/WebTwain_Buffer.md#removeimage) | +| [`RemoveAllImages()`](/_articles/info/api/WebTwain_Buffer.md#removeallimages)|[`RemoveAllSelectedImages()`](/_articles/info/api/WebTwain_Buffer.md#removeallselectedimages) |[`SelectImages()`](/_articles/info/api/WebTwain_Buffer.md#selectimages)|[`GetTagListByIndex()`](/_articles/info/api/WebTwain_Buffer.md#gettaglistbyindex) | +| [`CreateDocument()`](/_articles/info/api/WebTwain_Buffer.md#createdocument)|[`OpenDocument()`](/_articles/info/api/WebTwain_Buffer.md#opendocument)|[`GetCurrentDocumentName()`](/_articles/info/api/WebTwain_Buffer.md#getcurrentdocumentname)|[`RenameDocument()`](/_articles/info/api/WebTwain_Buffer.md#renamedocument)| +|[`RemoveDocument()`](/_articles/info/api/WebTwain_Buffer.md#removedocument)| [`GetDocumentInfoList()`](/_articles/info/api/WebTwain_Buffer.md#getdocumentinfolist)| [`IsBlankImageAsync()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageasync) | [`CopyToDocumentAsync()`](/_articles/info/api/WebTwain_Buffer.md#copytodocumentasync) | +| [`MoveToDocumentAsync()`](/_articles/info/api/WebTwain_Buffer.md#movetodocumentasync) | [`updateImage()`](/_articles/info/api/WebTwain_Buffer.md#updateimage)| + + + + + + +### Properties + + +|[`BlankImageCurrentStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagecurrentstddev) |[`BlankImageMaxStdDev`](/_articles/info/api/WebTwain_Buffer.md#blankimagemaxstddev) |[`BlankImageThreshold`](/_articles/info/api/WebTwain_Buffer.md#blankimagethreshold)| [`BufferMemoryLimit`](/_articles/info/api/WebTwain_Buffer.md#buffermemorylimit)| +|[`CurrentImageIndexInBuffer`](/_articles/info/api/WebTwain_Buffer.md#currentimageindexinbuffer) |[`HowManyImagesInBuffer`](/_articles/info/api/WebTwain_Buffer.md#howmanyimagesinbuffer)| [`IfAllowLocalCache`](/_articles/info/api/WebTwain_Buffer.md#ifallowlocalcache) | [`SelectedImagesIndices`](/_articles/info/api/WebTwain_Buffer.md#selectedimagesindices)| +|[`MaxImagesInBuffer`](/_articles/info/api/WebTwain_Buffer.md#maximagesinbuffer)| + + + +### Events + + +| [`OnBufferChanged`](/_articles/info/api/WebTwain_Buffer.md#onbufferchanged) |[`OnBitmapChanged`](/_articles/info/api/WebTwain_Buffer.md#onbitmapchanged) | [`OnIndexChangeDragDropDone`](/_articles/info/api/WebTwain_Buffer.md#onindexchangedragdropdone)| [`OnTopImageInTheViewChanged`](/_articles/info/api/WebTwain_Buffer.md#ontopimageintheviewchanged)| +| [`OnDiskExceedLimit`](/_articles/info/api/WebTwain_Buffer.md#ondiskexceedlimit) | + +## Edit + +### Methods + + +|[`Crop()`](/_articles/info/api/WebTwain_Edit.md#crop)|[`CropToClipboard()`](/_articles/info/api/WebTwain_Edit.md#croptoclipboard)| [`CutFrameToClipboard()`](/_articles/info/api/WebTwain_Edit.md#cutframetoclipboard) |[`CutToClipboard()`](/_articles/info/api/WebTwain_Edit.md#cuttoclipboard)| +|[`CopyToClipboard()`](/_articles/info/api/WebTwain_Edit.md#copytoclipboard) |[`Erase()`](/_articles/info/api/WebTwain_Edit.md#erase) |[`Flip()`](/_articles/info/api/WebTwain_Edit.md#flip)|[`Mirror()`](/_articles/info/api/WebTwain_Edit.md#mirror)| +| [`Rotate()`](/_articles/info/api/WebTwain_Edit.md#rotate) |[`RotateEx()`](/_articles/info/api/WebTwain_Edit.md#rotateex)| [`RotateLeft()`](/_articles/info/api/WebTwain_Edit.md#rotateleft) | [`RotateRight()`](/_articles/info/api/WebTwain_Edit.md#rotateright)| +| [`ChangeBitDepth()`](/_articles/info/api/WebTwain_Edit.md#changebitdepth) | [`SetDPI()`](/_articles/info/api/WebTwain_Edit.md#setdpi)|[`ConvertToBW()`](/_articles/info/api/WebTwain_Edit.md#converttobw) |[`ConvertToGrayScale()`](/_articles/info/api/WebTwain_Edit.md#converttograyscale)| +|[`ChangeImageSize()`](/_articles/info/api/WebTwain_Edit.md#changeimagesize) | [`Invert()`](/_articles/info/api/WebTwain_Edit.md#invert)|[`SetImageWidth()`](/_articles/info/api/WebTwain_Edit.md#setimagewidth)|[`ChangeBrightnessAsync()`](/_articles/info/api/WebTwain_Edit.md#changebrightnessasync)| +|[`ChangeContrastAsnyc()`](/_articles/info/api/WebTwain_Edit.md#changecontrastasnyc)| + + + + + + + + + +### Properties + + +|[`BackgroundFillColor`](/_articles/info/api/WebTwain_Edit.md#backgroundfillcolor) | + + + +## Scan + +### Methods + + +| [`GetSourceNameItems()`](/_articles/info/api/WebTwain_Acquire.md#getsourcenameitems) | [`GetSourceNames()`](/_articles/info/api/WebTwain_Acquire.md#getsourcenames) | [`GetSourceNamesAsync()`](/_articles/info/api/WebTwain_Acquire.md#getsourcenamesasync) | [`SelectSource()`](/_articles/info/api/WebTwain_Acquire.md#selectsource) | +| [`SelectSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourceasync) | [`SelectSourceByIndex()`](/_articles/info/api/WebTwain_Acquire.md#selectsourcebyindex) | [`SelectSourceByIndexAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectsourcebyindexasync) | [`SetOpenSourceTimeout()`](/_articles/info/api/WebTwain_Acquire.md#setopensourcetimeout) | +| [`OpenSource()`](/_articles/info/api/WebTwain_Acquire.md#opensource) | [`OpenSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#opensourceasync) | [`EnableSourceUI()`](/_articles/info/api/WebTwain_Acquire.md#enablesourceui) | [`EnableSource()`](/_articles/info/api/WebTwain_Acquire.md#enablesource) | +| [`AcquireImage()`](/_articles/info/api/WebTwain_Acquire.md#acquireimage) | [`startScan()`](/_articles/info/api/WebTwain_Acquire.md#startscan) | [`DisableSource()`](/_articles/info/api/WebTwain_Acquire.md#disablesource) | [`CloseSource()`](/_articles/info/api/WebTwain_Acquire.md#closesource) | +| [`CloseSourceAsync()`](/_articles/info/api/WebTwain_Acquire.md#closesourceasync) | [`CloseWorkingProcess()`](/_articles/info/api/WebTwain_Acquire.md#closeworkingprocess) | [`GetDevicesAsync()`](/_articles/info/api/WebTwain_Acquire.md#getdevicesasync) | [`SelectDeviceAsync()`](/_articles/info/api/WebTwain_Acquire.md#selectdeviceasync) | +| [`AcquireImageAsync()`](/_articles/info/api/WebTwain_Acquire.md#acquireimageasync) | + + + + +### Properties + + +|[`CurrentSourceName`](/_articles/info/api/WebTwain_Acquire.md#currentsourcename) |[`IfDisableSourceAfterAcquire`](/_articles/info/api/WebTwain_Acquire.md#ifdisablesourceafteracquire) |[`IfDuplexEnabled`](/_articles/info/api/WebTwain_Acquire.md#ifduplexenabled) |[`IfFeederEnabled`](/_articles/info/api/WebTwain_Acquire.md#iffeederenabled)| +| [`PageSize`](/_articles/info/api/WebTwain_Acquire.md#pagesize) |[`PixelType`](/_articles/info/api/WebTwain_Acquire.md#pixeltype) |[`Resolution`](/_articles/info/api/WebTwain_Acquire.md#resolution) |[`SourceCount`](/_articles/info/api/WebTwain_Acquire.md#sourcecount)| + + +### Events + + +|[`OnPostAllTransfers`](/_articles/info/api/WebTwain_Acquire.md#onpostalltransfers) | [`OnPostTransfer`](/_articles/info/api/WebTwain_Acquire.md#onposttransfer)| [`OnPostTransferAsync`](/_articles/info/api/WebTwain_Acquire.md#onposttransferasync) | +|[`OnPreAllTransfers`](/_articles/info/api/WebTwain_Acquire.md#onprealltransfers)|[`OnPreTransfer`](/_articles/info/api/WebTwain_Acquire.md#onpretransfer)| + + +> The following APIs are compatible with TWAIN and ICA + +### Methods + + +|[`getCapabilities()`](/_articles/info/api/WebTwain_Acquire.md#getcapabilities) | [`setCapabilities()`](/_articles/info/api/WebTwain_Acquire.md#setcapabilities)| + +> The following APIs are compatible with TWAIN (mostly Windows, but could also be macOS) + +### Methods + + +| [`OpenSourceManager()`](/_articles/info/api/WebTwain_Acquire.md#opensourcemanager)| [`OpenSourceManagerAsync()`](/_articles/info/api/WebTwain_Acquire.md#opensourcemanagerasync) | [`CloseSourceManager()`](/_articles/info/api/WebTwain_Acquire.md#closesourcemanager) | [`CloseSourceManagerAsync()`](/_articles/info/api/WebTwain_Acquire.md#closesourcemanagerasync)| +| [`GetCustomDSData()`](/_articles/info/api/WebTwain_Acquire.md#getcustomdsdata)| [`GetCustomDSDataEx()`](/_articles/info/api/WebTwain_Acquire.md#getcustomdsdataex) | [`CancelAllPendingTransfers()`](/_articles/info/api/WebTwain_Acquire.md#cancelallpendingtransfers) | [`FeedPage()`](/_articles/info/api/WebTwain_Acquire.md#feedpage) | +|[`ResetImageLayout()`](/_articles/info/api/WebTwain_Acquire.md#resetimagelayout) | [`RewindPage()`](/_articles/info/api/WebTwain_Acquire.md#rewindpage)| [`SetCustomDSData()`](/_articles/info/api/WebTwain_Acquire.md#setcustomdsdata) | [`SetCustomDSDataEx()`](/_articles/info/api/WebTwain_Acquire.md#setcustomdsdataex)| +| [`SetFileXferInfo()`](/_articles/info/api/WebTwain_Acquire.md#setfilexferinfo) | [`SetImageLayout()`](/_articles/info/api/WebTwain_Acquire.md#setimagelayout)| + +### Properties + + +| [`BitDepth`](/_articles/info/api/WebTwain_Acquire.md#bitdepth) | [`Brightness`](/_articles/info/api/WebTwain_Acquire.md#brightness)|[`Contrast`](/_articles/info/api/WebTwain_Acquire.md#contrast) | [`DataSourceStatus`](/_articles/info/api/WebTwain_Acquire.md#datasourcestatus)| +|[`DefaultSourceName`](/_articles/info/api/WebTwain_Acquire.md#defaultsourcename) | [`Duplex`](/_articles/info/api/WebTwain_Acquire.md#duplex)| [`IfAutoBright`](/_articles/info/api/WebTwain_Acquire.md#ifautobright) | [`IfAutoDiscardBlankpages`](/_articles/info/api/WebTwain_Acquire.md#ifautodiscardblankpages)| +|[`IfAutoFeed`](/_articles/info/api/WebTwain_Acquire.md#ifautofeed) | [`IfAutomaticBorderDetection`](/_articles/info/api/WebTwain_Acquire.md#ifautomaticborderdetection)|[`IfAutomaticDeskew`](/_articles/info/api/WebTwain_Acquire.md#ifautomaticdeskew) |[`IfAutoScan`](/_articles/info/api/WebTwain_Acquire.md#ifautoscan)| +| [`IfFeederLoaded`](/_articles/info/api/WebTwain_Acquire.md#iffeederloaded) |[`IfPaperDetectable`](/_articles/info/api/WebTwain_Acquire.md#ifpaperdetectable)| [`IfShowIndicator`](/_articles/info/api/WebTwain_Acquire.md#ifshowindicator) | [`IfShowUI`](/_articles/info/api/WebTwain_Acquire.md#ifshowui)| +| [`IfUIControllable`](/_articles/info/api/WebTwain_Acquire.md#ifuicontrollable) |[`IfUseTwainDSM`](/_articles/info/api/WebTwain_Acquire.md#ifusetwaindsm)|[`ImageCaptureDriverType`](/_articles/info/api/WebTwain_Acquire.md#imagecapturedrivertype)| [`ImageLayoutDocumentNumber`](/_articles/info/api/WebTwain_Acquire.md#imagelayoutdocumentnumber) | +|[`ImageLayoutFrameBottom`](/_articles/info/api/WebTwain_Acquire.md#imagelayoutframebottom)| [`ImageLayoutFrameLeft`](/_articles/info/api/WebTwain_Acquire.md#imagelayoutframeleft) |[`ImageLayoutFrameNumber`](/_articles/info/api/WebTwain_Acquire.md#imagelayoutframenumber)| [`ImageLayoutFrameRight`](/_articles/info/api/WebTwain_Acquire.md#imagelayoutframeright) | +| [`ImageLayoutFrameTop`](/_articles/info/api/WebTwain_Acquire.md#imagelayoutframetop)| [`ImageLayoutPageNumber`](/_articles/info/api/WebTwain_Acquire.md#imagelayoutpagenumber) | [`ImagePixelType`](/_articles/info/api/WebTwain_Acquire.md#imagepixeltype)| [`MagData`](/_articles/info/api/WebTwain_Acquire.md#magdata) | +|[`MagType`](/_articles/info/api/WebTwain_Acquire.md#magtype)|[`PendingXfers`](/_articles/info/api/WebTwain_Acquire.md#pendingxfers) | [`PixelFlavor`](/_articles/info/api/WebTwain_Acquire.md#pixelflavor)| [`TransferMode`](/_articles/info/api/WebTwain_Acquire.md#transfermode) | +| [`Unit`](/_articles/info/api/WebTwain_Acquire.md#unit)|[`XferCount`](/_articles/info/api/WebTwain_Acquire.md#xfercount)|[`IfAppendImage`](/_articles/info/api/WebTwain_Acquire.md#ifappendimage)| + + +### Events + + +| [`OnSourceUIClose`](/_articles/info/api/WebTwain_Acquire.md#onsourceuiclose) | + +## Input/Output + +### Input + +#### Methods + + +|[`LoadImage()`](/_articles/info/api/WebTwain_IO.md#loadimage)| [`LoadImageEx()`](/_articles/info/api/WebTwain_IO.md#loadimageex)|[`LoadImageFromBase64Binary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombase64binary)| [`LoadImageFromBinary()`](/_articles/info/api/WebTwain_IO.md#loadimagefrombinary)| +|[`LoadDibFromClipboard()`](/_articles/info/api/WebTwain_IO.md#loaddibfromclipboard)| [`FTPDownload()`](/_articles/info/api/WebTwain_IO.md#ftpdownload)| [`FTPDownloadEx()`](/_articles/info/api/WebTwain_IO.md#ftpdownloadex)| [`HTTPDownload()`](/_articles/info/api/WebTwain_IO.md#httpdownload)| +| [`HTTPDownloadEx()`](/_articles/info/api/WebTwain_IO.md#httpdownloadex)|[`HTTPDownloadThroughPost()`](/_articles/info/api/WebTwain_IO.md#httpdownloadthroughpost)|[`loadFromLocalStorage()`](/_articles/info/api/WebTwain_IO.md#loadfromlocalstorage) | + + + +### Output + +#### Methods + + +| [`ConvertToBase64()`](/_articles/info/api/WebTwain_IO.md#converttobase64)|[`ConvertToBlob()`](/_articles/info/api/WebTwain_IO.md#converttoblob)|[`FTPUpload()`](/_articles/info/api/WebTwain_IO.md#ftpupload)| +|[`FTPUploadEx()`](/_articles/info/api/WebTwain_IO.md#ftpuploadex)|[`FTPUploadAllAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#ftpuploadallasmultipagetiff)|[`FTPUploadAllAsPDF()`](/_articles/info/api/WebTwain_IO.md#ftpuploadallaspdf)| +|[`FTPUploadAsMultiPagePDF()`](/_articles/info/api/WebTwain_IO.md#ftpuploadasmultipagepdf)| [`FTPUploadAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#ftpuploadasmultipagetiff)|[`HTTPUpload()`](/_articles/info/api/WebTwain_IO.md#httpupload)| +|[`HTTPUploadThroughPutEx()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughputex)| [`HTTPUploadThroughPost()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpost)| [`HTTPUploadThroughPostEx()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpostex)| +| [`HTTPUploadAllThroughPostAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#httpuploadallthroughpostasmultipagetiff)| [`HTTPUploadAllThroughPostAsPDF()`](/_articles/info/api/WebTwain_IO.md#httpuploadallthroughpostaspdf)| [`HTTPUploadThroughPostAsMultiPagePDF()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpostasmultipagepdf)| +|[`HTTPUploadThroughPostAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpostasmultipagetiff)|[`OutputSelectedAreaAsync()`](/_articles/info/api/WebTwain_IO.md#outputselectedareaasync)|[`SaveAsBMP()`](/_articles/info/api/WebTwain_IO.md#saveasbmp)| +|[`SaveAsJPEG()`](/_articles/info/api/WebTwain_IO.md#saveasjpeg)| [`SaveAsPDF()`](/_articles/info/api/WebTwain_IO.md#saveaspdf)|[`SaveAsPNG()`](/_articles/info/api/WebTwain_IO.md#saveaspng)| +|[`SaveAsTIFF()`](/_articles/info/api/WebTwain_IO.md#saveastiff)| [`SaveSelectedImagesAsMultiPagePDF()`](/_articles/info/api/WebTwain_IO.md#saveselectedimagesasmultipagepdf)|[`SaveSelectedImagesAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#saveselectedimagesasmultipagetiff)| +| [`SaveAllAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#saveallasmultipagetiff)|[`SaveAllAsPDF()`](/_articles/info/api/WebTwain_IO.md#saveallaspdf)|[`httpUploadBlob()`](/_articles/info/api/WebTwain_IO.md#httpuploadblob)| +| [`saveBlob()`](/_articles/info/api/WebTwain_IO.md#saveblob) | [`saveToLocalStorage()`](/_articles/info/api/WebTwain_IO.md#savetolocalstorage) | + + + +### Others + +#### Methods + + +|[`ClearTiffCustomTag()`](/_articles/info/api/WebTwain_IO.md#cleartiffcustomtag) |[`SetTiffCustomTag()`](/_articles/info/api/WebTwain_IO.md#settiffcustomtag)|[`ClearAllHTTPFormField()`](/_articles/info/api/WebTwain_IO.md#clearallhttpformfield) |[`SetHTTPFormField()`](/_articles/info/api/WebTwain_IO.md#sethttpformfield)| +| [`SetHTTPHeader()`](/_articles/info/api/WebTwain_IO.md#sethttpheader)| [`SetUploadSegment()`](/_articles/info/api/WebTwain_IO.md#setuploadsegment)|[`ShowFileDialog()`](/_articles/info/api/WebTwain_IO.md#showfiledialog) | [`Print()`](/_articles/info/api/WebTwain_IO.md#print)| +|[`PrintEx()`](/_articles/info/api/WebTwain_IO.md#printex)| [`createLocalStorage()`](/_articles/info/api/WebTwain_IO.md#createlocalstorage) | [`localStorageExist()`](/_articles/info/api/WebTwain_IO.md#localstorageexist) |[`removeLocalStorage()`](/_articles/info/api/WebTwain_IO.md#removelocalstorage) | + + + +#### Properties + + +|[`FTPPassword`](/_articles/info/api/WebTwain_IO.md#ftppassword) |[`FTPPort`](/_articles/info/api/WebTwain_IO.md#ftpport)| [`FTPUserName`](/_articles/info/api/WebTwain_IO.md#ftpusername) |[`IfPASVMode`](/_articles/info/api/WebTwain_IO.md#ifpasvmode)| +|[`HttpFieldNameOfUploadedImage`](/_articles/info/api/WebTwain_IO.md#httpfieldnameofuploadedimage) | [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport)|[`IfSSL`](/_articles/info/api/WebTwain_IO.md#ifssl) |[`HTTPPostResponseString`](/_articles/info/api/WebTwain_IO.md#httppostresponsestring)| +|[`IfShowFileDialog`](/_articles/info/api/WebTwain_IO.md#ifshowfiledialog) |[`IfShowCancelDialogWhenImageTransfer`](/_articles/info/api/WebTwain_IO.md#ifshowcanceldialogwhenimagetransfer)| [`IfShowProgressBar`](/_articles/info/api/WebTwain_IO.md#ifshowprogressbar) | [`JPEGQuality`](/_articles/info/api/WebTwain_IO.md#jpegquality)| +|[`IfTiffMultiPage`](/_articles/info/api/WebTwain_IO.md#iftiffmultipage) | [`TIFFCompressionType`](/_articles/info/api/WebTwain_IO.md#tiffcompressiontype)| [`MaxUploadImageSize`](/_articles/info/api/WebTwain_IO.md#maxuploadimagesize)|[`IfSortBySelectionOrder`](/_articles/info/api/WebTwain_IO.md#ifsortbyselectionorder) | + + + +#### Events + + +|[`OnGetFilePath`](/_articles/info/api/WebTwain_IO.md#ongetfilepath)|[`OnPostLoad`](/_articles/info/api/WebTwain_IO.md#onpostload)| [`OnInternetTransferPercentage`](/_articles/info/api/WebTwain_IO.md#oninternettransferpercentage)| + + + +## Util + +### Methods + + +|[`RegisterEvent()`](/_articles/info/api/WebTwain_Util.md#registerevent) | [`UnregisterEvent()`](/_articles/info/api/WebTwain_Util.md#unregisterevent) | [`GenerateURLForUploadData()`](/_articles/info/api/WebTwain_Util.md#generateurlforuploaddata) | + + + +### Properties + + +|[`ErrorCode`](/_articles/info/api/WebTwain_Util.md#errorcode)|[`ErrorCause`](/_articles/info/api/WebTwain_Util.md#errorcause)| [`ErrorString`](/_articles/info/api/WebTwain_Util.md#errorstring) | [`LogLevel`](/_articles/info/api/WebTwain_Util.md#loglevel)| [`Manufacturer`](/_articles/info/api/WebTwain_Util.md#manufacturer)| +|[`ProductFamily`](/_articles/info/api/WebTwain_Util.md#productfamily)| [`ProductName`](/_articles/info/api/WebTwain_Util.md#productname)| [`VersionInfo`](/_articles/info/api/WebTwain_Util.md#versioninfo)| | + + + +## Viewer + +### Methods + + +|[`bind()`](/_articles/info/api/WebTwain_Viewer.md#bind)| [`clearSelectedAreas()`](/_articles/info/api/WebTwain_Viewer.md#clearselectedareas)| [`createCustomElement()`](/_articles/info/api/WebTwain_Viewer.md#createcustomelement)| [`createImageEditor()`](/_articles/info/api/WebTwain_Viewer.md#createimageeditor)| +| [`createThumbnailViewer()`](/_articles/info/api/WebTwain_Viewer.md#createthumbnailviewer)| [`first()`](/_articles/info/api/WebTwain_Viewer.md#first)|[`fitWindow()`](/_articles/info/api/WebTwain_Viewer.md#fitwindow)|[`gotoPage()`](/_articles/info/api/WebTwain_Viewer.md#gotopage)| +| [`hide()`](/_articles/info/api/WebTwain_Viewer.md#hide)| [`last()`](/_articles/info/api/WebTwain_Viewer.md#last)| [`next()`](/_articles/info/api/WebTwain_Viewer.md#next)|[`off()`](/_articles/info/api/WebTwain_Viewer.md#off)| +|[`on()`](/_articles/info/api/WebTwain_Viewer.md#on)| [`previous()`](/_articles/info/api/WebTwain_Viewer.md#previous)| [`render()`](/_articles/info/api/WebTwain_Viewer.md#render)| [`setButtonClass()`](/_articles/info/api/WebTwain_Viewer.md#setbuttonclass)| +| [`setSelectedAreas()`](/_articles/info/api/WebTwain_Viewer.md#setselectedareas)| [`setViewMode()`](/_articles/info/api/WebTwain_Viewer.md#setviewmode) | [`show()`](/_articles/info/api/WebTwain_Viewer.md#show)| [`unbind()`](/_articles/info/api/WebTwain_Viewer.md#unbind)| +| [`createDocumentEditor()`](/_articles/info/api/WebTwain_Viewer.md#createdocumenteditor)| [`updateCheckboxStyle()`](/_articles/info/api/WebTwain_Viewer.md#updatecheckboxstyle)| [`updatePageNumberStyle()`](/_articles/info/api/WebTwain_Viewer.md#updatepagenumberstyle)| [`updateSelectionBoxStyle()`](/_articles/info/api/WebTwain_Viewer.md#updateselectionboxstyle) | + + + +### Properties + + +|[`acceptDrop`](/_articles/info/api/WebTwain_Viewer.md#acceptdrop)| [`allowSlide`](/_articles/info/api/WebTwain_Viewer.md#allowslide)| [`allowPageDragging`](/_articles/info/api/WebTwain_Viewer.md#allowpagedragging)|[`background`](/_articles/info/api/WebTwain_Viewer.md#background)| +|[`border`](/_articles/info/api/WebTwain_Viewer.md#border) | [`cursor`](/_articles/info/api/WebTwain_Viewer.md#cursor)| [`height`](/_articles/info/api/WebTwain_Viewer.md#height)|[`idPostfix`](/_articles/info/api/WebTwain_Viewer.md#idpostfix)| +|[`ifAutoScroll`](/_articles/info/api/WebTwain_Viewer.md#ifautoscroll)|[`innerBorder`](/_articles/info/api/WebTwain_Viewer.md#innerBorder)| [`pageMargin`](/_articles/info/api/WebTwain_Viewer.md#pagemargin)|[`selectedAreaBorderColor`](/_articles/info/api/WebTwain_Viewer.md#selectedareabordercolor)| +|[`selectedPageBackground`](/_articles/info/api/WebTwain_Viewer.md#selectedpagebackground)|[`selectedPageBorder`](/_articles/info/api/WebTwain_Viewer.md#selectedpageborder)| [`selectionRectAspectRatio`](/_articles/info/api/WebTwain_Viewer.md#selectionrectaspectratio)|[`singlePageMode`](/_articles/info/api/WebTwain_Viewer.md#singlepagemode)| +|[`width`](/_articles/info/api/WebTwain_Viewer.md#width)| [`zoom`](/_articles/info/api/WebTwain_Viewer.md#zoom)| [`autoChangeIndex`](/_articles/info/api/WebTwain_Viewer.md#autochangeindex)|[`selectionMode`](/_articles/info/api/WebTwain_Viewer.md#selectionmode)| +|[`zoomOrigin`](/_articles/info/api/WebTwain_Viewer.md#zoomorigin)| + + + +### Events + +|[`click`](/_articles/info/api/WebTwain_Viewer.md#click)| [`contextmenu`](/_articles/info/api/WebTwain_Viewer.md#contextmenu)| [`dblclick`](/_articles/info/api/WebTwain_Viewer.md#dblclick)|[`mousemove`](/_articles/info/api/WebTwain_Viewer.md#mousemove)| +| [`mousedown`](/_articles/info/api/WebTwain_Viewer.md#mousedown)| [`mouseup`](/_articles/info/api/WebTwain_Viewer.md#mouseup)| [`mouseout`](/_articles/info/api/WebTwain_Viewer.md#mouseout)|[`mouseover`](/_articles/info/api/WebTwain_Viewer.md#mouseover)| +|[`keydown`](/_articles/info/api/WebTwain_Viewer.md#keydown)| [`keyup`](/_articles/info/api/WebTwain_Viewer.md#keyup)|[`pageAreaSelected`](/_articles/info/api/WebTwain_Viewer.md#pageareaselected)| [`pageAreaUnselected`](/_articles/info/api/WebTwain_Viewer.md#pageareaunselected)| +|[`pageRendered`](/_articles/info/api/WebTwain_Viewer.md#pagerendered)| [`resize`](/_articles/info/api/WebTwain_Viewer.md#resize)| + + + + + +## Addon + +## BarcodeReader + +### Methods + + +|[`decode()`](/_articles/info/api/Addon_BarcodeReader.md#decode)| [`getRuntimeSettings()`](/_articles/info/api/Addon_BarcodeReader.md#getruntimesettings)|[`updateRuntimeSettings()`](/_articles/info/api/Addon_BarcodeReader.md#updateruntimesettings)| +|[`resetRuntimeSettings()`](/_articles/info/api/Addon_BarcodeReader.md#resetruntimesettings)| [`initRuntimeSettingsWithString()`](/_articles/info/api/Addon_BarcodeReader.md#initruntimesettingswithstring)| + + + + +## PDF + +### Methods + + +|[`GetConvertMode()`](/_articles/info/api/Addon_PDF.md#getconvertmode)| [`IsModuleInstalled()`](/_articles/info/api/Addon_PDF.md#ismoduleinstalled) | [`IsRasterizationRequired()`](/_articles/info/api/Addon_PDF.md#israsterizationrequired) | [`IsTextBasedPDF()`](/_articles/info/api/Addon_PDF.md#istextbasedpdf)| [`SetConvertMode()`](/_articles/info/api/Addon_PDF.md#setconvertmode)| +|[`SetPassword()`](/_articles/info/api/Addon_PDF.md#setpassword)|[`SetResolution()`](/_articles/info/api/Addon_PDF.md#setresolution)|[`Write.Setup()`](/_articles/info/api/Addon_PDF.md#writesetup)| [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions)| +| [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions)| + + + +## Webcam + +### Methods + + +|[`CaptureImage()`](/_articles/info/api/Addon_Webcam.md#captureimage) | [`CloseSource()`](/_articles/info/api/Addon_Webcam.md#closesource)| [`GetCameraControlPropertySetting()`](/_articles/info/api/Addon_Webcam.md#getcameracontrolpropertysetting) | [`GetCameraControlPropertyMoreSetting()`](/_articles/info/api/Addon_Webcam.md#getcameracontrolpropertymoresetting)| +|[`GetVideoPropertySetting()`](/_articles/info/api/Addon_Webcam.md#getvideopropertysetting)|[`GetVideoPropertyMoreSetting()`](/_articles/info/api/Addon_Webcam.md#getvideopropertymoresetting)| [`SetCameraControlPropertySetting()`](/_articles/info/api/Addon_Webcam.md#setcameracontrolpropertysetting)| [`SetVideoPropertySetting()`](/_articles/info/api/Addon_Webcam.md#setvideopropertysetting)| +|[`GetFrameRate()`](/_articles/info/api/Addon_Webcam.md#getframerate) | [`SetFrameRate()`](/_articles/info/api/Addon_Webcam.md#setframerate)| [`GetMediaType()`](/_articles/info/api/Addon_Webcam.md#getmediatype) | [`SetMediaType()`](/_articles/info/api/Addon_Webcam.md#setmediatype)| +|[`GetResolution()`](/_articles/info/api/Addon_Webcam.md#getresolution) | [`SetResolution()`](/_articles/info/api/Addon_Webcam.md#setresolution)| [`GetFramePartURL()`](/_articles/info/api/Addon_Webcam.md#getframeparturl) | [`GetFrameURL()`](/_articles/info/api/Addon_Webcam.md#getframeurl)| +|[`GetSourceList()`](/_articles/info/api/Addon_Webcam.md#getsourcelist) | [`SelectSource()`](/_articles/info/api/Addon_Webcam.md#selectsource)|[`PauseVideo()`](/_articles/info/api/Addon_Webcam.md#pausevideo) |[`PlayVideo()`](/_articles/info/api/Addon_Webcam.md#playvideo)| +|[`SetVideoRotateMode()`](/_articles/info/api/Addon_Webcam.md#setvideorotatemode) | [`StopVideo()`](/_articles/info/api/Addon_Webcam.md#stopvideo)| + +## Dynamsoft.FileUploader + +### Methods + + +| [`Init()`](/_articles/info/api/Dynamsoft_FileUploader.md#init)|[`CreateJob()`](/_articles/info/api/Dynamsoft_FileUploader.md#createjob)|[`Run()`](/_articles/info/api/Dynamsoft_FileUploader.md#run) | [`Cancel()`](/_articles/info/api/Dynamsoft_FileUploader.md#cancel)| +|[`CancelAllUpload()`](/_articles/info/api/Dynamsoft_FileUploader.md#cancelallupload)| + diff --git a/info/api/interfaces.md b/_articles/info/api/interfaces.md similarity index 94% rename from info/api/interfaces.md rename to _articles/info/api/interfaces.md index fb017599..3cde019b 100644 --- a/info/api/interfaces.md +++ b/_articles/info/api/interfaces.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN API Reference - Interfaces keywords: Dynamic Web TWAIN, Documentation, API Reference, Interfaces breadcrumbText: Utility description: Dynamic Web TWAIN SDK Documentation API Reference Interfaces Page -permalink: /info/api/interfaces.html needGenerateH3Content: true --- @@ -77,8 +76,8 @@ interface Device{ } ``` -- [`EnumDWT_DeviceType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_devicetype) -- [`ServiceInfo`]({{site.info}}api/Interfaces.html#serviceinfo) +- [`EnumDWT_DeviceType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_devicetype) +- [`ServiceInfo`](/_articles/info/api/interfaces.md#serviceinfo) ### ServiceInfo @@ -114,9 +113,9 @@ interface DeviceConfiguration { } ``` -- [`EnumDWT_PixelType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pixeltype) -- [`EnumDWT_ExtImageInfo`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_extimageinfo) -- [`EnumDWT_CapSupportedSizes`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_capsupportedsizes) +- [`EnumDWT_PixelType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pixeltype) +- [`EnumDWT_ExtImageInfo`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_extimageinfo) +- [`EnumDWT_CapSupportedSizes`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_capsupportedsizes) `extendedImageInfoQueryLevel` is 0 (`default`) by default which means the following information will be retrieved (if available): @@ -256,7 +255,7 @@ interface SourceDetails { } ``` -- [`Version`]({{site.info}}api/Interfaces.html#version) +- [`Version`](/_articles/info/api/interfaces.md#version) @@ -542,19 +541,19 @@ interface ScanSetup { } ``` -- [`Device`]({{site.info}}api/Interfaces.html#device) -- [`EnumDWT_TransferMode`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_transfermode) -- [`EnumDWT_FileFormat`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_fileformat) -- [`EnumDWT_CompressionType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_compressiontype) -- [`EnumDWT_PixelType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pixeltype) -- [`EnumDWT_CapSupportedSizes`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_capsupportedsizes) -- [`EnumDWT_UnitType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_unittype) -- [`EnumDWT_CapPixelFlavor`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cappixelflavor) -- [`EnumDWT_ImageType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype) -- [`EnumDWT_PDFCompressionType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pdfcompressiontype) -- [`EnumDWT_TIFFCompressionType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_tiffcompressiontype) -- [`Status`]({{site.info}}api/Interfaces.html#status) -- [`TiffTag`]({{site.info}}api/Interfaces.html#tifftag) +- [`Device`](/_articles/info/api/interfaces.md#device) +- [`EnumDWT_TransferMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_transfermode) +- [`EnumDWT_FileFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_fileformat) +- [`EnumDWT_CompressionType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_compressiontype) +- [`EnumDWT_PixelType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pixeltype) +- [`EnumDWT_CapSupportedSizes`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_capsupportedsizes) +- [`EnumDWT_UnitType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_unittype) +- [`EnumDWT_CapPixelFlavor`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cappixelflavor) +- [`EnumDWT_ImageType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_imagetype) +- [`EnumDWT_PDFCompressionType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pdfcompressiontype) +- [`EnumDWT_TIFFCompressionType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_tiffcompressiontype) +- [`Status`](/_articles/info/api/interfaces.md#status) +- [`TiffTag`](/_articles/info/api/interfaces.md#tifftag) ### Status @@ -687,8 +686,8 @@ interface CapabilityDetails { } ``` -- [`ValueAndLabel`]({{site.info}}api/Interfaces.html#valueandlabel) -- [`Frame`]({{site.info}}api/Interfaces.html#frame) +- [`ValueAndLabel`](/_articles/info/api/interfaces.md#valueandlabel) +- [`Frame`](/_articles/info/api/interfaces.md#frame) @@ -709,9 +708,9 @@ interface ValueAndLabel { } ``` -- [`EnumDWT_Cap`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cap) -- [`EnumDWT_CapType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_captype) -- [`EnumDWT_CapValueType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_capvaluetype) +- [`EnumDWT_Cap`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cap) +- [`EnumDWT_CapType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_captype) +- [`EnumDWT_CapValueType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_capvaluetype) @@ -745,7 +744,7 @@ interface Capabilities { } ``` -- [`CapabilitySetup`]({{site.info}}api/Interfaces.html#capabilitysetup) +- [`CapabilitySetup`](/_articles/info/api/interfaces.md#capabilitysetup) @@ -778,7 +777,7 @@ interface CapabilitySetup { } ``` -- [`EnumDWT_Cap`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cap) +- [`EnumDWT_Cap`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cap) ## Viewer @@ -896,7 +895,7 @@ interface ImageEditor { }; ``` -- [`SelectionBoxStyleSettings`]({{site.info}}api/Interfaces.html#selectionboxstylesettings) +- [`SelectionBoxStyleSettings`](/_articles/info/api/interfaces.md#selectionboxstylesettings) @@ -1029,7 +1028,7 @@ interface EditorSettings { } ``` -- [EnumDWT_WorkMode]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_workmode). +- [EnumDWT_WorkMode](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_workmode). @@ -1177,10 +1176,10 @@ interface ThumbnailViewer { ``` -- [`ViewMode`]({{site.info}}api/Interfaces.html#viewmode) -- [`CheckboxSettings`]({{site.info}}api/Interfaces.html#checkboxsettings) -- [`PageNumberSettings`]({{site.info}}api/Interfaces.html#pagenumbersettings) -- [`ThumbnailViewerEvent`]({{site.info}}api/Interfaces.html#thumbnailviewerevent) +- [`ViewMode`](/_articles/info/api/interfaces.md#viewmode) +- [`CheckboxSettings`](/_articles/info/api/interfaces.md#checkboxsettings) +- [`PageNumberSettings`](/_articles/info/api/interfaces.md#pagenumbersettings) +- [`ThumbnailViewerEvent`](/_articles/info/api/interfaces.md#thumbnailviewerevent) - [`KeyboardEvent`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent) - [`MouseEvent`](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent) @@ -1675,7 +1674,7 @@ interface ReaderOptions { ``` -- [`EnumDWT_ConvertMode`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode) +- [`EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode) > Note: Rendering Logic When Two or More of the Following Properties Are Specified - maxWidth, maxHeight, and resolution: - Calculates the target image dimensions based on the original PDF page size and the specified resolution (DPI). @@ -1754,8 +1753,8 @@ interface PDFWSettings { } ``` -- [`EnumDWT_PDFCompressionType`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pdfcompressiontype) -- [`EnumPDF_Page`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumpdf_page) +- [`EnumDWT_PDFCompressionType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pdfcompressiontype) +- [`EnumPDF_Page`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumpdf_page) ## Webcam @@ -1979,8 +1978,8 @@ interface TextResult { - [`EnumBarcodeFormat`](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/enum/EnumBarcodeFormat.html?ver=9.6.33) - [`EnumBarcodeFormat_2`](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/enum/EnumBarcodeFormat_2.html?ver=9.6.33) -- [`LocalizationResult`]({{site.info}}api/Interfaces.html#localizationresult) -- [`Result`]({{site.info}}api/Interfaces.html#result) +- [`LocalizationResult`](/_articles/info/api/interfaces.md#localizationresult) +- [`Result`](/_articles/info/api/interfaces.md#result) ### LocalizationResult @@ -2077,8 +2076,8 @@ interface RuntimeSettings { } ``` -- [`FurtherModes`]({{site.info}}api/Interfaces.html#furthermodes) -- [`Region`]({{site.info}}api/Interfaces.html#region) +- [`FurtherModes`](/_articles/info/api/interfaces.md#furthermodes) +- [`Region`](/_articles/info/api/interfaces.md#region) - For more detailed information, please [click the link](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/interface/RuntimeSettings.html?ver=9.6.42) to view. ### FurtherModes diff --git a/info/api/restful.md b/_articles/info/api/restful.md similarity index 97% rename from info/api/restful.md rename to _articles/info/api/restful.md index e98e719d..5c17989f 100644 --- a/info/api/restful.md +++ b/_articles/info/api/restful.md @@ -7,12 +7,11 @@ title: Dynamic Web TWAIN API Reference - RESTful API keywords: Dynamic Web TWAIN, Documentation, API Reference, RESTful API, REST API, RESTful, REST breadcrumbText: RESTful description: Dynamic Web TWAIN SDK Documentation API Reference RESTful API -permalink: /info/api/restful.html --- # RESTful API -This is the comprehensive reference for the Dynamic Web TWAIN RESTful API. By default, all APIs use the root URL [`https://127.0.0.1:18623/api`](https://127.0.0.1:18623/api) set by the Dynamic Web TWAIN Service. (can also use [`http://127.0.0.1:18622/api`](http://127.0.0.1:18622/api)) Read about how to alter the address along with a developer walkthrough in our [user guide]({{ site.extended-usage}}restful-api.html). +This is the comprehensive reference for the Dynamic Web TWAIN RESTful API. By default, all APIs use the root URL [`https://127.0.0.1:18623/api`](https://127.0.0.1:18623/api) set by the Dynamic Web TWAIN Service. (can also use [`http://127.0.0.1:18622/api`](http://127.0.0.1:18622/api)) Read about how to alter the address along with a developer walkthrough in our [user guide](/_articles/extended-usage/restful-api.md). [**Server Control**](#server-control) @@ -247,7 +246,7 @@ fetch(url, requestOptions) ### GET /device/scanners -Get a list of scanners from the host. By default this returns all scanners, but you can optionally request scanners specified by protocols. Scanner protocols are enumerated with the [`Dynamsoft.DWT.EnumDWT_DeviceType`]({{ site.api }}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_devicetype). +Get a list of scanners from the host. By default this returns all scanners, but you can optionally request scanners specified by protocols. Scanner protocols are enumerated with the [`Dynamsoft.DWT.EnumDWT_DeviceType`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_devicetype). #### Parameters @@ -757,14 +756,14 @@ fetch(url, requestOptions) Retrieve the capabilities of the scanner specified in the scan job, provided its `jobuid`. -This API can only be called when the job is in a `pending` state, hence you must [create the job](#post-devicescannersjobs) with `autoRun` set to `false` for a valid response. By default this API returns all capabilities, but you can select specific capabilities with comma separated values using `caps`. See the [capability enumerations]({{ site.api }}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cap) for more information. Obtain the `jobuid` from the response of the [`POST /device/scanners/jobs`](#post-devicescannersjobs) scan job creation request. +This API can only be called when the job is in a `pending` state, hence you must [create the job](#post-devicescannersjobs) with `autoRun` set to `false` for a valid response. By default this API returns all capabilities, but you can select specific capabilities with comma separated values using `caps`. See the [capability enumerations](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cap) for more information. Obtain the `jobuid` from the response of the [`POST /device/scanners/jobs`](#post-devicescannersjobs) scan job creation request. #### Parameters |Name|Location|Type|Required|Restrictions|Description| |---|---|---|---|---|---| |`jobuid`|path|`string`| yes | none |Unique identifier for the scan job, obtained from the [`POST /device/scanners/jobs`](#post-devicescannersjobs) scan job creation request. | -|`caps`|query|`string`| no | See list of all capabilities [here]({{ site.api }}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_cap). | Comma-separated list of enumerated capabilities to request - leave empty to request all capabilities. | +|`caps`|query|`string`| no | See list of all capabilities [here](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_cap). | Comma-separated list of enumerated capabilities to request - leave empty to request all capabilities. | #### Request Example @@ -793,7 +792,7 @@ fetch(url, requestOptions) |HTTP Status Code |Meaning|Description|Data Schema| |---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successful operation.|[`CapabilityDetails`]({{ site.api }}Interfaces.html#capabilitydetails)| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successful operation.|[`CapabilityDetails`](/_articles/info/api/interfaces.md#capabilitydetails)| |400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad request, e.g. parameter is invalid.|[`Error`](#error)| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The provided job UID is invalid.|[`Error`](#error)| |405|[Method Not Allowed](https://tools.ietf.org/html/rfc7231#section-6.5.5)|Method not allowed.|[`Error`](#error)| @@ -1011,7 +1010,7 @@ fetch(url, requestOptions) |HTTP Status Code |Meaning|Description|Data Schema| |---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|successful operation. Also returns the image url; if scanning to a document, also return document UID and page UID.|[`OutputInfo`]({{ site.api }}Interfaces.html#outputinfo)| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|successful operation. Also returns the image url; if scanning to a document, also return document UID and page UID.|[`OutputInfo`](/_articles/info/api/interfaces.md#outputinfo)| |204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No more pages, scan done.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The provided job UID is invalid.|[`Error`](#error)| |405|[Method Not Allowed](https://tools.ietf.org/html/rfc7231#section-6.5.5)|Method not allowed.|[`Error`](#error)| @@ -1498,8 +1497,8 @@ Get pages of a document stored in the working directory of the Dynamic Web TWAIN |`quality`|query|`integer(int32)`| no | - 0 <= `quality` <= 100 if `compression` is `6`
- Empty if `compression` is not `6` |Default value `80` - compression from 0 to 100, higher is more compression. This is only valid for the PDF `jpeg/jpeg2000` compression method.| |`pages`|query|`string`| no | - Comma-separated integers: page indices
- Comma-separated UIDs: page UIDs |Default value `''` - comma-separated page identifiers - either indices or `uid`, e.g. `pages=5,2,1` if using indices. If no pages are specified and the output `type` is either `image/png` or `image/jpeg`, only return the first page; if `type` is `image/tiff` or `application/pdf`, return all pages in the document.| |`author`|query|`string`| no | none |Default value `''` - author name.| -|`compression`|query|`integer(int32)`| no | - `0`: `PDF_AUTO`
- `2`: `PDF_FAX4`
- `3`: `PDF_LZW`
- `5`: `PDF_JPEG`
- `6`: `PDF_JP2000`
- `7`: `PDF_JBIG2`
- `0`: `TIFF_AUTO`
- `1`: `TIFF_NONE`
- `2`: `TIFF_RLE`
- `3`: `TIFF_FAX3`
- `3`: `TIFF_T4`
- `4`: `TIFF_FAX4`
- `4`: `TIFF_T6`
- `5`: `TIFF_LZW`
- `7`: `TIFF_JPEG`
- `32773`: `TIFF_PACKBITS` |Default value `0` - compression type for `PDF` and `TIFF`. The default value `0` corresponds to auto-compression. See the enumerations for [`TIFF`]({{ site.api }}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_tiffcompressiontype) and [`PDF`]({{ site.api }}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_pdfcompressiontype) for valid compression methods.| -|`pageType`|query|`integer(int32)`| no | - `0`: `Page_Default`
- `1`: `Page_Custom`
- `2`: `Page_A4`
- `3`: `Page_A4_Reverse`
- `4`: `Page_A3`
- `5`: `Page_A3_Reverse`
- `6`: `Page_Letter`
- `7`: `Page_Letter_Reverse`
- `8`: `Page_Legal`
- `9`: `Page_Legal_Reverse` |Default value `0` - standard dimensions for the page. See [`EnumDWT_CapSupportedSizes`]({{ site.api }}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_capsupportedsizes) for more details.| +|`compression`|query|`integer(int32)`| no | - `0`: `PDF_AUTO`
- `2`: `PDF_FAX4`
- `3`: `PDF_LZW`
- `5`: `PDF_JPEG`
- `6`: `PDF_JP2000`
- `7`: `PDF_JBIG2`
- `0`: `TIFF_AUTO`
- `1`: `TIFF_NONE`
- `2`: `TIFF_RLE`
- `3`: `TIFF_FAX3`
- `3`: `TIFF_T4`
- `4`: `TIFF_FAX4`
- `4`: `TIFF_T6`
- `5`: `TIFF_LZW`
- `7`: `TIFF_JPEG`
- `32773`: `TIFF_PACKBITS` |Default value `0` - compression type for `PDF` and `TIFF`. The default value `0` corresponds to auto-compression. See the enumerations for [`TIFF`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_tiffcompressiontype) and [`PDF`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pdfcompressiontype) for valid compression methods.| +|`pageType`|query|`integer(int32)`| no | - `0`: `Page_Default`
- `1`: `Page_Custom`
- `2`: `Page_A4`
- `3`: `Page_A4_Reverse`
- `4`: `Page_A3`
- `5`: `Page_A3_Reverse`
- `6`: `Page_Letter`
- `7`: `Page_Letter_Reverse`
- `8`: `Page_Legal`
- `9`: `Page_Legal_Reverse` |Default value `0` - standard dimensions for the page. See [`EnumDWT_CapSupportedSizes`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_capsupportedsizes) for more details.| |`creator`|query|`string`| no | none |Default value `''` - creator name.| |`creationDate`|query|`string`| no | none |Default value `''` - creation date.| |`keyWords`|query|`string`| no | none |Default value `''` - key words.| @@ -1825,7 +1824,7 @@ Barcode scanning requires a valid Barcode Reader Add-On license. Blank page dete |---|---|---|---|---|---| |`X-DICS-LICENSE-KEY`|header|`string`| yes | none |A DWT license key with the Barcode Reader and RESTful API module. Contact our [sales team](https://www.dynamsoft.com/company/contact/) for a full license, or get a [30-day free trial](https://www.dynamsoft.com/web-twain/downloads/).| |`source`|body|`string`| yes |Scan job URL |Image source URL from the scan job, e.g. `https://127.0.0.1:18623/api/device/scanners/jobs/dd40716d-48d1-4d32-89f7-1d53f9665d91/next-page?page=19522d0c5282`.| -|`settings`|body|`string`| Valid barcode reading template JSON - see [`RuntimeSettings`]({{ site.api }}Interfaces.html#runtimesettings) for more details |no| Barcode reader template settings. Defaults to the `BestCoverage` setting by default. The basic settings are `BestCoverage`, `BestSpeed`, and `Balance`. Read the Barcode Reader Add-On guide for details on [basic settings]({{ site.extended-usage }}barcode-processing.html#built-in-modes) and advanced [scanning templates]({{ site.extended-usage }}barcode-processing.html#set-the-runtime-settings-using-json).| +|`settings`|body|`string`| Valid barcode reading template JSON - see [`RuntimeSettings`](/_articles/info/api/interfaces.md#runtimesettings) for more details |no| Barcode reader template settings. Defaults to the `BestCoverage` setting by default. The basic settings are `BestCoverage`, `BestSpeed`, and `Balance`. Read the Barcode Reader Add-On guide for details on [basic settings](/_articles/extended-usage/barcode-processing.md#built-in-modes) and advanced [scanning templates](/_articles/extended-usage/barcode-processing.md#set-the-runtime-settings-using-json).| #### Request Example: @@ -2123,7 +2122,7 @@ fetch(url, requestOptions) |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |`statusCode`|`number`|true|HTTP status code|HTTP status code| -|`code`|`number(int32)`|true|none|[Dynamic Web TWAIN Service status code]({{ site.api }}appendix.html). `0` is the only successful code. All error codes are negative.| +|`code`|`number(int32)`|true|none|[Dynamic Web TWAIN Service status code](/_articles/info/api/appendix.md). `0` is the only successful code. All error codes are negative.| |`message`|`string`|true|none|none| |`cause`|`object`|false|none|If cause exists, shows the system error code and message.| |» `code`|`number(int32)`|false|none|System error code.| @@ -2145,7 +2144,7 @@ One or a combination of: - `0x400`: `WIFIDIRECTSCANNER` - `0x800`: `WIATWAINSCANNER` -[External documentation]({{ site.api }}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_devicetype) +[External documentation](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_devicetype) #### Attributes diff --git a/info/governance.md b/_articles/info/governance.md similarity index 82% rename from info/governance.md rename to _articles/info/governance.md index 758215cf..4803e869 100644 --- a/info/governance.md +++ b/_articles/info/governance.md @@ -3,7 +3,6 @@ layout: default-layout needAutoGenerateSidebar: true description: "TOADD" title: "TOADD" -permalink: /info/governance.html --- # Governance diff --git a/info/schedule/Addon.md b/_articles/info/schedule/Addon.md similarity index 97% rename from info/schedule/Addon.md rename to _articles/info/schedule/Addon.md index 076e41f3..77dcfc10 100644 --- a/info/schedule/Addon.md +++ b/_articles/info/schedule/Addon.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK Schedule - Addon Release keywords: Dynamic Web TWAIN, Documentation, Schedule, Addon Release breadcrumbText: Addons description: Dynamic Web TWAIN SDK Documentation Schedule - Addon Release Page -permalink: /info/schedule/Addon.html --- # Dynamic Web TWAIN Core and Addon @@ -50,9 +49,9 @@ A lightweight PDF library integrated with Dynamic Web TWAIN SDK on the client si * SetPassword() * SetResolution() - Use [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions) and [`GetReaderOptions()`]({{site.info}}api/Addon_PDF.html#getreaderoptions) instead. + Use [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) and [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions) instead. -* Deprecate the enum value CM_RENDERALLWITHANNOTATION from [`Dynamsoft.DWT.EnumDWT_ConvertMode`]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_convertmode). +* Deprecate the enum value CM_RENDERALLWITHANNOTATION from [`Dynamsoft.DWT.EnumDWT_ConvertMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_convertmode). ### `11.5.0.0627` (06/20/2023) * Introduced the preview version of Dynamsoft's PDF Compressor diff --git a/info/schedule/Developing.md b/_articles/info/schedule/Developing.md similarity index 88% rename from info/schedule/Developing.md rename to _articles/info/schedule/Developing.md index b46b9218..65dbd6a5 100644 --- a/info/schedule/Developing.md +++ b/_articles/info/schedule/Developing.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK Schedule - Developing keywords: Dynamic Web TWAIN, Documentation, Schedule, Developing breadcrumbText: Developing description: Dynamic Web TWAIN SDK Documentation Schedule - Developing Page -permalink: /info/schedule/Developing.html --- # Features Under Development diff --git a/info/schedule/Stable.md b/_articles/info/schedule/Stable.md similarity index 82% rename from info/schedule/Stable.md rename to _articles/info/schedule/Stable.md index 5f70d953..7178da55 100644 --- a/info/schedule/Stable.md +++ b/_articles/info/schedule/Stable.md @@ -6,7 +6,6 @@ keywords: Dynamic Web TWAIN, Documentation, Schedule, Stable Release breadcrumbText: Stable Releases noTitleIndex: true description: Dynamic Web TWAIN SDK Documentation Schedule Stable Release Page -permalink: /info/schedule/Stable.html --- # Stable Releases @@ -15,18 +14,18 @@ permalink: /info/schedule/Stable.html ### New Features -- **Greatly expanded support for the [RESTful Dynamic Web TWAIN Service]({{ site.extended-usage }}restful-api.html).** +- **Greatly expanded support for the [RESTful Dynamic Web TWAIN Service](/_articles/extended-usage/restful-api.md).** - **PDF Handling**: - - Added new PDF Rasterizer Add-On API [`preserveUnmodifiedOnSave`]({{ site.api }}interfaces.html#readeroptions) to preserve the size of unmodified PDF pages when saving. - - Added new PDF Rasterizer Add-On API [`IsRasterizationRequired()`]({{ site.api }}Addon_PDF.html#israsterizationrequired). This API returns true if the PDF file contains content other than one image per page. Please note that while invoking this API does not require a license for the PDF Rasterizer Add-On, a license is required to perform actual rasterization of the PDF for viewing purposes. + - Added new PDF Rasterizer Add-On API [`preserveUnmodifiedOnSave`](/_articles/info/api/interfaces.md#readeroptions) to preserve the size of unmodified PDF pages when saving. + - Added new PDF Rasterizer Add-On API [`IsRasterizationRequired()`](/_articles/info/api/Addon_PDF.md#israsterizationrequired). This API returns true if the PDF file contains content other than one image per page. Please note that while invoking this API does not require a license for the PDF Rasterizer Add-On, a license is required to perform actual rasterization of the PDF for viewing purposes. - **Cross-platform support**: Added macOS and Linux platform support for DWT Barcode Reader Add-On. -- **Error messages**: Added more informative error messages with the new [`ErrorCause`]({{ site.api }}WebTwain_Util.html#errorcause) API. -- **Keyboard accessibility**: Added Tab key keyboard navigation in the DWT `Viewer`. The browser now shows a focus outline on the `Viewer` upon tabbing into the `Viewer`, which can be disabled with the new [`{WebTwainObject}.Viewer.disableFocusOutline`]({{ site.api }}WebTwain_Viewer.html#disablefocusoutline) API. (this property is `true` by default, i.e. disables the outline) +- **Error messages**: Added more informative error messages with the new [`ErrorCause`](/_articles/info/api/WebTwain_Util.md#errorcause) API. +- **Keyboard accessibility**: Added Tab key keyboard navigation in the DWT `Viewer`. The browser now shows a focus outline on the `Viewer` upon tabbing into the `Viewer`, which can be disabled with the new [`{WebTwainObject}.Viewer.disableFocusOutline`](/_articles/info/api/WebTwain_Viewer.md#disablefocusoutline) API. (this property is `true` by default, i.e. disables the outline) ### Improvements - **Security enhancements**: updated third-party libraries to enhance security. -- **Image rasterization logic**: The logic is optimized when two or all of the following properties are specified in [`ReaderOptions.RenderOptions`: `maxWidth`, `maxHeight`, and `resolution`]({{ site.api }}interfaces.html#readeroptions). +- **Image rasterization logic**: The logic is optimized when two or all of the following properties are specified in [`ReaderOptions.RenderOptions`: `maxWidth`, `maxHeight`, and `resolution`](/_articles/info/api/interfaces.md#readeroptions). - **Renamed the Dynamsoft Service to Dynamic Web TWAIN Service**. - **New Dynamic Web TWAIN Service installation path for Windows**: moved installation out of `SysWOW64` and `System32` on Windows to prevent rare false positive antivirus scans. @@ -34,14 +33,14 @@ permalink: /info/schedule/Stable.html - New 32-bit system-wide installation location: `C:\Program Files\Dynamsoft\Dynamic Web TWAIN Service 19` - Changed `ErrorString` messages associated with `ErrorCode -2003` for `HTTPUpload`-related APIs to include HTTP codes in the form of `HTTP process: {message}({HTTP status code})`, e.g. `HTTP process: OK(200)`. This change applies to `ErrorString` for the following APIs: - - [`{WebTwainObject}.HTTPUpload()`]({{ site.api }}WebTwain_IO.html#httpupload) - - [`{WebTwainObject}.HTTPUploadThroughPost()`]({{ site.api }}WebTwain_IO.html#httpuploadthroughpost) - - [`{WebTwainObject}.HTTPUploadThroughPostEx()`]({{ site.api }}WebTwain_IO.html#httpuploadthroughpostex) - - [`{WebTwainObject}.HTTPUploadAllThroughPostAsMultiPageTIFF()`]({{ site.api }}WebTwain_IO.html#httpuploadallthroughpostasmultipagetiff) - - [`{WebTwainObject}.HTTPUploadAllThroughPostAsPDF()`]({{ site.api }}WebTwain_IO.html#httpuploadallthroughpostaspdf) - - [`{WebTwainObject}.HTTPUploadThroughPostAsMultiPagePDF()`]({{ site.api }}WebTwain_IO.html#httpuploadthroughpostasmultipagepdf) - - [`{WebTwainObject}.HTTPUploadThroughPostAsMultiPageTIFF()`]({{ site.api }}WebTwain_IO.html#httpuploadthroughpostasmultipagetiff) -- **Thumbnail Viewer customization**: added a `position` property to the [`ThumbnailViewerEvent`]({{ site.api }}interfaces.html#thumbnailviewerevent) to facilitate further customizations, for example, displaying a delete icon when the mouse is hovering over a thumbnail. + - [`{WebTwainObject}.HTTPUpload()`](/_articles/info/api/WebTwain_IO.md#httpupload) + - [`{WebTwainObject}.HTTPUploadThroughPost()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpost) + - [`{WebTwainObject}.HTTPUploadThroughPostEx()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpostex) + - [`{WebTwainObject}.HTTPUploadAllThroughPostAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#httpuploadallthroughpostasmultipagetiff) + - [`{WebTwainObject}.HTTPUploadAllThroughPostAsPDF()`](/_articles/info/api/WebTwain_IO.md#httpuploadallthroughpostaspdf) + - [`{WebTwainObject}.HTTPUploadThroughPostAsMultiPagePDF()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpostasmultipagepdf) + - [`{WebTwainObject}.HTTPUploadThroughPostAsMultiPageTIFF()`](/_articles/info/api/WebTwain_IO.md#httpuploadthroughpostasmultipagetiff) +- **Thumbnail Viewer customization**: added a `position` property to the [`ThumbnailViewerEvent`](/_articles/info/api/interfaces.md#thumbnailviewerevent) to facilitate further customizations, for example, displaying a delete icon when the mouse is hovering over a thumbnail. ![thumbnail viewer event](/assets/imgs/thumbnail-viewer-event-demo.jpg) @@ -85,15 +84,15 @@ permalink: /info/schedule/Stable.html ### New features -- [Save the encrypted image caches in local Dynamsoft Service folder]({{site.extended-usage}}buffer-caching.html#save-the-encrypted-image-caches-in-local-dynamsoft-service-folder) +- [Save the encrypted image caches in local Dynamsoft Service folder](https://www.dynamsoft.com/web-twain/docs-archive/v18.5.1/extended-usage/buffer-caching.html#save-the-encrypted-image-caches-in-local-dynamsoft-service-folder) In certain scenarios, there may be requirements to store encrypted image caches on a local disk for temporary data storage or backup purposes. Dynamic Web TWAIN introduces a new feature that facilitates developers in securely storing image caches in encrypted form within the Dynamsoft Service folder. -- [Access-Control-Allow-Origin for Dynamsoft Service]({{site.extended-usage}}dynamsoft-service-configuration.html#access-control-allow-origin) +- [Access-Control-Allow-Origin for Dynamsoft Service](/_articles/extended-usage/dynamsoft-service-configuration.md#access-control-allow-origin) A new security feature configures Dynamsoft Service to respond only to requests from specified origins. -- [Generate the encrypted PDF files]({{site.extended-usage}}pdf-processing.html#pdf-save-settings) +- [Generate the encrypted PDF files](/_articles/extended-usage/pdf-processing.md#pdf-save-settings) Supports the generation of encrypted PDF files with password protection. @@ -103,35 +102,35 @@ permalink: /info/schedule/Stable.html | APIs | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | - | [`IfCheckCORS`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#ifcheckcors) | Whether to check CORS issue in detail. | + | [`IfCheckCORS`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#ifcheckcors) | Whether to check CORS issue in detail. | - Buffer | APIs | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | - | [`updateImage()`]({{site.info}}api/WebTwain_Buffer.html#updateimage) | Update the specified image with a new image. | - | [`OnDiskExceedLimit`]({{site.info}}api/WebTwain_Buffer.html#ondiskexceedlimit) | A built-in callback triggered when disk cache exceeds the limit. | + | [`updateImage()`](/_articles/info/api/WebTwain_Buffer.md#updateimage) | Update the specified image with a new image. | + | [`OnDiskExceedLimit`](/_articles/info/api/WebTwain_Buffer.md#ondiskexceedlimit) | A built-in callback triggered when disk cache exceeds the limit. | - Input/Output | APIs | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | - | [`createLocalStorage()`]({{site.info}}api/WebTwain_IO.html#createlocalstorage) | Create a storage folder locally to save the cache of encrypted images. | - | [`localStorageExist()`]({{site.info}}api/WebTwain_IO.html#localstorageexist) | Determine whether the storage folder exists or not. | - | [`saveToLocalStorage()`]({{site.info}}api/WebTwain_IO.html#savetolocalstorage) | Save encrypted image caches to the specified storage folder. | - | [`loadFromLocalStorage()`]({{site.info}}api/WebTwain_IO.html#loadfromlocalstorage) | Load image from the specified storage folder. | - | [`removeLocalStorage()`]({{site.info}}api/WebTwain_IO.html#removelocalstorage) | Remove the specified storage folder. | - | [`httpUploadBlob()`]({{site.info}}api/WebTwain_IO.html#httpuploadblob) | Upload images which are in blob format. | - | [`saveBlob()`]({{site.info}}api/WebTwain_IO.html#saveblob) | Save image which are in blob format. | - | [`IfSortBySelectionOrder`]({{site.info}}api/WebTwain_IO.html#ifsortbyselectionorder) | Whether to load the files by the selection order when load files by open file dialog. | + | [`createLocalStorage()`](/_articles/info/api/WebTwain_IO.md#createlocalstorage) | Create a storage folder locally to save the cache of encrypted images. | + | [`localStorageExist()`](/_articles/info/api/WebTwain_IO.md#localstorageexist) | Determine whether the storage folder exists or not. | + | [`saveToLocalStorage()`](/_articles/info/api/WebTwain_IO.md#savetolocalstorage) | Save encrypted image caches to the specified storage folder. | + | [`loadFromLocalStorage()`](/_articles/info/api/WebTwain_IO.md#loadfromlocalstorage) | Load image from the specified storage folder. | + | [`removeLocalStorage()`](/_articles/info/api/WebTwain_IO.md#removelocalstorage) | Remove the specified storage folder. | + | [`httpUploadBlob()`](/_articles/info/api/WebTwain_IO.md#httpuploadblob) | Upload images which are in blob format. | + | [`saveBlob()`](/_articles/info/api/WebTwain_IO.md#saveblob) | Save image which are in blob format. | + | [`IfSortBySelectionOrder`](/_articles/info/api/WebTwain_IO.md#ifsortbyselectionorder) | Whether to load the files by the selection order when load files by open file dialog. | ### Improvements - Updated third-party libraries to enhance security. -- Added an optional parameter `capabilities` to the method [`getCapabilities()`]({{site.info}}api/WebTwain_Acquire.html#getcapabilities) for getting specified capabilities. -- Added `modifyId` to the interface [`BufferChangeInfo`]({{site.info}}api/interfaces.html#bufferchangeinfo) for returning the `imageId` of the modified image when [`OnBufferChanged`]({{site.info}}api/WebTwain_Buffer.html#onbufferchanged) is triggered. -- Added `password` to the interface [`PDFWSettings`]({{site.info}}api/interfaces.html#pdfwsettings) for configuring the password of the PDF file to save when [`Write.Setup()`]({{site.info}}api/Addon_PDF.html#writesetup) is called. -- Added data type `Device` to the parameter `scanner` in the interface [`ScanSetup`]({{site.info}}api/interfaces.html#scansetup) for supporting the device object when [`startScan()`]({{site.info}}api/WebTwain_Acquire.html#startscan) is used. +- Added an optional parameter `capabilities` to the method [`getCapabilities()`](/_articles/info/api/WebTwain_Acquire.md#getcapabilities) for getting specified capabilities. +- Added `modifyId` to the interface [`BufferChangeInfo`](/_articles/info/api/interfaces.md#bufferchangeinfo) for returning the `imageId` of the modified image when [`OnBufferChanged`](/_articles/info/api/WebTwain_Buffer.md#onbufferchanged) is triggered. +- Added `password` to the interface [`PDFWSettings`](/_articles/info/api/interfaces.md#pdfwsettings) for configuring the password of the PDF file to save when [`Write.Setup()`](/_articles/info/api/Addon_PDF.md#writesetup) is called. +- Added data type `Device` to the parameter `scanner` in the interface [`ScanSetup`](/_articles/info/api/interfaces.md#scansetup) for supporting the device object when [`startScan()`](/_articles/info/api/WebTwain_Acquire.md#startscan) is used. - Optimized the quality of the deskewed image in the built-in ImageEditor. ### Changes @@ -142,21 +141,21 @@ permalink: /info/schedule/Stable.html - Changed the data type of `imageId` from `number` to `string`. The affected APIs are as follows: - - Methods: [`ImageIDToIndex()`]({{site.info}}api/WebTwain_Buffer.html#imageidtoindex), [`IndexToImageID()`]({{site.info}}api/WebTwain_Buffer.html#indextoimageid) + - Methods: [`ImageIDToIndex()`](/_articles/info/api/WebTwain_Buffer.md#imageidtoindex), [`IndexToImageID()`](/_articles/info/api/WebTwain_Buffer.md#indextoimageid) - Interfaces: | Interfaces | Related Methods or Events | | ------------------------------------------------------------ | ------------------------------------------------------------ | - | [`TagInfo`]({{site.info}}api/interfaces.html#taginfo) | [`GetTagList()`]({{site.info}}api/WebTwain_Buffer.html#gettaglist) | - | [`DocumentInfo`]({{site.info}}api/interfaces.html#documentinfo) | [`GetDocumentInfoList()`]({{site.info}}api/WebTwain_Buffer.html#getdocumentinfolist) | - | [`OutputInfo`]({{site.info}}api/interfaces.html#outputinfo) | [`OnPostTransferAsync`]({{site.info}}api/WebTwain_Acquire.html#onposttransferasync) | - | [`BufferChangeInfo`]({{site.info}}api/interfaces.html#bufferchangeinfo) | [`OnBufferChanged`]({{site.info}}api/WebTwain_Buffer.html#onbufferchanged) | + | [`TagInfo`](/_articles/info/api/interfaces.md#taginfo) | [`GetTagList()`](/_articles/info/api/WebTwain_Buffer.md#gettaglist) | + | [`DocumentInfo`](/_articles/info/api/interfaces.md#documentinfo) | [`GetDocumentInfoList()`](/_articles/info/api/WebTwain_Buffer.md#getdocumentinfolist) | + | [`OutputInfo`](/_articles/info/api/interfaces.md#outputinfo) | [`OnPostTransferAsync`](/_articles/info/api/WebTwain_Acquire.md#onposttransferasync) | + | [`BufferChangeInfo`](/_articles/info/api/interfaces.md#bufferchangeinfo) | [`OnBufferChanged`](/_articles/info/api/WebTwain_Buffer.md#onbufferchanged) | ### Bug fixes -- Resolved a bug where a predominantly white image turned black when changing its bit depth to 1 or converting it to B&W by fixing a threshold issue in the methods [`ChangeBitDepth()`]({{site.info}}api/WebTwain_Edit.html#changebitdepth) and [`ConvertToBW()`]({{site.info}}api/WebTwain_Edit.html#converttobw). +- Resolved a bug where a predominantly white image turned black when changing its bit depth to 1 or converting it to B&W by fixing a threshold issue in the methods [`ChangeBitDepth()`](/_articles/info/api/WebTwain_Edit.md#changebitdepth) and [`ConvertToBW()`](/_articles/info/api/WebTwain_Edit.md#converttobw). - Resolved the file compatibility issue when loading PDF files via drag and drop. -- Resolved a bug where [`Dynamsoft.DWT.Unload()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#unload) was still called even when the web page reload was cancelled. +- Resolved a bug where [`Dynamsoft.DWT.Unload()`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#unload) was still called even when the web page reload was cancelled. ### Barcode Reader Addon @@ -169,7 +168,7 @@ permalink: /info/schedule/Stable.html ## 18.4.1 (10/24/2023) ### MacOS Service Hotfix -- Due to changes introduced with ICA drivers, Dynamic Web TWAIN may exhibit strange behaviour while scanning. This release updates the Dynamsoft Service for MacOS to address these issues. See [this article]({{site.faq}}macos-sonoma-distorted-scans.html) for more details. +- Due to changes introduced with ICA drivers, Dynamic Web TWAIN may exhibit strange behaviour while scanning. This release updates the Dynamsoft Service for MacOS to address these issues. See [this article](/_articles/faq/macos-sonoma-distorted-scans.md) for more details. ### DWTObject process optimization - Fixed an issue where if the Web TWAIN object was deleted from context mid scan, the scanning queue would not terminate, leaving any future requests being left pending in queue. @@ -187,23 +186,23 @@ permalink: /info/schedule/Stable.html ### New APIs and Properties #### Viewer and Image Editor Improvements -- Added [`updateSelectionBoxStyle()`]({{site.info}}api/WebTwain_Viewer.html#updateselectionboxstyle) to both the Viewer and the Image Editor to allow for custom styling of the rectangular selection box used when selecting a portion of an image in the Viewer and Image Editor. +- Added [`updateSelectionBoxStyle()`](/_articles/info/api/WebTwain_Viewer.md#updateselectionboxstyle) to both the Viewer and the Image Editor to allow for custom styling of the rectangular selection box used when selecting a portion of an image in the Viewer and Image Editor. #### Editor Functionality -- Added [`OutputSelectedAreaAsync()`]({{site.info}}api/WebTwain_IO.html#outputselectedareaasync) to export the selected image area to blob or base64. +- Added [`OutputSelectedAreaAsync()`](/_articles/info/api/WebTwain_IO.md#outputselectedareaasync) to export the selected image area to blob or base64. #### Resource Optimization - Added `Dynamsoft.DWT.ServiceInstallerLocation` to allow moving the dist folder to a different location than the Resources folder. #### Buffer -- Added [`MoveToDocumentAsync()`]({{site.info}}api/WebTwain_Buffer.html#movetodocumentasync) and [`CopyToDocumentAsync()`]({{site.info}}api/WebTwain_Buffer.html#copytodocumentasync) to allow for more multi-document handling. -- Added [`IsBlankImageAsync()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageasync) as an additional blank page detection method using a different algorithm than the existing `IsBlankImage()` and `IsBlankImageExpress()` functions. This method allows for sensitivity customization, enabling users to overlook minor marks and disregard background patterns. This API currently is Windows only. +- Added [`MoveToDocumentAsync()`](/_articles/info/api/WebTwain_Buffer.md#movetodocumentasync) and [`CopyToDocumentAsync()`](/_articles/info/api/WebTwain_Buffer.md#copytodocumentasync) to allow for more multi-document handling. +- Added [`IsBlankImageAsync()`](/_articles/info/api/WebTwain_Buffer.md#isblankimageasync) as an additional blank page detection method using a different algorithm than the existing `IsBlankImage()` and `IsBlankImageExpress()` functions. This method allows for sensitivity customization, enabling users to overlook minor marks and disregard background patterns. This API currently is Windows only. ### Improvements #### PDF Rasterizer -- Added new [`ReaderOptions`]({{site.info}}api/Interfaces.html#readeroptions) interface. -- Added functions [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions) and [`GetReaderOptions()`]({{site.info}}api/Addon_PDF.html#getreaderoptions) to utilize the new `ReaderOptions` interface. +- Added new [`ReaderOptions`](/_articles/info/api/interfaces.md#readeroptions) interface. +- Added functions [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) and [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions) to utilize the new `ReaderOptions` interface. #### File Saving - Saving a Black and White JPG will now automatically convert the image to grayscale prior to saving. This is due to the limitation that JPGs do not allow black and white images. Previously, Black and White images were not able to be saved to JPG without manually converting the colourspace prior. @@ -214,7 +213,7 @@ permalink: /info/schedule/Stable.html ### Deprecations #### PDF Rasterizer -> [Alternative] Use the [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions) and [`GetReaderOptions()`]({{site.info}}api/Addon_PDF.html#getreaderoptions) functions instead. +> [Alternative] Use the [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) and [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions) functions instead. * GetConvertMode() * SetConvertMode() @@ -223,7 +222,7 @@ permalink: /info/schedule/Stable.html #### Viewer -* selectedAreaBorderColor has been deprecated. Please use the [`updateSelectionBoxStyle()`]({{site.info}}api/WebTwain_Viewer.html#updateselectionboxstyle) function. +* selectedAreaBorderColor has been deprecated. Please use the [`updateSelectionBoxStyle()`](/_articles/info/api/WebTwain_Viewer.md#updateselectionboxstyle) function. ## 18.3 (06/20/2023) @@ -264,7 +263,7 @@ permalink: /info/schedule/Stable.html ### New Features #### WIA 2.0 Scanner Support - - Added support for direct control of WIA 2.0 drivers in [EnumDWT_DeviceType]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_devicetype). + - Added support for direct control of WIA 2.0 drivers in [EnumDWT_DeviceType](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_devicetype). @@ -280,12 +279,12 @@ permalink: /info/schedule/Stable.html ### Improvements #### Image Viewer -- The Viewer component has been migrated to a dedicated resource file. This will allow for viewerless implementations of Dynamic Web TWAIN, as well as reducing the load on the browser by removing the necessity of loading the Viewer resources into memory when the Viewer is not being used. See the property [Dynamsoft.DWT.UseDefaultViewer]({{site.info}}api/Dynamsoft_WebTwainEnv.html#usedefaultviewer). -- Added the enum [EnumDWT_WorkMode]({{site.info}}api/Dynamsoft_Enum.html#dynamsoftdwtenumdwt_workmode) with a new option for image editor setting. Please refer to [createImageEditor]({{site.info}}api/WebTwain_Viewer.html#createimageeditor). -- Added new method `save()` to the ImageEditor object, please refer to [createImageEditor]({{site.info}}api/WebTwain_Viewer.html#createimageeditor). +- The Viewer component has been migrated to a dedicated resource file. This will allow for viewerless implementations of Dynamic Web TWAIN, as well as reducing the load on the browser by removing the necessity of loading the Viewer resources into memory when the Viewer is not being used. See the property [Dynamsoft.DWT.UseDefaultViewer](/_articles/info/api/Dynamsoft_WebTwainEnv.md#usedefaultviewer). +- Added the enum [EnumDWT_WorkMode](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_workmode) with a new option for image editor setting. Please refer to [createImageEditor](/_articles/info/api/WebTwain_Viewer.md#createimageeditor). +- Added new method `save()` to the ImageEditor object, please refer to [createImageEditor](/_articles/info/api/WebTwain_Viewer.md#createimageeditor). #### Optimized error handling during web twain initialization -- Added the [OnWebTwainError]({{site.info}}api/Dynamsoft_WebTwainEnv.html#onwebtwainerror) event for better capturing errors during the Web Twain object initialization. +- Added the [OnWebTwainError](/_articles/info/api/Dynamsoft_WebTwainEnv.md#onwebtwainerror) event for better capturing errors during the Web Twain object initialization. #### General Improvements - Updated the barcode reader library to v9.6.20 @@ -330,21 +329,21 @@ Plus Edition is a temporary edition as its enhanced features will be separated i [Get Dynamsoft Service in Google Play](https://play.google.com/store/apps/details?id=com.dynamsoft.mobilescan) ##### Scanner - - Added new method GetDevicesAsync. - - Added new method SelectDeviceAsync. - - Added new method AcquireImageAsync. - - Added new optional parameter `deviceType` to the method SelectSourceAsync. + - Added new method GetDevicesAsync. + - Added new method SelectDeviceAsync. + - Added new method AcquireImageAsync. + - Added new optional parameter `deviceType` to the method SelectSourceAsync. ##### Mobile Web Capture - Support turning on/off torch - - Added new method turnOnTorch and turnOffTorch. - - Added new method getCapabilities. - - Added new property `torch` to `ScannerViewer`. Refer to scanDocument. + - Added new method turnOnTorch and turnOffTorch. + - Added new method getCapabilities. + - Added new property `torch` to `ScannerViewer`. Refer to scanDocument. #### Improved Features - All license key types can now be specified with the API Dynamsoft.DWT.ProductKey. - - Added new property Dynamsoft.DWT.DeviceFriendlyName which defines the specific device that consumes the license quota - - Added new enumeration Dynamsoft.DWT.EnumDWT_ExtImageInfo + - Added new property Dynamsoft.DWT.DeviceFriendlyName which defines the specific device that consumes the license quota + - Added new enumeration Dynamsoft.DWT.EnumDWT_ExtImageInfo - Updated Barcode Reader add-on library to version 9.4. Check out the release notes for Barcode Reader JavaScript SDK - 9.x @@ -355,18 +354,18 @@ Plus Edition is a temporary edition as its enhanced features will be separated i - ConvertToBase64 not working in v17.3 #### Deprecations - - Check out the [Deprecations]({{site.info}}schedule/deprecated.html#180) page for v18.0 deprecations. + - Check out the [Deprecations](/_articles/info/schedule/deprecated.md#180) page for v18.0 deprecations. #### Changes to ActiveX Edition - Added the following API supports for better compatibility with HTML5 Edition: - HTTPUpload, - ConvertToBase64, - OnBufferChanged, - CloseSourceAsync, - OpenSourceAsync, - GetSourceNamesAsync, - CloseSourceManagerAsync, - OpenSourceManagerAsync + HTTPUpload, + ConvertToBase64, + OnBufferChanged, + CloseSourceAsync, + OpenSourceAsync, + GetSourceNamesAsync, + CloseSourceManagerAsync, + OpenSourceManagerAsync ### Remote Scan Remote Document Scanning enables document scanning from all available Dynamsoft Services and eSCL scanners on the intranet through one proxy service, via any supported devices and browsers, without any software installation. Please refer to this documentation for more details. @@ -374,7 +373,7 @@ Remote Document Scanning enables document scanning from all available Dynamsoft ### Breaking Changes -In 18.0+, if you call Dynamsoft.DWT.GetWebTwain against a non-existant ContainerID, you will get a null return. Previously, if you made the same call in the same situation, the WebTWAIN object would still initialize. To initiate the WebTWAIN object against a ContainerID, please use `GetWebTwain`. To utilize a viewer-less WebTWAIN object, please use [`CreateDWTObjectEx`]({{site.indepth}}/features/viewer.html#create-a-viewer-and-bind-a-viewer-less-webtwain-instance) +In 18.0+, if you call Dynamsoft.DWT.GetWebTwain against a non-existant ContainerID, you will get a null return. Previously, if you made the same call in the same situation, the WebTWAIN object would still initialize. To initiate the WebTWAIN object against a ContainerID, please use `GetWebTwain`. To utilize a viewer-less WebTWAIN object, please use [`CreateDWTObjectEx`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#createdwtobjectex) ## 17.3 (06/30/2022) @@ -390,26 +389,26 @@ In 18.0+, if you call Dynamsoft.DWT.GetWebTwain against a non-existant Container See the **live demo**. #### Buffer -- Added new method RenameDocument. +- Added new method RenameDocument. - Renamed methods - - CreateFile -> CreateDocument - - OpenFile -> OpenDocument - - GetCurrentFileName -> GetCurrentDocumentName - - RemoveFile -> RemoveDocument - - GetFileInfoList -> GetDocumentInfoList -- Added new method GetRawDataAsync. + - CreateFile -> CreateDocument + - OpenFile -> OpenDocument + - GetCurrentFileName -> GetCurrentDocumentName + - RemoveFile -> RemoveDocument + - GetFileInfoList -> GetDocumentInfoList +- Added new method GetRawDataAsync. #### Viewer -- Added new method updateCheckboxStyle to customize checkboxes. This method is also added to `ThumbnailViewer`. Refer to createThumbnailViewer. -- Added new method updatePageNumberStyle to customize page numbers. This method is also added to `ThumbnailViewer`. Refer to createThumbnailViewer. -- Added new properties `checkbox` and `pageNumber` to `ThumbnailViewerSettings`. Refer to createThumbnailViewer. -- Added a new parameter `documentConfiguration` to the method createTemplate. -- Added new method createDocumentEditor. -- Added new property selectionMode. -- Added new property allowPageDragging. +- Added new method updateCheckboxStyle to customize checkboxes. This method is also added to `ThumbnailViewer`. Refer to createThumbnailViewer. +- Added new method updatePageNumberStyle to customize page numbers. This method is also added to `ThumbnailViewer`. Refer to createThumbnailViewer. +- Added new properties `checkbox` and `pageNumber` to `ThumbnailViewerSettings`. Refer to createThumbnailViewer. +- Added a new parameter `documentConfiguration` to the method createTemplate. +- Added new method createDocumentEditor. +- Added new property selectionMode. +- Added new property allowPageDragging. ### Minor Improvements - - Modified Dynamsoft.DWT.EnumDWT_PDFCompressionType from `PDF_JBig2` to `PDF_JBIG2`. + - Modified Dynamsoft.DWT.EnumDWT_PDFCompressionType from `PDF_JBig2` to `PDF_JBIG2`. - Made changes to support organizationID value for Dynamsoft.DWT.ProductKey. - Enabled license key validation for the correct version during initialization. @@ -425,7 +424,7 @@ See the view mode is set to (-1, -1) or if a thumbnail viewer is used. + - Updated the file *dynamsoft.webtwain.initiate.js* to resolve a memory leak issue in v17.2.1 on Chrome 98+ when the view mode is set to (-1, -1) or if a thumbnail viewer is used. ## 17.2.1 (02/24/2022) ### Improved Features - - Made changes to handle CORS preflight requests sent by Chrome from V98. Learn more here. + - Made changes to handle CORS preflight requests sent by Chrome from V98. Learn more here. - For Chromium V84+, use userAgentData instead of userAgent in response to UserAgent String phasing out issue. ### Bug Fixes - - Fixed a bug where Dynamsoft Service installation/uninstallation failed due to the current user account does not match the user account under C:\Users{account}. Learn more here. - - [HTML5 on MacOS] Fixed a bug where the short key (set by organizationID) did not work on macOS 12+. + - Fixed a bug where Dynamsoft Service installation/uninstallation failed due to the current user account does not match the user account under C:\Users{account}. Learn more here. + - [HTML5 on MacOS] Fixed a bug where the short key (set by organizationID) did not work on macOS 12+. - Fixed a bug where the mouse wheel did not work when the mouse was over the viewer. - [HTML5 on MacOS] Fixed a bug where buttons were not visible during Dynamic Web TWAIN/Dynamsoft Service installation when using dark mode. @@ -457,29 +456,29 @@ See the `CreateFile()`. - - [HTML5 & WASM] Added new method `OpenFile()`. - - [HTML5 & WASM] Added new method `RemoveFile()`. - - [HTML5 & WASM] Added new method `GetCurrentFileName()`. - - [HTML5 & WASM] Added new method `GetFileInfoList()`. - - [HTML5 & WASM] Added new method `GetTagListByIndex()`. + - [HTML5 & WASM] Added new method `CreateFile()`. + - [HTML5 & WASM] Added new method `OpenFile()`. + - [HTML5 & WASM] Added new method `RemoveFile()`. + - [HTML5 & WASM] Added new method `GetCurrentFileName()`. + - [HTML5 & WASM] Added new method `GetFileInfoList()`. + - [HTML5 & WASM] Added new method `GetTagListByIndex()`. #### Editor -- [HTML5 & WASM] Added new method `ChangeBrightnessAsync()`. -- [HTML5 & WASM] Added new method `ChangeContrastAsnyc()`. +- [HTML5 & WASM] Added new method `ChangeBrightnessAsync()`. +- [HTML5 & WASM] Added new method `ChangeContrastAsnyc()`. #### Camera -- [WASM] Added new method `scanDocument()` to capture document(s). +- [WASM] Added new method `scanDocument()` to capture document(s). #### Viewer -- [HTML5 & WASM] Added new property `showCheckbox`. -- [HTML5 & WASM] Added new method `createTemplate()` to create document scanner template. +- [HTML5 & WASM] Added new property `showCheckbox`. +- [HTML5 & WASM] Added new method `createTemplate()` to create document scanner template. ### Improved Features * Improved the mobile document capture in WASM mode. See more here. -* Added `CM_RENDERALLWITHANNOTATION` convert mode to EnumDWT_ConvertMode to support loading PDFs with annotations. +* Added `CM_RENDERALLWITHANNOTATION` convert mode to EnumDWT_ConvertMode to support loading PDFs with annotations. * Modified DynamicImage.dll(DynamicImagex64.dll) to improve encoding and decoding mode of TIFF files. * Updated Barcode Reader library to version 8.6. Check out the release notes for Barcode Reader JavaScript SDK - 8.6 @@ -496,7 +495,7 @@ See the LoadDibFromClipboard to make it more stable. +* Improved LoadDibFromClipboard to make it more stable. ### Bug Fixes @@ -509,7 +508,7 @@ See the here -* Added property organizationID which can be used to fetch license(s) belonging to the specified organization from the License Tracking Server. With this property, the licensing of the library is smoother from trial to full and it is much easier to manage a license change without code updates. +* Added property organizationID which can be used to fetch license(s) belonging to the specified organization from the License Tracking Server. With this property, the licensing of the library is smoother from trial to full and it is much easier to manage a license change without code updates. ### Improved Features @@ -542,13 +541,13 @@ See the `ViewerEvent.imageX` and `ViewerEvent.imageY` are only available as the first argument in callback functions for the mouse events "click", "dblclick", "contextMenu" and "mousemove". * The following APIs are new in v16.2 - + [ `Viewer.acceptDrop` ]({{site.info}}api/WebTwain_Viewer.html#acceptdrop) - + [ `Viewer.allowSlide` ]({{site.info}}api/WebTwain_Viewer.html#allowslide) - + [ `Viewer.clearSelectedAreas()` ]({{site.info}}api/WebTwain_Viewer.html#clearselectedareas) - + [ `Viewer.createThumbnailViewer()` ]({{site.info}}api/WebTwain_Viewer.html#createthumbnailviewer) - + [ `Viewer.border` ]({{site.info}}api/WebTwain_Viewer.html#border) - + [ `Viewer.first()` ]({{site.info}}api/WebTwain_Viewer.html#first) - + [ `Viewer.getUISettings()` ]({{site.info}}api/WebTwain_Viewer.html#getuisettings) - + [ `Viewer.gotoPage()` ]({{site.info}}api/WebTwain_Viewer.html#gotopage) - + [ `Viewer.idPostfix` ]({{site.info}}api/WebTwain_Viewer.html#idpostfix) - + [ `Viewer.innerBorder` ]({{site.info}}api/WebTwain_Viewer.html#innerborder) - + [ `Viewer.last()` ]({{site.info}}api/WebTwain_Viewer.html#last) - + [ `Viewer.next()` ]({{site.info}}api/WebTwain_Viewer.html#next) - + [ `Viewer.on("pageRendered", callback)` ]({{site.info}}api/WebTwain_Viewer.html#pagerendered) - + [ `Viewer.on("resize", callback)` ]({{site.info}}api/WebTwain_Viewer.html#resize) - + [ `Viewer.previous()` ]({{site.info}}api/WebTwain_Viewer.html#previous) - + [ `Viewer.render()` ]({{site.info}}api/WebTwain_Viewer.html#render) - + [ `Viewer.resetUISettings()` ]({{site.info}}api/WebTwain_Viewer.html#resetuisettings) - + [ `Viewer.selectedAreaBorderColor` ]({{site.info}}api/WebTwain_Viewer.html#selectedareabordercolor) - + [ `Viewer.selectedPageBackground` ]({{site.info}}api/WebTwain_Viewer.html#selectedpagebackground) - + [ `Viewer.singlePageMode` ]({{site.info}}api/WebTwain_Viewer.html#singlepagemode) + + [ `Viewer.acceptDrop` ](/_articles/info/api/WebTwain_Viewer.md#acceptdrop) + + [ `Viewer.allowSlide` ](/_articles/info/api/WebTwain_Viewer.md#allowslide) + + [ `Viewer.clearSelectedAreas()` ](/_articles/info/api/WebTwain_Viewer.md#clearselectedareas) + + [ `Viewer.createThumbnailViewer()` ](/_articles/info/api/WebTwain_Viewer.md#createthumbnailviewer) + + [ `Viewer.border` ](/_articles/info/api/WebTwain_Viewer.md#border) + + [ `Viewer.first()` ](/_articles/info/api/WebTwain_Viewer.md#first) + + [ `Viewer.getUISettings()` ](/_articles/info/api/WebTwain_Viewer.md#getuisettings) + + [ `Viewer.gotoPage()` ](/_articles/info/api/WebTwain_Viewer.md#gotopage) + + [ `Viewer.idPostfix` ](/_articles/info/api/WebTwain_Viewer.md#idpostfix) + + [ `Viewer.innerBorder` ](/_articles/info/api/WebTwain_Viewer.md#innerborder) + + [ `Viewer.last()` ](/_articles/info/api/WebTwain_Viewer.md#last) + + [ `Viewer.next()` ](/_articles/info/api/WebTwain_Viewer.md#next) + + [ `Viewer.on("pageRendered", callback)` ](/_articles/info/api/WebTwain_Viewer.md#pagerendered) + + [ `Viewer.on("resize", callback)` ](/_articles/info/api/WebTwain_Viewer.md#resize) + + [ `Viewer.previous()` ](/_articles/info/api/WebTwain_Viewer.md#previous) + + [ `Viewer.render()` ](/_articles/info/api/WebTwain_Viewer.md#render) + + [ `Viewer.resetUISettings()` ](/_articles/info/api/WebTwain_Viewer.md#resetuisettings) + + [ `Viewer.selectedAreaBorderColor` ](/_articles/info/api/WebTwain_Viewer.md#selectedareabordercolor) + + [ `Viewer.selectedPageBackground` ](/_articles/info/api/WebTwain_Viewer.md#selectedpagebackground) + + [ `Viewer.singlePageMode` ](/_articles/info/api/WebTwain_Viewer.md#singlepagemode) * The following APIs in v16.2 are improved based on old APIs in v16.1-. - + [`Viewer.setViewMode()`]({{site.info}}api/WebTwain_Viewer.html#setviewmode) + + [`Viewer.setViewMode()`](/_articles/info/api/WebTwain_Viewer.md#setviewmode) It also accepts the values "-1, -1" which is equivalent to setting `Viewer.singlePageMode` to `true` . - + [`Viewer.updateUISettings()`]({{site.info}}api/WebTwain_Viewer.html#updateuisettings) + + [`Viewer.updateUISettings()`](/_articles/info/api/WebTwain_Viewer.md#updateuisettings) * The following APIs are also deprecated in v16.2 @@ -281,7 +280,7 @@ OCR Basic and OCR Pro client-side are deprecated. ### TWAIN Capability Negotiation -> [Alternative] Use [getCapabilities()]({{site.info}}api/WebTwain_Acquire.html#getcapabilities) and [setCapabilities()]({{site.info}}api/WebTwain_Acquire.html#setcapabilities) instead. +> [Alternative] Use [getCapabilities()](/_articles/info/api/WebTwain_Acquire.md#getcapabilities) and [setCapabilities()](/_articles/info/api/WebTwain_Acquire.md#setcapabilities) instead. * CapGet() * CapGetHelp() @@ -317,7 +316,7 @@ OCR Basic and OCR Pro client-side are deprecated. ### Buffer Management -> [Alternative] Use [SelectedImagesIndices]({{site.info}}api/WebTwain_Buffer.html#selectedimagesindices), [SelectAllImages()]({{site.info}}api/WebTwain_Buffer.html#selectallimages) and [SelectImages()]({{site.info}}api/WebTwain_Buffer.html#selectimages) instead. +> [Alternative] Use [SelectedImagesIndices](/_articles/info/api/WebTwain_Buffer.md#selectedimagesindices), [SelectAllImages()](/_articles/info/api/WebTwain_Buffer.md#selectallimages) and [SelectImages()](/_articles/info/api/WebTwain_Buffer.md#selectimages) instead. * GetSelectedImageIndex() * SetSelectedImageIndex @@ -333,7 +332,7 @@ OCR Basic and OCR Pro client-side are deprecated. ### Input and Output -> [Alternative] Use new methods like [ConvertToBase64()]({{site.info}}api/WebTwain_IO.html#converttobase64), [PDF.Write.Setup()]({{site.info}}api/Addon_PDF.html#writesetup) +> [Alternative] Use new methods like [ConvertToBase64()](/_articles/info/api/WebTwain_IO.md#converttobase64), [PDF.Write.Setup()](/_articles/info/api/Addon_PDF.md#writesetup) * SaveSelectedImagesToBase64Binary() * SetCookie() @@ -352,7 +351,7 @@ OCR Basic and OCR Pro client-side are deprecated. ### Viewer -> [Alternative] Use methods like [Viewer.setViewMode()]({{site.info}}api/WebTwain_Viewer.html#setviewmode), [Viewer.setViewMode()]({{site.info}}api/WebTwain_Viewer.html#setviewmode) +> [Alternative] Use methods like [Viewer.setViewMode()](/_articles/info/api/WebTwain_Viewer.md#setviewmode), [Viewer.setViewMode()](/_articles/info/api/WebTwain_Viewer.md#setviewmode) * SetViewMode() * SetSelectedImageArea() diff --git a/_articles/info/schedule/index.md b/_articles/info/schedule/index.md new file mode 100644 index 00000000..e3bc1687 --- /dev/null +++ b/_articles/info/schedule/index.md @@ -0,0 +1,29 @@ +--- +layout: default-layout +needAutoGenerateSidebar: false +title: Dynamic Web TWAIN SDK Schedule +keywords: Dynamic Web TWAIN, Documentation, Schedule, Index +breadcrumbText: Release Notes +description: Dynamic Web TWAIN SDK Documentation Schedule Index Page +--- + +# Release Notes + +## [Stable](/_articles/info/schedule/Stable.md) + + + +## [Addon Release](/_articles/info/schedule/Addon.md) + +## [Deprecated](/_articles/info/schedule/deprecated.md) + diff --git a/info/schedule/proposed.md b/_articles/info/schedule/proposed.md similarity index 91% rename from info/schedule/proposed.md rename to _articles/info/schedule/proposed.md index 68519d00..ac8d024e 100644 --- a/info/schedule/proposed.md +++ b/_articles/info/schedule/proposed.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Schedule - Features Proposed keywords: Dynamic Web TWAIN, Documentation, Schedule, Features Proposed breadcrumbText: Proposed description: Dynamic Web TWAIN SDK Documentation Schedule Features Proposed Page -permalink: /info/schedule/proposed.html --- # Features confirmed to be implemented in a later release diff --git a/articles/introduction/imaging-hardware.md b/_articles/introduction/imaging-hardware.md similarity index 83% rename from articles/introduction/imaging-hardware.md rename to _articles/introduction/imaging-hardware.md index 124101e2..82a94aa5 100644 --- a/articles/introduction/imaging-hardware.md +++ b/_articles/introduction/imaging-hardware.md @@ -5,7 +5,6 @@ title: Imaging Hardware keywords: Dynamic Web TWAIN, Documentation, TWAIN, ICA, SANE, DirectShow, Webcam, MediaDevices Hardware breadcrumbText: Imaging Hardware description: Dynamic Web TWAIN supports image capture from TWAIN Scanners, ICA Scanners, SANE Scanners, DirectShow Cameras, and MediaDevices Cameras. -permalink: /introduction/imaging-hardware.html --- # Imaging Hardware @@ -37,7 +36,7 @@ Dynamic Web TWAIN's main feature is interacting with imaging devices like scanne * TWAIN is [the most commonly used protocol](https://www.twain.org/why-twain/) for image capturing and processing. Almost all scanners on the market come with a TWAIN driver and are supported by TWAIN applications like `Dynamic Web TWAIN`. -See more: How to use TWACKER to check if your device is TWAIN Compliant? +See more: How to use TWACKER to check if your device is TWAIN Compliant? ## ICA Scanners @@ -51,7 +50,7 @@ See more: How to test if your scanner supports ICA scanning on Mac OS? +See more: How to test if your scanner supports ICA scanning on Mac OS? ## SANE Scanners @@ -67,7 +66,7 @@ See more: How to test if your device is SANE compliant? +See more: How to test if your device is SANE compliant? ## DirectShow Cameras @@ -75,4 +74,4 @@ See more: Is my Camera DirectShow Compliant? \ No newline at end of file +See more: Is my Camera DirectShow Compliant? \ No newline at end of file diff --git a/articles/introduction/index.md b/_articles/introduction/index.md similarity index 66% rename from articles/introduction/index.md rename to _articles/introduction/index.md index c6aba74c..3d6116c0 100644 --- a/articles/introduction/index.md +++ b/_articles/introduction/index.md @@ -6,20 +6,19 @@ title: Document Scanning SDK | Dynamic Web TWAIN Documentation keywords: Dynamic Web TWAIN, TWAIN, About, Documentation breadcrumbText: Dynamic Web TWAIN Intro 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: /introduction/index.html --- # Introduction **Dynamsoft Dynamic Web TWAIN** (DWT) is a software development kit (SDK) that enables users to scan and upload documents from a **web environment**. DWT handles the whole data flow, from image acquisition at the scanner, to displaying and editing scanned images in the browser, and finally uploading to the server. -Here we provide a series of usage guides, so that you can quickly start making use of both basic and advanced features of DWT with just a few lines of code - see our [general usage]({{site.general-usage}}index.html) and [extended usage]({{site.extended-usage}}index.html) guides for more. You can also use our [Hello World]({{site.hello-world}}index.html) demo that demonstrates how to enable basic scanning, viewing, and uploading functionality in a web application. +Here we provide a series of usage guides, so that you can quickly start making use of both basic and advanced features of DWT with just a few lines of code - see our [general usage](/_articles/extended-usage/index.md) guides for more. You can also use our [Hello World](/_articles/hello-world/index.md) demo that demonstrates how to enable basic scanning, viewing, and uploading functionality in a web application. DWT add-ons provide additional features such as scanning using a webcam video feed, document barcode reading, and PDF rasterization. -Starting in DWT version 19, we drastically improved DWT platform support with the addition of a suite of RESTful APIs, which brings DWT's powerful scanning functionalities to not just web clients, but to native desktop/mobile applications and background services in any language. Click here for [sample implementations of the Dynamic Web TWAIN RESTful API]({{ site.extended-usage }}restful-api.html) as well as the full [RESTful API reference]({{ site.api }}restful.html). +Starting in DWT version 19, we drastically improved DWT platform support with the addition of a suite of RESTful APIs, which brings DWT's powerful scanning functionalities to not just web clients, but to native desktop/mobile applications and background services in any language. Click here for [sample implementations of the Dynamic Web TWAIN RESTful API](/_articles/extended-usage/restful-api.md) as well as the full [RESTful API reference](/_articles/info/api/restful.md). -We also have an [API reference]({{site.api}}index.html) where you can find more comprehensive descriptions of our product. +We also have an [API reference](/_articles/info/api/index.md) where you can find more comprehensive descriptions of our product. ## Key Features @@ -27,7 +26,7 @@ We also have an [API reference]({{s - Broad compatibility with browsers, operating systems, and image sources 2. Image acquisition: - Connect to scanners from web browser with industry standard protocols - - Communicate with scanners using a background service ([The Dynamic Web TWAIN Service]({{site.faq}}what-does-dynamsoft-service-do-on-end-user-machine.html)) with flexible configurations + - Communicate with scanners using a background service ([The Dynamic Web TWAIN Service](/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md)) with flexible configurations 3. Image upload: - Upload over HTTP, HTTPS (HTTP + TLS), and FTP - Optionally upload large files through background service @@ -38,5 +37,5 @@ We also have an [API reference]({{s - Encrypted data pipeline - Cache sanitization even upon unexpected shutdown of SDK -## [System Requirements]({{site.introduction}}system-requirements.html) -DWT supports most major operating systems, browsers, and printers using standard drivers. Learn more about hardware requirements [here]({{site.introduction}}imaging-hardware.html). Other environments not officially listed may still support DWT, but Dynamsoft does not officially support these environments as they are not tested. If you have questions about unofficially supported environments, please contact our [support team]({{site.about}}getsupport.html) for more information. \ No newline at end of file +## [System Requirements](/_articles/introduction/system-requirements.md) +DWT supports most major operating systems, browsers, and printers using standard drivers. Learn more about hardware requirements [here](/_articles/about/getsupport.md) for more information. \ No newline at end of file diff --git a/articles/introduction/supported-file-formats.md b/_articles/introduction/supported-file-formats.md similarity index 78% rename from articles/introduction/supported-file-formats.md rename to _articles/introduction/supported-file-formats.md index fceeb8e1..fdb22e43 100644 --- a/articles/introduction/supported-file-formats.md +++ b/_articles/introduction/supported-file-formats.md @@ -5,7 +5,6 @@ title: Dynamic Web TWAIN SDK Supported File Formats keywords: Dynamic Web TWAIN, Documentation, File Types, File Formats breadcrumbText: Supported File Formats description: Dynamic Web TWAIN SDK Documentation File Types Page -permalink: /introduction/supported-file-formats.html --- # Supported File Formats @@ -26,7 +25,7 @@ For example, a US Letter sized paper scanned in 300 DPI and in colour has the si The **JPEG** format supports eight-bit grayscale images and 24-bit color images (eight bits each for red, green, and blue). Black & white image data which is 1-bit can not be saved in this format. -This format applies lossy compression to images, which can result in a significant reduction of the file size. Applications can determine the degree of compression to apply, and the amount of compression affects the visual quality of the result. `Dynamic Web TWAIN` uses the API [ `JPEGQuality` ]({{site.info}}api/WebTwain_IO.html#jpegquality) to control this. +This format applies lossy compression to images, which can result in a significant reduction of the file size. Applications can determine the degree of compression to apply, and the amount of compression affects the visual quality of the result. `Dynamic Web TWAIN` uses the API [ `JPEGQuality` ](/_articles/info/api/WebTwain_IO.md#jpegquality) to control this. > NOTE > @@ -34,9 +33,9 @@ This format applies lossy compression to images, which can result in a significa ## TIFF -Compared with **BMP** and **JPEG** , the **TIFF** format is more like a container that holds image(s) and data in a single file. A TIFF file uses tags to describe the data it holds so that applications know how to read it. `Dynamic Web TWAIN` allows custom tags with the APIs [ `ClearTiffCustomTag()` ]({{site.info}}api/WebTwain_IO.html#cleartiffcustomtag) and [ `SetTiffCustomTag()` ]({{site.info}}api/WebTwain_IO.html#settiffcustomtag). +Compared with **BMP** and **JPEG** , the **TIFF** format is more like a container that holds image(s) and data in a single file. A TIFF file uses tags to describe the data it holds so that applications know how to read it. `Dynamic Web TWAIN` allows custom tags with the APIs [ `ClearTiffCustomTag()` ](/_articles/info/api/WebTwain_IO.md#cleartiffcustomtag) and [ `SetTiffCustomTag()` ](/_articles/info/api/WebTwain_IO.md#settiffcustomtag). -**TIFF** also allows multiple images in the same file. `Dynamic Web TWAIN` controls this with the API [ `IfTiffMultiPage` ]({{site.info}}api/WebTwain_IO.html#iftiffmultipage). +**TIFF** also allows multiple images in the same file. `Dynamic Web TWAIN` controls this with the API [ `IfTiffMultiPage` ](/_articles/info/api/WebTwain_IO.md#iftiffmultipage). ## PNG @@ -47,4 +46,4 @@ The **PNG** format supports lossless data compression. The same image may save b The **PDF** format is an advanced and popular file format that allows a variety of content. Because of the complexity of the format, it is impractical for a lightweight SDK such as `Dynamic Web TWAIN` to have full support for it. Instead, `Dynamic Web TWAIN` supports the format in two ways * `Dynamic Web TWAIN` can read and write a pure-image-based **PDF** file; -* `Dynamic Web TWAIN` can use its [PDF Rasterizer module]({{site.extended-usage}}pdf-processing.html) to rasterize almost any **PDF** file and convert its visible content into images so as to "read" it. +* `Dynamic Web TWAIN` can use its [PDF Rasterizer module](/_articles/extended-usage/pdf-processing.md) to rasterize almost any **PDF** file and convert its visible content into images so as to "read" it. diff --git a/articles/introduction/system-requirements.md b/_articles/introduction/system-requirements.md similarity index 91% rename from articles/introduction/system-requirements.md rename to _articles/introduction/system-requirements.md index 71da34ac..ee6bf1ac 100644 --- a/articles/introduction/system-requirements.md +++ b/_articles/introduction/system-requirements.md @@ -6,7 +6,6 @@ title: Dynamic Web TWAIN SDK System Requirements keywords: Dynamic Web TWAIN, Documentation, Platform breadcrumbText: System Requirements description: Dynamic Web TWAIN SDK Documentation Platform Page -permalink: /introduction/system-requirements.html --- # System Requirements @@ -19,7 +18,7 @@ Dynamic Web TWAIN is designed to be cross-platform, thus, it works in all major ## Other Operating Systems -There could be some other systems which are also supported but not listed above. Dynamsoft doesn't recommend the use of such systems as they are not officially tested. If you need to use Dynamic Web TWAIN on a system not mentioned above, please first contact [Dynamsoft Support]({{site.about}}getsupport.html) to get more information. +There could be some other systems which are also supported but not listed above. Dynamsoft doesn't recommend the use of such systems as they are not officially tested. If you need to use Dynamic Web TWAIN on a system not mentioned above, please first contact [Dynamsoft Support](/_articles/about/getsupport.md) to get more information. ## Other Browsers diff --git a/articles/knowledge-base/the-dynamsoft-service.md b/_articles/knowledge-base/the-dynamsoft-service.md similarity index 100% rename from articles/knowledge-base/the-dynamsoft-service.md rename to _articles/knowledge-base/the-dynamsoft-service.md diff --git a/_config.yml b/_config.yml index 493700e6..60609792 100644 --- a/_config.yml +++ b/_config.yml @@ -41,6 +41,15 @@ baseurl: /web-twain/docs/ useVersionTreeV2: true +collections: + articles: + output: true + permalink: /:path:output_ext + +relative_links: + enabled: true + collections: true + webp: enabled: true # The quality of the webp conversion 0 to 100 (where 100 is least lossy) diff --git a/articles/general-usage/image-export/local-export.md b/articles/general-usage/image-export/local-export.md deleted file mode 100644 index cfe146da..00000000 --- a/articles/general-usage/image-export/local-export.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -layout: default-layout -needAutoGenerateSidebar: true -title: Dynamic Web TWAIN SDK Features - Exporting Locally -keywords: Dynamic Web TWAIN, Documentation, save, output, export, web, download, local save, local, save to file, print -breadcrumbText: Exporting Locally -description: Dynamic Web TWAIN SDK Documentation Local Export -permalink: /general-usage/image-export/local-export.html ---- - -# Exporting Locally - -> Prerequisite: [DWT Initialization]({{site.general-usage}}initialization.html)
-> Prerequisite: [Managing the Image Buffer]({{site.general-usage}}image-processing/buffer-management.html) - -DWT offers several methods to save images from the `WebTwain` image buffer locally. This includes saving the images to files on the end user's file system, exporting from the image buffer to binary Blobs and Base64 strings, and also printing to connected printers. - -## Saving Locally - -The `WebTwain` image buffer can output images directly to disk, and supports `BMP` , `JPG` , `TIF` , `PNG` and `PDF` formats. Of note, `TIF` and `PDF` come with multi-image support. Learn more about supported file formats [here]({{site.getstarted}}filetype.html). - -Each file format has its own file saving API, as shown here: - -- [`SaveAsBMP()`]({{site.api}}WebTwain_IO.html#saveasbmp) -- [`SaveAsJPEG()`]({{site.api}}WebTwain_IO.html#saveasjpeg) -- [`SaveAsPDF()`]({{site.api}}WebTwain_IO.html#saveaspdf) -- [`SaveAsPNG()`]({{site.api}}WebTwain_IO.html#saveaspng) -- [`SaveAsTIFF()`]({{site.api}}WebTwain_IO.html#saveastiff) -- [`SaveSelectedImagesAsMultiPagePDF()`]({{site.api}}WebTwain_IO.html#saveselectedimagesasmultipagepdf) -- [`SaveSelectedImagesAsMultiPageTIFF()`]({{site.api}}WebTwain_IO.html#saveselectedimagesasmultipagetiff) -- [`SaveAllAsPDF()`]({{site.api}}WebTwain_IO.html#saveallaspdf) -- [`SaveAllAsMultiPageTIFF()`]({{site.api}}WebTwain_IO.html#saveallasmultipagetiff) - -Note that multi-page saving requires separate APIs from their single page counterparts. - -## Exporting to Binary - -The image buffer can export images as Blobs or Base64 strings, which are useful for processing images outside of DWT, whether for [custom image upload logic]({{site.general-usage}}image-export/server-upload.html), or other purposes within the web application. - -### Exporting to Blob - -[`ConvertToBlob()`]({{site.api}}WebTwain_IO.html#ConvertToBlob) converts selected images to a Blob, as demonstrated here: - -``` javascript -DWTObject.ConvertToBlob( - [0, 1, 2], - Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF, - function(result, indices, type) { - console.log(result.size); - }, - function(errorCode, errorString) { - console.log(errorString); - } -); -``` - -APIs used: - -- [`ConvertToBlob()`]({{site.api}}WebTwain_IO.html#ConvertToBlob) -- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype) - -Here, `ConvertToBlob()` takes a zero-indexed array of image indices (of the image buffer) which indicates the images it exports, and uses the [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype) enum to specify the file format (in this case, single-page PDF). Just as when saving to files locally, use the dedicated multi-page enums when saving multi-page `PDF`s and `TIF`s. - -The Blob accessible through the `result` argument of the success callback. - -### Exporting to Base64 String - -Likewise, [`ConvertToBase64()`]({{site.api}}WebTwain_IO.html#converttobase64) outputs a Base64 string: - -``` javascript -DWTObject.ConvertToBase64( - [0, 1, 2], - Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF, - function(result, indices, type) { - console.log(result.getData(0, result.getLength())); - }, - function(errorCode, errorString) { - console.log(errorString); - } -); -``` -APIs used: - -- [`ConvertToBase64()`]({{site.api}}WebTwain_IO.html#converttobase64) -- [`Dynamsoft.DWT.EnumDWT_ImageType`]({{site.api}}Dynamsoft_Enum.html#dynamsoftdwtenumdwt_imagetype) - -The Base 64 string accessible through the `result` argument of the success callback. Note that this is a [Base64Result]({{site.api}}Interfaces.html#base64result) object. - -## Print - -Finally, DWT can also print directly to a printer through the [ `Print()` ]({{site.api}}WebTwain_IO.html#print) API. This API brings all images from the image buffer into the browser's print dialog. Alternatively, while running in Windows Service Mode, the API can also take an argument to use the Windows OS print dialog instead. \ No newline at end of file diff --git a/faq/change-resolution-of-image.md b/faq/change-resolution-of-image.md deleted file mode 100644 index 65e39c82..00000000 --- a/faq/change-resolution-of-image.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -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? -permalink: /faq/change-resolution-of-image.html ---- - -# 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/hide-image-viewer.md b/faq/hide-image-viewer.md deleted file mode 100644 index 7d5bd27f..00000000 --- a/faq/hide-image-viewer.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: Can I hide the Dynamsoft image viewer and use my own image viewer? -keywords: Dynamic Web TWAIN, Image Viewer, hide, use custom image viewer -breadcrumbText: Can I hide the Dynamsoft image viewer and use my own image viewer? -description: Can I hide the Dynamsoft image viewer and use my own image viewer? -permalink: /faq/hide-image-viewer.html ---- - -# Image Viewer - -## Can I hide the Dynamsoft image viewer and use my own image viewer? - -If you want to use your own viewer, you can use [`Dynamsoft.DWT.CreateDWTObjectEx()`]({{site.extended-usage}}advanced-initialization.html#creating-headless-webtwain-instances) to create a `WebTwain` instance that does not come with a viewer. You can also unbind and destroy the viewer of an existing `WebTwain` instance with the [`unbind()`]({{site.api}}WebTwain_Viewer.html#unbind) API. - -
-> Prior to using CreateDWTObjectEx(), please disable the [AutoLoad]({{site.api}}Dynamsoft_WebTwainEnv.html#autoload) feature. Additionally, avoid calling any [Load]({{site.api}}Dynamsoft_WebTwainEnv.html#load) methods either before or after using CreateDWTObjectEx(). This ensures proper functionality and prevents potential conflicts during the initialization. \ No newline at end of file diff --git a/faq/image-viewer-object-defined.md b/faq/image-viewer-object-defined.md deleted file mode 100644 index d8c782ce..00000000 --- a/faq/image-viewer-object-defined.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: Where is the image viewer object defined? -keywords: Dynamic Web TWAIN, Image Viewer, object defined -breadcrumbText: Where is the image viewer object defined? -description: Where is the image viewer object defined? -permalink: /faq/image-viewer-object-defined.html ---- - -# Image Viewer - -## Where is the image viewer object defined? - -By default, Dynamic Web TWAIN has a viewer component that helps to view data available in the buffer. When you create an instance of Web Twain, the viewer is created automatically with its default available settings. You can customize the viewer settings according to your requirements and replace the default viewer with your customized viewer settings. -You can refer to this link to read in details about the steps to create/modify the viewer. diff --git a/faq/index.md b/faq/index.md deleted file mode 100644 index 7c87f7ee..00000000 --- a/faq/index.md +++ /dev/null @@ -1,417 +0,0 @@ ---- -layout: default-layout -needAutoGenerateSidebar: true -title: Dynamic Web TWAIN SDK FAQ -keywords: Dynamic Web TWAIN, Documentation, FAQ -breadcrumbText: FAQ -description: Dynamic Web TWAIN SDK Documentation FAQ -permalink: /faq/ ---- - -# FAQ - -## SDK Download/Free Trial -
    -
  1. How can I extend my free trial?
  2. - -
  3. Where can I download an older version of the Dynamic Web TWAIN SDK?
  4. - -
  5. Do you provide free trial versions of the Dynamic Web TWAIN SDK?
  6. - -
  7. Can I run the scanning service on an ARM-based embedded device, such as Raspberry Pi?
  8. - -
  9. Do you also provide an SDK download for Linux and Mac developers?
  10. - -
  11. Is the free trial version fully functional?
  12. - -
  13. Can I use the Dynamic Web TWAIN SDK to create a PWA application?
  14. -
- -## Capture/Image Source -
    -
  1. Download virtual scanner for testing
  2. - -
  3. What physical document scanners does the Dynamic Web TWAIN SDK support?
  4. - -
  5. How to use TWACKER to check if your device is TWAIN Compliant?
  6. - -
  7. How to test if your scanner supports ICA scanning on Mac OS?
  8. - -
  9. How to test if your device is SANE compliant?
  10. - -
  11. How to test if your camera is DirectShow compliant?
  12. - -
  13. How to test if your camera is MediaDevices compliant?
  14. - -
  15. Can I set scanning settings without using the default scanner's UI? What pre-scanning settings do you support?
  16. - -
  17. Can I hide offline scanner devices from the select source list?
  18. - -
  19. Can I hide webcam devices from the select source list?
  20. - -
  21. What are the differences between TWAIN and WIA?
  22. - -
  23. How to exclude WIA sources in the source list?
  24. - -
  25. How can I set the last selected source as the default source for an end user?
  26. - -
  27. How can I limit all users to use a specific scanner model?
  28. - -
  29. Can the Dynamic Web TWAIN SDK automatically remove blank pages during the document scanning process?
  30. - -
  31. Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process?
  32. - -
  33. Can the Dynamic Web TWAIN SDK automatically detect borders of the scanned document and crop it out?
  34. - -
  35. Can I set my document scanner to scan x number of pages instead of all pages from the automatic document feeder (ADF)?
  36. - -
  37. Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed?
  38. - -
  39. How can I get a list of supported resolution/DPI values from the document scanner?
  40. - -
  41. How can I use a custom capability of my scanner hardware when there is no direct API to set it?
  42. - -
  43. Is there a limit on the number of pages I can scan at a time? Where do you store them after scanning?
  44. - -
  45. Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up?
  46. - -
  47. Can I use built-in or USB webcam to capture document?
  48. - -
  49. Can I import existing images or PDF documents using the Dynamic Web TWAIN SDK?
  50. - -
  51. Can I download an image from a FTP or HTTP server using the Dynamic Web TWAIN SDK?
  52. - -
  53. How can I trigger an automatic workflow right after document scanning or image importing?
  54. - -
  55. Do you support capturing documents from mobile camera?
  56. - -
  57. Do you support fingerprint or medical imaging devices?
  58. - -
  59. What is the earliest iPhone model that your SDK supports?
  60. - -
  61. Is the AcquireImage() method synchronous or asynchronous?
  62. - -
  63. Why is my scanner not shown or not responding in the browser?
  64. - -
  65. How can I support WIA scanner drivers in my application?
  66. - -
  67. Why are my images coming out distorted in MacOS Sonoma?
  68. - -
- -## Image Viewer -
    -
  1. Where is the image viewer object defined?
  2. - -
  3. Can the size of the image viewer auto resize when the browser window size changes?
  4. - -
  5. How can I create a thumbnail viewer to view images?
  6. - -
  7. How can I change the background color of the image viewer?
  8. - -
  9. How can I reorder images in the viewer?
  10. - -
  11. How can I disable drag and drop images in the viewer?
  12. - -
  13. How can I show multiple images at a time?
  14. - -
  15. How can I show page number on each image?
  16. - -
  17. How can I resize the view of image (e.g. zoom in/out on an image)?
  18. - -
  19. What mouse click events does the viewer support?
  20. - -
  21. How can I insert an image after a selected image in the viewer?
  22. - -
  23. Can I protect sensitive information of an image from being seen?
  24. - -
  25. Can I hide the Dynamsoft image viewer and use my own image viewer?
  26. - -
  27. Can I print images from the viewer?
  28. - -
  29. How to get the coordinates of the selected area on an image?
  30. -
- -## Image Editing -
    -
  1. What image editing operations does the Dynamic Web TWAIN SDK support?
  2. - -
  3. -How can I show the default image editor tool?
  4. - -
  5. Do you support image deskew?
  6. - -
  7. How can I configure all scanned images to conform to a specific size standard (e.g., A4)?
  8. - -
  9. Can I add annotation to an image (e.g. add watermark or text)?
  10. - -
  11. Can I change the resolution/DPI of an image in the viewer?
  12. - -
  13. Can I convert a color image to grayscale or black & white?
  14. - -
  15. Is there an undo functionality?
  16. - -
  17. How can I remove only the selected images?
  18. -
- -## UI Customization -
    -
  1. Is the UI of the Dynamic Web TWAIN SDK fully customizable? What cannot be customized?
  2. - -
  3. How can I change the display language of all messages from English to another language?
  4. - -
  5. How can I change/hide the spinner which shows during document scanning?
  6. - -
  7. How can I change/hide the UI of the progress bar when importing or uploading images?
  8. - -
  9. Can I customize UI elements of the built-in image editor?
  10. - -
  11. Can I stop the scanner from showing its default popup when there is a paper jam?
  12. - -
  13. Why I cannot hide the loading bar (spinner)?
  14. -
- -## Document Saving -
    -
  1. What image and document formats can I save my documents as?
  2. - -
  3. What type of HTTP servers do your support? Do you support other server types?
  4. - -
  5. How can I enable HTTPS support?
  6. - -
  7. How can I get the smallest size of documents in PDF, TIFF or JPEG format?
  8. - -
  9. How can I send additional form fields with images to my server or database?
  10. - -
  11. How can I automatically trigger actions when images arrive on my server side?
  12. - -
  13. Can I upload documents to a different website domain?
  14. - -
  15. How can I get a response string from my HTTP Server if the upload succeeds or fails?
  16. - -
  17. Can I upload documents via a background service outside the web browser?
  18. - -
  19. Can I insert newly scanned pages to an existing document?
  20. - -
  21. How can I upload a JSON file to my server?
  22. - -
  23. How can I save selected images instead of all images to my server or database?
  24. - -
  25. How to use a blank page as a separator?
  26. - -
  27. How to upload multiple files at a time?
  28. - -
  29. How to deploy your own upload server with ASP.NET?
  30. - -
  31. How to deploy your own upload server with JSP?
  32. - -
  33. How to deploy your own upload server with Node.js?
  34. - -
  35. How to deploy your own upload server with PHP?
  36. -
- -## Security -
    -
  1. Where does the Dynamic Web TWAIN SDK store images on end-user machines? Are they encrypted?
  2. - -
  3. Can I prompt the end-user when the Dynamic Web TWAIN SDK attempts to visit any local resources (scanner, camera, or disk drive)?
  4. - -
  5. When are the locally cached images destroyed?
  6. - -
  7. The license key is set in JavaScript. How can I protect it?
  8. - -
  9. Does the Dynamic Web TWAIN SDK use any deprecated technologies like NPAPI or ActiveX?
  10. - -
  11. How can I securely transfer scanned documents to my server?
  12. - -
  13. Can I generate/load an encrypted file in PDF format?
  14. - -
  15. Can I limit the size of documents to be uploaded to my server?
  16. - -
  17. Is the Dynamic Web TWAIN SDK ISO 27001 compliant?
  18. - -
  19. Is the Dynamic Web TWAIN SDK GDPR compliant?
  20. - -
  21. Is the Dynamic Web TWAIN SDK HIPAA compliant?
  22. - -
  23. How can I change the certificate of the Dynamic Web TWAIN Service?
  24. -
- -## Addon - -
    -
  1. Do I need a separate license for each addon?
  2. - -
  3. When do I need PDF Rasterizer Addon? Can I load existing PDF files into the Dynamic Web TWAIN SDK without the PDF Rasterizer addon?
  4. - -
  5. How can I load PDF/A files into the Dynamic Web TWAIN SDK?
  6. - -
  7. Can I load specific page numbers of a PDF file into the viewer?
  8. - -
  9. Do I need the PDF Rasterizer addon to convert scanned documents to PDF files?
  10. - -
  11. How can I generate PDF/A files?
  12. - -
  13. Does your Barcode Reader addon support patch code?
  14. - -
  15. How can I separate my documents automatically by barcode?
  16. - -
  17. Is there any way to speed up the barcode reading process?
  18. - -
  19. What types of webcams does the Webcam Capture addon support
  20. -
- -## Project Deployment and End-user Installation - -
    -
  1. What are the Resources files?
  2. - -
  3. What resources of the SDK should be included in my web application?
  4. - -
  5. How can I change the reference path to the Dynamsoft's resources in my project?
  6. - -
  7. How can I enable Remote Scan?
  8. - -
  9. How can I use Dynamic Web TWAIN in a Citrix environment?
  10. - -
  11. Is there any component of the Dynamic Web TWAIN SDK that needs to be installed on end-user machines?
  12. - -
  13. What does the Dynamic Web TWAIN Service do on the end-user machine?
  14. - -
  15. Are admin privileges required to install the end-user component?
  16. - -
  17. Can I install Dynamic Web TWAIN Service silently?
  18. - -
  19. Is there an easy way to deploy the end-user components to all users?
  20. - -
  21. How to uninstall Dynamic Web TWAIN Service?
  22. - -
  23. I have installed the Dynamic Web TWAIN Service on an end-user machine but still got asked to install it repeatedly. Why?
  24. - -
  25. Dynamic Web TWAIN Service installation and uninstallation issue
  26. - -
  27. Can I use two different websites integrated with two different versions of Dynamic Web TWAIN on the same computer?
  28. - - -
  29. How do I upgrade my project to use the latest version of the Dynamic Web TWAIN SDK?
  30. - -
  31. How do I upgrade the end-user installation for all end users once I upgrade my project?
  32. - -
  33. How to resolve if Dynamic Web TWAIN stops working on insecure websites in Chrome v94?
  34. - -
  35. How to resolve Dynamic Web TWAIN issue in Chrome 101?
  36. - -
  37. Dynamic Web TWAIN – Content-Security-Policy violated
  38. - -
  39. Scanner source is listed on XSane applicaton but not on my web application on Linux machines
  40. - -
  41. How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer (IE) mode
  42. - -
  43. The scanner's UI or the system's file dialog does not open when scanning
  44. - -
  45. How do I know which SDK version I am using?
  46. - -
  47. Where can I download the Dynamic Web TWAIN Service installers only?
  48. -
- -## Error Troubleshooting - -
    -
  1. General troubleshooting steps
  2. - -
  3. General failure
  4. - -
  5. A connection with the server could not be established
  6. - -
  7. HTTP request error
  8. - -
  9. HTTP process error
  10. - -
  11. Only 24-bit true color bmp and 8-bit gray-scaled images are supported for JPEG compression
  12. - -
  13. XMLHttpRequest cannot load XXX
  14. - -
  15. Source is connected to the maximum supported number of applications
  16. - -
  17. Sequence error
  18. - -
  19. Request header field dwt-md5 is not allowed by Access-Control-Allow-Headers in preflight response
  20. - -
  21. The handle is in the wrong state for the requested operation
  22. - -
  23. The connection with the server was terminated abnormally
  24. - -
  25. Syntax error – Unexpected Token "<"
  26. - -
  27. Uncaught ReferenceError - DVS is not defined
  28. - -
  29. Error message - The current product key does not support XXX, please contact the site administrator
  30. - -
  31. Error message - The current product key does not support current OS for embed device, please contact the site administrator
  32. - -
  33. Error message - The current product key is empty or invalid, please contact the site administrator
  34. - -
  35. Error message - The current product key is missing the core license, please contact the site administrator
  36. - -
  37. Error message - The domain of your current site does not match the domain bound in the current product key, please contact the site administrator
  38. - -
  39. Error message - The current product key is invalid because it's generated with the licenses of a different major version
  40. - -
  41. Error message - The current product key is not for full/trial version, please contact the site administrator
  42. - -
  43. Error message – The current product key has expired on XXX, please contact the site administrator
  44. - -
  45. Error Message - Failed to load resource: net::ERR_CERT_DATE_INVALID
  46. - -
  47. Error Message - The connection from the insecure (HTTP) web page to the local 'Dynamsoft Service' failed
  48. - -
  49. Error Message - Source has nothing to capture
  50. - -
  51. Warning Message - Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true
  52. - -
  53. Error Message - Uncaught TypeError: Cannot read properties of null (reading 'appendChild') or Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'
  54. - -
  55. Error Message - User cancelled the operation
  56. - -
  57. The loading bar keeps spinning when capture the image with iPhone.
  58. - -
  59. How to debug on Dynamic Web TWAIN online demo?
  60. -
- -## Licensing and Purchase - -
    -
  1. Is internet connectivity required to use all licenses?
  2. - -
  3. Does the per-server license allow unlimited number of client devices and end users?
  4. - -
  5. What license should I purchase if I am providing SaaS?
  6. - -
  7. For the per-client-device licensing model, can seats taken by retired/unused devices be released from the license?
  8. - -
  9. Will a client machine take an additional license seat if its operating system is reinstalled?
  10. - -
  11. What if I reach the limit of the granted number of license seats?
  12. - -
  13. Do you offer lifetime/perpetual licenses?
  14. - -
  15. Do I need to purchase a license for my dev or testing environment?
  16. - -
  17. I need to resell the SDK within my application to my customers. What options do you offer?
  18. - -
  19. Are you flexible to discuss custom licensing models?
  20. - -
  21. Do you have any local resellers from whom I can purchase a license of the Dynamic Web TWAIN SDK?
  22. - -
  23. Do I get free upgrade if there is a newer version available?
  24. - -
  25. What is your discount policy?
  26. - -
  27. What's your refund policy?
  28. -
- -## Annotation - -
    -
  1. How can I add annotations to an image and then save/upload it?
  2. -
\ No newline at end of file diff --git a/faq/save-selected-images-to-server.md b/faq/save-selected-images-to-server.md deleted file mode 100644 index 19ec0749..00000000 --- a/faq/save-selected-images-to-server.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: How can I save selected images instead of all images to my server or database? -keywords: Dynamic Web TWAIN, Document Saving, save selected images -breadcrumbText: How can I save selected images instead of all images to my server or database? -description: How can I save selected images instead of all images to my server or database? -permalink: /faq/save-selected-images-to-server.html ---- - -# Document Saving - -## How can I save selected images instead of all images to my server or database? - -The API SelectedImagesIndices returns the indices of the selected images. - -You can pass those indices as a parameter to HTTPUpload which uploads files to the server/database. - -To upload all images in the buffer with HTTPUpload, you can use the API SelectAllImages which returns the indices of all images. - -There are other HTTP upload APIs that can achieve the same. Please refer to this link: Dynamic Web TWAIN API Reference - IO APIs diff --git a/faq/show-page-number.md b/faq/show-page-number.md deleted file mode 100644 index 927a2ff7..00000000 --- a/faq/show-page-number.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: How can I show page number on each image? -keywords: Dynamic Web TWAIN, Image Viewer, show , page number -breadcrumbText: How can I show page number on each image? -description: How can I show page number on each image? -permalink: /faq/show-page-number.html ---- - -# Image Viewer - -## How can I show page number on each image? - -You can set the showPageNumber API to true to show the page number. - -```javascript -DWTObject.Viewer.showPageNumber = true; -``` - -**Note**: When setViewMode is set to -1 by -1 or singlePageMode is true then this api will not work. diff --git a/getstarted/index.md b/getstarted/index.md deleted file mode 100644 index 2a3e6dbf..00000000 --- a/getstarted/index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default-layout -needAutoGenerateSidebar: true -title: Dynamic Web TWAIN SDK GetStarted -keywords: Dynamic Web TWAIN, Documentation, GetStarted -breadcrumbText: GetStarted -description: Dynamic Web TWAIN SDK Documentation GetStarted Page -ignore: true -#permalink: /getstarted/ ---- - -# Getting Started - -- [Hello World tutorial]({{site.getstarted}}Helloworld.html): follow this tutorial to create your first web-based document scanning application -- [Deploy to your server]({{site.indepth}}deployment/server.html): how to deploy Dynamic Web TWAIN to server -- [Set up the service]({{site.indepth}}deployment/service.html): how to set up Dynamic Web TWAIN Service if needed -- Use Web TWAIN in a framework - - [Use Web TWAIN in Angular]({{site.indepth}}development/angular.html) - - [Use Web TWAIN in React]({{site.indepth}}development/react.html) - - [Use Web TWAIN in Vue]({{site.indepth}}development/vue.html) -- [How to upgrade]({{site.indepth}}development/upgrade.html): how to upgrade to a newer version - diff --git a/indepth/development/index.md b/indepth/development/index.md deleted file mode 100644 index da667ca7..00000000 --- a/indepth/development/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -needAutoGenerateSidebar: true -title: Dynamic Web TWAIN SDK Development - Index -keywords: Dynamic Web TWAIN, Documentation, Development -breadcrumbText: Development -description: Dynamic Web TWAIN SDK Documentation Development Index Page -permalink: /indepth/development/ ---- - -# Development - -Popular frameworks and frequently asked development questions are covered in these articles. - -* [Use Web TWAIN in Angular]({{site.indepth}}development/angular.html) - -* [Use Web TWAIN in React]({{site.indepth}}development/react.html) - -* [Use Web TWAIN in Vue]({{site.indepth}}development/vue.html) - -* [Upload or download images with Server-side scripts]({{site.indepth}}development/Server-script.html) - -* [Enable mobile web capture]({{site.indepth}}development/mobile-web-capture.html) - -* [How to perform upgrade]({{site.indepth}}development/upgrade.html) - diff --git a/info/api/index.md b/info/api/index.md deleted file mode 100644 index 83250201..00000000 --- a/info/api/index.md +++ /dev/null @@ -1,633 +0,0 @@ ---- -layout: default-layout -needAutoGenerateSidebar: true -title: Dynamic Web TWAIN SDK API Reference - Index -keywords: Dynamic Web TWAIN, Documentation, API Reference, Index -description: Dynamic Web TWAIN Documentation API List -breadcrumbText: API Reference -permalink: /info/api/ ---- - -> Some old APIs are deprecated, check out [Deprecated Features and APIs]({{site.info}}schedule/deprecated.html) - -# API List - - - -## Global - -### Methods - - -| [`CreateDWTObject()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#createdwtobject) | [`CreateDWTobjectEx()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#createdwtobjectex) | [`DeleteDWTObject()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#deletedwtobject) | [`GetWebTwain()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#getwebtwain) | -| [`Load()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#load) | [`RegisterEvent()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#registerevent) | [`Unload()`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#unload) | | - - - - -### Properties - - -| [`Autoload`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#autoload) | [`Containers`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#containers) | [`CustomizableDisplayInfo`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#customizabledisplayinfo) | [`DeviceFriendlyName`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#devicefriendlyname) | -| [`Host`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#host) | [`IfAddMD5InUploadHeader`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#ifconfinemaskwithintheviewer) | [`JSVersion`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#jsversion) | -| [`ProductKey`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#productkey) | [`ResourcesPath`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#resourcespath) | [`ServiceInstallerLocation`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#serviceinstallerlocation) | [`UseDefaultViewer`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#usedefaultviewer) | -|[`IfCheckCORS`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#ifalwaysfocusonpopupwindow) | | - - -### Events - - -| [`OnWebTwainReady`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#onwebtwainready) | [`OnWebTwainError`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#onwebtwainerror) | [`OnWebTwainPostExecute`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#onwebtwainpostexecute) | [`OnWebTwainPreExecute`]({{site.info}}api/Dynamsoft_WebTwainEnv.html#onwebtwainpreexecute) | - -## Buffer - -### Methods - - - - - -|[`ClearImageTags()`]({{site.info}}api/WebTwain_Buffer.html#clearimagetags) | [`RenameTag()`]({{site.info}}api/WebTwain_Buffer.html#renametag) |[`RemoveTag()`]({{site.info}}api/WebTwain_Buffer.html#removetag) |[`GetTagList()`]({{site.info}}api/WebTwain_Buffer.html#gettaglist) | -|[`FilterImagesByTag()`]({{site.info}}api/WebTwain_Buffer.html#filterimagesbytag)|[`ClearFilter()`]({{site.info}}api/WebTwain_Buffer.html#clearfilter) | [`SetDefaultTag()`]({{site.info}}api/WebTwain_Buffer.html#setdefaulttag) | [`TagImages()`]({{site.info}}api/WebTwain_Buffer.html#tagimages)| -|[`GetImageBitDepth()`]({{site.info}}api/WebTwain_Buffer.html#getimagebitdepth)| [`GetImageSize()`]({{site.info}}api/WebTwain_Buffer.html#getimagesize)| [`GetImageSizeWithSpecifiedType()`]({{site.info}}api/WebTwain_Buffer.html#getimagesizewithspecifiedtype)|[`GetSelectedImagesSize()`]({{site.info}}api/WebTwain_Buffer.html#getselectedimagessize) | -|[`GetImageHeight()`]({{site.info}}api/WebTwain_Buffer.html#getimageheight) |[`GetImageWidth()`]({{site.info}}api/WebTwain_Buffer.html#getimagewidth) | [`GetImagePartURL()`]({{site.info}}api/WebTwain_Buffer.html#getimageparturl) |[`GetImageURL()`]({{site.info}}api/WebTwain_Buffer.html#getimageurl)| -|[`GetImageXResolution()`]({{site.info}}api/WebTwain_Buffer.html#getimagexresolution) |[`GetImageYResolution()`]({{site.info}}api/WebTwain_Buffer.html#getimageyresolution) |[`GetSkewAngle()`]({{site.info}}api/WebTwain_Buffer.html#getskewangle) | [`GetSkewAngleEx()`]({{site.info}}api/WebTwain_Buffer.html#getskewangleex)| -|[`ImageIDToIndex()`]({{site.info}}api/WebTwain_Buffer.html#imageidtoindex) | [`IndexToImageID()`]({{site.info}}api/WebTwain_Buffer.html#indextoimageid)| [`IsBlankImage()`]({{site.info}}api/WebTwain_Buffer.html#isblankimage) | [`IsBlankImageExpress()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageexpress)| -|[`SelectAllImages()`]({{site.info}}api/WebTwain_Buffer.html#selectallimages)|[`MoveImage()`]({{site.info}}api/WebTwain_Buffer.html#moveimage) | [`SwitchImage()`]({{site.info}}api/WebTwain_Buffer.html#switchimage)| [`RemoveImage()`]({{site.info}}api/WebTwain_Buffer.html#removeimage) | -| [`RemoveAllImages()`]({{site.info}}api/WebTwain_Buffer.html#removeallimages)|[`RemoveAllSelectedImages()`]({{site.info}}api/WebTwain_Buffer.html#removeallselectedimages) |[`SelectImages()`]({{site.info}}api/WebTwain_Buffer.html#selectimages)|[`GetTagListByIndex()`]({{site.info}}api/WebTwain_Buffer.html#gettaglistbyindex) | -| [`CreateDocument()`]({{site.info}}api/WebTwain_Buffer.html#createdocument)|[`OpenDocument()`]({{site.info}}api/WebTwain_Buffer.html#opendocument)|[`GetCurrentDocumentName()`]({{site.info}}api/WebTwain_Buffer.html#getcurrentdocumentname)|[`RenameDocument()`]({{site.info}}api/WebTwain_Buffer.html#renamedocument)| -|[`RemoveDocument()`]({{site.info}}api/WebTwain_Buffer.html#removedocument)| [`GetDocumentInfoList()`]({{site.info}}api/WebTwain_Buffer.html#getdocumentinfolist)| [`IsBlankImageAsync()`]({{site.info}}api/WebTwain_Buffer.html#isblankimageasync) | [`CopyToDocumentAsync()`]({{site.info}}api/WebTwain_Buffer.html#copytodocumentasync) | -| [`MoveToDocumentAsync()`]({{site.info}}api/WebTwain_Buffer.html#movetodocumentasync) | [`updateImage()`]({{site.info}}api/WebTwain_Buffer.html#updateimage)| - - - - - - -### Properties - - -|[`BlankImageCurrentStdDev`]({{site.info}}api/WebTwain_Buffer.html#blankimagecurrentstddev) |[`BlankImageMaxStdDev`]({{site.info}}api/WebTwain_Buffer.html#blankimagemaxstddev) |[`BlankImageThreshold`]({{site.info}}api/WebTwain_Buffer.html#blankimagethreshold)| [`BufferMemoryLimit`]({{site.info}}api/WebTwain_Buffer.html#buffermemorylimit)| -|[`CurrentImageIndexInBuffer`]({{site.info}}api/WebTwain_Buffer.html#currentimageindexinbuffer) |[`HowManyImagesInBuffer`]({{site.info}}api/WebTwain_Buffer.html#howmanyimagesinbuffer)| [`IfAllowLocalCache`]({{site.info}}api/WebTwain_Buffer.html#ifallowlocalcache) | [`SelectedImagesIndices`]({{site.info}}api/WebTwain_Buffer.html#selectedimagesindices)| -|[`MaxImagesInBuffer`]({{site.info}}api/WebTwain_Buffer.html#maximagesinbuffer)| - - - -### Events - - -| [`OnBufferChanged`]({{site.info}}api/WebTwain_Buffer.html#onbufferchanged) |[`OnBitmapChanged`]({{site.info}}api/WebTwain_Buffer.html#onbitmapchanged) | [`OnIndexChangeDragDropDone`]({{site.info}}api/WebTwain_Buffer.html#onindexchangedragdropdone)| [`OnTopImageInTheViewChanged`]({{site.info}}api/WebTwain_Buffer.html#ontopimageintheviewchanged)| -| [`OnDiskExceedLimit`]({{site.info}}api/WebTwain_Buffer.html#ondiskexceedlimit) | - -## Edit - -### Methods - - -|[`Crop()`]({{site.info}}api/WebTwain_Edit.html#crop)|[`CropToClipboard()`]({{site.info}}api/WebTwain_Edit.html#croptoclipboard)| [`CutFrameToClipboard()`]({{site.info}}api/WebTwain_Edit.html#cutframetoclipboard) |[`CutToClipboard()`]({{site.info}}api/WebTwain_Edit.html#cuttoclipboard)| -|[`CopyToClipboard()`]({{site.info}}api/WebTwain_Edit.html#copytoclipboard) |[`Erase()`]({{site.info}}api/WebTwain_Edit.html#erase) |[`Flip()`]({{site.info}}api/WebTwain_Edit.html#flip)|[`Mirror()`]({{site.info}}api/WebTwain_Edit.html#mirror)| -| [`Rotate()`]({{site.info}}api/WebTwain_Edit.html#rotate) |[`RotateEx()`]({{site.info}}api/WebTwain_Edit.html#rotateex)| [`RotateLeft()`]({{site.info}}api/WebTwain_Edit.html#rotateleft) | [`RotateRight()`]({{site.info}}api/WebTwain_Edit.html#rotateright)| -| [`ChangeBitDepth()`]({{site.info}}api/WebTwain_Edit.html#changebitdepth) | [`SetDPI()`]({{site.info}}api/WebTwain_Edit.html#setdpi)|[`ConvertToBW()`]({{site.info}}api/WebTwain_Edit.html#converttobw) |[`ConvertToGrayScale()`]({{site.info}}api/WebTwain_Edit.html#converttograyscale)| -|[`ChangeImageSize()`]({{site.info}}api/WebTwain_Edit.html#changeimagesize) | [`Invert()`]({{site.info}}api/WebTwain_Edit.html#invert)|[`SetImageWidth()`]({{site.info}}api/WebTwain_Edit.html#setimagewidth)|[`ChangeBrightnessAsync()`]({{site.info}}api/WebTwain_Edit.html#changebrightnessasync)| -|[`ChangeContrastAsnyc()`]({{site.info}}api/WebTwain_Edit.html#changecontrastasnyc)| - - - - - - - - - -### Properties - - -|[`BackgroundFillColor`]({{site.info}}api/WebTwain_Edit.html#backgroundfillcolor) | - - - -## Scan - -### Methods - - -| [`GetSourceNameItems()`]({{site.info}}api/WebTwain_Acquire.html#getsourcenameitems) | [`GetSourceNames()`]({{site.info}}api/WebTwain_Acquire.html#getsourcenames) | [`GetSourceNamesAsync()`]({{site.info}}api/WebTwain_Acquire.html#getsourcenamesasync) | [`SelectSource()`]({{site.info}}api/WebTwain_Acquire.html#selectsource) | -| [`SelectSourceAsync()`]({{site.info}}api/WebTwain_Acquire.html#selectsourceasync) | [`SelectSourceByIndex()`]({{site.info}}api/WebTwain_Acquire.html#selectsourcebyindex) | [`SelectSourceByIndexAsync()`]({{site.info}}api/WebTwain_Acquire.html#selectsourcebyindexasync) | [`SetOpenSourceTimeout()`]({{site.info}}api/WebTwain_Acquire.html#setopensourcetimeout) | -| [`OpenSource()`]({{site.info}}api/WebTwain_Acquire.html#opensource) | [`OpenSourceAsync()`]({{site.info}}api/WebTwain_Acquire.html#opensourceasync) | [`EnableSourceUI()`]({{site.info}}api/WebTwain_Acquire.html#enablesourceui) | [`EnableSource()`]({{site.info}}api/WebTwain_Acquire.html#enablesource) | -| [`AcquireImage()`]({{site.info}}api/WebTwain_Acquire.html#acquireimage) | [`startScan()`]({{site.info}}api/WebTwain_Acquire.html#startscan) | [`DisableSource()`]({{site.info}}api/WebTwain_Acquire.html#disablesource) | [`CloseSource()`]({{site.info}}api/WebTwain_Acquire.html#closesource) | -| [`CloseSourceAsync()`]({{site.info}}api/WebTwain_Acquire.html#closesourceasync) | [`CloseWorkingProcess()`]({{site.info}}api/WebTwain_Acquire.html#closeworkingprocess) | [`GetDevicesAsync()`]({{site.info}}api/WebTwain_Acquire.html#getdevicesasync) | [`SelectDeviceAsync()`]({{site.info}}api/WebTwain_Acquire.html#selectdeviceasync) | -| [`AcquireImageAsync()`]({{site.info}}api/WebTwain_Acquire.html#acquireimageasync) | - - - - -### Properties - - -|[`CurrentSourceName`]({{site.info}}api/WebTwain_Acquire.html#currentsourcename) |[`IfDisableSourceAfterAcquire`]({{site.info}}api/WebTwain_Acquire.html#ifdisablesourceafteracquire) |[`IfDuplexEnabled`]({{site.info}}api/WebTwain_Acquire.html#ifduplexenabled) |[`IfFeederEnabled`]({{site.info}}api/WebTwain_Acquire.html#iffeederenabled)| -| [`PageSize`]({{site.info}}api/WebTwain_Acquire.html#pagesize) |[`PixelType`]({{site.info}}api/WebTwain_Acquire.html#pixeltype) |[`Resolution`]({{site.info}}api/WebTwain_Acquire.html#resolution) |[`SourceCount`]({{site.info}}api/WebTwain_Acquire.html#sourcecount)| - - -### Events - - -|[`OnPostAllTransfers`]({{site.info}}api/WebTwain_Acquire.html#onpostalltransfers) | [`OnPostTransfer`]({{site.info}}api/WebTwain_Acquire.html#onposttransfer)| [`OnPostTransferAsync`]({{site.info}}api/WebTwain_Acquire.html#onposttransferasync) | -|[`OnPreAllTransfers`]({{site.info}}api/WebTwain_Acquire.html#onprealltransfers)|[`OnPreTransfer`]({{site.info}}api/WebTwain_Acquire.html#onpretransfer)| - - -> The following APIs are compatible with TWAIN and ICA - -### Methods - - -|[`getCapabilities()`]({{site.info}}api/WebTwain_Acquire.html#getcapabilities) | [`setCapabilities()`]({{site.info}}api/WebTwain_Acquire.html#setcapabilities)| - -> The following APIs are compatible with TWAIN (mostly Windows, but could also be macOS) - -### Methods - - -| [`OpenSourceManager()`]({{site.info}}api/WebTwain_Acquire.html#opensourcemanager)| [`OpenSourceManagerAsync()`]({{site.info}}api/WebTwain_Acquire.html#opensourcemanagerasync) | [`CloseSourceManager()`]({{site.info}}api/WebTwain_Acquire.html#closesourcemanager) | [`CloseSourceManagerAsync()`]({{site.info}}api/WebTwain_Acquire.html#closesourcemanagerasync)| -| [`GetCustomDSData()`]({{site.info}}api/WebTwain_Acquire.html#getcustomdsdata)| [`GetCustomDSDataEx()`]({{site.info}}api/WebTwain_Acquire.html#getcustomdsdataex) | [`CancelAllPendingTransfers()`]({{site.info}}api/WebTwain_Acquire.html#cancelallpendingtransfers) | [`FeedPage()`]({{site.info}}api/WebTwain_Acquire.html#feedpage) | -|[`ResetImageLayout()`]({{site.info}}api/WebTwain_Acquire.html#resetimagelayout) | [`RewindPage()`]({{site.info}}api/WebTwain_Acquire.html#rewindpage)| [`SetCustomDSData()`]({{site.info}}api/WebTwain_Acquire.html#setcustomdsdata) | [`SetCustomDSDataEx()`]({{site.info}}api/WebTwain_Acquire.html#setcustomdsdataex)| -| [`SetFileXferInfo()`]({{site.info}}api/WebTwain_Acquire.html#setfilexferinfo) | [`SetImageLayout()`]({{site.info}}api/WebTwain_Acquire.html#setimagelayout)| - -### Properties - - -| [`BitDepth`]({{site.info}}api/WebTwain_Acquire.html#bitdepth) | [`Brightness`]({{site.info}}api/WebTwain_Acquire.html#brightness)|[`Contrast`]({{site.info}}api/WebTwain_Acquire.html#contrast) | [`DataSourceStatus`]({{site.info}}api/WebTwain_Acquire.html#datasourcestatus)| -|[`DefaultSourceName`]({{site.info}}api/WebTwain_Acquire.html#defaultsourcename) | [`Duplex`]({{site.info}}api/WebTwain_Acquire.html#duplex)| [`IfAutoBright`]({{site.info}}api/WebTwain_Acquire.html#ifautobright) | [`IfAutoDiscardBlankpages`]({{site.info}}api/WebTwain_Acquire.html#ifautodiscardblankpages)| -|[`IfAutoFeed`]({{site.info}}api/WebTwain_Acquire.html#ifautofeed) | [`IfAutomaticBorderDetection`]({{site.info}}api/WebTwain_Acquire.html#ifautomaticborderdetection)|[`IfAutomaticDeskew`]({{site.info}}api/WebTwain_Acquire.html#ifautomaticdeskew) |[`IfAutoScan`]({{site.info}}api/WebTwain_Acquire.html#ifautoscan)| -| [`IfFeederLoaded`]({{site.info}}api/WebTwain_Acquire.html#iffeederloaded) |[`IfPaperDetectable`]({{site.info}}api/WebTwain_Acquire.html#ifpaperdetectable)| [`IfShowIndicator`]({{site.info}}api/WebTwain_Acquire.html#ifshowindicator) | [`IfShowUI`]({{site.info}}api/WebTwain_Acquire.html#ifshowui)| -| [`IfUIControllable`]({{site.info}}api/WebTwain_Acquire.html#ifuicontrollable) |[`IfUseTwainDSM`]({{site.info}}api/WebTwain_Acquire.html#ifusetwaindsm)|[`ImageCaptureDriverType`]({{site.info}}api/WebTwain_Acquire.html#imagecapturedrivertype)| [`ImageLayoutDocumentNumber`]({{site.info}}api/WebTwain_Acquire.html#imagelayoutdocumentnumber) | -|[`ImageLayoutFrameBottom`]({{site.info}}api/WebTwain_Acquire.html#imagelayoutframebottom)| [`ImageLayoutFrameLeft`]({{site.info}}api/WebTwain_Acquire.html#imagelayoutframeleft) |[`ImageLayoutFrameNumber`]({{site.info}}api/WebTwain_Acquire.html#imagelayoutframenumber)| [`ImageLayoutFrameRight`]({{site.info}}api/WebTwain_Acquire.html#imagelayoutframeright) | -| [`ImageLayoutFrameTop`]({{site.info}}api/WebTwain_Acquire.html#imagelayoutframetop)| [`ImageLayoutPageNumber`]({{site.info}}api/WebTwain_Acquire.html#imagelayoutpagenumber) | [`ImagePixelType`]({{site.info}}api/WebTwain_Acquire.html#imagepixeltype)| [`MagData`]({{site.info}}api/WebTwain_Acquire.html#magdata) | -|[`MagType`]({{site.info}}api/WebTwain_Acquire.html#magtype)|[`PendingXfers`]({{site.info}}api/WebTwain_Acquire.html#pendingxfers) | [`PixelFlavor`]({{site.info}}api/WebTwain_Acquire.html#pixelflavor)| [`TransferMode`]({{site.info}}api/WebTwain_Acquire.html#transfermode) | -| [`Unit`]({{site.info}}api/WebTwain_Acquire.html#unit)|[`XferCount`]({{site.info}}api/WebTwain_Acquire.html#xfercount)|[`IfAppendImage`]({{site.info}}api/WebTwain_Acquire.html#ifappendimage)| - - -### Events - - -| [`OnSourceUIClose`]({{site.info}}api/WebTwain_Acquire.html#onsourceuiclose) | - -## Input/Output - -### Input - -#### Methods - - -|[`LoadImage()`]({{site.info}}api/WebTwain_IO.html#loadimage)| [`LoadImageEx()`]({{site.info}}api/WebTwain_IO.html#loadimageex)|[`LoadImageFromBase64Binary()`]({{site.info}}api/WebTwain_IO.html#loadimagefrombase64binary)| [`LoadImageFromBinary()`]({{site.info}}api/WebTwain_IO.html#loadimagefrombinary)| -|[`LoadDibFromClipboard()`]({{site.info}}api/WebTwain_IO.html#loaddibfromclipboard)| [`FTPDownload()`]({{site.info}}api/WebTwain_IO.html#ftpdownload)| [`FTPDownloadEx()`]({{site.info}}api/WebTwain_IO.html#ftpdownloadex)| [`HTTPDownload()`]({{site.info}}api/WebTwain_IO.html#httpdownload)| -| [`HTTPDownloadEx()`]({{site.info}}api/WebTwain_IO.html#httpdownloadex)|[`HTTPDownloadThroughPost()`]({{site.info}}api/WebTwain_IO.html#httpdownloadthroughpost)|[`loadFromLocalStorage()`]({{site.info}}api/WebTwain_IO.html#loadfromlocalstorage) | - - - -### Output - -#### Methods - - -| [`ConvertToBase64()`]({{site.info}}api/WebTwain_IO.html#converttobase64)|[`ConvertToBlob()`]({{site.info}}api/WebTwain_IO.html#converttoblob)|[`FTPUpload()`]({{site.info}}api/WebTwain_IO.html#ftpupload)| -|[`FTPUploadEx()`]({{site.info}}api/WebTwain_IO.html#ftpuploadex)|[`FTPUploadAllAsMultiPageTIFF()`]({{site.info}}api/WebTwain_IO.html#ftpuploadallasmultipagetiff)|[`FTPUploadAllAsPDF()`]({{site.info}}api/WebTwain_IO.html#ftpuploadallaspdf)| -|[`FTPUploadAsMultiPagePDF()`]({{site.info}}api/WebTwain_IO.html#ftpuploadasmultipagepdf)| [`FTPUploadAsMultiPageTIFF()`]({{site.info}}api/WebTwain_IO.html#ftpuploadasmultipagetiff)|[`HTTPUpload()`]({{site.info}}api/WebTwain_IO.html#httpupload)| -|[`HTTPUploadThroughPutEx()`]({{site.info}}api/WebTwain_IO.html#httpuploadthroughputex)| [`HTTPUploadThroughPost()`]({{site.info}}api/WebTwain_IO.html#httpuploadthroughpost)| [`HTTPUploadThroughPostEx()`]({{site.info}}api/WebTwain_IO.html#httpuploadthroughpostex)| -| [`HTTPUploadAllThroughPostAsMultiPageTIFF()`]({{site.info}}api/WebTwain_IO.html#httpuploadallthroughpostasmultipagetiff)| [`HTTPUploadAllThroughPostAsPDF()`]({{site.info}}api/WebTwain_IO.html#httpuploadallthroughpostaspdf)| [`HTTPUploadThroughPostAsMultiPagePDF()`]({{site.info}}api/WebTwain_IO.html#httpuploadthroughpostasmultipagepdf)| -|[`HTTPUploadThroughPostAsMultiPageTIFF()`]({{site.info}}api/WebTwain_IO.html#httpuploadthroughpostasmultipagetiff)|[`OutputSelectedAreaAsync()`]({{site.info}}api/WebTwain_IO.html#outputselectedareaasync)|[`SaveAsBMP()`]({{site.info}}api/WebTwain_IO.html#saveasbmp)| -|[`SaveAsJPEG()`]({{site.info}}api/WebTwain_IO.html#saveasjpeg)| [`SaveAsPDF()`]({{site.info}}api/WebTwain_IO.html#saveaspdf)|[`SaveAsPNG()`]({{site.info}}api/WebTwain_IO.html#saveaspng)| -|[`SaveAsTIFF()`]({{site.info}}api/WebTwain_IO.html#saveastiff)| [`SaveSelectedImagesAsMultiPagePDF()`]({{site.info}}api/WebTwain_IO.html#saveselectedimagesasmultipagepdf)|[`SaveSelectedImagesAsMultiPageTIFF()`]({{site.info}}api/WebTwain_IO.html#saveselectedimagesasmultipagetiff)| -| [`SaveAllAsMultiPageTIFF()`]({{site.info}}api/WebTwain_IO.html#saveallasmultipagetiff)|[`SaveAllAsPDF()`]({{site.info}}api/WebTwain_IO.html#saveallaspdf)|[`httpUploadBlob()`]({{site.info}}api/WebTwain_IO.html#httpuploadblob)| -| [`saveBlob()`]({{site.info}}api/WebTwain_IO.html#saveblob) | [`saveToLocalStorage()`]({{site.info}}api/WebTwain_IO.html#savetolocalstorage) | - - - -### Others - -#### Methods - - -|[`ClearTiffCustomTag()`]({{site.info}}api/WebTwain_IO.html#cleartiffcustomtag) |[`SetTiffCustomTag()`]({{site.info}}api/WebTwain_IO.html#settiffcustomtag)|[`ClearAllHTTPFormField()`]({{site.info}}api/WebTwain_IO.html#clearallhttpformfield) |[`SetHTTPFormField()`]({{site.info}}api/WebTwain_IO.html#sethttpformfield)| -| [`SetHTTPHeader()`]({{site.info}}api/WebTwain_IO.html#sethttpheader)| [`SetUploadSegment()`]({{site.info}}api/WebTwain_IO.html#setuploadsegment)|[`ShowFileDialog()`]({{site.info}}api/WebTwain_IO.html#showfiledialog) | [`Print()`]({{site.info}}api/WebTwain_IO.html#print)| -|[`PrintEx()`]({{site.info}}api/WebTwain_IO.html#printex)| [`createLocalStorage()`]({{site.info}}api/WebTwain_IO.html#createlocalstorage) | [`localStorageExist()`]({{site.info}}api/WebTwain_IO.html#localstorageexist) |[`removeLocalStorage()`]({{site.info}}api/WebTwain_IO.html#removelocalstorage) | - - - -#### Properties - - -|[`FTPPassword`]({{site.info}}api/WebTwain_IO.html#ftppassword) |[`FTPPort`]({{site.info}}api/WebTwain_IO.html#ftpport)| [`FTPUserName`]({{site.info}}api/WebTwain_IO.html#ftpusername) |[`IfPASVMode`]({{site.info}}api/WebTwain_IO.html#ifpasvmode)| -|[`HttpFieldNameOfUploadedImage`]({{site.info}}api/WebTwain_IO.html#httpfieldnameofuploadedimage) | [`HTTPPort`]({{site.info}}api/WebTwain_IO.html#httpport)|[`IfSSL`]({{site.info}}api/WebTwain_IO.html#ifssl) |[`HTTPPostResponseString`]({{site.info}}api/WebTwain_IO.html#httppostresponsestring)| -|[`IfShowFileDialog`]({{site.info}}api/WebTwain_IO.html#ifshowfiledialog) |[`IfShowCancelDialogWhenImageTransfer`]({{site.info}}api/WebTwain_IO.html#ifshowcanceldialogwhenimagetransfer)| [`IfShowProgressBar`]({{site.info}}api/WebTwain_IO.html#ifshowprogressbar) | [`JPEGQuality`]({{site.info}}api/WebTwain_IO.html#jpegquality)| -|[`IfTiffMultiPage`]({{site.info}}api/WebTwain_IO.html#iftiffmultipage) | [`TIFFCompressionType`]({{site.info}}api/WebTwain_IO.html#tiffcompressiontype)| [`MaxUploadImageSize`]({{site.info}}api/WebTwain_IO.html#maxuploadimagesize)|[`IfSortBySelectionOrder`]({{site.info}}api/WebTwain_IO.html#ifsortbyselectionorder) | - - - -#### Events - - -|[`OnGetFilePath`]({{site.info}}api/WebTwain_IO.html#ongetfilepath)|[`OnPostLoad`]({{site.info}}api/WebTwain_IO.html#onpostload)| [`OnInternetTransferPercentage`]({{site.info}}api/WebTwain_IO.html#oninternettransferpercentage)| - - - -## Util - -### Methods - - -|[`RegisterEvent()`]({{site.info}}api/WebTwain_Util.html#registerevent) | [`UnregisterEvent()`]({{site.info}}api/WebTwain_Util.html#unregisterevent) | [`GenerateURLForUploadData()`]({{site.info}}api/WebTwain_Util.html#generateurlforuploaddata) | - - - -### Properties - - -|[`ErrorCode`]({{site.info}}api/WebTwain_Util.html#errorcode)|[`ErrorCause`]({{site.info}}api/WebTwain_Util.html#errorcause)| [`ErrorString`]({{site.info}}api/WebTwain_Util.html#errorstring) | [`LogLevel`]({{site.info}}api/WebTwain_Util.html#loglevel)| [`Manufacturer`]({{site.info}}api/WebTwain_Util.html#manufacturer)| -|[`ProductFamily`]({{site.info}}api/WebTwain_Util.html#productfamily)| [`ProductName`]({{site.info}}api/WebTwain_Util.html#productname)| [`VersionInfo`]({{site.info}}api/WebTwain_Util.html#versioninfo)| | - - - -## Viewer - -### Methods - - -|[`bind()`]({{site.info}}api/WebTwain_Viewer.html#bind)| [`clearSelectedAreas()`]({{site.info}}api/WebTwain_Viewer.html#clearselectedareas)| [`createCustomElement()`]({{site.info}}api/WebTwain_Viewer.html#createcustomelement)| [`createImageEditor()`]({{site.info}}api/WebTwain_Viewer.html#createimageeditor)| -| [`createThumbnailViewer()`]({{site.info}}api/WebTwain_Viewer.html#createthumbnailviewer)| [`first()`]({{site.info}}api/WebTwain_Viewer.html#first)|[`fitWindow()`]({{site.info}}api/WebTwain_Viewer.html#fitwindow)|[`gotoPage()`]({{site.info}}api/WebTwain_Viewer.html#gotopage)| -| [`hide()`]({{site.info}}api/WebTwain_Viewer.html#hide)| [`last()`]({{site.info}}api/WebTwain_Viewer.html#last)| [`next()`]({{site.info}}api/WebTwain_Viewer.html#next)|[`off()`]({{site.info}}api/WebTwain_Viewer.html#off)| -|[`on()`]({{site.info}}api/WebTwain_Viewer.html#on)| [`previous()`]({{site.info}}api/WebTwain_Viewer.html#previous)| [`render()`]({{site.info}}api/WebTwain_Viewer.html#render)| [`setButtonClass()`]({{site.info}}api/WebTwain_Viewer.html#setbuttonclass)| -| [`setSelectedAreas()`]({{site.info}}api/WebTwain_Viewer.html#setselectedareas)| [`setViewMode()`]({{site.info}}api/WebTwain_Viewer.html#setviewmode) | [`show()`]({{site.info}}api/WebTwain_Viewer.html#show)| [`unbind()`]({{site.info}}api/WebTwain_Viewer.html#unbind)| -| [`createDocumentEditor()`]({{site.info}}api/WebTwain_Viewer.html#createdocumenteditor)| [`updateCheckboxStyle()`]({{site.info}}api/WebTwain_Viewer.html#updatecheckboxstyle)| [`updatePageNumberStyle()`]({{site.info}}api/WebTwain_Viewer.html#updatepagenumberstyle)| [`updateSelectionBoxStyle()`]({{site.info}}api/WebTwain_Viewer.html#updateselectionboxstyle) | - - - -### Properties - - -|[`acceptDrop`]({{site.info}}api/WebTwain_Viewer.html#acceptdrop)| [`allowSlide`]({{site.info}}api/WebTwain_Viewer.html#allowslide)| [`allowPageDragging`]({{site.info}}api/WebTwain_Viewer.html#allowpagedragging)|[`background`]({{site.info}}api/WebTwain_Viewer.html#background)| -|[`border`]({{site.info}}api/WebTwain_Viewer.html#border) | [`cursor`]({{site.info}}api/WebTwain_Viewer.html#cursor)| [`height`]({{site.info}}api/WebTwain_Viewer.html#height)|[`idPostfix`]({{site.info}}api/WebTwain_Viewer.html#idpostfix)| -|[`ifAutoScroll`]({{site.info}}api/WebTwain_Viewer.html#ifautoscroll)|[`innerBorder`]({{site.info}}api/WebTwain_Viewer.html#innerBorder)| [`pageMargin`]({{site.info}}api/WebTwain_Viewer.html#pagemargin)|[`selectedAreaBorderColor`]({{site.info}}api/WebTwain_Viewer.html#selectedareabordercolor)| -|[`selectedPageBackground`]({{site.info}}api/WebTwain_Viewer.html#selectedpagebackground)|[`selectedPageBorder`]({{site.info}}api/WebTwain_Viewer.html#selectedpageborder)| [`selectionRectAspectRatio`]({{site.info}}api/WebTwain_Viewer.html#selectionrectaspectratio)|[`singlePageMode`]({{site.info}}api/WebTwain_Viewer.html#singlepagemode)| -|[`width`]({{site.info}}api/WebTwain_Viewer.html#width)| [`zoom`]({{site.info}}api/WebTwain_Viewer.html#zoom)| [`autoChangeIndex`]({{site.info}}api/WebTwain_Viewer.html#autochangeindex)|[`selectionMode`]({{site.info}}api/WebTwain_Viewer.html#selectionmode)| -|[`zoomOrigin`]({{site.info}}api/WebTwain_Viewer.html#zoomorigin)| - - - -### Events - -|[`click`]({{site.info}}api/WebTwain_Viewer.html#click)| [`contextmenu`]({{site.info}}api/WebTwain_Viewer.html#contextmenu)| [`dblclick`]({{site.info}}api/WebTwain_Viewer.html#dblclick)|[`mousemove`]({{site.info}}api/WebTwain_Viewer.html#mousemove)| -| [`mousedown`]({{site.info}}api/WebTwain_Viewer.html#mousedown)| [`mouseup`]({{site.info}}api/WebTwain_Viewer.html#mouseup)| [`mouseout`]({{site.info}}api/WebTwain_Viewer.html#mouseout)|[`mouseover`]({{site.info}}api/WebTwain_Viewer.html#mouseover)| -|[`keydown`]({{site.info}}api/WebTwain_Viewer.html#keydown)| [`keyup`]({{site.info}}api/WebTwain_Viewer.html#keyup)|[`pageAreaSelected`]({{site.info}}api/WebTwain_Viewer.html#pageareaselected)| [`pageAreaUnselected`]({{site.info}}api/WebTwain_Viewer.html#pageareaunselected)| -|[`pageRendered`]({{site.info}}api/WebTwain_Viewer.html#pagerendered)| [`resize`]({{site.info}}api/WebTwain_Viewer.html#resize)| - - - - - -## Addon - -## BarcodeReader - -### Methods - - -|[`decode()`]({{site.info}}api/Addon_BarcodeReader.html#decode)| [`getRuntimeSettings()`]({{site.info}}api/Addon_BarcodeReader.html#getruntimesettings)|[`updateRuntimeSettings()`]({{site.info}}api/Addon_BarcodeReader.html#updateruntimesettings)| -|[`resetRuntimeSettings()`]({{site.info}}api/Addon_BarcodeReader.html#resetruntimesettings)| [`initRuntimeSettingsWithString()`]({{site.info}}api/Addon_BarcodeReader.html#initruntimesettingswithstring)| - - - - -## PDF - -### Methods - - -|[`GetConvertMode()`]({{site.info}}api/Addon_PDF.html#getconvertmode)| [`IsModuleInstalled()`]({{site.info}}api/Addon_PDF.html#ismoduleinstalled) | [`IsRasterizationRequired()`]({{site.info}}api/Addon_PDF.html#israsterizationrequired) | [`IsTextBasedPDF()`]({{site.info}}api/Addon_PDF.html#istextbasedpdf)| [`SetConvertMode()`]({{site.info}}api/Addon_PDF.html#setconvertmode)| -|[`SetPassword()`]({{site.info}}api/Addon_PDF.html#setpassword)|[`SetResolution()`]({{site.info}}api/Addon_PDF.html#setresolution)|[`Write.Setup()`]({{site.info}}api/Addon_PDF.html#writesetup)| [`GetReaderOptions()`]({{site.info}}api/Addon_PDF.html#getreaderoptions)| -| [`SetReaderOptions()`]({{site.info}}api/Addon_PDF.html#setreaderoptions)| - - - -## Webcam - -### Methods - - -|[`CaptureImage()`]({{site.info}}api/Addon_Webcam.html#captureimage) | [`CloseSource()`]({{site.info}}api/Addon_Webcam.html#closesource)| [`GetCameraControlPropertySetting()`]({{site.info}}api/Addon_Webcam.html#getcameracontrolpropertysetting) | [`GetCameraControlPropertyMoreSetting()`]({{site.info}}api/Addon_Webcam.html#getcameracontrolpropertymoresetting)| -|[`GetVideoPropertySetting()`]({{site.info}}api/Addon_Webcam.html#getvideopropertysetting)|[`GetVideoPropertyMoreSetting()`]({{site.info}}api/Addon_Webcam.html#getvideopropertymoresetting)| [`SetCameraControlPropertySetting()`]({{site.info}}api/Addon_Webcam.html#setcameracontrolpropertysetting)| [`SetVideoPropertySetting()`]({{site.info}}api/Addon_Webcam.html#setvideopropertysetting)| -|[`GetFrameRate()`]({{site.info}}api/Addon_Webcam.html#getframerate) | [`SetFrameRate()`]({{site.info}}api/Addon_Webcam.html#setframerate)| [`GetMediaType()`]({{site.info}}api/Addon_Webcam.html#getmediatype) | [`SetMediaType()`]({{site.info}}api/Addon_Webcam.html#setmediatype)| -|[`GetResolution()`]({{site.info}}api/Addon_Webcam.html#getresolution) | [`SetResolution()`]({{site.info}}api/Addon_Webcam.html#setresolution)| [`GetFramePartURL()`]({{site.info}}api/Addon_Webcam.html#getframeparturl) | [`GetFrameURL()`]({{site.info}}api/Addon_Webcam.html#getframeurl)| -|[`GetSourceList()`]({{site.info}}api/Addon_Webcam.html#getsourcelist) | [`SelectSource()`]({{site.info}}api/Addon_Webcam.html#selectsource)|[`PauseVideo()`]({{site.info}}api/Addon_Webcam.html#pausevideo) |[`PlayVideo()`]({{site.info}}api/Addon_Webcam.html#playvideo)| -|[`SetVideoRotateMode()`]({{site.info}}api/Addon_Webcam.html#setvideorotatemode) | [`StopVideo()`]({{site.info}}api/Addon_Webcam.html#stopvideo)| - -## Dynamsoft.FileUploader - -### Methods - - -| [`Init()`]({{site.info}}api/Dynamsoft_FileUploader.html#init)|[`CreateJob()`]({{site.info}}api/Dynamsoft_FileUploader.html#createjob)|[`Run()`]({{site.info}}api/Dynamsoft_FileUploader.html#run) | [`Cancel()`]({{site.info}}api/Dynamsoft_FileUploader.html#cancel)| -|[`CancelAllUpload()`]({{site.info}}api/Dynamsoft_FileUploader.html#cancelallupload)| - diff --git a/info/schedule/index.md b/info/schedule/index.md deleted file mode 100644 index 5cbb6c79..00000000 --- a/info/schedule/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: default-layout -needAutoGenerateSidebar: false -title: Dynamic Web TWAIN SDK Schedule -keywords: Dynamic Web TWAIN, Documentation, Schedule, Index -breadcrumbText: Release Notes -description: Dynamic Web TWAIN SDK Documentation Schedule Index Page -permalink: /info/schedule/ ---- - -# Release Notes - -## [Stable]({{site.info}}schedule/stable.html) - - - -## [Addon Release]({{site.info}}schedule/addon.html) - -## [Deprecated]({{site.info}}schedule/deprecated.html) -