基础扫描

方法
AcquireImage() CloseSource() DisableSource()
EnableSource() OpenSource() SelectSource()
SelectSourceByIndex() SetOpenSourceTimeout() startScan()
GetSourceNames()
属性
BitDepth IfAppendImage IfDisableSourceAfterAcquire
IfDuplexEnabled IfFeederEnabled IfShowUI
ImageCaptureDriverType PageSize PixelType
Resolution SourceCount
事件
OnPostAllTransfers OnPostTransfer OnPostTransferAsync

示例代码

function BasicScan() {
    if (DWObject) {
        if (Dynamsoft.Lib.env.bMac) {
            DWObject.ImageCaptureDriverType = EnumDWT_Driver.TWAIN_AND_ICA;
        }
        DWObject.RegisterEvent('OnPostTransfer', function () {
            console.log('One page scanned!');
        });
        DWObject.RegisterEvent('OnPostAllTransfers', function () {
            DWObject.CloseSource();
        });
        DWObject.SelectSource(function () {
            DWObject.SetOpenSourceTimeout(3000);
            DWObject.OpenSource();
            DWObject.IfShowUI = false;
            DWObject.IfDisableSourceAfterAcquire = true;
            DWObject.PixelType = EnumDWT_PixelType.TWPT_RGB;
            DWObject.BitDepth = 24;
            DWObject.PageSize = EnumDWT_CapSupportedSizes.TWSS_A4;
            DWObject.Resolution = 300;
            DWObject.IfFeederEnabled = true;
            DWObject.IfDuplexEnabled = true;
            DWObject.IfAppendImage = false;
            DWObject.AcquireImage(function () {
                    /**
                    * 如果IfDisableSourceAfterAcquire为true,
                    * 则这一行代码无意义
                    */
                    DWObject.DisableSource();
                },
                function () {
                        DWObject.DisableSource();
                }
            );
        }, function () {
            console.log('Failed to select a source, there are ' +
                DWObject.SourceCount + ' sources in total.');
        });
    }
}

方法

AcquireImage()
开始扫描。
语法 .AcquireImage([optionalDeviceConfig], [optionalAsyncSuccessFunc, optionalAsyncFailureFunc]);
参数 optional optionalDeviceConfig: 包含扫描设置的JS对象。
<OnSuccess function> optional optionalAsyncSuccessFunc: 方法执行成功时的回调。
<OnFailure function> optional optionalAsyncFailureFunc: 方法执行失败时的回调。
请参考函数原型OnSuccessOnFailure
返回值 Boolean
版本信息 Versions: All Versions
Editions: All Editions
使用说明 参数仅针对HTML5版本。通过组合使用参数,本方法有四种调用方式,如下代码所示。
示例代码
var DeviceConfig = {
    IfShowUI: false,
    PixelType: EnumDWT_PixelType.TWPT_RGB,
    Resolution: 300,
    IfFeederEnabled: true,
    IfDuplexEnabled: false,
    IfDisableSourceAfterAcquire: true
};

function AsyncSuccessFunc() {
    console.log('successful');
}

function AsyncFailureFunc(errorCode, errorString) {
    alert(errorString);
}

function AcquireImage1() {
    DWObject.SelectSource();
    DWObject.OpenSource();
    DWObject.IfShowUI = false;
    DWObject.PixelType = EnumDWT_PixelType.TWPT_RGB;
    DWObject.Resolution = 300;
    DWObject.IfFeederEnabled = true;
    DWObject.IfDuplexEnabled = false;
    DWObject.IfDisableSourceAfterAcquire = true;
    DWObject.AcquireImage();
}

function AcquireImage2() {
    DWObject.SelectSource();
    DWObject.OpenSource();
    DWObject.AcquireImage(DeviceConfig);
}

function AcquireImage3() {
    DWObject.SelectSource();
    DWObject.OpenSource();
    DWObject.IfShowUI = false;
    DWObject.PixelType = EnumDWT_PixelType.TWPT_RGB;
    DWObject.Resolution = 300;
    DWObject.IfFeederEnabled = true;
    DWObject.IfDuplexEnabled = false;
    DWObject.IfDisableSourceAfterAcquire = true;
    DWObject.AcquireImage(AsyncSuccessFunc, AsyncFailureFunc);
}

