办公室里扫描仪必不可少。现在智能化办公,有时候我们会希望文档扫描之后直接传输到手机里。如果用的是带WiFi的智能扫描仪,那么可以通过安装app来获取电子文档。如果用的是普通扫描仪,那么只能先通过PC获取扫描文档,然后再拷贝到手机里,很不方便。这篇文章分享适用于手机浏览器的解决方案。既不需要安装app,也不需要通过PC拷贝。

环境搭建步骤

  1. 把扫描仪通过USB接口连接到一台Windows主机上

  2. 下载安装Dynamic Web TWAIN SDK

  3. 申请一个30天免费试用的序列号

  4. 在Windows的浏览器里打开http://127.0.0.1:18625/admin/,把host改成主机的局域网IP地址:

使用HTML5远程控制扫描仪

创建一个空的工程目录。把Dynamsoft\Dynamic Web TWAIN SDK <version>\Resources目录拷贝到这个工程目录中。

创建一个index.htm文件。

引用JS文件:

<script type="text/javascript" src="Resources/dynamsoft.webtwain.initiate.js"></script>
<script type="text/javascript" src="Resources/dynamsoft.webtwain.config.js"></script>

通过自动或者手动的方式创建Dynamic Web TWAIN对象,并绑定一个DIV元素作为图像显示容器:

// Create a Div element
var element = document.createElement('div');
var containerName = 'container';
element.id = containerName;
document.body.appendChild(element);// Dynamsoft.WebTwainEnv.ProductKey = 'LICENSE-KEY';// Load DWT viewer automatically
function initDWT() {Dynamsoft.WebTwainEnv.UseLocalService = false;Dynamsoft.WebTwainEnv.AutoLoad = true;Dynamsoft.WebTwainEnv.Containers = [{ ContainerId: containerName, Width: viewerWidth, Height: viewerHeight }];Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', function () {dwtObj = Dynamsoft.WebTwainEnv.GetWebTwain(containerName);if (dwtObj) {dwtObj.Width = viewerWidth;dwtObj.Height = viewerHeight;dwtObj.MouseShape = true;}});
}// Load DWT viewer manually
function initDWTManually() {Dynamsoft.WebTwainEnv.CreateDWTObjectEx({WebTwainId: '1'},function (obj) {dwtObj = obj;dwtObj.Viewer.bind(element);dwtObj.Viewer.width = viewerWidth;dwtObj.Viewer.height = viewerHeight;dwtObj.Viewer.show();},function (err) {console.log(err);});
}

创建缩略图显示容器:

var thumbnailViewer = dwtObj.Viewer.createThumbnailViewer();
thumbnailViewer.show();

接下来基于IP地址,创建一个新的Dynamic Web TWAIN对象:

var dwtConfig = { WebTwainId: ip, Host: ip, UseLocalService: 'true' };
Dynamsoft.WebTwainEnv.CreateDWTObjectEx(dwtConfig, function (dwt) {dwtRemoteObj = dwt;dwtRemoteObj.RegisterEvent('OnPostTransferAsync', function (outputInfo) {});// Update the remote scanner listdwtRemoteObj.GetSourceNamesAsync().then(function (result) {// Remove previous optionsfor (var i = 0; i < selectSource.length; i++) {selectSource.remove(i);}for (var i = 0; i < result.length; i++)selectSource.options.add(new Option(result[i], i));},function (fail) {console.log(fail);});
},function (error) { console.log(error) });

注册远程扫描事件。在获取数据之后转换成blob,然后加载到显示容器中:

dwtRemoteObj.RegisterEvent('OnPostTransferAsync', function (outputInfo) {dwtRemoteObj.ConvertToBlob([dwtRemoteObj.ImageIDToIndex(outputInfo.imageId)],Dynamsoft.EnumDWT_ImageType.IT_PNG,function (result, indices, type) {dwtObj.LoadImageFromBinary(result,function () {console.log('Load the image successfully');dwtRemoteObj.RemoveImage(dwtRemoteObj.ImageIDToIndex(outputInfo.imageId));},function (errorCode, errorString) {console.log(errorString);});},function (errorCode, errorString) {console.log(errorString);});
}
);

最后在工程根目录下,用Python快速启动一个HTTP服务:

python -m http.server

打开手机浏览器,输入PC的IP地址,就可以操控扫描仪扫描文档了。

源码

https://github.com/Dynamsoft/web-document-remote-scan

