11.2 利用Word打印报表
Microsoft Word是Microsoft提供的文档处理软件,它在处理、打印文档、资料过程中所显现出来的强大功能是有目共睹的。本节将介绍如何将网页中的数据直接导出到Word中,直接进行打印或处理后再进行打印。
实例295 将页面中的表格导出到Word并打印
实例说明
在开发动态网站时,经常会遇到打印页面中的指定表格的情况,这时可以将要打印的表格导出到Word中,然后再打印。本实例将介绍如何将页面中的订单列表导出到Word并打印。运行本实例,在页面中将显示订单信息列表,单击“打印”超级链接后,将把Web页中的数据导出到Word的新建文档中,如图11.5所示,并保存在Word的默认文档保存路径中,最后调用打印机打印该文档。
技术要点
本实例主要应用JavaScript的ActiveXObject()构造函数创建一个OLE Automation(ActiveX)对象的实例,并应用该实例的相关方法实现。
ActiveXObject()构造函数的一般语法格式如下:
var objectVar = new ActiveXObject(class[, servername]);
参数说明
l objectVar:用于指定引用对象的变量。
l class:用于指定应用程序的名字或包含对象的库,并且指定要创建的对象的类型。采用library.object的语法格式,如“Word.Application”表明要创建的是Word对象。
l servername:可选参数,用于指定包含对象的网络服务器的名字。
图11.5 将页面中的表格导出到Word并打印
说明:每个支持自动化的应用程序都至少提供一种对象类型。例如一个字处理应用程序可能会提供Application对象,Document对象,以及Toolbar对象等。
实现过程
(1)将显示订单信息的表格的id设置为order,因为要打印该表格中的数据。关键代码如下:
<table id="order" width="100%" height="48" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#CCCCCC" bordercolorlight="#FFFFFF">
(2)编写自定义JavaScript函数outDoc(),用于将Web页面中的订单信息导出到Word中,并进行自动打印,代码如下:
<script language="javascript">
function outDoc(){
var table=document.all.order;
row=table.rows.length;
column=table.rows(1).cells.length;
var wdapp=new ActiveXObject("Word.Application");
wdapp.visible=true;
wddoc=wdapp.Documents.Add(); //添加新的文档
thearray=new Array();
//将页面中表格的内容存放在数组中
for(i=0;i<row;i++){
thearray[i]=new Array();
for(j=0;j<column;j++){
thearray[i][j]=table.rows(i).cells(j).innerHTML;
}
}
var range = wddoc.Range(0,0);
range.Text="订单信息列表"+"\n";
wdapp.Application.Activedocument.Paragraphs.Add(range);
wdapp.Application.Activedocument.Paragraphs.Add();
rngcurrent=wdapp.Application.Activedocument.Paragraphs(3).Range;
var objTable=wddoc.Tables.Add(rngcurrent,row,column) //插入表格
for(i=0;i<row;i++){
for(j=0;j<column;j++){
objTable.Cell(i+1,j+1).Range.Text = thearray[i][j].replace(" ","");
}
}
wdapp.Application.ActiveDocument.SaveAs("orderInfo.doc",0,false,"",true,"",false,false,false,false,false); //保存到Word的默认文档保存路径中
wdapp.Application.Printout(); //自动打印
wdapp=null;
}
</script>
技巧:在Word中查看并修改默认文档保存路径的方法如下,选择“工具”→“选项”选项,在弹出的对话框中选择“文件位置”选项卡,在该选项卡中选中“文档”列表项,单击“更改”按钮,在弹出的对话框中选择默认文档保存路径,连续单击“确定”按钮即可。
(3)通过单击“打印”超级链接调用自定义JavaScript函数outDoc()。关键代码如下:
<a href="#" onClick="outDoc();">打印</a>
举一反三
根据本实例,读者可以:
在企业进销存管理系统中打印各种报表;
将Web页面中的数据自动保存到Word中。
实例296 打开指定的Word文档并打印
实例说明
在制作网站时,有时需要打开指定的Word文档并打印该文档。运行本实例,单击“浏览”按钮,打开“选择文件”对话框,在该对话框中选择要打印的Word文档,单击“打开”按钮,返回到如图11.6所示的“打开指定的Word文档并打印”页面,单击“打开Word并打印”按钮,将调用Word并自动打印选择的文档。
图11.6 打开指定的Word文档并打印
技术要点
实现利用JavaScript打开指定的Word文档并打印的思路如下:
(1)应用JavaScript的ActiveXObject()构造函数创建一个Word.Application对象的实例。
(2)激活刚刚创建的Word.Application对象的实例。
(3)通过Word.Application对象的Documents集合的Open()方法打开指定的Word文档。
(4)调用wdapp.Application.Printout()实现自动打印Word文档。
实现过程
(1)编写打开Word文档的JavaScript自定义函数openWord()。代码如下:
<script language="javascript">
function openWord(filename){
try {
var wrd=new ActiveXObject("word.Application");
wrd.visible=true;
wrd.Documents.Open(filename);
wrd.Application.Printout();
wrd=null;
}
catch(e){}
}
</script>
(2)在页面的适当位置添加一个用于选择文件的文件域,名称为file1,代码如下:
<input name="file1" type="file" class="textarea" id="file1" size="35">
(3)在“打开Word并打印”按钮的onClick事件中调用自定义JavaScript函数openWord(),打开指定的Word文档并打印。关键代码如下。
<input name="Submit2" type="button" class="btn_grey" onClick="openWord(file1.value)"
value="打开Word并打印">
举一反三
根据本实例,读者可以:
打开指定的Word文档修改后再打印。
实例297 在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打印">
举一反三
根据本实例,读者可以:
在JSP中开发打印客户订单;
在JSP中开发打印各种样式的报表。
实例298 在ASP中利用Word自动打印指定格式的会议记录
实例说明
在开发网络应用程序时,有时需要对输入的信息按指定的格式进行打印。例如在办公自动化系统中,录入的会议记录信息就需要按指定的格式打印。本实例将介绍如何在ASP中实现利用Word自动打印指定格式的会议记录。运行本实例,在页面中输入相应的会议信息,单击“Word打印”按钮,即可将录入的会议信息导出到指定的Word文档中,并自动按该文档指定的格式打印。实例运行结果如图11.8所示。
图11.8 在ASP中利用Word自动打印指定格式的会议记录
技术要点
在ASP中实现利用Word自动打印指定格式的会议记录的步骤如下。
(1)应用JavaScript的ActiveXObject()构造函数创建一个Word.Application对象的实例。
(2)打开指定的Word文档,这里需要应用ASP的内置对象request的ServerVariables()方法获取模板文档所在路径。
(3)通过Word.Application对象的Bookmarks集合的相应方法将表单内容写入到指定的Word文档中。
(4)调用wdapp.Application.Printout()实现自动打印Word文档。
实现过程
(1)创建一个Word文档,在该文档中设计好要打印的会议记录的格式,并将其保存到实例根目录下,名称为meetingDot.doc。
(2)在创建好的Word文档中的指定位置插入书签。插入书签首先选中需要替换的文本,然后选择“插入”→“书签”选项,在打开的对话框中输入书签名,并单击“添加”按钮即可。
(3)在实例主页面中添加用于收集会议信息的表单及表单元素,具体设置如表11.3所示。
表11.3 页面中所涉及的表单元素
名 称
元 素 类 型
重 要 属 性
含 义
form1
form
Method="post" action=""
表单
title
text
size="50"
会议标题
meetingTime
text
会议时间
compere
text
主持人
attend
text
size="58"
出席人员
content
text
会议内容
(4)编写自定义JavaScript函数outDoc(),用于将表单收集的数据导出到Word中,并进行自动打印,代码如下:
<%
'获取模板文档所在的路径
path=mid(request.ServerVariables("URL"),1,InStrRev(request.ServerVariables("URL"),"/"))
path_part="HTTP://"&request.ServerVariables("LOCAL_ADDR")&":"&_
request.ServerVariables("SERVER_PORT")&path&"meetingDot.doc"
%>
<script language="javascript">
function outDoc(){
var wdapp=new ActiveXObject("Word.Application");
wdapp.visible=true;
wddoc=wdapp.Documents.Open("<%=path_part%>"); //打开指定的文档
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打印">
举一反三
根据本实例,读者可以:
在ASP中开发打印客户订单;
在ASP中开发打印各种样式的报表。
实例299 在PHP中调用Word自动打印指定格式的会议记录
实例说明
在开发网络应用程序时,有时需要对输入的信息按指定的格式进行打印。例如在办公自动化系统中,录入的会议记录信息就需要按指定的格式打印。本实例将介绍如何在PHP中实现调用Word自动打印指定格式的会议记录。运行本实例,在页面中输入相应的会议信息,单击“Word打印”按钮,即可将录入的会议信息导出到指定的Word文档中,并自动按该文档指定的格式打印,本实例运行结果如图11.9所示。
图11.9 在PHP中调用Word自动打印指定格式的会议记录
技术要点
在PHP中实现利用Word自动打印指定格式的会议记录的步骤如下。
(1)应用JavaScript的ActiveXObject()构造函数创建一个Word.Application对象的实例。
(2)打开指定的Word文档,这里需要应用PHP的函数获取模板文档所在路径,代码如下:
$path="http://".$HTTP_HOST.dirname($PHP_SELF)."/meetingDot.doc";
其中,$HTTP_HOST变量用于获取服务器名称,dirname($PHP_SELF)用于获取路径中的路径名。
(3)通过Word.Application对象的Bookmarks集合的相应方法将表单内容写入到指定的Word文档中。
(4)调用wdapp.Application.Printout()实现自动打印Word文档。
实现过程
(1)创建一个Word文档,在该文档中设计好要打印的会议记录的格式,并将其保存到实例根目录下,名称为meetingDot.doc。
(2)在创建好的Word文档中的指定位置插入书签。插入书签首先选中需要替换的文本,然后选择“插入”→“书签”选项,在打开的对话框中输入书签名,并单击“添加”按钮即可。
(3)在实例主页面中添加用于收集会议信息的表单及表单元素,具体设置如表11.4所示。
表11.4 页面中所涉及的表单元素
名 称
元 素 类 型
重 要 属 性
含 义
form1
form
Method="post" action=""
表单
title
text
size="50"
会议标题
meetingTime
text
会议时间
compere
text
主持人
attend
text
size="58"
出席人员
content
text
会议内容
Submit
button
class="btn_grey" onClick="outDoc()" value="Word打印"
“Word打印”按钮
(4)利用PHP获取模板文档所在的路径,代码如下:
<?php
//获取模板文档所在的路径
$path="http://".$HTTP_HOST.dirname($PHP_SELF)."/meetingDot.doc";
?>
(5)编写自定义JavaScript函数outDoc(),用于将表单收集的数据导出到Word中,并进行自动打印,代码如下:
<?php
//定义新型字符串
$str=<<<word
<script language="javascript">
function outDoc(){
var wdapp=new ActiveXObject("Word.Application");
wdapp.visible=true;
wddoc=wdapp.Documents.Open("$path"); //打开指定的文档
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>
word;
echo $str;
?>
(6)通过单击“Word打印”按钮调用自定义JavaScript函数outDoc()。关键代码如下:
<input name="Submit" type="button" class="btn_grey" onClick="outDoc()" value="Word打印">
举一反三
根据本实例,读者可以:
在PHP中开发打印客户订单;
在PHP中开发打印各种样式的报表。
Microsoft Word是Microsoft提供的文档处理软件,它在处理、打印文档、资料过程中所显现出来的强大功能是有目共睹的。本节将介绍如何将网页中的数据直接导出到Word中,直接进行打印或处理后再进行打印。
实例295 将页面中的表格导出到Word并打印
实例说明
在开发动态网站时,经常会遇到打印页面中的指定表格的情况,这时可以将要打印的表格导出到Word中,然后再打印。本实例将介绍如何将页面中的订单列表导出到Word并打印。运行本实例,在页面中将显示订单信息列表,单击“打印”超级链接后,将把Web页中的数据导出到Word的新建文档中,如图11.5所示,并保存在Word的默认文档保存路径中,最后调用打印机打印该文档。
技术要点
本实例主要应用JavaScript的ActiveXObject()构造函数创建一个OLE Automation(ActiveX)对象的实例,并应用该实例的相关方法实现。
ActiveXObject()构造函数的一般语法格式如下:
var objectVar = new ActiveXObject(class[, servername]);
参数说明
l objectVar:用于指定引用对象的变量。
l class:用于指定应用程序的名字或包含对象的库,并且指定要创建的对象的类型。采用library.object的语法格式,如“Word.Application”表明要创建的是Word对象。
l servername:可选参数,用于指定包含对象的网络服务器的名字。
图11.5 将页面中的表格导出到Word并打印
说明:每个支持自动化的应用程序都至少提供一种对象类型。例如一个字处理应用程序可能会提供Application对象,Document对象,以及Toolbar对象等。
实现过程
(1)将显示订单信息的表格的id设置为order,因为要打印该表格中的数据。关键代码如下:
<table id="order" width="100%" height="48" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#CCCCCC" bordercolorlight="#FFFFFF">
(2)编写自定义JavaScript函数outDoc(),用于将Web页面中的订单信息导出到Word中,并进行自动打印,代码如下:
<script language="javascript">
function outDoc(){
var table=document.all.order;
row=table.rows.length;
column=table.rows(1).cells.length;
var wdapp=new ActiveXObject("Word.Application");
wdapp.visible=true;
wddoc=wdapp.Documents.Add(); //添加新的文档
thearray=new Array();
//将页面中表格的内容存放在数组中
for(i=0;i<row;i++){
thearray[i]=new Array();
for(j=0;j<column;j++){
thearray[i][j]=table.rows(i).cells(j).innerHTML;
}
}
var range = wddoc.Range(0,0);
range.Text="订单信息列表"+"\n";
wdapp.Application.Activedocument.Paragraphs.Add(range);
wdapp.Application.Activedocument.Paragraphs.Add();
rngcurrent=wdapp.Application.Activedocument.Paragraphs(3).Range;
var objTable=wddoc.Tables.Add(rngcurrent,row,column) //插入表格
for(i=0;i<row;i++){
for(j=0;j<column;j++){
objTable.Cell(i+1,j+1).Range.Text = thearray[i][j].replace(" ","");
}
}
wdapp.Application.ActiveDocument.SaveAs("orderInfo.doc",0,false,"",true,"",false,false,false,false,false); //保存到Word的默认文档保存路径中
wdapp.Application.Printout(); //自动打印
wdapp=null;
}
</script>
技巧:在Word中查看并修改默认文档保存路径的方法如下,选择“工具”→“选项”选项,在弹出的对话框中选择“文件位置”选项卡,在该选项卡中选中“文档”列表项,单击“更改”按钮,在弹出的对话框中选择默认文档保存路径,连续单击“确定”按钮即可。
(3)通过单击“打印”超级链接调用自定义JavaScript函数outDoc()。关键代码如下:
<a href="#" onClick="outDoc();">打印</a>
举一反三
根据本实例,读者可以:
在企业进销存管理系统中打印各种报表;
将Web页面中的数据自动保存到Word中。
实例296 打开指定的Word文档并打印
实例说明
在制作网站时,有时需要打开指定的Word文档并打印该文档。运行本实例,单击“浏览”按钮,打开“选择文件”对话框,在该对话框中选择要打印的Word文档,单击“打开”按钮,返回到如图11.6所示的“打开指定的Word文档并打印”页面,单击“打开Word并打印”按钮,将调用Word并自动打印选择的文档。
图11.6 打开指定的Word文档并打印
技术要点
实现利用JavaScript打开指定的Word文档并打印的思路如下:
(1)应用JavaScript的ActiveXObject()构造函数创建一个Word.Application对象的实例。
(2)激活刚刚创建的Word.Application对象的实例。
(3)通过Word.Application对象的Documents集合的Open()方法打开指定的Word文档。
(4)调用wdapp.Application.Printout()实现自动打印Word文档。
实现过程
(1)编写打开Word文档的JavaScript自定义函数openWord()。代码如下:
<script language="javascript">
function openWord(filename){
try {
var wrd=new ActiveXObject("word.Application");
wrd.visible=true;
wrd.Documents.Open(filename);
wrd.Application.Printout();
wrd=null;
}
catch(e){}
}
</script>
(2)在页面的适当位置添加一个用于选择文件的文件域,名称为file1,代码如下:
<input name="file1" type="file" class="textarea" id="file1" size="35">
(3)在“打开Word并打印”按钮的onClick事件中调用自定义JavaScript函数openWord(),打开指定的Word文档并打印。关键代码如下。
<input name="Submit2" type="button" class="btn_grey" onClick="openWord(file1.value)"
value="打开Word并打印">
举一反三
根据本实例,读者可以:
打开指定的Word文档修改后再打印。
实例297 在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打印">
举一反三
根据本实例,读者可以:
在JSP中开发打印客户订单;
在JSP中开发打印各种样式的报表。
实例298 在ASP中利用Word自动打印指定格式的会议记录
实例说明
在开发网络应用程序时,有时需要对输入的信息按指定的格式进行打印。例如在办公自动化系统中,录入的会议记录信息就需要按指定的格式打印。本实例将介绍如何在ASP中实现利用Word自动打印指定格式的会议记录。运行本实例,在页面中输入相应的会议信息,单击“Word打印”按钮,即可将录入的会议信息导出到指定的Word文档中,并自动按该文档指定的格式打印。实例运行结果如图11.8所示。
图11.8 在ASP中利用Word自动打印指定格式的会议记录
技术要点
在ASP中实现利用Word自动打印指定格式的会议记录的步骤如下。
(1)应用JavaScript的ActiveXObject()构造函数创建一个Word.Application对象的实例。
(2)打开指定的Word文档,这里需要应用ASP的内置对象request的ServerVariables()方法获取模板文档所在路径。
(3)通过Word.Application对象的Bookmarks集合的相应方法将表单内容写入到指定的Word文档中。
(4)调用wdapp.Application.Printout()实现自动打印Word文档。
实现过程
(1)创建一个Word文档,在该文档中设计好要打印的会议记录的格式,并将其保存到实例根目录下,名称为meetingDot.doc。
(2)在创建好的Word文档中的指定位置插入书签。插入书签首先选中需要替换的文本,然后选择“插入”→“书签”选项,在打开的对话框中输入书签名,并单击“添加”按钮即可。
(3)在实例主页面中添加用于收集会议信息的表单及表单元素,具体设置如表11.3所示。
表11.3 页面中所涉及的表单元素
名 称
元 素 类 型
重 要 属 性
含 义
form1
form
Method="post" action=""
表单
title
text
size="50"
会议标题
meetingTime
text
会议时间
compere
text
主持人
attend
text
size="58"
出席人员
content
text
会议内容
(4)编写自定义JavaScript函数outDoc(),用于将表单收集的数据导出到Word中,并进行自动打印,代码如下:
<%
'获取模板文档所在的路径
path=mid(request.ServerVariables("URL"),1,InStrRev(request.ServerVariables("URL"),"/"))
path_part="HTTP://"&request.ServerVariables("LOCAL_ADDR")&":"&_
request.ServerVariables("SERVER_PORT")&path&"meetingDot.doc"
%>
<script language="javascript">
function outDoc(){
var wdapp=new ActiveXObject("Word.Application");
wdapp.visible=true;
wddoc=wdapp.Documents.Open("<%=path_part%>"); //打开指定的文档
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打印">
举一反三
根据本实例,读者可以:
在ASP中开发打印客户订单;
在ASP中开发打印各种样式的报表。
实例299 在PHP中调用Word自动打印指定格式的会议记录
实例说明
在开发网络应用程序时,有时需要对输入的信息按指定的格式进行打印。例如在办公自动化系统中,录入的会议记录信息就需要按指定的格式打印。本实例将介绍如何在PHP中实现调用Word自动打印指定格式的会议记录。运行本实例,在页面中输入相应的会议信息,单击“Word打印”按钮,即可将录入的会议信息导出到指定的Word文档中,并自动按该文档指定的格式打印,本实例运行结果如图11.9所示。
图11.9 在PHP中调用Word自动打印指定格式的会议记录
技术要点
在PHP中实现利用Word自动打印指定格式的会议记录的步骤如下。
(1)应用JavaScript的ActiveXObject()构造函数创建一个Word.Application对象的实例。
(2)打开指定的Word文档,这里需要应用PHP的函数获取模板文档所在路径,代码如下:
$path="http://".$HTTP_HOST.dirname($PHP_SELF)."/meetingDot.doc";
其中,$HTTP_HOST变量用于获取服务器名称,dirname($PHP_SELF)用于获取路径中的路径名。
(3)通过Word.Application对象的Bookmarks集合的相应方法将表单内容写入到指定的Word文档中。
(4)调用wdapp.Application.Printout()实现自动打印Word文档。
实现过程
(1)创建一个Word文档,在该文档中设计好要打印的会议记录的格式,并将其保存到实例根目录下,名称为meetingDot.doc。
(2)在创建好的Word文档中的指定位置插入书签。插入书签首先选中需要替换的文本,然后选择“插入”→“书签”选项,在打开的对话框中输入书签名,并单击“添加”按钮即可。
(3)在实例主页面中添加用于收集会议信息的表单及表单元素,具体设置如表11.4所示。
表11.4 页面中所涉及的表单元素
名 称
元 素 类 型
重 要 属 性
含 义
form1
form
Method="post" action=""
表单
title
text
size="50"
会议标题
meetingTime
text
会议时间
compere
text
主持人
attend
text
size="58"
出席人员
content
text
会议内容
Submit
button
class="btn_grey" onClick="outDoc()" value="Word打印"
“Word打印”按钮
(4)利用PHP获取模板文档所在的路径,代码如下:
<?php
//获取模板文档所在的路径
$path="http://".$HTTP_HOST.dirname($PHP_SELF)."/meetingDot.doc";
?>
(5)编写自定义JavaScript函数outDoc(),用于将表单收集的数据导出到Word中,并进行自动打印,代码如下:
<?php
//定义新型字符串
$str=<<<word
<script language="javascript">
function outDoc(){
var wdapp=new ActiveXObject("Word.Application");
wdapp.visible=true;
wddoc=wdapp.Documents.Open("$path"); //打开指定的文档
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>
word;
echo $str;
?>
(6)通过单击“Word打印”按钮调用自定义JavaScript函数outDoc()。关键代码如下:
<input name="Submit" type="button" class="btn_grey" onClick="outDoc()" value="Word打印">
举一反三
根据本实例,读者可以:
在PHP中开发打印客户订单;
在PHP中开发打印各种样式的报表。