今天上网查资料,看到一篇文章,描述的是一个开发OA软件的公司解决浏览器嵌入式扫描仪编程的文章,文章描述了改OA厂商的工程师如何辛苦的克服了各种技术难题,最终实现了在线图像扫描处理,然后又在无数个不眠的夜晚以后最终实现了双面扫描功能。

那篇文章写的比较老了,是2009年的事情,其实现在要解决类似的问题就没有那么痛苦,在项目中应用ScanOnWeb在线图像扫描组件即可实现扫描仪编程。

为了便于对比,我转载了该篇文章并适当隐去了一些信息。

----------------------------------------------------------------------

以客户为中心,XX成功开发扫描仪接口控件
近日,响应客户个性化实施服务需求,XX研发人员成功开发扫描仪接口控件。该控件的成功研发,填补了国内市场同类产品一项空白,作为一套新的插件,成为XX行业迅速发展的利器之一。

  扫描仪接口控件主要功能是扫描仪在扫描文件的同时,将扫描的结果直接显示在OA相关的地方,使用户操作更简便,节省大量时间。据悉,目前市场上大多数的第三方控件商都没有提供扫描接口的功能,只有几个国外的厂商提供相关的产品,但价格偏高,能和Java集成的扫描仪控件接口更是寥寥无几。