如何在手机浏览器中控制扫描仪做文档扫描相关推荐

  1. 多端手机网页中直接打开PDF文档

    1. 需求 接到一个需求,客户想在手机端的网页里直接能查看到 pdf 文档,一开始我的思路是加一个<a>标签让他跳转链接到 pdf 文档的地址,经过测试发现在 IOS 系统中,网页跳转之后 ...

  2. 基于WEB的Office文档打印——浏览器中静默打印Word文档

    web应用开发中,如何集成Office文档打印功能,并不是一个容易实线的问题.现在有了打天下web打印插件,仅以几行JS代码就可以让你将Office打印功能集成到你的Web项目中. 引入PrintWo ...

  3. 手机微信里面接收好友的文档怎么打印

    在手机中安装的软件,使用频率较高的就是微信,微信不仅可以用于日常的工作交流,同时还可以传输一些文档.图片.文件等进行共享,而且手机微信中接收到的文档,大家还可以选择到打印店去打印. 考虑到现在大家的工 ...

  4. vivo计算机背景,怎么修改VIVO手机浏览器中的主题与背景颜色

    怎么修改VIVO手机浏览器中的主题与背景颜色 腾讯视频/爱奇艺/优酷/外卖 充值4折起 随着科技的发展,手机已经成为人们日常生活中必不可少的工具,当我们在使用vivo手机内的浏览器浏览网页时,如果想要 ...

  5. python 生成html文件浏览器,pycharm中怎么生成HTML文档并在浏览器查看HTML文档

    首先,介绍一下Python自带的pydoc模块,该模块能帮助我们生成以及查看HTML文档.(在控制台查看文档B格差了那么一丢丢,俺就没兴趣勒)待会能够熟练使用pydoc以后我们便可以直接在浏览器上打开 ...

  6. 控制生成word文档

    前段时间才做了一个,将测试数据生成word文档.     其中有表格.画图形         用模版文件来替换最方便,修改模版就修改了格式.     将要填的数据定义成一个符号如<NAME> ...

  7. Python Tutorial中英双语对照文档2

    接 Python Tutorial中英双语对照文档1 CHAPTER SIX MODULES 模块 If you quit from the Python interpreter and enter ...

  8. Python Tutorial中英双语对照文档3

    接 Python Tutorial中英双语对照文档2 CHAPTER NINE CLASSES 类 Classes provide a means of bundling data and funct ...

  9. java word设置纸张a3,Word中进行设置A3文档纸张大小的操作技巧

    在工作中最常用的纸质文档是A4的,但是我们有时候也需要用一些A3甚至其他纸张的文档,那么,在做文档的时候该如何设置呢?今天,学习啦小编就教大家在Word中进行设置A3文档纸张大小的操作技巧. Word ...

最新文章

  1. 理论计算机科学中最令人困惑的谜题之一被解开
  2. 企业开发与社交开发相辅相成
  3. mysql登录抓包_MySQL登录验证的抓包
  4. HAProxy http和https都使用mode tcp模式
  5. jsonpath的用法
  6. GitHub + jsDelivr + PicGo 搭建个人图床
  7. ubuntu chmod更改权限
  8. Visual C++ 基础数据类型的转换
  9. 线程Thread类的start()方法和run()方法
  10. java 中文件outputstream的操作注意
  11. 用Pylint规范化Python代码,附PyCharm配置
  12. 操作系统原理(一)操作系统概述和操作系统用户界面
  13. 分值展示时,只显示评委分数,但不显示评委名称或评委编号等标识,如何进行前期准备操作?
  14. [Devcpp]为Devc自定义编译器及Devcpp路径读取的Bug
  15. WEB密码安全输入控件
  16. COPY 一种接近最优的导航网格生成算法以及基于导航网格的寻路算法
  17. java安卓模拟器和电脑通信_android模拟器与PC的端口映射
  18. 本科三本的计算机博士,读书中的我 从三本本科到985博士
  19. 电脑白屏,笔记本电脑白屏是怎么回事 笔记本电脑白屏解决方法【详解】
  20. hdu1827 1269 2767 强连通分支 刷水

热门文章

  1. 2019年“五一”大数据出行预测报告出炉!
  2. ABBYY FineReader双十一活动跟进
  3. 动态链接库DLL是什么?
  4. mysql注入大全_mysql注入大全及防御
  5. USACO Mooo Moo
  6. 微软在移动设备上的失败
  7. 佘其炯:关于97工程的思考
  8. Validform_v5.3.2 自定义规则
  9. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现
  10. maven idea java_使用IntelliJ IDEA建立Maven java项目