Web Demos

BARCODE READER SDK DEMO

Explore the flexibe barcode reading settings to optimize for your specific usage scenario.

WEB TWAIN SDK DEMO

Try the most popular web scanner features: scan images, import local images and PDF files, edit, save to local, upload to database, and etc.

BARCODE READER JAVASCRIPT DEMO

Transform any camera-equipped devices into real-time, browser-based barcode and QR code scanners.

MRZ SCANNER WEB DEMO

Detects the machine-readable zone of a passport, scans the text, and parses into human-readable data.

APP STORE DEMOS

BARCODE READER SDK FOR IOS

BARCODE READER SDK FOR ANDROID

VIEW MORE DEMOS >
Dev Center
Table of contents

WebTwain IO

Methods

Input Methods

       
LoadImage() LoadImageEx() LoadImageFromBase64Binary() LoadImageFromBinary()
LoadDibFromClipboard() FTPDownload() FTPDownloadEx() HTTPDownload()
HTTPDownloadEx() HTTPDownloadThroughPost() HTTPDownloadDirectly()  

Output Methods

     
ConvertToBase64() ConvertToBlob() FTPUpload()
FTPUploadEx() FTPUploadAllAsMultiPageTIFF() FTPUploadAllAsPDF()
FTPUploadAsMultiPagePDF() FTPUploadAsMultiPageTIFF() HTTPUpload()
HTTPUploadThroughPutEx() HTTPUploadThroughPost() HTTPUploadThroughPostEx()
HTTPUploadAllThroughPostAsMultiPageTIFF() HTTPUploadAllThroughPostAsPDF() HTTPUploadThroughPostAsMultiPagePDF()
HTTPUploadThroughPostAsMultiPageTIFF() HTTPUploadThroughPostDirectly() SaveAsBMP()
SaveAsJPEG() SaveAsPDF() SaveAsPNG()
SaveAsTIFF() SaveSelectedImagesAsMultiPagePDF() SaveSelectedImagesAsMultiPageTIFF()
SaveAllAsMultiPageTIFF() SaveAllAsPDF()  

Other Methods

       
ClearTiffCustomTag() SetTiffCustomTag() ClearAllHTTPFormField() SetHTTPFormField()
SetHTTPHeader() SetUploadSegment() ShowFileDialog() Print()
PrintEx()      

Properties

       
FTPPassword FTPPort FTPUserName IfPASVMode
HttpFieldNameOfUploadedImage HTTPPort IfSSL HTTPPostResponseString
IfShowFileDialog IfShowCancelDialogWhenImageTransfer IfShowProgressBar JPEGQuality
IfTiffMultiPage TIFFCompressionType MaxUploadImageSize IfAppendImage

Events

     
OnGetFilePath OnPostLoad OnInternetTransferPercentage

IfAppendImage

Syntax

/**
 * Return or set whether to insert or append images when they are scanned/loaded.
 */
IfAppendImage: boolean;

Usage notes

The default value is true which means the newly acquired images will be appended after the last image in buffer. If it’s set to false, the images will be inserted before the current image.

An important thing to note here is that, by design, the current image is always the last acquired one which means the images acquired after IfAppendImage is set to false will be displayed/kept in reverse order.

To make sure the order is as the pages are scanned while IfAppendImage is false, the easiest way is to increase CurrentImageIndexInBuffer by 1 in the event OnPostTransfer.


LoadImage

Syntax