function AcquireImage4() {
    DWObject.SelectSource();
    DWObject.OpenSource();
    DWObject.AcquireImage(DeviceConfig, AsyncSuccessFunc, AsyncFailureFunc);
}
CloseSource()
关闭扫描源。
语法 .CloseSource();
参数
返回值 Boolean
版本信息 Versions: All Versions
Editions: All Editions
使用说明 在版本10.0 ~ 11.2中CloseSource()会在扫描完成后自动触发。
示例代码
DWObject.RegisterEvent('OnPostAllTransfers', function () {
    DWObject.CloseSource();
});
DisableSource()
停止扫描但是不关闭扫描源。
语法 .DisableSource();
参数
返回值 Boolean
版本信息 Versions: All Versions
Editions: All Editions
使用说明 调用DisableSource()后,扫描源未关闭,可以调用AcquireImage()或者 EnableSource()继续扫描。
示例代码
DWObject.RegisterEvent('OnPostAllTransfers', function () {
    DWObject.DisableSource();
});
EnableSource()
开始扫描。
语法 .EnableSource();
参数
返回值 Boolean
版本信息 Versions: All Versions
Editions: All Editions
使用说明 本方法作用和AcquireImage()一样。
示例代码
function AcquireImage4() {
    DWObject.SelectSource();
    DWObject.OpenSource();
    DWObject.EnableSource();
}
OpenSource()
加载扫描源。若源未指定,即SelectSource()SelectSourceByIndex()都未调用,则将加载默认源。
语法 .OpenSource();
参数
返回值 Boolean
版本信息 Versions: All Versions
Editions: All Editions
使用说明 在和源做任何交互前,必须调用OpenSource()。
示例代码
DWObject.SelectSource();
DWObject.OpenSource();
DWObject.IfShowUI = false;
DWObject.Resolution = 300;
DWObject.AcquireImage();
SelectSource()
调用源选择窗口以选择一个扫描源。
语法 .SelectSource([optionalAsyncSuccessFunc, optionalAsyncFailureFunc]);
参数 <OnSuccess function> optional optionalAsyncSuccessFunc: 方法执行成功时的回调。
<OnFailure function> optional optionalAsyncFailureFunc: 方法执行失败时的回调。
返回值 Boolean,仅限同步(即无参数)调用。
版本信息 Versions: All Versions
Editions: All but the HTML5 for Linux Edition
使用说明 可选参数仅在v14.0以后的HTML5版本及v14.1后的ActiveX中可用。
示例代码
DWObject.SelectSource();
DWObject.OpenSource();
DWObject.IfShowUI = false;
DWObject.Resolution = 300;
DWObject.AcquireImage();
DWObject.SelectSource(function () {
    DWObject.OpenSource();
    DWObject.IfShowUI = false;
    DWObject.Resolution = 300;
    DWObject.AcquireImage();
}, function () {
    console.log('Failed to select a source, there are ' +
        DWObject.SourceCount + ' sources in total.');
});
SelectSourceByIndex()
通过一个源在源列表中的索引来选中它。
语法 .SelectSourceByIndex(Number index);
参数 Number index: 源的索引。
返回值 Boolean
版本信息 Versions: All Versions
Editions: All Editions
使用说明 在不想打开源选择窗口时使用本方法。
示例代码
DWObject.SelectSourceByIndex(0);
DWObject.IfShowUI = false;
DWObject.Resolution = 300;
DWObject.AcquireImage();
SetOpenSourceTimeout()
设置一个计时器,并在超时后停止加载源的操作。
语法 .SetOpenSourceTimeout(iMilliseconds);
参数 Number nMilliseconds: 计时器的时间。
返回值 Boolean
版本信息 Versions: v11+
Editions: All Editions
使用说明 SetOpenSourceTimeout()应当在OpenSource()前调用。
示例代码
DWObject.SetOpenSourceTimeout(3000);
DWObject.OpenSource();
DWObject.AcquireImage();
startScan()
将扫描设置传入名为scanSetup的JSON对象中来启动扫描工作。
语法 .startScan(scanSetup);
参数 scanSetup scanSetup: 扫描工作的设置。 具体可以看下面的示例。
返回值 Boolean
版本信息 Versions: v15.0+
Editions: HTML5 Editions
示例代码

DWObject.startScan(scanSetup: scanSetup): Promise
    .then(function (scanSetup: scanSetup) {}) /** */
    .catch(function (errorObject: errorObject) {
        /** 做一些设置 */
    })
errorObject = {
  "errorCode": number,
  "errorString": string,
  "response": string
}
scanSetup = {
    setupId: "", // 指定此特定设置的id。.
    exception: "fail", // "ignore" or “fail”
    scanner: "name of the scanner", //可选的。如果为空,则使用默认值
    ui: {
        bShowUI: true,
        bShowIndicator: true, // 是否显示设备的扫描进度条
    },
    transferMode: EnumDWT_TransferMode.TWSX_NATIVE, //file, memory, native
    fileXfer: { //可选,仅用于file传输模式
        fileName: "C:\\WebTWAIN.bmp", //file path
        fileFormat: EnumDWT_FileFormat.TWFF_BMP,
        jpegQuality: 80,
        compressionType: EnumDWT_CompressionType.TWCP_NONE 
        //if applicable  
        /*EnumDWT_CompressionType:{
            TWCP_NONE =0, 
            TWCP_PACKBITS=1,  
            TWCP_GROUP31D=2, 
            TWCP_GROUP31DEOL=3, 
            TWCP_GROUP32D=4,
            TWCP_GROUP4=5, 
            TWCP_JPEG=6,
            TWCP_LZW=7, 
            TWCP_JBIG=8, 
            TWCP_PNG=9,
            TWCP_RLE4=10, 
            TWCP_RLE8=11, 
            TWCP_BITFIELDS=12, 
            TWCP_ZIP=13, 
            TWCP_JPEG2000=14
            }*/
    }
    insertingIndex: 3,
    profile: "", 
    //base64String, 如果非空,会覆盖扫描设置
    settings: {
        exception: "fail", // "ignore" (默认值) or "fail",  
        pixelType: EnumDWT_PixelType.TWPT_RGB, //rgb, bw, gray, etc
        resolution: 200, // 300
        bFeeder: true, //是否自动进纸
        bDuplex: true, /是否启用双面扫描
    },
    moreSettings: {
        exception: "fail", // "ignore" or “fail”
        bitDepth: 24, //1,8,24,etc 
        pageSize: EnumDWT_CapSupportedSizes.TWSS_A4, //A4, etc.
        unit: EnumDWT_UnitType.TWUN_INCHES, //
        layout: {
            left: float,
            top: float,
            right: float,
            bottom: float
        }, //可选。 如果定义了,它将覆盖pageSize
        pixelFlavor: EnumDWT_CapPixelFlavor.TWPF_CHOCOLATE,
        //TWPF_CHOCOLATE (0) or TWPF_VANILLA (1)
        brightness: 0,
        contrast: 0,
        nXferCount: -1, 
        //每次扫描要传输的页数
        autoDiscardBlankPages: true,//依赖设备
        autoBorderDetection: true,//依赖设备
        autoDeskew: true,//依赖设备
        autoBright: true //依赖设备
    },
    funcScanStatus:funcScanStatus(status),  
    //funcScanStatus 在扫描过程中每一张图片扫描完成并传输结束后触发
    // 扫描完成后。status是一个JSON对象,具有以下结构
    //{ bScanCompleted: false,
    //  event: "postTransfer"
    //  result: {currentPageNum: 2}
    //}
    outputSetup : {
        type: "http", 
        // http是v15.0中唯一支持的类型
        format: EnumDWT_ImageType.IT_PDF, 
        // 指定输出的文件类型
        reTries: 3,
        // 指定在上传成功之前尝试上传的次数
        useUploader: false,
        //是否使用文件上传模块
        singlePost: true,
        //是要在一个还是多个post请求中上传所有数据
        showProgressBar: true,
        //上传时是否显示进度条
        removeAfterOutput: true,
        //上传完成后是否删除图像
        funcHttpUploadStatus:funcHttpUploadStatus(fileInfo),  
        //fileInfo是一个JSON对象,其信息如下
        //fileName, percentage, statusCode, responseString.
        pdfSetup: {// 指定如何创建PDF文件。  
            author: 'tom',
            compression: EnumDWT_PDFCompressionType,
            creator: 'dwt',
            creationDate: 'D:20181231',
            keyWords: 'dwt',
            modifiedDate: 'D:20181231',
            producer: 'dynamsoft',
            subject: 'blah',
            title: 'dwt',
            version: 1.4,
            quality: 80 //only for JPEG compression
        },
        tiffSetup: {// 指定如何创建TIFF文件。
            quality: 80, //仅用于JPEG压缩
            compression: EnumDWT_TIFFCompressionType,
            // 指定压缩类型
            tiffTags: [{ // 指定要添加到TIFF的标签
                tagIdentifier: 700,
                content: "Custom Tiff Tag Value",
                useBase64Encoding: true
            }]
        },
        httpParams: {
            url: "http://dynamsoft.com/receivepost.aspx", 
            // 指定要发送的URL
            headers: {}, 
            // 在post请求中添加的标题
            formFields: {}, 
            // 添加额外表单字段到post请求中
            maxSizeLimit: 100000, 
            //设置允许上传文件的大小限制(字节)
            threads: 4, 
            // 指定要用于上传的线程数
            remoteName:"RemoteName", 
            // 指定表单中文件(流)的名称
            fileName: "uploadedFile.jpg" 
            // 指定上传文件的名称
        }
    }
}
GetSourceNames()
返回所有可用的数据源(扫描仪等)和有关它们的详细信息(可选)。
语法 .GetSourceNames(bIncludeDetails);
参数 bool bIncludeDetails: 设置为true时,将返回一个JSON,其中包含有关数据源的详细信息。否则,将返回一个数据源名称的数组。此参数仅在Windows和Linux上有效。
返回值 JSON, Array<string>
版本信息 Versions: v15.3+
Editions: HTML5 Editions
使用说明 JSON字符串中的详细信息的示例 {
ProductName: "TWAIN2 FreeImage Software Scanner",
IsDefaultSource: "true",
IsCurrentSource: "false",
ProductFamily: "Software Scan",
Manufacturer: "TWAIN Working Group",
SupportedGroups: 1073741827,
ProtocolMajor: 2,
ProtocolMinor: 1,
Version:
{
MajorNum: 2
MinorNum: 1
Language: 2
Country: 1
Info: "2.1.3 sample release 32bit"
}
}
示例代码
var sources = DWObject.GetSourceNames();
for(var i = 0; i< sources.length; i++){
  console.log(sources[i]);
}

