找到一种很不错的web打印方法,与大家分享,
使用一个打印控件,jatoolsPrinter,就可以做到打印web页面中的任何部分,我们先来设计一个web页面,如下所示:
<html>
<head>
<title>我的第一个打印文档</title>
</head>
<body bgcolor="#e0e0e0">
<div id='page1' style='background:#ffffff;margin:10;width:270;height:450;float:left'>文档第一页</div>
<div id='page2' style='background:#ffffff;margin:10;width:270;height:450;float:left'>文档第二页</div>
</body>
</html>
在这个文档中,有两个div对象,现在我想把这两个div对象打印输出,每个div作为单独的一页进行打印。显然ie没有提供这样的功能, 在ie中,您不能指定哪些元素打印在第一页,哪些元素打印在第二页等等,但是,jatoolsPrinter做到了,我们来看看jatoolsPrinter是如何做到的,现在我们就在页面中插入这个控件,如下所示。
<html>
<head>
<title>我的第一个打印文档</title>
<!-- 插入打印控件 -->
<OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D975-4BE2-87FE-057188254255" codebase="jatoolsP.cab#version=1,2,0,7"></OBJECT>
</head>
<body bgcolor="#e0e0e0">
<div id='page1' style='background:#ffffff;margin:10;width:270;height:450;float:left'>文档第一页</div>
<div id='page2' style='background:#ffffff;margin:10;width:270;height:450;float:left'>文档第二页</div>
</body>
</html>
这个控件的id是 jatoolsPrinter,这个控件有一个方法是 print 用来打印一系列div对象。请看下面的脚本:
function doPrint()
{
myreport = {
// 要打印的div 对象在本文档中,控件将从本文档中的 id 为 'page1' 的div对象,作为首页打印
// id 为 'page2' 的作为第二页打印
documents:document;
};
jatoolsPrinter.print(myreport,false); // 直接打印,不弹出打印机设置对话框
}
由上可见,您打印若干 div对象时,需要告诉控件,这些div们所属的文档对象(html的document对象),另外,这些div对象的id,也需要按 ‘page+序号‘ 的规则命名,序号从1开始计,也就是说,id为'page1'的div对象,总是作为首页打印。这些设置使用一个javasc
ript对象来描述,也就是上面的myreport对象,具体使用方法请参 考文档打印对象 ,下面是完整的html代码:
<html>
<head>
<title>我的第一个打印文档</title>
<!-- 插入打印控件 -->
<OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D975-4BE2-87FE-057188254255" codebase="jatoolsP.cab#version=1,2,0,7"></OBJECT>
<script>
function doPrint()
{
myreport = {
documents:document,
copyrights:'杰创软件拥有版权
www.jatools.com' // 版权声明,必须
};
jatoolsPrinter.print(myreport,false); // 直接打印,不弹出打印机设置对话框
}
<script>
</head>
<body bgcolor="#e0e0e0">
<div id='page1' style='background:#ffffff;margin:10;width:270;height:450;float:left'>文档第一页</div>
<div id='page2' style='background:#ffffff;margin:10;width:270;height:450;float:left'>文档第二页</div>
<input type="button" value="按钮" onClick='doPrint()'>
</body>
</html>