彩票走势图

logo Dynamic Web TWAIN技术特点
文档彩票走势图>>Dynamic Web TWAIN技术特点>>Dynamic Web TWAIN初始化:Initialize

Dynamic Web TWAIN初始化:Initialize


1 使用版本

动态Web TWAIN可以在两种模式下运行。桌面服务或WebAssembly

1.1 桌面服务

1.1.1 什么是桌面服务

桌面服务版是指 Dynamic Web TWAIN 通过 Dynamsoft 服务进行操作,该服务是一个安静的后台系统服务,处理连接设备和浏览器客户端之间的通信以及成像处理、编码、解码等。
当在桌面上使用Dynamic Web TWAIN时,默认使用服务模式(推荐),并且这种模式下必须安装Dynamsoft服务。
1.1.2 安装Dynamsoft服务

,英文的但是很简单。

1.2 WebAssembly

1.2.1 什么是WebAssembly

WebAssembly (WASM) 版是指在Web Worker和WebAssembly的帮助下,动态Web TWAIN完全在浏览器中运行。它使用户免于手动安装任何东西。但这依赖于一些只有现代WASM浏览器才能提供的高级功能。

如果用户决定通过移动浏览器访问 Dynamic Web TWAIN 应用程序,或者他们不想在桌面上安装任何东西,他们可以选择 WASM 模式。

1.2.2 如何在桌面使用WebAssembly

如前所述,桌面用户将默认使用桌面服务版,而手机和平板电脑用户将默认使用WebAssembly版。然而,如果你想让桌面用户在WebAssembly版中启动,放弃对服务的需求,你可以在初始化代码中把UseLocalService设置为false

1.3 两种模式的对比

桌面服务版和WebAssembly版的一个主要区别是,后者不能访问本地设备,这意味着无法使用本地扫描仪。另外,WebAssembly版的性能和速度也不如服务版,因为它不能利用那么多资源。


2 加载核心JS库

2.1 核心文件的介绍

在SDK安装时包含的Resources目录中,你可以找到以下两个文件,它们是定义Dynamic Web TWAIN配置和操作的主要JS文件。

  • dynamsoft.webtwain.config.js【配置文件】
  • dynamsoft.webtwain.initiate.js【功能核心】
问:先引用哪个JavaScript文件有关系吗?
答:一般来说,dynamsoft.webtwain.initiate.js 和 dynamsoft.webtwain.config.js 都需要被引用。在前一个文件中,它检测后者是否已被加载;如果没有,它将等待。因此,哪个文件在先并不重要。
问:为什么我看到的是dynamsoft.webtwain.min.js和dynamsoft.webtwain.min.mjs而不是上面的两个文件?
答:这两个文件存在于官方npm包dwt中。为了简单起见,在每一个文件中,Dynamsoft都包含了所有必要的JavaScript代码,其中包括上面提到的两个文件加上dynamsoft.webtwain.install.js和所有额外的组件(附加组件)。.js文件是代码的简单组合,而.mjs文件则是作为ECMAScript 6 (ES6)模块构建的,用于基于Angular、React和Vue等的应用。
在普通的应用程序中,仅引用dynamsoft.webtwain.min.js就比引用dynamsoft.webtwain.config.js和dynamsoft.webtwain.initiate.js要多。


3 加载Add-on JS文件

Dynamic Web TWAIN 提供了许多附加组件,包括一个条形码阅读器、一个 PDF 光栅器、两个网络摄像头利用器和两个 OCR 引擎。这些组件的文件都在资源目录下的addon子文件夹中。了解更多关于资源文件的信息。

你可以引用相应的JavaScript文件来包含这些附加组件中的任何一个。一旦引用了一个JavaScript文件,该组件的成员方法/属性就会在Dynamsoft名称空间中可用,以后可以被WebTwain实例使用。

4 加载支持文件