</tbody> </table>

属性

BitDepth
设置或返回当前PixelType对应的图像位深。
类型 Number
访问权限 Get Set
使用说明 应在OpenSource()方法后及AcquireImage()前设置本属性。
位深和当前PixelType是相关的。如黑白图'TWPT_BW'(0)的位深肯定是1,灰度图'TWPT_GRAY'(1)可以是8或者16,彩色图'TWPT_RGB'(2)一般是24。
版本信息 Versions: v3.0+
Editions: All Editions
IfAppendImage
设置或返回是否将新扫描或加载的图放到已有图的最后。
类型 Boolean
访问权限 Get Set
使用说明 若本属性为true,则新扫描或者加载的图将出现在所有图的最后。反之,新图将被插入到当前选中图之前。
版本信息 Versions: v5.1+
Editions: All Editions
IfDisableSourceAfterAcquire
设置或返回是否在扫描完成后关闭用户界面。
类型 Boolean
访问权限 Get Set
使用说明 应在OpenSource()方法后及AcquireImage()前设置本属性。本属性仅在IfShowUItrue时有效。
版本信息 Versions: v3.0+
Editions: All Editions
IfDuplexEnabled
设置或返回是否启用双面扫描。
类型 Boolean
访问权限 Get Set
使用说明 应在OpenSource()方法后及AcquireImage()前设置本属性。
请注意并不是所有的扫描仪都支持双面扫描。可以在OpenSource()后查看Duplex的值来确定双面扫描是否可用。
版本信息 Versions: v3.0+
Editions: All Editions
IfFeederEnabled
设置或返回是否启用自动进纸器进行扫描。
类型 Boolean
访问权限 Get Set
使用说明 应在OpenSource()方法后及AcquireImage()前设置本属性。
若设为true,则扫描时将先调用自动进纸器,如果没有自动进纸器,则会使用平板进行扫描。
版本信息 Versions: v3.0+
Editions: All Editions
IfShowUI
设置或返回在扫描时是否打开用户界面。
类型 Boolean
访问权限 Get Set
使用说明 若本属性设为true则在调用AcquireImage()时,对应扫描源的用户界面将打开以供用户修改扫描设置。反之,扫描将直接开始。
版本信息 Versions: v3.0+
Editions: All Editions
ImageCaptureDriverType
设置或返回在macOS上是调用TWAIN还是ICA的扫描源。
类型 Number
访问权限 Get Set
使用说明 应当在SDK初始化时或者在调用CloseSourceManager()OpenSourceManager()后再设置本属性。

