1。先搞清楚要在哪种类型的程序中调用扫描仪
创新互联建站专注于黄埔网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供黄埔营销型网站建设,黄埔网站制作、黄埔网页设计、黄埔网站官网定制、微信小程序服务,打造黄埔网络公司原创品牌,更为您提供黄埔网站排名全网营销落地服务。
如果开发的程序是java application或者基于 swing的程序,可以算作是单机或者 c/s架构的程序,applet和java fx技术也可以这么算,因为都是直接通过java程序去操控扫描仪设备。
如果是基于浏览器的应用,即b/s架构的程序,扫描图像的工作是在客户端完成的,这种情况下Java程序其实是接收和保存扫描仪读取的图像结果,并不需要直接的控制扫描仪工作,这一点上和c/s架构的程序有本质的区别。
2。架构与技术应用
2.1 c/s架构程序的扫描仪调用
c/s架构需要通过java代码直接操控扫描仪设备,java语言本身被设计为跨o/s平台,对特定平台的硬件操控能力有限,因此需要借助外部技术实现扫描仪控制调用,可以通过jni(java原生应用程序接口) 技术去实现扫描仪调用,具体的细节实现就是jni中定义扫描仪操作方法,如scan()等方法,然后使用javah生成c语言的.h头文件,然后使用vc等编程语言去实现jni接口方法。
在windows平台和mac平台上面,操作扫描仪都可以通过twain协议
总之c/s架构的java程序调用扫描仪通过jni+twain编程既可完成。
2.2 b/s架构程序的扫描仪调用
b/s架构的扫描仪调用在前面已经提到过,java程序实现上做的事情是接收扫描结果图像数据 ,例如在struts2的 action中或者jsp/servlet等等程序中接收扫描仪图像扫描结果,真实的客户端扫描仪调用应该借助客户端技术去实现。
在Linux中的Mozilla浏览器中如何调用扫描仪扫描图像呢?这个着实是个难题,需要做Mozilla的插件才可以,但是在windows平台有ActiveX技术供程序员使用,因此浏览器是在windows平台中的话借助Activex技术即可扩展浏览器能力。
1、首先在一个java工程下创建一个类名的ScannerDemo的类。
2、然后创建一个Scanner类对象,让它接收从键盘输入的数据。
3、这里利用的nextLine方法接收字符串。next方法其实也是可以获取字符串的。但是next不能获取空格,比如输入Hello World,使用next方法只会得到Hello;而使用nextLine方法会得到完整的Hello World;因为nextLine方法是以回车键为结束标识的。
4、在程序窗口空白处,点击右键,选择Run As ——Java Application。
5、这时在控制台中,输入字符串,按回车。可以看到利用Scanner类的nextLine成功接收到字符串。
6、当然Scanner除能接收字符串之外,像整数,浮点数也是可以接收的,都有对应的方法。下面就以接收整数为例,其他类型的也差不多,可以自己尝试一下。
7、运行查看结果,可以看到nextInt()只能接收整数。想要接收其他类型的数据就得用其他方法了。
扩展资料:
Scanner类常用方法
1、String next():接收控制台输入的字符串(备注:不能将空格作为字符串接收);
2、String nextLine():接收控制台输入的字符串;
3、int nextInt():接收控制台输入的int类型的数据;
4、double nextDouble:接收控制台输入的double 类型的数据;
5、boolean nextBoolean():接收控制台输入的boolean 类型的数据;
6、输入char类型的数据;
Scanner类没有直接输入char类型的方法,可以通过charAt()方法从next()或nexyLine()获取。
参考资料:百度百科-计算机编程语言
Scanner是jdk1.5新增的一个类,使用该类可创建一个对象,Scanner scan=new Scanner(System.in);意思是声明一个Scanner类的对象,并实例化,system.in即接收键盘输入。