一旦主要的JavaScript文件被加载,初始化过程就会转向加载所有其他的支持JS文件以及CSS文件。根据DWT的运行模式,支持文件有所不同
4.1 桌面服务版文件在resource文件夹内

  • dynamsoft.webtwain.install.js
  • src/dynamsoft.viewer.js
  • src/dynamsoft.viewer.css
  • src/dynamsoft.webtwain.css
4.1.1 dynamsoft.webtwain.install.js 这个文件用于配置当Dynamsoft服务没有安装或需要升级时显示的对话框。当dynamsoft.webtwain.initiate.js中的代码执行时,这个文件会自动加载。因此,它不需要在HTML页面中被引用。

4.1.2 dynamsoft.viewer.js, dynamsoft.viewer.css and dynamsoft.webtwain.css 这三个文件被用来构建动态Web TWAIN的查看器组件,以及定义库中其他UI元素的CSS。

4.2 WebAssembly版的特定文件

除了服务模式需要的4个文件外,WebAssembly版还需要以下文件:

Image IO

  • dynamsoft.imageio.js
  • dynamsoft.imageio_wasm-<version number>.js
  • dynamsoft.imagecore-<version number>.wasm
  • dynamsoft.imageio-<version number>.wasm
  • dynamsoft.imageProc-<version number>.wasm
PDF读写
  • dynamsoft.pdfReader-<version number>.wasm
  • dynamsoft.pdfWriter-<version number>.wasm
问:上面提到的7个文件是否都只在WebAssembly版中使用?
答:不是,当满足以下条件之一时,即使在服务模式下,库也会使用WebAssembly文件
  • WebTwain.Addon.Camera组件的API被调用。
  • WebTwain.Camera.showVideo()或WebTwain.Camera.closeVideo()的API被调用。

5 创建WebTwain 实例

问:是否有必要手动调用Dynamsoft.DWT.Load?
答:不需要。只有当Dynamsoft.DWT.AutoLoad被设置为false时才需要调用它。如果AutoLoad为真,一旦运行环境准备好,就会自动调用Load。Dynamsoft.DWT.AutoLoad在文件dynamsoft.webtwain.config.js中定义,但可以在实际加载开始前的任何地方调用。默认情况下,它被设置为 "true"。
问:我在哪里可以得到实例的处理程序?
答:当调用Load时,DWT试图创建WebTwain实例。一旦完成,DWT会触发内置回调Dynamsoft.DWT.OnWebTwainReady,其中Dynamsoft.DWT.GetWebTwain方法可以用来获取实例的处理程序。为了简单起见,OnWebTwainReady的回调指向一个名为Dynamsoft_OnReady的全局函数。下面的片段是等价的


//注册方式1
Dynamsoft.DWT.OnWebTwainReady = function() {
    DWObject = Dynamsoft.DWT.GetWebTwain("dwtcontrolContainer");
}
//注册方式2
Dynamsoft.DWT.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
function Dynamsoft_OnReady() {
    DWObject = Dynamsoft.DWT.GetWebTwain("dwtcontrolContainer");
}
在dynamsoft.webtwain.config.js也可以自定义注册节点(下面三个元素就不用解释了吧?):



Dynamsoft.DWT.Containers = [{
    ContainerId: 'dwtcontrolContainer',
    Width: '585px',
    Height: '513px'
}];
要创建多个实例,只需提供多个容器即可,例如,以下是创建两个WebTwain实例的例子



Dynamsoft.DWT.Containers = [{
    ContainerId: 'dwtcontrolContainer1',
    Width: '585px',
    Height: '513px'
}, {
    ContainerId: 'dwtcontrolContainer2',
    Width: '585px',
    Height: '513px'
}];
5.2 Dynamsoft.DWT.CreateDWTObject


该方法手动创建一个具有默认内置查看器的WebTwain实例

问:该方法能否创建一个没有默认浏览器的WebTwain实例?