/**
 * Load image(s) specified by its absolute path.
 * @param fileName The path of the image to load.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
LoadImage(
    fileName: string,
    successCallback ? : () => void,
    failureCallback ? : (
        errorCode: number,
        errorString: string) => void
): void | boolean;

Example

DWObject.LoadImage(
    "C:\\DWT.jpg",
    function() {
        console.log('success');
    },
    function(errorCode, errorString) {
        console.log(errorString);
    }
);

LoadImageEx

Syntax

/**
 * Load image(s) specified by its absolute path.
 * @param fileName The path of the image to load.
 * @param type The format of the image.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
LoadImageEx(
    fileName: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback ? : () => void,
    failureCallback ? : (
        errorCode: number,
        errorString: string) => void
): void | boolean;

Usage notes

On mobile devices, Dynamsoft.DWT.EnumDWT_ImageType.IT_All means “JPG, PNG, TIF” while it means “BMP, JPG, PNG, TIF, PDF” on desktop.

Example

DWObject.LoadImageEx(
    "C:\\DWT.jpg",
    Dynamsoft.DWT.EnumDWT_ImageType.IT_JPG,
    function() {
        console.log('success');
    },
    function(errorCode, errorString) {
        console.log(errorString);
    }
);

LoadImageFromBase64Binary

Syntax

/**
 * Load image(s) from a base64 string.
 * @param imageData The image data which is a base64 string without the data URI scheme.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
LoadImageFromBase64Binary(
    imageData: string,
    imageType: Dynamsoft.DWT.EnumDWT_ImageType,
    successCallback ? : () => void,
    failureCallback ? : (
        errorCode: number,
        errorString: string) => void
): void | boolean;

Example

DWObject.ConvertToBase64(
    [0, 1, 2],
    Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF,
    function(result, indices, type) {
        DWObject.LoadImageFromBase64Binary(
            result.getData(0, result.getLength()),
            Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF,
            function() {
                console.log('success');
            },
            function(errorCode, errorString) {
                console.log(errorString);
            }
        );
    },
    function(errorCode, errorString) {
        console.log(errorString);
    }
);

LoadImageFromBinary

Syntax

/**
 * Load image(s) from a binary object (Blob | ArrayBuffer).
 * @param imageData The image data.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
LoadImageFromBinary(
    imageData: Blob | ArrayBuffer,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

Example

DWObject.ConvertToBlob(
    [0, 1, 2],
    Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF,
    function(result, indices, type) {
        DWObject.LoadImageFromBinary(
            result,
            function() {
                console.log('success');
            },
            function(errorCode, errorString) {
                console.log(errorString);
            }
        );
    },
    function(errorCode, errorString) {
        console.log(errorString);
    }
);

LoadDibFromClipboard

Syntax

/**
 * Load an image from the system clipboard. The image must be in DIB format.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
LoadDibFromClipboard(
    successCallback ? : () => void,
    failureCallback ? : (
        errorCode: number,
        errorString: string) => void
): void | boolean;

Usage notes

If called without any callback functions, these methods (except for LoadImageFromBinary() ) become synchronously and return a boolean value to indicate whether it succeeded.

However, calling them asynchronously is recommended.


OnGetFilePath

Syntax

/**
 * This event is triggered when {ShowFileDialog} is called or when  {LoadImageEx} is called with {IfShowFileDialog} set to true.
 * @argument isSave Whether or not the event is triggered after a save-file dialog was shown or a open-file dialog.
 * @argument filesCount How many files were selected.
 * @argument index The index of the current image.
 * @argument directory The parent directory of currently selected file(s), "\\" is not included. If the methed ShowFileDialog() failed, the initial directory path set in the ShowFileDialog method is returned.
 * @argument fileName The current file name.
 */
RegisterEvent('OnGetFilePath',
    function(
        isSave: boolean,
        filesCount: number,
        index: number,
        directory: string,
        fileName: string) {}
);

OnPostLoad

Syntax

/**
 * This event is triggered when a file from a local directory has been loaded into the control.
 * @argument directory The directory of the loaded file.
 * @argument fileName The name of the loaded file.
 * @argument fileType The file type.
 */
RegisterEvent('OnPostLoad',
    function(
        directory: string,
        fileName: string,
        fileType: string) {}
);

Example

DWObject.RegisterEvent('OnPostLoad', function(path, name, type) {
    alert(path + '\\' + name);
});

FTPDownload

Syntax

/**
 * Download the specified file via FTP
 * @param host The FTP Host.
 * @param path Specify the file to download.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPDownload(
    host: string,
    path: string,
    successCallback: () => void,
    failureCallBack: (
        errorCode: number,
        errorString: string) => void
): void;

FTPDownloadEx

Syntax

/**
 * Download the specified file via FTP.
 * @param host The FTP Host.
 * @param path Specify the file to download.
 * @param type The format of the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPDownloadEx(
    host: string,
    path: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback: () => void,
    failureCallBack: (
        errorCode: number,
        errorString: string) => void
): void;

FTPUpload

Syntax

/**
 * Upload the specified image via FTP.
 * @param host The FTP Host.
 * @param index Specify the image.
 * @param path The path to save the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPUpload(
    host: string,
    index: number,
    path: string,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

FTPUploadEx

Syntax

/**
 * Upload the specified image via FTP.
 * @param host The FTP Host.
 * @param index Specify the image.
 * @param path The path to save the file.
 * @param type The format of the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPUploadEx(
    host: string,
    index: number,
    path: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

FTPUploadAllAsMultiPageTIFF

Syntax

/**
 * Upload all images as a multi-page TIFF via FTP.
 * @param host The FTP Host.
 * @param path Specify the path to save the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPUploadAllAsMultiPageTIFF(
    host: string,
    path: string,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

FTPUploadAllAsPDF

Syntax

/**
 * Upload all images as a multi-page PDF via FTP.
 * @param host The FTP Host.
 * @param path Specify the path to save the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPUploadAllAsPDF(
    host: string,
    path: string,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

FTPUploadAsMultiPagePDF

Syntax

/**
 * Upload selected images as a multi-page PDF via FTP.
 * @param host The FTP Host.
 * @param path Specify the path to save the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPUploadAsMultiPagePDF(
    host: string,
    path: string,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

FTPUploadAsMultiPageTIFF

Syntax

/**
 * Upload selected images as a multi-page TIFF via FTP.
 * @param host The FTP Host.
 * @param path Specify the path to save the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
FTPUploadAsMultiPageTIFF(
    host: string,
    path: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

FTPUserName

Syntax

/**
 * The password to connect to the FTP.
 */
FTPUserName: string;

FTPPassword

Syntax

/**
 * The password to connect to the FTP.
 */
FTPPassword: string;

FTPPort

Syntax

/**
 * The port to connect to the FTP.
 */
FTPPort: number;

IfPASVMode

Syntax

/**
 * Return or set whether to use passive mode when connect to the FTP.
 */
IfPASVMode: boolean;

HTTPPassword

Syntax

/**
 * [Deprecation] Return or set the password used to log into the HTTP server.
 */
HTTPPassword: string;

HTTPUserName

Syntax

/**
 * [Deprecation] Return or set the user name used to log into the HTTP server.
 */
HTTPUserName: string;

HTTPDownload

Syntax

/**
 * Download the specified file via a HTTP Get request.
 * @param host The HTTP Host.
 * @param path Specify the path of the file to download.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
HTTPDownload(
    host: string,
    path: string,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

HTTPDownloadEx

Syntax

/**
 * Download the specified file via a HTTP Get request.
 * @param host The HTTP Host.
 * @param path Specify the path of the file to download.
 * @param type The format of the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
HTTPDownloadEx(
    host: string,
    path: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

HTTPDownloadThroughPost

Syntax

/**
 * Download the specified file via a HTTP Post request.
 * @param host The HTTP Host.
 * @param path Specify the path of the file to download.
 * @param type The format of the file.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPDownloadThroughPost(
    host: string,
    path: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string, ) => void,
): void;

HTTPDownloadDirectly

Syntax

/**
 * Download the specified file via a HTTP Get request.
 * @param host The HTTP Host.
 * @param path Specify the path of the file to download.
 * @param localPath Specify where to save the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
HTTPDownloadDirectly(
    host: string,
    path: string,
    localPath: string,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

Usage notes

The Dynamic Web TWAIN library will decode the downloaded data based on the type parameter ( HTTPDownloadEx() , HTTPDownloadThroughPost() ) or the extension of the file in the path parameter ( HTTPDownload() ).

For security reasons, the method HTTPDownloadDirectly() can only download the specified file to a whitelisted location. In other words, the user needs to call the method ShowFileDialog() and then get a whitelisted location to use. Check out the example below.

Example

DWObject.RegisterEvent('OnGetFilePath',
    function(isSave, filesCount, index, directory, fileName) {
        DWObject.HTTPDownloadDirectly(
            "tst.dynamsoft.com",
            "/public/download/tools/Twack_32.msi",
            directory + "\\" + fileName,
            function() {},
            function(errorCode, errorString) {
                console.log(errorString);
            }
        );
    }
);
DWObject.ShowFileDialog(true, "MSI|*.msi", 0, ".msi", "", true, false, 1);

HTTPUpload

Syntax

/**
 * Upload the specified image(s) via a HTTP Post.
 * @param URL The server-side script to receive the post.
 * @param indices Specify the image(s).
 * @param type The format of the file.
 * @param dataFormat Whether to upload the file as binary or a base64 string.
 * @param fileName The file name.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUpload(
    URL: string,
    indices: number[],
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    dataFormat: Dynamsoft.DWT.EnumDWT_UploadDataFormat | number,
    fileName: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;
HTTPUpload(
    URL: string,
    indices: number[],
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    dataFormat: Dynamsoft.DWT.EnumDWT_UploadDataFormat | number,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;
HTTPUpload(
    URL: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

HTTPUploadThroughPutEx

Syntax

/**
 * Upload the specified image via a HTTP Put request.
 * @param host The HTTP Host.
 * @param index Specify the image.
 * @param path Specify the path to put the file.
 * @param type The format of the file.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
HTTPUploadThroughPutEx(
    host: string,
    index: number,
    path: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback: () => void,
    failureCallback: (
        errorCode: number,
        errorString: string) => void
): void;

HTTPUploadThroughPost

Syntax

/**
 * Upload the specified image via a HTTP Post request.
 * @param host The HTTP Host.
 * @param index Specify the image.
 * @param target The target wherethe request is sent.
 * @param type The format of the file.
 * @param fileName The file name.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUploadThroughPost(
    host: string,
    index: number,
    target: string,
    fileName: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

HTTPUploadThroughPostEx

Syntax

/**
 * Upload the specified image via a HTTP Post request.
 * @param host The HTTP Host.
 * @param index Specify the image.
 * @param target The target wherethe request is sent.
 * @param fileName The file name.
 * @param type The format of the file.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUploadThroughPostEx(
    host: string,
    index: number,
    target: string,
    fileName: string,
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

HTTPUploadAllThroughPostAsMultiPageTIFF

Syntax

/**
 * Upload all images in the buffer as a TIFF file via a HTTP Post request.
 * @param host The HTTP Host.
 * @param target The target wherethe request is sent.
 * @param fileName The file name.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUploadAllThroughPostAsMultiPageTIFF(
    host: string,
    target: string,
    fileName: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

HTTPUploadAllThroughPostAsPDF

Syntax

/**
 * Upload all images in the buffer as a PDF file via a HTTP Post request.
 * @param host The HTTP Host.
 * @param target The target where the request is sent.
 * @param fileName The file name.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUploadAllThroughPostAsPDF(
    host: string,
    target: string,
    fileName: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

HTTPUploadThroughPostAsMultiPagePDF

Syntax

/**
 * Upload all selected images in the buffer as a PDF file via a HTTP Post request.
 * @param host The HTTP Host.
 * @param target The target wherethe request is sent.
 * @param fileName The file name.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUploadThroughPostAsMultiPagePDF(
    host: string,
    target: string,
    fileName: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

HTTPUploadThroughPostAsMultiPageTIFF

Syntax

/**
 * Upload all selected images in the buffer as a TIFF file via a HTTP Post request.
 * @param host The HTTP Host.
 * @param target The target wherethe request is sent.
 * @param fileName The file name.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUploadThroughPostAsMultiPageTIFF(
    host: string,
    target: string,
    fileName: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

HTTPUploadThroughPostDirectly

Syntax

/**
 * Upload the specified file via a HTTP Post request.
 * @param host The HTTP Host.
 * @param path Specify the file to upload.
 * @param target The target wherethe request is sent.
 * @param fileName The file name.
 * @param onEmptyResponse A callback function that is executed if the response is empty.
 * @param onServerReturnedSomething A callback function that is executed if the response is not empty.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 * @argument response The response string.
 */
HTTPUploadThroughPostDirectly(
    host: string,
    path: string,
    target: string,
    fileName: string,
    onEmptyResponse: () => void,
    onServerReturnedSomething: (
        errorCode: number,
        errorString: string,
        response: string) => void
): void;

Usage notes

For security reasons, the method HTTPUploadThroughPostDirectly() can only upload a whitelisted file. In other words, the local file to upload should be either created by the library or selected manually by the user.

To select a local file to upload, call the method ShowFileDialog() and then get the file path in the callback OnGetFilePath. Check out the example below.

Example

DWObject.RegisterEvent('OnGetFilePath',
    function(isSave, filesCount, index, directory, fileName) {
        DWObject.HTTPUploadThroughPostDirectly(
            "localhost",
            directory + "\\" + fileName,
            "SaveUploadedFile.aspx",
            fileName,
            function() {},
            function(errorCode, errorString, response) {
                console.log(errorString + " " + response);
            }
        );
    }
);
DWObject.ShowFileDialog(false, "All Files|*.*", 0, "", "", false, false, 1);

Sample code for the target script (SaveUploadedFile.aspx)

<%@ Page Language="C#" %>
<%
    try{
        String strImageName;
        HttpFileCollection files = HttpContext.Current.Request.Files;
        HttpPostedFile uploadfile = files["RemoteFile"];
        strImageName = uploadfile.FileName;
        uploadfile.SaveAs(Server.MapPath(".") + "\\" + strImageName);
    }
    catch{
    }
%>

HttpFieldNameOfUploadedImage

Syntax

/**
 * Return or set the field name for the uploaded file. 
 * By default, it's "RemoteFile".
 */
HttpFieldNameOfUploadedImage: string;

HTTPPort

Syntax

/**
/**
 * Return or set the HTTP Port.
 */
HTTPPort: number;

IfSSL

Syntax

/**
/**
 * Return or set whether to use SSL in HTTP requests.
 */
IfSSL: boolean;

HTTPPostResponseString

Syntax

/**
 * Return the response string of the latest HTTP Post request.
 */
readonly HTTPPostResponseString: string;

MaxUploadImageSize

Syntax

/**
 * Return or set the maximum allowed size of a file to upload (in bytes).
 */
MaxUploadImageSize: number;

OnInternetTransferPercentage

Syntax

/**
 * This event is triggered multiple times during a HTTP upload or download request.
 * @argument percentage Return the progress by percentage.
 */
RegisterEvent('OnInternetTransferPercentage',
    function(percentage: number) {});

ConvertToBase64

Syntax

/**
 * Convert the specified images to a base64 string.
 * @param indices Specify one or multiple images.
 * @param type The file type.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument result The resulting base64 string.
 * @argument indices The indices of the converted images.
 * @argument type The file type.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
ConvertToBase64(
    indices: number[],
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback: (
        result: Base64Result,
        indices: number[],
        type: number) => void,
    failureCallBack: (
        errorCode: number,
        errorString: string) => void
): void;

interface Base64Result {
    /**
     * Return the length of the result string.
     */
    getLength(): number;
    /**
     * Return part of the string.
     * @param offset The starting position.
     * @param length The length of the expected string.
     */
    getData(offset: number, length: number): string;
    /**
     * Return the MD5 value of the result.
     */
    getMD5(): string;
}

Usage notes

getData() returns the pure base64 string without the data URI scheme. For example, “/9j/4AAQSkZJRgABA…”. If you want to use the string, you probably need to add the scheme. For example, “data:image/png; base64, /9j/4AAQSkZJRgABA…”.

Example

DWObject.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);
    }
);

ConvertToBlob

Syntax

