`

jsp扫描仪编程

阅读更多
好多的OA系统等项目需要把文稿通过扫描仪扫描成PDF等格式,然后在OA系统中流转发布,在 c/s架构中问题不大,但是在web环境中如何通过网页去读取扫描仪数据呢?由于浏览器的安全性限制,使用html和javascript是无法直接操控扫描仪的,解决的办法就是使用activex来扩展浏览器功能。
这里在jsp页面中通过加载ScanOnWeb扫描控件的方式来解决jsp扫描仪编程问题。
代码如下(完整的代码下载附件):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>控件测试页面</title>
<script language="javascript" type="text/javascript" src="../js/jquery-1.4.2.min.js" ></script>
<script type="text/javascript">
$(function() {
   $('#btnScan').click(function() {
document.getElementById('scaner1').scan();
}),
$('#btnUpload1').click(function() {
submit_1();

}),
$('#btnUpload2').click(function() {
submit_2();
})
});

function auto_select_server_action(){
var server_action_url;
    if ($('#asp').attr("checked")==true) {
  server_action_url="./submit.asp";
}else if ($('#jsp').attr("checked")==true) {
  server_action_url="http://localhost:8080/pages/submit.jsp";
    }else if ($('#php').attr("checked")==true) {
  server_action_url="./submit.php";
    }else if ($('#aspnet').attr("checked")==true) {
  server_action_url="./submit.aspx";
    } else{
      alert('请选择服务器端技术类型!');
  return ;
    }
   document.forms[0].action=server_action_url;
}

function submit_1(){
  auto_select_server_action();
  var base64_data = document.getElementById('scaner1').jpegBase64Data; 
  document.getElementById('picData').value=base64_data;
  document.getElementById('picExt').value='.jpg';
  document.forms[0].submit();
}

function submit_2(){
  auto_select_server_action();
  var base64_data = document.getElementById('scaner1').allImageAsPDFData;
  document.getElementById('picData').value=base64_data;
  alert(base64_data.length);
  document.getElementById('picExt').value='.pdf';  
  document.forms[0].submit();
}

</script>
</head>
<body>
<form action="" name="form1" id="form1" method="post" target="_blank">
  <input type="hidden" id="picData" name="picData"/>
  <input type="hidden" id="picExt"  name="picExt"/>
  <p>请选择服务器端技术:
    <label>
      <input name="radio" type="radio" id="asp" value="asp" checked="checked" />
      asp</label>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <label>
      <input type="radio" name="radio" id="jsp" value="jsp" />
      jsp</label>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <label>
      <input type="radio" name="radio" id="aspnet" value="asp.net" />
      asp.net</label>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <label>
      <input type="radio" name="radio" id="php" value="php" />
      php</label>
  </p>
  <p>注意上传pdf格式文件时尽量使用黑白扫描格式,否则数据量过大会造成某些未调优参数的服务器端技术处理失败。</p>
  <p>
    <input type="button" value="扫描"  id="btnScan"/>
    <input type="button" value="上传单页结果"  id="btnUpload1"/>
    <input type="button" value="上传全部结果"  id="btnUpload2"/>
  </p>
  <object classid="clsid:15D142CD-E529-4B01-9D62-22C9A6C00E9B" id="scaner1" width="100%" height="600" codebase="../cabs/ScanOnWeb.cab#version=1,0,0,10">

  </object>
</form>
</body>
</html>
---------------------------------------------------------------
jsp文件:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*,java.io.*" errorPage="" %>
<%
String savePath=config.getServletContext().getRealPath("/")+"//";

File tmp_path=new File(savePath);
tmp_path.mkdirs();
System.out.println("照片数据保存路径:"+savePath);


String pic_base_64_data=request.getParameter("picData");

//如果下面的代码输出true则说明需要调整服务器软件工作参数,解决接受post数据的大小限制问题,例如
//tomcat的话需要在server.xml中配置maxPostSize="0"来解除上传数据的大小限制   <Connector port="8080" protocol="HTTP/1.1"
//               connectionTimeout="20000"
//               redirectPort="8443" maxPostSize="0"/>
//
System.out.println(null==pic_base_64_data);

System.out.println("base64 string length:"+pic_base_64_data.length());
String fileFormat=request.getParameter("picExt");
sun.misc.BASE64Decoder decode=new sun.misc.BASE64Decoder();

byte[] datas=decode.decodeBuffer(pic_base_64_data);

String filename=String.valueOf(System.currentTimeMillis())+fileFormat;
File file=new File(savePath+filename);
OutputStream fos=new FileOutputStream(file);
System.out.println("图片文件名称:"+filename);
fos.write(datas);
fos.close();

out.print("<a href='" + filename + "'>click here</a>");
out.flush();
out.close();
%>

以上代码下载见下面的链接。

分享到:
评论
1 楼 andy_rain 2011-01-18  
扫描身份证或二代身份证行不行啊?

相关推荐

    jsp扫描仪操作代码

    "jsp扫描仪操作代码"提供了一种使用Java技术控制扫描仪的方法,尤其适用于基于Java技术的Web项目。以下是对这个主题的详细解释: 1. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,它允许开发人员将Java...

    Kodak图象扫描控件,程序使用扫描仪

    Kodak图象扫描控件是由Kodak公司提供的一个专门用于图像处理的开发工具,它允许程序员在Windows操作系统环境下,通过编程方式控制扫描仪进行图像的扫描、编辑以及保存。该控件支持多种常见的图像格式,包括但不限于...

    jsp数据库编程指南

    在JSP中,模型(Model)负责处理数据,视图(View)用于展示结果,控制器(Controller)处理用户请求。数据库编程通常在模型层进行,确保业务逻辑与显示分离。 ### 7. 事务处理 在涉及多条SQL语句的数据库操作中,...

    Head First Servlet JSP 完整扫描版. (中文版),

    《Head First Servlet JSP》是一本专为初学者设计的、深入浅出的Servlet和JSP教程,中文版的完整扫描版提供了全面的学习资源。这本书以其独特的教学方式,通过丰富的图表、幽默的插图和非线性的学习路径,帮助读者...

    Servle和JSP学习指南,完整扫描版

    第8~10章讨论Servlet中的事件驱动编程、过滤器,以及Model 2架构;第11章展示如何利用Servlet 3的文件上传特性,以及如何在客户端改善用户的体验;第12章解释如何通过编程方式将资源发送到浏览器;第13章介绍如何...

    servlet与jsp核心编程英文版Core Servlets and Javaserver Pages V1 第2版卷二

    《servlet与jsp核心编程 第2版 卷二》是关于Java技术的书籍,主要介绍了Servlet和JSP的高级应用和相关技术。Servlet是一种用于扩展服务器功能的Java类,是Java Web应用的核心技术之一,用于生成动态内容,处理客户端...

    JAVA 插件化漏洞扫描器.zip

    Java插件化漏洞扫描器是一款基于JavaFX图形用户界面(GUI)设计的工具,主要用于检测和识别Java应用程序中的安全漏洞,特别是针对Weblogic、Tomcat、Shiro和Spring等流行框架的潜在问题。这款扫描器的出现,对于IT...

    jsp购物车,分页,生成订单,发邮件

    【JSP购物车系统详解】 在电子商务网站中,购物车是一个不可或缺的功能模块,它允许用户临时存储想要购买...通过深入学习和实践,开发者不仅可以掌握JSP编程,还能了解到Web应用的完整开发流程,提升自己的技术能力。

    Nessus的Web客户端(jsp)

    Nessus是一款广泛使用的网络漏洞扫描器,由Tenable Network Security公司开发。它的Web客户端是其功能的一部分,允许用户通过Web界面远程管理和控制Nessus扫描器,这大大提升了其可访问性和便捷性。在本篇文章中,...

    springmvc整合mybatis加jsp实现简单的增删改查

    3. **配置SpringMVC**:创建`springmvc-servlet.xml`配置文件,配置DispatcherServlet、视图解析器、数据源、MyBatis的SqlSessionFactoryBean以及相关Mapper扫描路径。 4. **配置MyBatis**:编写`mybatis-config....

    JSP使用C标签时必须引入的jar包

    这个目录是JSP容器(如Tomcat)自动扫描并加载第三方库的地方。 3. **配置web.xml**:打开WEB-INF下的web.xml文件,添加以下配置来声明JSTL的依赖: ```xml &lt;taglib-uri&gt;/WEB-INF/c.tld &lt;taglib-location&gt;/WEB...

    Servlet+JSP和Spring+MVC初学指南 书籍配套源码

    Spring框架是Java企业级应用的基石,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,简化了开发过程。Spring MVC是Spring框架的一部分,它是一个模型-视图-控制器(MVC)架构模式的实现,专门用于构建Web...

    jsp 播客系统

    4. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一组标准的标签库,可以简化JSP页面的编程,如处理循环、条件判断、国际化等功能。在播客系统中,JSTL的`fmt`库可能用于日期和时间格式化,`fn`库用于...

    jsp+sql物流管理系统源码

    JSP的优势在于与Java语言的无缝结合,提供了强大的后端处理能力,支持面向对象编程,易于维护和扩展。 1. **JSP页面结构**:JSP页面主要由静态内容(HTML、CSS、JavaScript)和动态脚本元素(Java代码片段、声明、...

    JSP+Oracle 学生课程信息管理系统(完整源码+数据库)

    在本系统中,Servlet作为控制器,接收JSP发送的请求,执行相应的业务逻辑,如添加、删除、更新和查询学生课程信息,然后将处理结果返回给JSP进行显示。 Oracle数据库是全球广泛使用的大型关系型数据库管理系统,以...

    Servlet JSP Spring MVC初学指南(alin书签).pdf

    3. **Spring MVC入门**:理解DispatcherServlet的作用,配置Spring MVC的上下文和组件扫描,以及配置视图解析器。 4. **Model-View-Controller**:了解MVC模式的工作原理,如何创建模型、控制器和视图。 5. **请求...

    jsp毕业设计——jsp高校学生考勤管理系统设计与实现(源代码+论文).zip

    - **JSTL(JavaServer Pages Standard Tag Library)**:提供了一系列标准标签,简化JSP页面的编程,提高可读性和可维护性。 - **CSS和JavaScript**:用于美化用户界面和实现前端验证。 此外,项目的完整交付物包括...

    计算机学院软件专业JSP课程教学网站开题报告.pdf

    根据提供的文件信息,我们可以提炼出以下关于计算机专业软件专业JSP课程教学网站的开题报告内容...由于文档内容存在部分扫描错误和不连贯性,理解可能有误差,但整体内容点应覆盖了JSP课程教学网站开题报告的核心要素。

    运用jsp的论坛系统

    - JSTL(JavaServer Pages Standard Tag Library):简化JSP页面的编程,提供标签库,如条件判断、迭代等。 - JDBC:与数据库交互,执行SQL语句。 - HTML/CSS/JavaScript:构建用户界面,提升用户体验。 - AJAX:...

Global site tag (gtag.js) - Google Analytics