(注:ScanOnWeb可以实现了java/c#/jsp/asp.NET/PHP等技术整合)

  在XX集团初期的项目实施过程中,XX实施人员发现存在很多集团型公司的特殊需求需要定制开发,其中包括:工资查询系统、请销假管理系统、物品领用系统等大小不一的扩展需求。这些开发需求,不仅仅是XX项目的需求,也是集团型公司的共性,可以在XXOA软件版本中作为通用功能在集团型企业中加以应用,是对OA软件功能的优化和提升。其中,XXX集团提出的扫描仪接口问题,因使用WEBOFFICE无法解决,而需要购买第三方插件。但这个第三方插件公司为国外公司出品,目前已经不出该插件了。鉴于这种情况,XXX实施服务人员决定自行开发该控件,但前期碰到很多困难。

  面对困难,XXX实施服务人员并没有畏缩而是刻骨钻研,发现要调用系统底层驱动必须要用到C++,需要购买相关应用包,为此XX人员自行付费购买相关代码,经过和java的集成,初步完成了扫描仪接口工作,可以将单次扫描后的图片直接显示在收文的编辑框里。但之后XXX集团又提出要支持批量扫描和双面扫描,这在原来购买的代码中并没有提供此功能。面对进一步的新需求,XXX员加班加点,查阅国外相关产品资料,了解产品开发思路,对其代码进行了破解,使其能和java以及OA系统集成,顺利完成全部的扫描仪接口工作,同时支持批量扫描和双面扫描等各种扫描方式。

  该插件成功开发不仅解决了XX集团的项目难题,更为XXX软件行业开发出一套新插件。这也很好的诠释了XXX支持服务中心“想用户之所想,急用户之所急”的服务精神,丰富了XXX“以客户为中心,以市场为导向”客户服务内涵。

不考虑其他的东西,单独从技术角度考虑转载了分析这件事情,扫描仪编程需要处理twain接口,该接口的帮助文档等都是英文的,国内有一部分资料,要实现单页的图像扫描问题不大,主要是双面扫描和多页扫描就有些技术难度了,另外最重要的一点就是扫描结果图像的编辑处理,这个需要一个类似于photoshop样式的工具去对扫描结果进行编辑处理,自己要开发这样的功能需要耗费极大的时间。以上的一切问题使用scanonweb控件就都可以解决了,scanonweb组件的官方网站:点击打开ScanOnWeb官方网站链接

使用图像扫描控件ScanOnWeb实现在线图像扫描的更多相关文章

  1. 扫描控件Web在线Applet

    基于JAVAEE的B/S架构由于java语言的跨平台性 所以操控Window客户端资源能力有限, 目前比较流行是用其他语言如Delphi,VB,C++开发客户端控件 然后再html中用js调用.    ...

  2. NET RichTextBox控件如何可以插入图像

    本文介绍.NET RichTextBox控件如何可以插入图像,控制和ActiveX对象通过使用OLE方式,如在解释,.不幸的是,它涵盖了只用一个C源代码样本,所以我需要在托管代码(C#)实施类似的解决 ...

  3. [Xcode 实际操作]三、视图控制器-(10)在Storyboard中使用图像视图控件

    目录:[Swift]Xcode实际操作 本文将演示常用的图像视图控件在故事板中的使用. 打开故事板文件[Main.storyboard]点击选择视图控制器的根视图. 点击库图标,打开控件库面板. 在控 ...

  4. Android自己定义控件——3D画廊和图像矩阵

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/39932689 1.3D画廊的实现 我们知道android系统已经为我们提供好了一个 ...

  5. ChinaCock扫描控件介绍-使用TCCBarcodeScanner引起app闪退

    好几个ChinaCock的朋友说遇到扫码时闪退,进一步总结,都是Android 8的机器上才会出现,今天我也遇到.正好有朋友说,按下面这个改配置文件就可以解决: <!-- 扫描的activity ...

  6. Asp.net Image控件显示Bitmap生成图像

    from:https://blog.csdn.net/qq_29011299/article/details/81137980 using(Bitmap bmp=new Bitmap(300,50)) ...

  7. iOS 简单易用的二维码扫描及生成二维码三方控件LFQRCode,可灵活自定义UI

    一.扫码 扫描的控件是一个view,使用者只需贴在自己的控制器内即可.其他UI用户可在自己控制器随便添加.代码如下 - (void)viewDidLoad { [super viewDidLoad]; ...

  8. 一个 Qt 显示图片的控件(继承QWidget,使用QPixmap记录图像,最后在paintEvent进行绘制,可缩放)

    Qt 中没有专门显示图片的控件,通常我们会使用QLabel来显示图片.但是QLabel 显示图片的能力还是有点弱.比如不支持图像的缩放一类的功能,使用起来不是很方便.因此我就自己写了个简单的类. 我这 ...

  9. Google 地图 API V3 之控件

    Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...

随机推荐

  1. Navicat连不上MySQL的解决办法

    USE mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{your password}'; ...

  2. vue 组件相互传值

    Part.1  传值几种方式 在写项目时,遇到组件传值问题,特此记录一波~~~ (1)  父传子 (2)  子传父 (2)  兄弟组件传值 Part.2  父传子 顾名思义,就是父组件传值给子组件 子 ...

  3. SSM框架删除/更新时返回影响条数

    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">    < ...

  4. 任务二:零基础HTML及CSS编码(一)

    面向人群: 零基础或初学者 难度: 简单 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合理性,但即使如此,真正决定课 ...

  5. 提高CPU使用率

    某些特殊时候,需要提升下cpu的利用率,此时……………………需要一个极其简单的脚本来完成! #!/bin/bash while (true);do { for i in $(seq 100000 10 ...

  6. python入门-PyCharm中目录directory与包package的区别及相关import详解

    一.概念介绍 在介绍目录directory与包package的区别之前,先理解一个概念---模块 模块的定义:本质就是以.py结尾的python文件,模块的目的是为了其他程序进行引用. 目录(Dict ...

  7. 杭电 4707 pet(并查集求元素大于k的集合)

    Description One day, Lin Ji wake up in the morning and found that his pethamster escaped. He searche ...

  8. 杭电 1241 Oil Deposits (很好的dfs)

    Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...

  9. 算法导论 第十三章 红黑树(python)-1插入

    红黑树是上一章二叉搜索树的改进,实现一种平衡 ,保证不会出现二叉树变链表的情况,基本动态集合操作的时间复杂度为O(lgn) 实际用途:c++stl中的set,map是用他实现的 红黑树的性质: 1.每 ...

  10. c#如何判断textbox中输入的数据是datatime型的

    ()你好,标准的方法是用一个验证控件:RangeValidator,把type设为DateTime,最大值设为'3000-1-1'或者别的,最小值最好设为'1900-1-1'. ()程序里面自己验证: ...