/**
 * Convert the specified images to a blob.
 * @param indices Specify one or multiple images.
 * @param type The file type.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument result The resulting blob.
 * @argument indices The indices of the converted images.
 * @argument type The file type.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
ConvertToBlob(
    indices: number[],
    type: Dynamsoft.DWT.EnumDWT_ImageType | number,
    successCallback: (
        result: Blob,
        indices: number[],
        type: number) => void,
    failureCallBack: (
        errorCode: number,
        errorString: string) => void
): void;

Example

DWObject.ConvertToBlob(
    [0, 1, 2],
    Dynamsoft.DWT.EnumDWT_ImageType.IT_PDF,
    function(result, indices, type) {
        console.log(result.size);
    },
    function(errorCode, errorString) {
        console.log(errorString);
    }
);

SaveAsBMP

Syntax

/**
 * Save the specified image as a BMP file.
 * @param fileName The name to save to.
 * @param index The index which specifies the image to save.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveAsBMP(
    fileName: string,
    index: number,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

SaveAsJPEG

Syntax

/**
 * Save the specified image as a JPEG file.
 * @param fileName The name to save to.
 * @param index The index which specifies the image to save.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveAsJPEG(
    fileName: string,
    index: number,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

SaveAsPDF

Syntax

/**
 * Save the specified image as a PDF file.
 * @param fileName The name to save to.
 * @param index The index which specifies the image to save.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveAsPDF(
    fileName: string,
    index: number,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

Usage notes

Learn about how to config PDF save settings.

SaveAsPNG

Syntax

/**
 * Save the specified image as a PNG file.
 * @param fileName The name to save to.
 * @param index The index which specifies the image to save.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveAsPNG(
    fileName: string,
    index: number,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

SaveAsTIFF

Syntax

/**
 * Save the specified image as a TIFF file.
 * @param fileName The name to save to.
 * @param index The index which specifies the image to save.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveAsTIFF(
    fileName: string,
    index: number,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

SaveAllAsMultiPageTIFF

Syntax

/**
 * Saves all the images in buffer as a multi-page TIFF file.
 * @param fileName The name to save to.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveAllAsMultiPageTIFF(
    fileName: string,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

SaveAllAsPDF

Syntax

/**
 * Saves all the images in buffer as a multi-page PDF file.
 * @param fileName The name to save to.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveAllAsPDF(
    fileName: string,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

Usage notes

Learn about how to config PDF save settings.


SaveSelectedImagesAsMultiPagePDF

Syntax

/**
 * Saves all selected images in buffer as a multi-page PDF file.
 * @param fileName The name to save to.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveSelectedImagesAsMultiPagePDF(
    fileName: string,
    successCallback ? : () => void,
    failureCallback ? : (errorCode: number, errorString: string) => void
): void | boolean;

Usage notes

Learn about how to config PDF save settings.


SaveSelectedImagesAsMultiPageTIFF

Syntax

/**
 * Saves all selected images in buffer as a multi-page TIFF file.
 * @param fileName The name to save to.
 * @param successCallback A callback function that is executed if the request succeeds.
 * @param failureCallback A callback function that is executed if the request fails.
 * @argument errorCode The error code.
 * @argument errorString The error string.
 */
SaveSelectedImagesAsMultiPageTIFF(
    fileName: string,
    successCallback ? : () => void,
    failureCallback ? : (
        errorCode: number,
        errorString: string) => void
): void | boolean;

Usage notes

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.


ClearTiffCustomTag

Syntax

/**
 * Clear the content of all custom tiff tags.
 */
ClearTiffCustomTag(): boolean;

SetTiffCustomTag

Syntax

/**
 * Sets a custom tiff tag (up to 32 tags). The string to be set in a tag can be base64 encoded.
 * @param id The id of the custom tag.
 * @param content The content of the tag.
 * @param useBase64Encoding Whether the content is encoded.
 */
SetTiffCustomTag(
    id: number,
    content: string,
    useBase64Encoding: boolean
): boolean;

Usage notes

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() to clear old tags before setting up new ones.

Example

DWObject.ClearTiffCustomTag();
DWObject.SetTiffCustomTag(700, "Created By DWT", false);
DWObject.SaveAsTIFF("C:\\DWT.tiff", 0);

ClearAllHTTPFormField

Syntax

/**
 * Clear all the custom fields from the HTTP Post Form.
 */
ClearAllHTTPFormField(): boolean;

SetHTTPFormField

Syntax

/**
 * Add a custom field to the HTTP Post Form.
 * @param name The name of the field.
 * @param value The value of the field.
 */
SetHTTPFormField(
    name: string,
    value: string
): boolean;

/**
 * Add a binary file to the HTTP Post Form.
 * @param name The name of the field.
 * @param content The content of the file.
 * @param fileName The name of the file.
 */
SetHTTPFormField(
    name: string,
    content: Blob,
    fileName ? : string
): boolean;

SetHTTPHeader

Syntax

/**
 * Add a custom header to the HTTP Post Form.
 * @param name The name of the header.
 * @param value The value of the header.
 */
SetHTTPHeader(
    name: string,
    value: string
): boolean;

SetUploadSegment

Syntax

/**
 * Set the segmentation threshold and segment size.
 * @param threshold Specify the threshold (in MB).
 * @param size Specify the segment size (in KB).
 */
SetUploadSegment(
    threshold: number,
    size: number
): boolean;

IfShowFileDialog

Syntax

/**
 * Return or set whether to show open/save file dialog when saving images in the buffer or loading images from a local directory.
 */
IfShowFileDialog: boolean;

Usage notes

Supported in Service mode only.


IfShowCancelDialogWhenImageTransfer

Syntax