答:不能,只有CreateDWTObjectEx可以这样做。

问:这个方法是否可以和Load一起使用?
答:可以,在Load创建了最初的WebTwain实例后,该方法可以创建更多的WebTwain实例。

问:我如何使用这个方法来创建WebTwain实例而不使用Load?
答:如果Dynamsoft.DWT.AutoLoad被设置为 "true",就会自动调用Load。因此,要忽略Load,Dynamsoft.DWT.AutoLoad必须被设置为false。

问:如何使用CreateDWTObject
答:该方法的语法如下

CreateDWTObject(
    ContainerId: string,
    host ? : string,
    port ? : string | number,
    portSSL ? : string | number,
    successCallBack: (DWObject: WebTwain) => void,
    failureCallBack: (errorString: string) => void
): void;

以下相当于使用Load与配置Dynamsoft.DWT.Containers = [{ContainerId: 'dwtcontrolContainer', Width: '585px', Height: '513px'}。

Dynamsoft.DWT.CreateDWTObject(
    'dwtcontrolContainer',
    function(obj) {
        obj.Width = 585;
        obj.Height = 513;
    },
    function(err) {
        console.log(err);
    }
);

该方法还可以做一些Load不能做的事情。下面的代码创建了一个WebTwain实例,连接到运行在另一台机器上的Dynamsoft服务,IP为192.168.8.221,端口为18622和18623(SSL)。

Dynamsoft.DWT.UseLocalService = true;
Dynamsoft.DWT.CreateDWTObject(
    'dwtcontrolContainer',
    "192.168.8.221",
    "18622", "18623"
    function(obj) {},
    function(err) {
        console.log(err);
    }
);
5.3 Dynamsoft.DWT.CreateDWTObjectEx

该方法手动创建一个没有默认内置视图的WebTwain实例。

// 实现代码
CreateDWTObjectEx(
    dwtInitialConfig: DWTInitialConfig,
    successCallBack: (DWObject: WebTwain) => void,
    failureCallBack: (errorString: string) => void
): void;

在接口配置DWTInitialConfig中

interface DWTInitialConfig {
    WebTwainId: string;
    Host?: string;
    Port?: string;
    SSLPort?: string;
}

与CreateDWTObject相比,CreateDWTObjectEx需要一个WebTwainId而不是一个ContainerId。

接下来是一个没有config配置的实例

var DWObject = null;
Dynamsoft.DWT.CreateDWTObjectEx({
        WebTwainId: 'dwtcontrol'
    },
    function(obj) {
        DWObject = obj;
        DWObject.Viewer.bind(document.getElementById('dwtcontrolContainer'));
        DWObject.Viewer.height = 600;
        DWObject.Viewer.width = 800;
        DWObject.Viewer.show();
    },
    function(err) {
        console.log(err);
    }
);

与CreateDWTObject类似,CreateDWTObjectEx也可以连接到另一台机器上运行的Dynamsoft服务。

Dynamsoft.DWT.UseLocalService = true;
Dynamsoft.DWT.CreateDWTObjectEx({
        WebTwainId: 'dwtcontrolContainer1',
        Host: "192.168.8.221",
        Port: "18622",
        SSLPort: "18623"
    },
    function(obj) {},
    function(err) {
        console.log(err);
    }
);
6  Dynamsoft的命名空间


Dynamic Web TWAIN 在 Dynamsoft 名称空间下运行。

Dynamsoft是最高级别的命名空间。Dynamic Web TWAIN 和其他 Dynamsoft 库都是在 Dynamsoft 下定义的。对于 Dynamic Web TWAIN 来说,这个命名空间的主要成员是:

  • DWT 包括全局方法、帮助WebTwain初始化和实例化的属性等,如前文所示。
  • Lib 包括环境检测结果(Dynamsoft.Lib.env)和全局方法如showMask()、hideMask()等信息。
  • Enumerations 


扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP