JATOOLSPRINTER控件
2009-05-21 17:24
267 查看
jatoolsPrinter 使用手册
简介安装
快速入门
最简单的打印预览
打印前设置打印参数
保留打印时的打印参数
第一次打印用当前配置,后续打印用最后一次打印配置
批量打印文档
多个文档共存在同一web页面中,区别打印
不显示文档,直接指定url打印
打印隐藏对象
仅在预览时可见,不输出到打印机的套打底图
打印结束后提交数据
为什么要使用回调方法
打印后关闭窗口
使用自动分页
表格自动分页,表头每页可见
![](image/newh.gif)
双面打印
显示页面设置对话框后打印
选择打印机进行打印
选择打印机,纸张类型,边距进行打印
设置图文并茂的页脚页眉
附录:API 参考手册
简介:
jatoolsPrinter 是一款实现网页套打的专门工具。作为web应用开发者,我们经常会遇到在浏览器中打印报表、票据的需求,浏览器本身 提供的打印功能一般不能满足这些需求,如精确分页,套打等。jatoolsPrinter正是为了解决这些需求而专门研发的。使用jatoolsPrinter可以最大限度地实现对web页面的打印控制,比如,输出到哪个打印机,什么纸张类型,是否打印附件等。设置图文并茂的页眉、页脚,自动分页或程序分页。你也可以利用jatoolsPrinter随心所欲地定制出自己的打印设置界面,更好地满足项目需求。
jatoolsPrinter不同于报表工具,它只解决web客户端的html页面的打印问题,至于这些页面如何生成,格式怎样需要你自己做后端的开发(使用jsp,asp,或php等),因此,你可以有很大的自由度来定制格式。jatoolsPrinter也没有可视化的票据或报表设计工具,而一般报表工具都有可视化的报表设计器。jatoolsPrinter只需要在web服务器的一个目录中,放置一个控件文件即算配置完成,而报表工具一般在服务端需要配置报表服务引擎。
jatoolsPrinter是本公司报表产品杰表的一个组件,2006年起单独发展成品。如果你需要可视化的套打设计工具、各种格式(Excel,pdf)导出、表格无折断分页等更为强大的功能,建议你采用本公司的报表产品,杰表.2008。
安装:
服务端:可以是任何操作系统,任何web服务器,比如iis、tomcat、weblogic、websphere等。客户端:windows操作系统(除win95/98外),Internet Explorer5.5及以上版本。
1. 服务端
先来看一个示例网页 test.htm
<html> ... <OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D975-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=4,0,0,0"></OBJECT> ... </html>
如果你访问该网页的地址是:
http://www.abc.com/print/test.htm
则你必须将 jatoolsPrinter.cab放在 http://www.abc.com/print/jatoolsPrinter.cab 可以访问到的地方。总之,jatoolsPrinter.cab位置,需要根据当前网页路径与codebase属性,来确定。请体会以下示例:
例一、
网页地址: http://www.abc.com/print/test.htm codebase属性: xyz/jatoolsPrinter.cab#version=4,0,0,0
jatoolsPrinter.cab地址: http://www.abc.com/print/xyz/jatoolsPrinter.cab 例二、
网页地址: http://www.abc.com/print/test.jsp codebase属性: /jatoolsPrinter.cab#version=4,0,0,0
jatoolsPrinter.cab地址: http://www.abc.com/jatoolsPrinter.cab 2. 浏览器端
当你访问使用打印控件的网页时,浏览器将从服务器上下载控件,自动安装到ie中。当然,如果你的IE安全设置过高,也可能不能自动安装,这时,你需要改变IE的安全设置,或进行离线安装。如果你需要离线安装,可以向我们申请离线安装包。 IE安全设置方法如下:
IE 浏览器->工具-> internet 选项->安全->自定义级别,设置下载未签名的 ActiveX为启用状态。如下图所示:
![](image/guide.1.jpg)
注:jatoolsPrinter 4.0以后的版本,都经过微软认证的签名,因此,多数情况下无须设置IE安全属性。
快速入门
我们先来设计一个web页面,如下所示:<html> <head> <title>我的第一个打印文档</title> </head> <body bgcolor="#e0e0e0"> <div id='page1' style='background:#ffffff;margin:10;width:270;height:450;float:left'>发票1 金额:80</div> <div id='page2' style='background:#ffffff;margin:10;width:270;height:450;float:left'>发票2 金额:100</div> </body> </html>
在这个文档中,有两个div对象,假设每个div中包括一张要打印的发票,现在要求是把这两张发票打印出来,而且,一张发票占据一页,如果你使用ie自带的打印菜单来打印,有可能只打印一页,有可能打印超过两页,有可能发票打印到一半时就分页,总之,如何分页取决于打印纸张的大小,及发票的大小,你不能控制页数及分页位置。那么,jatoolsPrinter是如何处理这样的需求的呢?
首先,我们在页面中插入这个控件,如下所示。
<html> <head> <title>我的第一个打印文档</title> <!-- 插入打印控件 --> <OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D975-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=4,0,0,0"></OBJECT> </head> <body bgcolor="#e0e0e0"> <div id='page1' style='background:#ffffff;margin:10;width:270;height:450;float:left'>发票1 金额:80</div> <div id='page2' style='background:#ffffff;margin:10;width:270;height:450;float:left'>发票2 金额:100</div> </body> </html>
其次,调用控件的 print 方法实现打印,如下所示:
function doPrint() { myDoc = { documents:document; // 要打印的div 对象在本文档中,控件将从本文档中的 id 为 'page1' 的div对象,作为首页打印 // id 为 'page2' 的作为第二页打印 }; jatoolsPrinter.print(myDoc,false); // 直接打印,不弹出打印机设置对话框 }
由上可见,你打印若干 div对象时,需要告诉控件,这些div们所属的文档对象(html的document对象),另外,这些div对象的id,也需要按 ‘page+序号‘ 的规则命名,序号从1开始计,也就是说,id为'page1'的div对象,总是作为首页打印。这些设置使用一个javascript对象来描述,也就是上面的myDoc对象,下面是完整的html代码:
<html> <head> <title>我的第一个打印文档</title> <!-- 插入打印控件 --> <OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D975-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=4,0,0,0"></OBJECT> <script> function doPrint() { myDoc = { documents:document, // 要打印的div 对象在本文档中,控件将从本文档中的 id 为 'page1' 的div对象,作为首页打印 // id 为 'page2' 的作为第二页打印 copyrights:'杰创软件拥有版权 www.jatools.com' // 版权声明,必须 }; jatoolsPrinter.print(myDoc,false); // 直接打印,不弹出打印机设置对话框 } </script> </head> <body bgcolor="#e0e0e0"> <div id='page1' style='background:#ffffff;margin:10;width:270;height:450;float:left'>发票1 金额:80</div> <div id='page2' style='background:#ffffff;margin:10;width:270;height:450;float:left'>发票1 金额:100</div> <input type="button" value="打印" onClick=' doPrint()'> </body> </html>
运行示例
最后,有几点需要说明:
1. 控件在打印指定div对象时,如果纸张太小不够打印时,超出部分将被截掉(clip)。如果你不想被截掉,你可以使用自动分页功能,参照自动分页打印 。
2. 被指定的div中的内容,可以是html任何可见对象,图片,flash,或文本等等。
3. 控件打印时,边距可设,不设则取打印机默认值。
4. div的id必须连续,如果你的div,存在 'page1'、‘page2’、‘page4’,而不存在‘page3’,则控件只打印前两页,'page4'不会被打印。
5. div对象在页面中的位置,可以是随意的,比如,page1显示在page2后面,也是合法的。
6. 指定的div会被打印,没被指定的html元素将不会被打印,比如,本示例中的‘打印’按钮。
7. copyrights属性是版权信息,必须写。
最简单的打印预览
下面是一个最简单的打印,打印按默认设置进行。运行此示例//打印文档对象 var myDoc ={ documents: document, // 打印页面(div)们在本文档中 copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 }; ... jatoolsPrinter.print(myDoc,false);
打印前设置打印参数
你可以打印前设置打印参数,如设置输出的打印机,打印方向,纸张大小。 运行此示例//打印文档对象 var myDoc ={ settings:{ // 如果想使用默认打印机,不需要设置 // printer: '联想激打', // 指定纸张的高宽以毫米为单位z,本设置实际是指定为a4大小 pageWidth : 2100, pageHeight : 2970, // 指定打打印方向为横向, 1/2 = 纵向/横向 orientation : 2 }, documents: document, // 打印页面(div)们在本文档中 copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 };
保留打印时的打印参数
可以保留打印时的打印参数,待下一次打印同一文档时自动配置打印参数 。运行此示例//打印文档对象 var myDoc ={ //待保留的打印设置id,打印后将被保存在注册表中, //下一次启动相同值的settingsID,打印文档时, //控件将用保留的参数,自动设置打印机 settingsID:"mysettings1", documents: document, copyrights : '杰创软件拥有版权 www.jatools.com' };
为什么需要保存设置功能?
保存设置功能,通常用在以下两种情况:
(1)一个套打系统,由于各客户端打印机不同,或者进纸盒的位置不同,或者其他原因,可能引起打印出来的票据位置发生偏移,用户希望能根据自己打印机的状况,自行调整边距以纠正位置,但不希望每次打印前,都进行一次手工调整。
(2)一个客户端配置了多台打印机,分别用于打印不同类型的文档,用户不希望每次打印一个文档前,选择一次打印机;
对于第一种情况,你可以这样解决:
1. 页面中设置两个按钮,一个"直接打印",一个"打印预览";
2. 当客户发现位置有偏移时,可以点击"打印预览"按钮,调整左、上边距,并打印这个页面;
3. 如果发现位置还不理想,则重复第2步,如果正确,则下一次打印这个票据时,只需点击"直接打印"即可保证位置正确。
对于第二种多种打印机的情况,你可以这样解决:
1. 页面中设置两个按钮,一个"直接打印",一个"打印预览";
2. 第一次打印时,可以点击"打印预览"按钮,选择你想要的打印机进行打印;
3. 则下一次打印这个票据时,只需点击"直接打印"即可保证输出到正确的打印机。
提一点建议:因为"打印预览"按钮不常用,最好不要跟"直接打印"按钮并排放在一起,以避免干扰。
保存设置参数的工作原理是怎样的?
控件是如何保留设置参数的,有些用户感觉困惑,下面介绍一下保留与加载打印参数的工作原理。
保存设置参数原理:
1. 客户打印一个文档到打印机后;
2. 控件触发打印完成事件;
3. 控件响应打印完成事件,查询本次打印是否有myDoc.settingsID属性,如果有,则保存本次打印的配置参数到注册表(如果注册表中存在该id设置,则替换以前设置)。
所以,保存打印参数的前提是:已经输出到打印机,并且设置了myDoc.settingsID。有些用户,只在控件的预览窗口中设置了边距等,而不实际打印,这样,控件是不会保留你的设置的。
加载打印参数原理:
1. 客户在预览或打印前,控件查询是否有 myDoc.settingsID属性;
2. 如果有myDoc.settingsID属性,控件尝试从注册表中读入该id相关的配置参数,如果存在,则用该配置参数来设置打印机(即忽略myDoc.settings里的设置),转第4步;
3. 根据用户的myDoc.settings里的设置,设置打印参数;
4. 根据设置,启动打印或打印预览。
第一次打印用当前配置,后续打印用最后一次打印配置
运行此示例//打印文档对象 var myDoc ={ settings:{ // 当前设置 // printer: '联想激打', pageWidth : 2100, pageHeight : 2970, orientation : 2 }, //第一次打印时,注册表中没有‘mysettings2’的打印参数 //所以使用上面指定的参数 //打印后,控件自动将最后一次打印设置保存 //后续打印时将用注册表中的设置,来自动配置打印机 //上述的settings将被忽略 settingsID : "mysettings2", documents: document, copyrights : '杰创软件拥有版权 www.jatools.com' };
批量打印文档
运行此示例注意,批量打印时,而且打印文档数超过一个,只能进行无提示的直接打印操作。
//打印文档对象 var myDoc ={ //批量打印时,需要用数组来指定打印文档 //文档页可以在一个document对象中,也可以在url指定的一个文档中 documents: new Array( document, // 打印页面(div)们在正显示在本文档中 'attaches1.htm', // 打印页面(div)们在一个url指定的文档中 'attaches2.htm' ) copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 };
多个文档共存在同一web页面中,区别打印
运行此示例//打印文档对象 var myDoc ={ documents: document, // 在同一页面中,有多个可打印文档,他们可以用 // pagePrefix 属性来区别 // pagePrefix属性 +page+页序号 构成可打印div的id, // 如前缀为 'report1' ,则找到以 'report1page1'为id的 // div作为文档首页 // 该属性,默认值为空 pagePrefix: whichreport.value, // 本例中,可能是 'report1'或'report2' copyrights : '杰创软件拥有版权 www.jatools.com' };
不显示文档,直接指定url打印
运行此示例//打印文档对象 var myDoc ={ //文档页可以在url指定的一个文档中,用数组指定打印文档 documents: new Array('simpleprint.htm'), copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 };
打印隐藏对象
你可以使用属性 classesReplacedWhenPrint ,将一个对象在显示时定义为不可见,在打印或打印预览时,定义为可见,这通过预定一个css类实现。如下所示。 运行此示例<style> ... .only_for_print {display:none} ... </style> ... //左面是两个隐藏的页 <div id=page1 class='only_for_print' ... <div id=page2 class='only_for_print' ... ... 打印印文档对象 var myDoc ={ ... // 打印时,only_for_print取值为显示 classesReplacedWhenPrint: new Array('.only_for_print{display:block}'), ... };
仅在预览时可见,不输出到打印机的套打底图
通过特殊的样式类 hide_for_jatools_print,你可以控制所有可视化元素要求其仅在预览时可见,如下图示。运行此示例<style> <!-- 套打底图,在预览时需要显示,但不打印,为达到此效果,你可以新增样式类,如下所示--> [code] .hide_for_jatools_print {} // 空的样式类 .title{ ... ... }</style>
...
<img class='hide_for_jatools_print' src='background.jpg' alt='本图片只在预览中可见'>
<div class='hide_for_jatools_print title' > 本层中的内容只在打印预览时可见 </div>
...
[/code]
打印结束后提交数据
下面一个示例,意图是在打印成功后,将打印数据提交到服务器保存。运行此示例function doPrint() { myDoc = {... documents: document, }; myDoc.done=function(err){ if(!err) myform.submit(); // 提交表单 else alert(err); } jatoolsPrinter.print(myDoc,false); // 直接打印,不弹出打印机设置对话框 } ...
你可以在打印结束时,让控件自动调用一个脚本方法,回调方法必须通过打印对象的done属性来指定。在打印结束后,你可以通过该方法的err参数,来判断打印是否成功,err为空,则打印成功,非空在打印失败,err表示错误信息。
为什么要使用回调方法
不使用回调方法,按下面的代码运行可以吗?回答是不可以!下面的代码错误。
function doPrint() { myDoc = {... documents: document, }; jatoolsPrinter.print(myDoc,false); // 直接打印,不弹出打印机设置对话框 myform.submit(); // 极端错误 } ...
因为不管三七二十一,就提交了表单,提交后,当前窗口的document就会被新的文档替换,而打印控件对原文档还没有打印完,这时就会经常出现如下错误信息。
![](image/guide.2.jpg)
打印后关闭窗口
在回调方法(done)中调用window.close()即可;参照演示 运行此示例使用自动分页
设置 autoBreakPage属性为true即可;运行此示例表格自动分页,表头每页可见
很多用户在做表格类报表的时候,希望表格能自动分页,且表头每页都可见,4.0新增加的autoBreakPage属性可以实现此需求。运行此示例双面打印
先打奇数页,再打偶数页,设置 myDoc.settings.doubleSide为true即可;运行此示例显示页面设置对话框后打印
运行此示例function print() { var mySettings = jatoolsPrinter.showPageSetupDialog(); if(mySettings) { var doc = {settings: mySettings, documents: document, copyrights: '杰创软件拥有版权 www.jatools.com' } jatoolsPrinter.print(doc,false); // 不显示打印机选择对话框进行打印 } }
选择打印机进行打印
运行此示例function loadPrinters() { var printers = jatoolsPrinter.getPrinters(); // 打印机列表是字符串数组 if(printers) { for (i=0;i< printers.length;i++) printer_list.options[i+1]=new Option(printers[i],printers[i]); printer_list.options[0].selected = true; } } function print() { var myDoc = { settings:{printer: printer_list.value},…} jatoolsPrinter.print(myDoc); } <select name="printer_list"/>
选择打印机,纸张类型,边距进行打印
选择打印机,纸张类型,边距进行打印。运行此示例设置图文并茂的页脚页眉
运行此示例附录:API 参考手册
当你在网页中嵌入jatoolsPrinter控件后,你就可以使用
javascript来调用该控件方法。其中常见的方法有打印输出(
printPreview),取得(
getDefaultPrinter)和设置(
setDefaultPrinter)默认打印机,显示页面设置对话框(
showPageSetupDialog)等。下面是调用打印输出的一个示例:
<!—使用Object标签,嵌入jatoolsPrinter控件 --> <OBJECT ID="jatoolsPrinter" CLASSID="CLSID:B43D3361-D975-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=4,0,0,0"></OBJECT> <script type="text/javascript"> function print() { //打印文档对象 var doc ={ documents:document, // 打印页面(div)们在本文档中 copyrights:'杰创软件拥有版权 www.jatools.com' }; jatoolsPrinter.print(doc); } … <div id=’page1’> … </div> <div id=’page2’> … </div>
公共方法
方法 | ||
---|---|---|
print(Object doc,Booleanprompt): Boolean | ||
打印指定文档。 | ||
printPreview(Object doc): Boolean | ||
预览打印文档。 | ||
getPrinters(): Array | ||
取得系统已安装的打印机列表。 | ||
getPapers(String printer): Array | ||
取得指定打印机的可用纸张列表。 | ||
isCustomPaperSupported(String printer): Boolean | ||
判断指定打印机是否支持自定义纸张大小。 | ||
getDefaultPrinter(): String | ||
取得系统的默认打印机。 | ||
setDefaultPrinter(String printer): void | ||
设置系统的默认打印机。 | ||
showPageSetupDialog(): Object | ||
显示纸张设置对话框,并取得纸张设置参数 | ||
getLastSettings(String settingsID): Object | ||
取得指定打印设置settingsID,在注册表中保存的参数 | ||
setLastSettings(String settingsID,Object settings): void | ||
设置某个文档打印参数,以后打印这个settingsID的文档时,自动按该设置打印 |
方法详情
function print(Object doc,Booleanprompt=false) : Boolean
打印指定文档。
参数:
doc: Object (必选)
打印文档参数。你可以用这个参数来指定打印对象,设置打印页面参数。该对象有如下属性:
documents:Object/Array (必选)
打印文档源。就是指定你需要打印的页面(<div id=page1….><div id=page2….>)在哪个document对象上。 如果你需要批量打印多个文档,你可以用字符串Array方式指定文档源,数组元素表示一个合法的文档url,url可以是绝对地址,也可以相对地址。如:
new Array('http://www.jatools.com/abc.jsp','http://www.jatools.com/123.jsp&id=1');
settingsID:String (可选)
打印文档的设置参数ID。 如果你想让控件记住某个文档最后一次打印使用的设置,以便下一次打印同一文档时自动采用,则需要设置该属性。
当你设置了该属性,且
loadPrintSettings为
true, 则控件在打印前,自动从系统的注册表中查找对应的历史打印设置信息,如果找到,则采用找到的参数来设置打印机,此时忽略
setttings属性中指定的纸张设置。如果没找到,则使用
setttings属性中的设置。
当你指定了该参数,且
savePrintSettings为
true,则控件在打印后,即将打印参数保存到系统中,以便下一次打印同一
settingsID的文档时取用。如果你不指定该参数,则系统不从注册表中装载,也不会将打印设置保存到注册表。
可以保存的打印设置参数属性即是以下
settings属性对象中的内容,比如输出打印机,页高、页宽等。
settings:Object (可选)
你可以使用这个参数来设置你的打印机输出,包括输出到哪个打印机、纸张大小、打印方向。当你指定了
settingsID属性,而且在系统中找到该
settingsID的历史打印设置时,本属性所设无效,打印参数将依照历史参数设置之,而忽略本属性中的参数。参照
settingsID属性。
settings对象有如下属性:
printer:String (可选/默认值=系统默认打印机)
输出打印机,当你的系统安装了多台打印机时,比如,有针式打印机,激光打印机,你可以使用这个属性来设置你要求输出的打印机,如果不设置,系统将用默认打印机进行输出。
pageWidth / pageHeight:Number(可选/默认=打印机的默认纸张大小)
打印纸张的宽度与高度,以1/10毫米为单位。
pageWidth必须与
pageHeight一起指定,如果仅指定一个参数,则系统忽略。
如果你指定的纸张是非标准的纸张大小,控件会自动创建一个自定义纸张,如果你的打印机支持自定义纸张,则选用之,如果不支持,则不设置纸张。
多数激光打印机,不支持自定义纸张。针式的票据打印机,一般都会支持。
控件自动创建的自定义纸张名称类似这种形式 Custom 1000_9000,即按“Custom 宽_高”规则取名。
你的打印机是否支持自定义纸张,可以通过控件的 custompapersupport.htm 来测试,该测试页面使用使用控件方法
isCustomPaperSupported来测试。
topMargin / leftMargin / bottomMargin / rightMargin:Number(可选/默认值=打印机默认边距)
你可以使用上述属性设置页边距。
topMargin,
leftMargin,
bottomMargin,
rightMargin分别表示上,左,下,右边距,单位是 1/10毫米 。多数打印机有最小边距问题,如果你的设置太小,将不会起作用。
orientation:Number(可选/默认值=打印机默认纸张方向)
打印方向,以纵向还是横向打印,纵向取值为1,横向为2。
header:Object (可选/默认值=不显示页眉) 页眉对象。该对象有两个属性,分别是:
html: String/HTML Element(必选)
html对象,可以是包含html标签的字符串,也可以是一个HTML Element,比如<div>对象。本属性中,可以包含以下宏变量,以取得相应的页号或时间。
宏变量 | 含义 |
#p | 当前页号 |
#P | 总页数 |
#d | 当前日期,以控制面板/区域与语言选项中设置的短日期格式 |
#D | 当前日期,长日期格式 |
#t | 当前时间,短时间格式 |
#T | 当前时间,长时间格式 |
height:Number(必选)
页眉对象的高度,以象素为单位
footer:Object (可选/默认值=不显示页脚)
页脚对象。属性与页眉对象一致。
done:function(err:String) (可选)
打印结束时调用。如果打印成功,则err为空,如果打印出错,err表示出错原因信息。注意,这里的打印成功,表示打印内容已经成功发送到打印队列,并不表示已经成功输出到打印机,也就是说,一些打印机错误,比如卡纸等情况,不在此函数监控之列。
pagePrefix:String (可选/默认值='') 打印页面ID的前缀, 控件查找打印页面序列的规则是:
pagePrefix +'page'+页序号(以1开始递增)
如本属性为 'doc1' ,则控件以 doc1page1,doc1page2,…这样的顺序查找打印页。
autoBreakPage:Boolean(可选/默认值=false)
是否自动分页打印。true为自动分页,false为不自动分页。当自动分页时,page1,page2…指定的内容如果一页打印不下时,打印不下的内容会自动另起一页打印。false时,控件隐藏打印不下内容(不会另起一页打印)
如果有一个表格,行数可能超过一页,你不想用程序分页,你就可以将这个大表格放在page1中,然后,设定
autoBreakPage为
true,从而让控件来帮你分页。
loadPrintSettings:Boolean(可选/默认值=true)
是否从注册表中,装载历史设置,如果是则装载,反之不装载。应与
settingsID属性配合使用,参照
settingsID属性。
savePrintSettings:Boolean(可选/默认值=true)
是否将最后一次打印参数,保存到注册表中,如果是则保存,反之不保存。应与
settingsID属性配合使用,参照
settingsID属性。
classesReplacedWhenPrint:Array(可选)
在打印时替换 css类选择器的定义。你可以在打印或打印预览时,动态地修改这个类的定义。
copyrights:String (必选)
版权信息,取值必须为'杰创软件拥有版权 www.jatools.com'。
prompt:Boolean(可选/默认值=false)
是否在打印前显示打印机选择对话框。
返回:
Boolean
是否可以打印。如果false表示doc参数设置有问题,不能打印。如果true,表示可以打印。
printPreview
function printPriew(Object doc) : Boolean
预览打印文档。
参数:
doc: Object (必选)。
参照print 方法
返回:
Boolean
是否可以打印预览。如果false表示doc参数设置有问题,不能预览,如果true,表示可以预览。
getPrinters
function getPrinters() : Array
取得系统已安装的打印机列表。
参数:
无
返回:
Array
可用的打印机名称数组。如果没有安装任何打印机,则返回为null。
示例:将取得的可用打印机列表,显示在表单的HTML Select对象上:
… function loadPrinters() { var printers = jatoolsPrinter.getPrinters(); if(printers)) { for (i=0;i< printers.length;i++) printer_list.options[i]=new Option(printers[i],printers[i]); } } loadPrinters(); … <FORM > <Select name="printer_list"> </FORM >
getPapers
function getPapers(String printer) : Array
取得指定打印机的可用纸张列表
参数:
无
返回:
Array
可用的打印机名称数组。如果没有安装任何打印机,则返回为null。
示例:将取得的可用打印机列表,显示在表单的HTML Select对象上:
… function loadPapers() { var printers = jatoolsPrinter.getPrinters(); if(printers) { var papers = jatoolsPrinter.getPapers(printers[0]) if(papers) { for (i=0;i< papers.length;i++) { var name = papers[i].name; var dimension = { width:papers[i].width, height:papers[i].height}; paper_list.options[i]=new Option(name, dimension); } } } } loadPapers(); … <FORM > <Select name=" paper_list" > </FORM >
isCustomPaperSupported
function isCustomPaperSupported(String printer) : Boolean
判断指定打印机是否支持自定义纸张大小。 一般针式打印机都支持自定义纸张,而部分激光打印机不支持。
参数:
printer:String(必选)
指定打印机名称。
返回:
Boolean
true 表示支持自定义纸张,false 表示不支持。
getDefaultPrinter
function getDefaultPrinter () : String
取得系统的默认打印机
参数:
无
返回:
String
默认打印机名称,如果为空,表示没有安装任何打印机。
setDefaultPrinter
function setDefaultPrinter(String:printer) : Boolean
设置系统的默认打印机。
参数:
printer:String(必选)
指定默认打印机名称。
返回:
Boolean
true为设置成功,false为设置不成功。
showPageSetupDialog
function showPageSetupDialog() : Object
显示纸张设置对话框,并取得纸张设置参数。
参数:
无
返回:
Object
纸张对话框中设置的参数,用户点击了取消按钮后,,返回值为null,用户点击确定,则返回Object对象,包括以下属性:
pageWidth / pageHeight:Number 纸张宽度和高度(以1/10毫米为单位,下同)。
topMargin / leftMargin / bottomMargin / rightMargin:Number 纸张的上左下右的边距。
orientation:Number 纸张方向:1代表纵向;2代表横向。
示例:让用户选择纸张类型,然后无提示打印:
function printWithSetupPage() { var mySettings = jatoolsPrinter.showPageSetupDialog(); if(mySettings) { var doc = {settings: mySettings, documents: document, copyrights: '杰创软件拥有版权 www.jatools.com' } jatoolsPrinter.print(doc,false); // 不显示打印机选择对话框进行打印 } }
getLastSettings
function getLastSettings(String settingsID): Object
取得指定打印设置settingsID,在注册表中保存的参数。
参数:
settingsID:String(必选)
需要取得设置的ID。
返回:
Object
保存在注册表中对应settingsID的打印设置,如果null则表示无指定settingsID的打印设置,如果存在则返回Object对象,包括以下属性:
printer:String 输出打印机名称。
pageWidth / pageHeight:Number 纸张宽度和高度(以1/10毫米为单位,下同)。
topMargin / leftMargin / bottomMargin / rightMargin:Number 纸张的上左下右的边距。
orientation:Number 纸张方向:1代表纵向;2代表横向。
setLastSettings
function setLastSettings(String settingsID,Object settings) : void
设置某个文档打印参数,以后打印这个settingsID的文档时,自动按该设置打印。
参数:
settingsID:String(必选)
需要设置的打印设置ID。
settings :Object(必选)
打印设置对象,有如下属性:
保存在注册表中对应settingsID的打印设置,如果null则表示无指定settingsID的打印设置,如果存在则返回Object对象,包括以下属性:
printer:String 输出打印机名称。
pageWidth / pageHeight:Number 纸张宽度和高度(以1/10毫米为单位,下同)。
topMargin / leftMargin / bottomMargin / rightMargin:Number 纸张的上左下右的边距。
orientation:Number 纸张方向:1代表纵向;2代表横向。
返回:
无
相关文章推荐
- 使用Lodop进行web 打印(jatoolsPrinter,墙外打印控件 楚琳Web打印控件)
- StratoIO WebPrinter Web打印控件的功能与特性
- StratoIO WebPrinter如何引入外部JS?StratoIO WebPrinter控件常见的问题
- jatoolsPrinter的小知识点
- jasperreports+iReport+jatoolsPrinter制作报表笔记
- StratoIO WebPrinter 控件的打印方案,打印机池、并行打印、框架打印、移动端打印
- ArcEngine 9.3 学习笔记(十一):地图输出(Printer类,PageLayoutControl控件打印出图,栅格格式文件输出,矢量格式文件输出)
- 基于JQuery的WEB套打设计器jatoolsPrinter1.0
- StratoIO WebPrinter控件的下载与安装的步骤介绍
- 基于JQuery的WEB套打设计器jatoolsPrinter1.0
- Android自定义水平进度条控件
- 初识editableGrid 控件
- glscene:delphi 开源的十分好用的opengl控件
- 改变NumericStepper控件上下箭头的外观.
- 浏览器控件去边框滚动条
- 推荐web页面开发中11个Javascript(AJAX)树形菜单(树形控件)
- 基础控件属性
- jquery检测input checked 控件是否被选中
- Android::ExpandableListView二级列表控件的使用
- Android自定义view之下载控件,ProgressBar