/**
 * Return or set whether to show the progress of an operation with a button to cancel it.
 */
IfShowCancelDialogWhenImageTransfer: boolean;

IfShowProgressBar

Syntax

/**
 * Return or set whether the progress bar is/should be displayed during encoding or decoding. It works for any image encoding/decoding related methods. For example: LoadImage, LoadImageEx, ConvertToBlob, etc.
 */
IfShowProgressBar: boolean;

ShowFileDialog

Syntax

/**
 * Show the system's save-file dialog or open-file dialog.
 * @param isSave Whether to show a save-file dialog or an open-file dialog
 * @param filter The filter pattern like "JPG | *.jpg".
 * @param filterIndex The order of the filter. Normally, just put 0.
 * @param defaultExtension Extension to be appended to the file name. Only valid in a save-file dialog
 * @param initialDirectory The initial directory that the dialog opens.
 * @param allowMultiSelect Whether or not multiple files can be selected at the same time. Only valid in an open-file dialog.
 * @param showOverwritePrompt Whether or not a prompt shows up when saving a file may overwrite an existing file.
 * @param flag If set to 0, bAllowMultiSelect and bShowOverwritePrompt will be effective. Otherwise, these two parameters are ignored.
 */
ShowFileDialog(
    isSave: boolean,
    filter: string,
    filterIndex: number,
    defaultExtension: string,
    initialDirectory: string,
    allowMultiSelect: boolean,
    showOverwritePrompt: boolean,
    flag: number
): boolean;

Usage notes

Supported in Service mode only.

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 event even when it fails. If multiple files are selected, the event will be called multiple times.

Example

DWObject.RegisterEvent('OnGetFilePath',
    function(isSave, filesCount, index, directory, fileName) {
        alert(" directory: " + directory + "\\" + fileName);
    });

//On macOS
DWObject.ShowFileDialog(false, "TIF,TIFF,JPG,JPEG,PNG,PDF", 0, "", "", true, false, 0);

//On Windows
DWObject.ShowFileDialog(false, "BMP,TIF,JPG,PNG,PDF|*.bmp;*.tif;*.png;*.jpg;*.pdf;*.tiff;*.jpeg", 0,
    "", "", true, false, 0);

Print

Syntax

/**
 * Export all image data in the buffer to a new browser window and use the browser's built-in print feature to print the image(s).
 * @param useOSPrintWindow Whether to use the print feature of the operating system instead.
 * @Note the parameter only works in Windows Service mode.
 */
Print(useOSPrintWindow ? : boolean): boolean;

PrintEx

Syntax

/**
 * Print selected image(s).
 * @param indices Specify the image.
 */
PrintEx(indices: number[]): void;

JPEGQuality

Syntax

/**
 * Return or set the quality for JPEG compression.
 * The values range from 0 to 100.
 */
JPEGQuality: number;

IfTiffMultiPage

Syntax

/**
 * Return or set whether to append to or replace an existing TIFF file with the same name.
 */
IfTiffMultiPage: boolean;

Usage notes

When you save a new image in the same name of an existing TIFF file
If this property is true, the new image will be added to the existing file
If this property is false, the new image will replace the existing file


TIFFCompressionType

Syntax

/**
 * Return or set the compression type for TIFF files.
 */
TIFFCompressionType: Dynamsoft.DWT.EnumDWT_TIFFCompressionType | number;

Usage notes

When set to TIFF_AUTO (0), 1-bit images will be compressed in TIFF_T6 (4) while images with other bit depth will be compressed in TIFF_LZW (5).

When set to TIFF_JPEG (7), 1-bit images will be compressed in TIFF_T6 (4), color images or grey images (8-bit or higher) in TIFF_JPEG (7) standard, and other images by TIFF_LZW (5).

TIFF_T4 (3) and TIFF_FAX3 (3) are two names for the same compression type. So are TIFF_T6 (4) and TIFF_FAX4 (4).

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 to further reduce the size of the TIFF file.

Is this page helpful?

YesYes NoNo

In this article:

version 17.1.1

  • Latest Version
  • Version 17.2.1
  • Version 17.1.1
  • Version 17.0
  • Version 16.2
  • Version 16.1.1
Change +
© 2003–2022 Dynamsoft. All rights reserved.
Privacy Statement / Site Map / Home / Purchase / Support