本属性仅支持macOS。可选值有

EnumDWT_Driver.TWAIN: 0
EnumDWT_Driver.ICA: 3
EnumDWT_Driver.TWAIN_AND_ICA: 4 (v14.0新增且为默认值)
若设为EnumDWT_Driver.TWAIN或0,则扫描时只用TWAIN源。若设为EnumDWT_Driver.ICA或3,则扫描只用ICA源,一般这些源都可以在苹果公司官网找到。若不设置或者设为EnumDWT_Driver.TWAIN_AND_ICA或4,则TWAIN和ICA的源都可以使用。

Dynamsoft推荐在macOS上使用ICA扫描源。理由如下:

  1. 一个支持ICA的扫描仪在macOS上一般可以即插即用,无需安装额外驱动。
  2. 一个同时支持ICA和TWAIN的扫描仪在macOS上一般ICA源更好用。用户界面隐藏的情况下更是如此。
版本信息 Versions: v9.1+
Editions: 仅限HTML5 for Mac
PageSize
设置或返回扫描时的页面大小。
类型 EnumDWT_CapSupportedSizes
访问权限 Get Set
使用说明 应在OpenSource()方法后及AcquireImage()前设置本属性。
版本信息 Versions: v3.0+
Editions: All Editions
PixelType
设置或返回扫描时的色彩模式。
类型 EnumDWT_PixelType
访问权限 Get Set
使用说明 应在OpenSource()方法后及AcquireImage()前设置本属性。
版本信息 Versions: v3.0+
Editions: All Editions
Resolution
设置或返回扫描时的分辨率。
类型 Number
访问权限 Get Set
使用说明 应在OpenSource()方法后及AcquireImage()前设置本属性。
版本信息 Versions: v3.0+
Editions: All Editions
SourceCount
返回当前可找到的扫描源,请注意这些扫描仪也可能是没有连接到电脑上的。
类型 Number
访问权限 Get
使用说明 SourceCount返回0,则表示当前系统上无扫描源可用。
版本信息 Versions: All versions.
Editions: All Editions

事件

OnPostAllTransfers
本事件在一次扫描完全传输完成后触发。
语法 .RegisterEvent('OnPostAllTransfers',function(){...});
参数
示例代码
DWObject.RegisterEvent('OnPostAllTransfers', function() {
    console.log(DWObject.HowManyImagesInBuffer);
});
使用说明 本事件在一次扫描过程中只在最后触发一次,可以在对应的回调函数中执行图片上传,二维码识别等操作。
版本信息 Versions: v2.0+
Editions: All Editions
OnPostTransfer
本事件在扫描过程中每一张图片扫描完成并传输结束后触发。
语法 .RegisterEvent('OnPostTransfer',function(){...});
参数 none
示例代码
DWObject.RegisterEvent('OnPostTransfer', function() {
    console.log("一张图扫好了");
});
使用说明 本事件在一次扫描过程中触发多次,可以在对应回调中检查已经传输的那张图片的属性。
版本信息 Versions: All Versions
Editions: All Editions
OnPostTransferAsync
本事件在扫描过程中每一张图片扫描完成并传输结束后触发。这是同步OnPostTransfer的异步事件。
语法 .RegisterEvent('OnPostTransferAsync',function(outputInfo){...});
参数 outputInfo:如果TransferMode为“Native”或“ Memory”,则包含已传输图像的imageId等信息;如果TransferMode设置为“File”,则包含本地磁盘上已传输图像的路径path和扫描仪返回的已传输图像的imageInfoextendedImageInfo。
示例代码
DWObject.RegisterEvent('OnPostTransferAsync', function(outputInfo){
    console.log("The image ID is " + outputInfo.imageId);
});
版本信息 Versions: V15.0+
Editions: HTML5 Editions

results matching ""

    No results matching ""

    results matching ""

      No results matching ""