Dev Center
CreateFile()
.OpenFile()
.RemoveFile()
.GetCurrentFileName()
.GetFileInfoList()
.GetTagListByIndex()
.ChangeBrightnessAsync()
.ChangeContrastAsnyc()
.scanDocument()
to capture document(s).UpdateCert()
to automatically update the client side certificate.showCheckbox
.createTemplate()
to create document scanner template.CM_RENDERALLWITHANNOTATION
convert mode to EnumDWT_ConvertMode to support loading PDFs with annotations.FilterImageByTag
.IfDuplexEnabled
may not work for some scanners.LoadDibFromClipboard
does not work after calling CropToClipboard
.Added support for ChromeOS. See more 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.
The built-in viewer can now display thumbnails faster.
Installers for ARM x64 and MIPS x64 are now included in the package by default.
Separated the library into two distinctive modes: Desktop Service and WebAssembly for easier understanding and usage.
Fixed a bug where the image fails to be displayed after it gets cropped and saved in the built-in ImageEditor.
Fixed a bug where images meant to be saved on the hard disk end up in the image buffer on macOS.
Fixed a bug where erasing part of an image will change its original display mode to be ‘centered’.
Added support for 64-bit ARM based computers. Video
Added support for 64-bit MIPS based computers.
Added support for trackable license types such as “Per Browser Client”. This new license mechanism is incompatible with the traditional product key. The related APIs are licenseServer, handshakeCode, sessionPassword, licenseException.
Added method RemoveTag()
to remove a specified tag from one or multiple images.
Added method GetTagList()
to return the status of all current tags.
Added method PrintEx()
to support selective printing.
Added property autoChangeIndex
which, when set to true, will make sure the first image in the viewer is always selected when scrolling through multiple images.
The built-in viewer now consumes less memory than before.
Scanning via ICA now supports the transfer modes File and Memory.
Upgraded the encryption algorithm for locally cached images from 64-bit Blowfish to AES-256-GCM encryption.
DefaultSourceName
now refers to the last used source.
Updated Barcode Reader library to version 8.2.1. Check out release notes for Barcode Reader JavaScript SDK - 8.2.1.
showVideo
.The original namespace Dynamsoft.WebTwainEnv
is renamed to Dynamsoft.DWT
.
All enumerations are moved under Dynamsoft.DWT
. For example, Dynamsoft.EnumDWT_PixelType
and EnumDWT_PixelType
work in version 16.2 and lower but now it must be written as Dynamsoft.DWT.EnumDWT_PixelType
.
Server-side OCR pro is no longer supported in this version.
When OCR Pro is used on the client side, it requires a trackable license. The traditional product key no longer works.
Fixed a bug where the method CloseSourceManager()
gets called too many times and slows down scanning when you use SelectSourceByIndex() for source selection.
Fixed a bug where you get an incorrect name with the API CurrentSourceName
or DefaultSourceName
.
UseLocalService
, RemoveTag()
and GetTagList()
.16.2
(01/18/2021)OnBufferChanged
which is triggered when the buffer changes like
Added a configuration page to update the host or ports of the Dynamsoft Service. By default, this page can be accessed by the URL http://127.0.0.1:18625/admin/.
Dynamsoft.WebTwainEnv.CustomizableDisplayInfo.loaderBarSource
.
Added a new global property Dynamsoft.WebTwainEnv.IfAlwaysFocusOnPopupWindow
to control whether to set focus on scanner-related windows opened by the Dynamsoft Service when the browser tab on which the SDK is running is active. In the past, these windows will be on top no matter which browser tab is active.
Shadow DOM is officially supported.
Added support for ARM-based macOS.
Dynamsoft.WebTwainEnv.UseDefaultViewer
to control whether the built-in viewer is used.AcquireImage()
with the parameter deviceConfiguration
instead of the API IfShowUI
.RenameTag()
to rename an existing tag.ClearFilter()
to stop filtering images by tag.FilterImagesByTag()
shows all images if no parameter is passed or shows no image at all if the tag value passed doesn’t exist or there is no images under that tag.Updated the signatures for the files on macOS so that TWAIN drivers can be populated correctly.
Added global configuration options for the WASM-mode which includes maxHeapSize
and fetchOptions
.
Improved the methods getCapabilities and setCapabilities so that they work for ICA drivers on macOS too.
When the view changes from single-image mode to multi-image mode, the cursor used to be changed to “hand” which means you can drag and drop images, in v16.2, the cursor will stay unchanged. In other words, if the cursor was “crosshair” in single-image mode, it’ll continue to be “crosshair” in multi-image mode which means you can continue to draw rectangles on these images (NOTE that you can only draw on the current image). You can use the property Viewer.cursor to change the cursor in this case.
The properties Width
and Height
will always return the actual number of pixels even if you set them with a percentage like “50%”.
The properties BackgroundColor
and SelectionImageBorderColor
will always return a string that represents the style (colour, border, etc.) even if you set them with numbers. For example, BackgroundColor
returns “#000032” if you set it to “50” and SelectionImageBorderColor
returns “1px solid #000032” when you set it to “50”. Also, these two properties are deprecated and should be replaced by Viewer.background
and Viewer.selectedPageBorder
.
The properties IfFitWindow
and FitWindowType
are now write-only as their actual values may not be correct when you read them. As these properties are deprecated, use fitWindow()
instead.
Added a 3rd parameter fill
to the method play()
which determines whether the video should fill the whole viewer and have a part of the video hidden. In v16.1.1-, the default behavior is to fill the whole viewer and in v16.2, it’ll put the video within the viewer and possibly leave some margin.
On macOS, the default transfer mode for TWAIN drivers is changed from “native” to “memory”.
The “Cut” (“Erase”) button in the image editor now cuts the selected area to the clipboard instead of just erasing the area.
The “Stretch” button is deleted from the image editor.
The type declaration files are now included in the dwt
package. From version 16.2 on, these files are no longer maintained on DefinitelyTyped.
The methods showVideo()
and closeVideo()
are moved from the interface Viewer
to Addon.Camera
.
The method showVideo()
has added two more parameters mode
and fill
and the video starts in the new default picture
mode. To get the old behavior, use the document
mode.
The property SelectedImagesCount
and the method GetSelectedImageIndex()
are deleted. Use SelectedImagesIndices
instead.
The method SetSelectedImageIndex()
is deleted. Use SelectImages()
instead.
The method UpdateViewer()
is deleted. There is no alternative method.
The second parameter for the method BindViewer()
is deleted and it has only one parameter to specify the HTML element now. Therefore, you cannot use this method to create a thumbnail viewer anymore. Use the new method createThumbnailViewer()
instead.
Fixed a bug where if you create a WebTwain
instance under WASM-mode and then destroy it and create another WebTwain
instance under Service-mode, you will be prompted to install the Dynamsoft Service even if it is already installed.
Fixed a bug with the scanner model “Canon DR-M260” (200 series) where the manufacturer’s UI hangs or disappears once it is shown.
Fixed a bug on macOS where 1-bit TIFF files become inverted once they are transferred via the system clipboard.
Fixed a bug where changing the UI of the image editor will affect the main viewer.
Fixed a bug where the method updateRuntimeSettings
will overwrite all settings you set with the method initRuntimeSettingsWithString
.
Fixed a bug where the wrong PDF library is referenced when the SDK switches to the Service-mode from WASM-mode.
Fixed a bug on mobile devices where once an image is cut, its metadata is lost and can no longer be printed (it appears blank when being printed).
Fixed a bug where if the Dynamsoft Service is not installed and a WebTwain
instance is created using the method CreateDWTObject()
or CreateDWTObjectEx()
, the connection to the service is not attempted automatically as expected (a page refreshing is required).
Fixed a bug with the API Dynamsoft.WebTwainEnv.CustomizableDisplayInfo
so that it now works again.
Fixed a bug where removed images remain in the viewer.
Fixed a bug where if you set the display
attribute of the viewer to none
, it becomes black.
Fixed a bug where global keyboard or mouse events registered to the Dynamsoft Viewer were not released correctly.
16.1.1
(08/13/2020)Whether to load the WASM
for the Camera module is now optional (used to be mandatory in 16.1
) and is disabled by default.
The webcam/camera license is now considered a core license and can be used without a scan license.
16.1
(08/04/2020)Added method SetProductKeyAsync()
which sets the product key asynchronously. Previously, the property ProductKey was used for both setting and reading the key. The same behavior is kept in 16.1 but the recommendation now is to use the method SetProductKeyAsync()
to set it and use the property ProductKey
to read it.
Added methods GetSourceNamesAsync()
, SelectSourceAsync()
, SelectSourceByIndexAsync()
, OpenSourceAsync()
, CloseSourceAsync()
, OpenSourceManagerAsync()
, CloseSourceManagerAsync()
, as asynchronous complements to their existing synchronous methods.
Support showing both 64-bit TWAIN drivers and 32-bit TWAIN drivers at the same time.
NOTE: This driver type does not work if we call
SelectSource()
synchronously (without callbacks).
Added APIs under Addon.Camera
as a complement to the existing APIs under Addon.Webcam
. These APIs include getSourceList()
, selectSource()
, getCurrentSource()
, closeSource()
, getResolution()
, setResolution()
, getCurrentResolution()
, play()
, pause()
, resume()
, stop()
, getStatus()
and capture()
. Unlike the old APIs under Addon.Webcam
which are good only on Windows, the new APIs are good on Windows, macOS, Linux as well as iOS & Android.
Added a property UseLocalService
to return whether a WebTwain
instance is running in the Local-Service mode or WASM mode.
Added built-in video processing feature which enables video streaming, edge detection, perspective adjustment, capturing, etc. Related APIs include showVideo()
, closeVideo()
and two callbacks video-closed
and video-error
.
NOTE: on desktop, this feature requires a webcam/camera addon license.
LoadImageEx()
now supports mobile platforms as well./DynamsoftServicex64/
is now /DynamsoftServicex64_16/
. Also ActiveX related files are put into a different directory called /WebTWAINActiveX/
.Print()
disappears immediately after showing up.Dynamsoft.WebTwainEnv.Host
which is now effective.Crop()
.WebTwain
instances created by the API Dynamsoft.WebTwainEnv.CreateDWTObjectEx()
so that their UI binding works correctly.No deprecation in version 16.1.
No changes in version 16.1.
16.0
(06/16/2020)Dynamsoft.WebTwainEnv.UseLocalService
to switch the working mode of the library between Local-Service mode and WASM mode. Only valid on desktop operating systems.WebTwain
instance is now independent from the UI. In version 16.0, you can create a WebTwain
instance in 4 ways
Container
that has a ContainerId
and assign it to Dynamsoft.WebTwainEnv.Containers
. A ContainerId
is essentially the id of an HTMLDivElement
element which is required for generating a built-in Dynamsoft Viewer. Then call the method Dynamsoft.WebTwainEnv.GetWebTwain()
with ContainerId
as the argument to get the instance.Dynamsoft.WebTwainEnv.CreateDWTObject()
to create an instance with built-in Dynamsoft Viewer.Container
that has a WebTwainId
but no ContainerId
and assign it to Dynamsoft.WebTwainEnv.Containers
. A WebTwainId
is just a string to uniquely specify the instance. Then call the new method Dynamsoft.WebTwainEnv.GetWebTwainEx()
with WebTwainId
as the argument to get the instance.Dynamsoft.WebTwainEnv.CreateDWTObjectEx()
to create an instance without a built-in Dynamsoft Viewer.Note
If a
WebTwain
instance is created without a built-in Dynamsoft Viewer, you can create a Viewer later and bind it to the existingWebTwain
instance using the new methodBindViewer()
. The Viewer can also be updated or unbound with the new methodsUpdateViewer()
andUnbindViewer()
.
LoadImageFromBinary()
to enable importing data from binary (an object of the type Blob or ArrayBuffer).getCapabilities()
and setCapabilities()
which enables fast capability negotiation.EnableSourceUI()
to enable TWAIN configuration without scanning.SelectImages()
to select one or multiple images programmatically. This method replaces the old APIs SetSelectedImageIndex()
and SelectedImagesCount
.SelectedImagesIndices
to return the indices of selected images. This property replaces the old API GetSelectedImageIndex()
.setViewMode()
, updateUISettings()
, setButtonClass()
, setSelectedImageArea()
, zoomIn()
, zoomOut()
, bindCustomElement()
, showCustomElement()
, hideCustomElement()
, toggleCustomElement()
. These methods should be called like this: DWObject.Viewer.zoomIn()
.ChangeImageSize()
, ConvertToBW()
, ConvertToGrayScale()
, Crop()
, Erase()
, FilterImageByTag()
, Flip()
, GetSelectedImageSize()
, GetSkewAngle()
, Invert()
, Mirror()
, Rotate()
, RotateEx()
, RotateLeft()
, RotateRight()
, SetDPI()
, SetImageWidth()
NOTE
These APIs must be called asynchronously in the WASM mode.
HTTPDownload()
and HTTPDownloadEx()
no longer has the “Content-Type” header in their HTTP Get requests.GetSourceNames(true)
now returns more information which includes “DriverType” and “DeviceInfo”.SetSelectedImageIndex()
, GetSelectedImageIndex()
and SelectedImagesCount
in favor of the new method SelectImages()
.IfOpenImageWithGDIPlus
in favor of the built-in imaging decoder.getCapabilities()
and setCapabilities()
:CapGet()
, CapGetHelp()
, CapGetCurrent()
, CapGetDefault()
, CapGetFrameBottom()
, CapGetFrameLeft()
, CapGetFrameRight()
, CapGetFrameTop()
, CapGetLabel()
, CapGetLabels()
, CapSet()
, CapReset()
, CapSetFrame()
, CapIfSupported()
, GetCapItems()
, GetCapItemsString()
, SetCapItems()
, SetCapItemsString()
, Capability
, CapNumItems
, CapMaxValue
, CapMinValue
, CapCurrentValue
, CapCurrentIndex
, CapDefaultValue
, CapDefaultIndex
, CapType
, CapValueType
, CapDescription
, CapStepSize
, CapValue
, CapValueString
SelectImages()
.SelectedImagesIndices
.15.3.1
(03/05/2020)DSConfiguration.ini
will now be replaced directly.15.3
(01/07/2020)extendedImageInfoQueryLevel
for the method AcquireImage()
that allows setting up how the library queries extended image info items. In version 15.2, the default level would result in scanning failure or serious performance issues with some scanners.GetSourceNames(bool bIncludeDetails)
that returns the list of available data sources as a string array. On Windows, when bIncludeDetails
is set to true
, this method returns more details about the sources including its protocol versions, manufacturer and whether it’s the default/current source, etc.SelectAllImages()
that can select all images in buffer or all images that have been filtered by tags.ConvertToBW(number imageIndex)
that converts a specific image to Black & White.Invert(number imageIndex)
that inverts a specific image.HTTPUploadThroughPostDirectly()
, HTTPDownloadDirectly()
to only work on whitelisted images/files (check NOTE below).LogLevel
so that when it’s set to 1\0
, it’s equivalent to setting LogLevel
to 14\1
in the file C:\Windows\SysWOW64\Dynamsoft\DynamsoftServicex64\DSConfiguration.ini
wtss.log
.Note on how whitelisting is done
Dynamsoft Service keeps a whitelist of all images in buffer as well as images saved by the Service. The whitelist lives on until the current service process is destroyed. Each Dynamic Web TWAIN object keeps a whitelist of file paths that are retrieved in the callback
OnGetFilePath
for the methodShowFileDialog()
.
[HTML5] Further improved security by deleting the methods FTPUploadDirectly()
, FTPDownloadDirectly()
, FileExists()
.
[HTML5] Fixed a bug where Dynamsoft Service gets stuck when you try to perform concurrent operations on the same image(s) like uploading and converting them at the same time. [HTML5] Fixed a bug where Dynamsoft Service crashes when the callback OnBitmapChanged is called recursively.
15.2
(09/19/2019)TagImages()
, ClearImageTags()
, SetDefaultTag()
and FilterImagesByTag()
.CreateTextFont()
where the text takes up extra space when it is rotated by 90 degrees.GenerateURLForUploadData()
so that it returns an URL that shows the correct SDK version.OnTopImageInTheViewChanged()
where it doesn’t get triggered if images are acquired into an empty buffer.15.1
(08/13/2019)OnPostTransferAsync
from Windows to macOS & Linux. The method serves as the asynchronous counterpart to the existing synchronous event OnPostTransfer
. Information about the transferred image is returned in the event listener.startScan()
from Windows to macOS & Linux. The method accepts a JSON object that specifies all the scan parameters. This makes it simpler and even faster to initiate a scan job. At the same time, you can specify how you want the scanned data to be processed by adding extra output parameters in the same JSON object.ConvertToBlob()
, ConvertToBase64()
and image loading methods so that they can handle much bigger files.15.0
(06/27/2019)startScan()
which accepts a JSON object that specifies all the scan parameters. This makes it simpler and even faster to initiate a scan job. At the same time, you can specify how you want the scanned data to be processed by adding extra output parameters in the same JSON object.OnPostTransferAync
as the asynchronous counterpart to the existing synchronous event OnPostTransfer
. Information about the transferred image is returned in the event listener.PDF.Write.Setup()
which accepts a JSON object that contains all the parameters needed for creating PDF files.libDynamicImg.dylib
to the macOS edition which provides functionalities equal to those provided by the file DynamicImage.dll
on Windows. Essentially, this file offers better image encoding and decoding.IndexToImageID()
and ImageIDToIndex()
which converts the index of an image to its image id or vice versa. The id of an image is an unique number that can be used to specify the image.OnIndexChangeDragDropDone
which is triggered when you drag and drop images to resort them in the viewer. The event returns the from and to indices for the operation.AcquireImage()
by adding two more options IfGetImageInfo
& IfGetExtImageInfo
to its parameter optionalDeviceConfig
which are true
by default and means extra image info will be returned with each transferred image.SetFileXferInfo()
so that you can specify a naming pattern for the transferred images when the transfer mode is Disk File.ConvertToBlob()
, ConvertToBase64()
, GenerateURLForUploadedData()
as well as a few HTTP Upload methods.ConvertToBase64()
, ConvertToBlob()
, GenerateURLForUploadData()
, HTTPUpload()
, HTTPUploadAllThroughPostAsMultiPageTIFF()
, HTTPUploadAllThroughPostAsPDF()
, HTTPUploadThroughPost()
, HTTPUploadThroughPostAsMultiPagePDF()
, HTTPUploadThroughPostAsMultiPageTIFF()
, HTTPUploadThroughPostEx()
so that the current indices of the images which were operated on in these methods are returned in the callback functions. This is due to the fact that the indices might have changed during these time-consuming operations.14.3.1
(01/15/2019)GetImagePartURL()
to work with the Barcode Reader.IfCheckDCP
, IfCheckDWT
, IfDisableDefaultSettings
and IsLicensePromptFriendly
.#BBGGRR
to #RRGGBB
for all methods that may require a color as one of its parameters.LoadImageFromBase64Binary()
may fail to decode a string.14.3
(11/20/2018)CancelAllUpload()
only cancels one job.14.2
(10/16/2018)ConvertToBlob()
so that it can be called multiple times in a row.FormField
to allow adding extra fields when uploading.DynamicSocket.dll
to avoid service crash.14.1
(09/06/2018)SelectSource()
method so that it can also be used asynchronously.OnInternetTransferPercentage
which doesn’t fire when IfShowCancelDialogWhenImageTransfer
is set to false
.Undefined
shows up as available sources.GenerateURLForUploadData()
to be an asynchronous method.14.0
(07/17/2018)GenerateURLForUploadData()
to generate a URL which will be used by the upload module to fetch the file/data to upload.SelectSource()
dialog to replace the system’s default dialog.IfCheck64bitServiceFirst
in dynamsoft.webtwain.config.js
which determines whether the JavaScript library checks the 64-bit Dynamsoft Service first. If 64-bit server is installed, this setting will speed up the initialization of the SDK. The default value is false.IfAddMD5InUploadHeader
in dynamsoft.webtwain.config.js
which determines whether the header dwt-md5
is added in HTTP posts. The default value is false
.IfConfineMaskWithinTheViewer
in dynamsoft.webtwain.config.js
which determines whether the mask during SDK initialization or time-consuming operations covers the complete page or just the built-in viewer. The default value is false
.dynamsoft.webtwain.config.js
that enables setting the display language for built-in prompts and image editor, etc. The default language is English.dynamsoft.webtwain.config.js
to show/hide certain buttons on the image editor./Resources/
folder in the installation directory which contains all the JavaScript library files and files for distribution. Removed the deprecated plug-in completely.OnImageAreaSelected
so that when it’s triggered, it will return the 1-based index of the rectangle which represents a selected area on the image. The event is triggered when a new area is selected or a selected area is moved..msi
by default instead of a .exe
.ImageCaptureDriverType
which now is set to 4 by default and the only allowed values are 0 (TWAIN), 3 (ICA) and 4 (TWAIN & ICA).OnMouseClick
, OnMouseDoubleClick
and OnMouseRightClick
to be triggered when the mouse is up. In old versions, they were triggered when the mouse is down.13.4.1
(04/16/2018)13.4
(03/12/2018)[HTML5] Fixed a bug where you see the progress bar displayed on the page for no reason when you use Dynamic Web TWAIN with other libraries or frameworks like the popular BootStrap.
13.3
(01/16/2018)HTTPUpload***
methods so that they can be used in a for-loop.OverlayRectangle()
so that the overlays will move with the image.OverlayRectangle()
so that the image is moved automatically to make sure the newly added overlay is placed in the center of the viewer. This only works when the image is larger than the viewer./Resources/
folder to explain what each file is for in that folder.IfAllowLocalCache
to true
.13.2
(11/01/2017)SetCustomDSDataEx()
methodDynamsoft.WebTwainEnv.Load()
method didn’t work after calling the Dynamsoft.WebTwainEnv.Unload()
methodTransferMode
property didn’t work properly13.1
(08/22/2017)ConvertToBlob()
API to return the Blob of specified indices in the designated file type.SetHTTPFormField()
API to be able to set Blobs in HTTP Forms aside from strings.HTTPUpload()
API to be able to upload binary data set by SetHTTPFormField()
.SetHTTPHeader()
API to support HTTPDownload()
and HTTPDownloadEx()
methods as well.Dynamsoft.WebTwainEnv.Load()
on the page without first Dynamsoft.WebTwainEnv.Unload()
it.HTTPUpload()
API doesn’t work if it’s done asynchronously in a loop.13.0
(06/20/2017)LoadImageFromBase64Binary()
can now be called asynchronously.### NOTICE
12.3.1
(04/14/2017)12.3
(04/06/2017)12.2
(01/10/2017)OnPostTransfer
Dynamsoft.WebTwainEnv.CreateDWTObject()
still tries to connect to non-SSL ports even when the page is running in HTTPS12.1
(11/03/2016)SetUploadSegment()
which can be used to set the threshold for segmented upload as well as size of each segment.Dynamsoft.WebTwainEnv.CreateDWTObject()
to allow listening on multiple IPs.CurrentImageIndexInBuffer
and HowManyImagesInBuffer
return wrong values in the callback for the event OnPostLoad
.OnPostTransfer
event.12.0
(09/22/2016)HTTPUpload()
which supports uploading files as binary as well as base64 string. The method also supports segmented upload when handling big files.ConvertToBase64()
which supports converting one or more images to a base64 string.SetHTTPHeader()
which supports adding a header to an HTTP Upload Post request.GetImageURL()
which returns the direct URL of an image based on its index in the buffer.IfAutoScroll
which when set to false will stop the automatic scrolling of the viewer when scanning or loading images.ChangeImageSize()
by adding a new mechanism for the new option “Best Quality”.WebTwain
instance is created by adding global methods like Dynamsoft.WebTwainEnv.CreateDWTObject()
and Dynamsoft.WebTwainEnv.DeleteDWTObject()
.MagData
doesn’t work during scanning.OnPostLoad
gets triggered twice when loading a file.CurrentImageIndexInBuffer
and HowManyImagesInBuffer
are not updated correctly when the method LoadImagesFromBase64Binary()
is used.11.3.2
(07/05/2016)11.3
(03/01/2016)IsTextBasedPDF()
API to the PDF rasterizer to determine whether a PDF is text-based.OnPostLoad
so that it gets triggered for the methods HTTPDownload(Ex)
, FTPDownload(Ex)
as well as LoadImageFromBase64Binary()
.AcquireImage()
. Now you can set two callback functions to this method to check its status.OnSourceUIClose
never gets triggered.CloseSource()
used to be called automatically after a scanning job is done in v11.2 and a few earlier versions. This has caused issues for a few customers. In this version, this API is no longer called automatically.11.2
(11/24/2015)CloseWorkingProcess()
method to close the current HTML5 scanning process.Print()
method to support printing images via Windows’ native print program.11.1
(09/08/2015)11.0
(07/23/2015)SetOpenSourceTimeout()
method to check ErrorString
property when SelectSource()
method fails after a specified number of milliseconds. This prevents the scan page from being unresponsive when the selected device is not connected.SetVideoRotateMode()
method to rotate the video preview stream.OnWebTwainPreExecuteCallback
, OnWebTwainPostExecuteCallback
events and ShowCustomMask()
, HideCustomMask()
methods in dynamsoft.webtwain.install.js
to display or hide the Dynamsoft’s progress overlay during scanning.DynamicWebTwainCtrl.dll
crashes when LogLevel
is set to 1 and HTTPPostResponseString
returns more than 1024 characters.SetHTTPFormField()
does not work as expected.SetTiffCustomTag()
does not work.CapIfSupported()
does not return support level of specified capability.10.2
(03/24/2015)Addon.Webcam.CaptureImage()
Addon.Webcam.CloseSource()
Addon.Webcam.Download()
Addon.Webcam.GetCameraControlMoreSetting()
Addon.Webcam.GetCameraControlSetting()
Addon.Webcam.GetFrameRate()
Addon.Webcam.GetMediaType()
Addon.Webcam.GetResolution()
Addon.Webcam.GetSourceList()
Addon.Webcam.GetVideoPropertyMoreSetting()
Addon.Webcam.GetVideoPropertySetting()
Addon.Webcam.SelectSource()
Addon.Webcam.SetCameraControlPropertySetting()
Addon.Webcam.SetFrameRate()
Addon.Webcam.SetMediaType()
Addon.Webcam.SetResolution()
Addon.Webcam.SetVideoPropertySetting()
ShowPageNumber
to allow hiding or showing of the number labels at the top-left corner of the images in the viewer.Height
and Width
to allow the use of percentagesMaxUploadImageSize
by providing a clear error message.true
or false
instead of 1
, or 0
.IfShowFileDialog
and IfDisableSourceAfterAcquire
are set to true
by default in the JS Client.OnImageAreaSelected
is triggered when the mouse enters or leaves the image editor.OnImageAreaSelected
is triggered multiple times when selecting the area in the image editor.Dynamsoft.WebTwainEnv.Load()
is called more than once.ChangeBitDepth()
where the processed image appears to be covered in a grey mask.ConvertToGrayScale()
where calling this method on a 1-bit image turns it black.SaveAsTIFF()
and SaveAsPDF()
where the progress bar doesn’t show.10.1.1
(12/23/2014)Dynamsoft.WebTwainEnv.AutoLoad
property to enable or disable automatic loading of Dynamic Web TWAIN.Dynamsoft.WebTwainEnv.Load()
and Dynamsoft.WebTwainEnv.Unload()
.dynamsoft.webtwain.initiate.js
and dynamsoft.webtwain.config.js
.OnImageAreaSelected
gets fired multiple times when you draw a rectangle on the image.10.1
(12/16/2014)Dynamsoft’s Dynamic Web TWAIN V10.1 SDK Upgrades Include JavaScript IntelliSense, 1D Barcoding.
BufferMemoryLimit
property to set how much physical memory is allowed for storing images. Once the limit is reached, images will be cached on the hard disk. Cached image data will be automatically deleted when the scan page is closed.Print()
method,SetSelectedImageArea()
method and OverlayRectangle()
method.TIFFCompressionType
does not work properly.10.0.1
(10/16/2014)Dynamsoft’s Dynamic Web TWAIN V10.0.1 SDK introduced improvements to the Chrome & Firefox Edition. The ActiveX and Mac Editions remained the same (these components remain as v10.0).
HttpDownload()
method.dynamsoft.webtwain.config.js
you can freely move the Resources folder to any directory you like.In v10.0.1 there is no limit to the size of an Http Request. In v10.0, the WebSocket connection could have failed to be built if the size of Http Header exceeds 1kB, which led to a recurring prompt for installation.
TIFFCompressionType
does not work.FTPDownloadDirectly()
does not work.FTPUploadDirectly()
does not work using “\” in path parameters.HTTPPostResponseString
. With previous versions, the responses would be trimmed if longer than 1024 KB.10.0
(09/16/2014) - Based on 10.0 PreviewHTTPDownloadDirectly()
fail to download files.10.0 Preview
(08/21/2014)ChangeBitDepth()
, GrayScale()
, etc.9.3 Preview
(06/10/2014)9.2
(01/02/2014)RegisterEvent()
method and UnregisterEvent()
method for using Dynamic Web TWAIN events in IE 11 and other web browsers(e.g. Chrome, Firefox, Safari and Opera).9.1
(08/27/2013)ImageCaptureDriverType
- allows Mac users to directly acquire images via native scan(without installing a TWAIN driver).BrokerProcessType
= 1) for document scanning. In v9.0, IE users might need to manually allow the broker process to run. It is now automated with the enhanced security of the ActiveX edition.OnPostTransfer
event is not triggered in some cases.9.0
(03/26/2013)ProductKey
property is available to set a series of alphanumeric code for license verification at runtime. Developers only need to generate a product key with Licensing Manager which is installed with Dynamic Web TWAIN.MaxInternetTransferThreads
property to set the maximum number of threads for uploading /downloading files through POST. This can dramatically improve the performance.FileExists()
method to check if a certain file exists on the local disk.GetSkewAngle()
/ GetSkewAngleEx()
(Mac edition not supported) property to get the skew angle of an image by its index in buffer.8.0.1
(09/04/2012)OnSourceUIClose()
: triggered when the user interface of source is closed.OnBitmapChanged()
: triggered when the bitmap of image buffer is changed, such as new image scanned, image deleted or image edited etc.LoadDibFromClipboard()
method. You can now load images in clipboard of Windows Vista or above into Dynamic Web TWAIN.IsBlankImage()
and IsBlankImageEx()
methods for detecting blank images.8.0
(07/17/2012)GetImageXResolution()
and GetImageYResolution()
methods to get the resolution from the scanned image(s).SetDPI()
method to Change the DPI(dots per inch) for the specified image.ShowFileDialog()
method and OnGetFilePath
event to show the “save file dialog”/”open file dialog” and get the path.AllowPluginAuthentication
property to allow the plugin to send authentication requests.BlankImageCurrentStdDev
property to return the current standard deviation of the pixels in the image.MagData
and MagType
properties to read magnetic data from scanners.7.0
(03/06/2012)FTPUploadDirectly()
, HTTPUploadThroughPostDirectly()
and HTTPUploadThroughPutDirectly()
methods to upload all types of local files without encoding/decoding.HTTPDownloadDirectly()
and FTPDownloadDirectly()
methods to download files to local without encoding/decoding.MaxImagesInBuffer
to 64.GetDeviceType()
method to determine the type of the image acquisition device.PDFVersion
property to read/write the PDF version.IfScanInNewThread
property to allow Dynamic Web TWAIN to communicate with scanner in a separate thread.ImageEditorIfModal
property to set whether the image editor runs in modal state.CapValueType
property to return or set the type of the CapValue
.IfAutomaticBorderDetection
property to encapsulate the ICAP_AUTOMATICBORDERDETECTION
capability.IfAutomaticDeskew
property to encapsulate the ICAP_AUTOMATICDESKEW
capability.IfAutoDiscardBlankpages
property to encapsulate the ICAP_AUTODISCARDBLANKPAGES
capability.IfDeviceOnline
property. Now TW_ENUMERATION
type of the return result is supported.6.4
(11/15/2011)6.3.1
(09/01/2011)LogLevel
property to capture more exceptions.6.3
(06/14/2011)OnPostLoad
event which is triggered after executing LoadImage()
/ LoadImageEx()
.LoadDibFromClipboard()
method.6.2
(03/15/2011)IfShowFileDialog
property to show the browse dialog box when loading and saving images.IsBlankImageEx()
method to detect whether a certain area on an image is blank.SaveSelectedImagesToBase64Binary()
to save selected images to base64 binary.LoadImageFromBase64Binary()
to load images from a base64 byte array.FitWindowType
.GetImageBitDepth()
, GetImageWidth()
and GetImageHeight()
.IfShowPrintUI
to set whether to display the user interface of the printer.6.1
(08/31/2010)MaxImagesInBuffer
: In both the trial and full versions of Dynamic Web TWAIN, the maximum value you can set to the property has been raised from 1024 to 4096.SetCookie()
, BindSSLCert()
, BindSSLCertEx()
, OverlayRectangle()
, RemoveAllSelectedImages()
.MouseX
, MouseY
.6.0
(05/18/2010)MaxImagesInBuffer
: In the trial version of Dynamic Web TWAIN, the maximum value you can set to the property has been raised from 4 to 1024.HTTPPostResponseString
in Plug-in Edition: You can use HTTPPostResponseString
property to get much more detailed info returned from the web server.CutFrameToClipboard()
, Erase()
, FTPUploadSelectedImagesAsMultiPagePDF()
, FTPUploadSelectedImagesAsMultiPageTIFF()
, GetBarcodeInfo()
, GetBarcodeText()
, HTTPUploadSelectedImagesThroughPostAsMultiPagePDF()
, HTTPUploadSelectedImagesThroughPostAsMultiPageTIFF()
, HTTPUploadSelectedImagesThroughPutAsMultiPagePDF()
, HTTPUploadSelectedImagesThroughPutAsMultiPageTIFF()
, LoadImageFromBytes()
, MoveImage()
, Print()
, Rotate()
, SaveSelectedImagesAsMultiPagePDF()
, SaveSelectedImagesAsMultiPageTIFF()
, SaveSelectedImagesToBytes()
, GetSelectedImageSize()
.AllowMultiSelect
, BackgroundColor
, BackgroundFillColor
, BarcodeCount
, HttpFieldNameOfUploadedImage
, IfPASVMode
, SelectedImageIndex
, SelectedImagesCount
, SelectionImageBorderColor
, VScrollBar
.OnInternetTransferPercentageEx
5.2
(07/14/2009)ShowImageEditor()
: If the IfFitWindow
property is set to true
, the image will fit the size of window when the Image Editor prompts; otherwise the image will be displayed in its full size.IsBlankImage()
.BlankImageMaxStdDev
, BlankImageThreshold
, Zoom
, EnableInteractiveZoom
.ICAP_EXTIMAGEINFO
.5.1.1
(09/09/2008)CurrentImageIndexInBuffer
property.5.1
(05/27/2008)SetViewMode()
: when the view mode is set to -1 by -1, Dynamic Web TWAIN only shows the current image. No scroll bar is provided to navigate to other images.IfFitWindow
: when the value of this property is false
, the image will be displayed in its full size and scroll bars will be shown if necessary(the width or height of the image is bigger than the control size).MouseShape
: when the value of this property is set to true
, the cursor is set as a hand. If the width or height of the image is bigger than the control size, scroll bars will be shown and you can drag the image to adjust its position in the control. When the value of the property is set to false
, the cursor is set as an arrow. You can select an area on the control directly.GetImageSizeWithSpecifiedType()
, SwitchImage()
.IfAppendImage
.OnMouseDoubleClick
, OnMouseRightClick
, OnImageAreaSelected
, OnImageAreaDeSelected
, OnTopImageInTheViewChanged
.5.0.1
(12/04/2007)5.0
(10/19/2007)SetViewMode()
, GetViewMode()
, SaveAsPDF()
, SaveAllAsPDF()
, FTPUploadAllAsPDF()
, HTTPUploadAllThroughPostAsPDF()
, HTTPUploadAllThroughPutAsPDF()
, LoadImageEx()
, FTPDownloadEx()
, FTPUploadEx()
, HTTPDownloadEx()
, HTTPUploadThroughPostEx()
, HTTPUploadThroughPutEx()
, SetHTTPFormField()
, ClearAllHTTPFormFiled()
.ImageMargin
, MouseShape
, PDFCompressionType
, PDFAuthor
, PDFCreationDate
, PDFCreator
, PDFKeywords
, PDFModifiedDate
, PDFProducer
, PDFSubject
, PDFTitle
, IfShowCancelDialogWhenImageTransfer
.OnMouseClick
, OnMouseMove
, OnInternetTransferPercentage
.4.2.1
(04/28/2006)IfSSL
property added.4.2
(11/02/2005)4.1
(09/08/2005)RotateLeft()
, RotateRight()
, Mirror()
, Crop()
, CropToClipboard()
, GetImageSize()
, ChangeImageSize()
, ShowImageEditor()
.ImageEditorWindowTitle
, ImageEditorIfReadonly
, ImageEditorIfEnableEnumerator
.LoadDibFromClipboard()
, GetDefaultImageLayout()
, GetImageLayout()
, ResetImageLayout()
, SetImageLayout()
.4.0
(05/31/2005)SaveAllAsMultiPageTIFF()
, SaveAsPNG()
, RemoveAllImages()
, RemoveImage(),
FTPUpload()
, FTPDownload()
, HTTPUploadThroughPost()
, HTTPUploadThroughPut()
, HTTPDownload()
, FTPUploadAllAsMultiPageTIFF()
, HTTPUploadAllThroughPostAsMultiPageTIFF()
, HTTPUploadAllThroughPutAsMultiPageTIFF()
MaxImagesInBuffer
, HowManyImagesInBuffer
, CurrentImageIndexInBuffer
, TIFFCompressionType
, IfFitWindow
.SaveAsBMP()
, SaveAsJPEG()
and SaveAsTIFF()
methods modified. They now save images of specified indexes in buffer.CopyToClipboard()
method modified. It copies the image of a specified index in buffer.CutToClipboard()
method modified. It cuts the image of a specified index in buffer.hDib
property changed. It returns the Handle of the DIB of a specified index in buffer.Picture
property changed. It returns the Picture
object of the image of a specified index in buffer.FTPUploadAsBMP()
, FTPUploadAsJPEG()
, FTPUploadAsTIFF()
methods replaced by FTPUPload()
method.FTPDownloadBMP()
and FTPDownloadJPEG()
methods replaced by FTPDownload()
method.HTTPUploadAsBMPThroughPost()
, HTTPUploadAsJPEGThroughPost()
and HTTPUploadAsTIFFThroughPost()
methods replaced by HTTPUploadThroughPost()
method.HTTPUploadAsBMPThroughPut()
, HTTPUploadAsJPEGThroughPut()
and HTTPUploadAsTIFFThroughPut()
methods replaced by HTTPUploadThroughPut()
method.HTTPDownloadBMP()
and HTTPDownloadJPEG()
methods replaced by HTTPDownload()
method.LoadBMP()
and LoadJPEG()
methods replaced by LoadImage()
method.3.0.3
(03/15/2005)HTTPPostResponseString
property added. Response string from the HTTP server will be available in HTTPPostResponseString
property if an error occurs for HTTPUploadAsBMPThroughPost()
, HTTPUploadAsJPEGThroughPost()
and HTTPUploadAsTIFFThroughPost()
methods.3.0.2
(03/07/2005)HTTPUploadAsBMPThroughPost()
, HTTPUploadAsJPEGThroughPost()
and HTTPUploadAsTIFFThroughPost()
methods memory access violation bug fixed.3.0
(01/18/2005)EnableSource(Boolean IfShowUI)
changed to EnableSource()
, method HTTPUploadAsBMP()
changed to HTTPUploadAsBMPThroughPut()
, method HTTPUploadAsJPEG()
changed to HTTPUploadAsJPEGThroughPut()
.FeedPage()
, FTPUploadAsTIFF()
, RewindPage()
, HTTPUploadAsBMPThroughPost()
, HTTPUploadAsJPEGThroughPost()
, HTTPUploadAsTIFFThroughPost()
, HTTPUploadAsTIFFThroughPut()
, SaveAsTIFF()
.BitDepth
, Brightness
, Contrast
, DataSourceStatus
, Duplex
, IfAutoBright
, IfAutoFeed
, IfAutoScan
, IfDeviceOnline
, IfDisableSourceAfterAcquire
, IfDuplexEnabled
, IfFeederEnabled
, IfModalUI
, IfPaperDetectable
, IfShowIndicator
, IfShowUI
, IfThrowException
, IfTiffMultiPage
, IfUIControllable
, PageSize
, PixelFlavor
, PixelType
, Resolution
, Unit
, XferCount
2.0.1
(12/21/2004)HTTPUploadAsJPEG()
and HTTPUploadAsBMP()
modified to accommodate the new behavior of the IIS of Windows 2003 Server.2.0
(06/01/2004)CapSetFrame()
, CapGetFrameLeft()
, CapGetFrameTop()
, CapGetFrameRight()
, CapGetFrameBottom()
added for the negotiation of ICAP_FRAMES
capability.OnPreAllTransfers
, OnPostAllTransfers
, OnTransferCancelled
, OnTransferError
events added.1.0.2
(03/15/2004)BorderStyle
property added.1.0.1
(11/15/2003)hDIB
property added.Picture
property can work properly.1.0
(08/20/2003)latest version