日期:2014-05-16  浏览次数:20330 次

利用Word打印报表(三)----在jsp中利用word打印指定格式的会议记录
在开发网络应用程序时,有时需要对输入的信息按指定的格式进行打印。例如在办公自动化系统中,录入的会议记录信息就需要按指定的格式打印。本实例将介绍如何在JSP中实现利用Word自动打印指定格式的会议记录。运行本实例,在页面中输入相应的会议信息,单击“Word打印”按钮,即可将录入的会议信息导出到指定的Word文档中,并自动按该文档指定的格式打印。实例运行结果如图11.7所示。
技术要点
在JSP中实现利用Word自动打印指定格式的会议记录的步骤如下。
(1)应用JavaScript的ActiveXObject()构造函数创建一个Word.Application对象的实例。
(2)打开指定的Word文档,这里需要应用JSP的内置对象request的getRequestURL()方法获取模板文档所在路径。
(3) 通过Word.Application对象的Bookmarks集合的相应方法将表单内容写入到指定的Word文档中。
(4)调用wdapp.Application.Printout()实现自动打印Word文档。
实现过程
(1)创建一个Word文档,在该文档中设计好要打印的会议记录的格式,并将其保存到实例根目录下,名称为meetingDot.doc。

图11.7  在JSP中利用Word自动打印指定格式的会议记录
(2)在创建好的Word文档中的指定位置插入书签。插入书签的方法如下:首先选中需要替换的文本,然后选择“插入”→“书签”选项,在打开的对话框中输入书签名,并单击“添加”按钮即可。
(3)在实例主页面中添加用于收集会议信息的表单及表单元素,具体设置如表11.2所示。
表11.2                                                   页面中所涉及的表单元素
名    称 元 素 类 型 重 要 属 性 含    义
form1 form Method="post" action="" 表单
title text size="50" 会议标题
meetingTime text 会议时间
compere text 主持人
attend text size="58" 出席人员
content text 会议内容

(4)编写自定义JavaScript函数outDoc(),用于将表单收集的数据导出到Word中,并进行自动打印,代码如下:
<%
//获取模板文档所在的路径
int at=request.getRequestURL().lastIndexOf("/");
String path_part=request.getRequestURL().substring(0,at+1);
%>
<script language="javascript">
function outDoc(){
   var wdapp=new ActiveXObject("Word.Application");
   wdapp.visible=true;
   wddoc=wdapp.Documents.Open("<%=path_part%>meetingDot.doc");     //打开指定的文档
   var form=document.all.form1;
   title=form.title.value;
   meetingTime=form.meetingTime.value;
   compere=form.compere.value;
   attend=form.attend.value;
   content=form.content.value;
   //输出会议标题
   range =wdapp.ActiveDocument.Bookmarks("title").Range;
   range.Text=title; 
   //输出会议时间
   range =wdapp.ActiveDocument.Bookmarks("meetingTime").Range;
   range.Text=meetingTime; 
   //输出会议主持人
   range =wdapp.ActiveDocument.Bookmarks("compere").Range;
   range.Text=compere; 
   //输出出席人员
   range =wdapp.ActiveDocument.Bookmarks("attend").Range;
   range.Text=attend;
   //输出会议内容
   range =wdapp.ActiveDocument.Bookmarks("content").Range;
   range.Text=content;    
   wddoc.Application.Printout();
   wdapp=null;
}
</script>
(5)通过单击“Word打印”按钮调用自定义JavaScript函数outDoc()。关键代码如下:
<input name="Submit" type="button" class="btn_grey" onClick="outDoc()" value="Word打印">
  http://blog.csdn.net/nedvedno1/article/details/1880420