您的位置:首页 > 其它

JATOOLSPRINTER控件

2009-05-21 17:24 267 查看

jatoolsPrinter 使用手册

简介
安装
快速入门
最简单的打印预览
打印前设置打印参数
保留打印时的打印参数
第一次打印用当前配置,后续打印用最后一次打印配置
批量打印文档
多个文档共存在同一web页面中,区别打印
不显示文档,直接指定url打印
打印隐藏对象
仅在预览时可见,不输出到打印机的套打底图
打印结束后提交数据
为什么要使用回调方法
打印后关闭窗口
使用自动分页
表格自动分页,表头每页可见


双面打印
显示页面设置对话框后打印
选择打印机进行打印
选择打印机,纸张类型,边距进行打印
设置图文并茂的页脚页眉
附录: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为启用状态。如下图所示:



注: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就会被新的文档替换,而打印控件对原文档还没有打印完,这时就会经常出现如下错误信息。



打印后关闭窗口

在回调方法(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
来调用该控件方法。其中常见的方法有打印输出(
print
),启动打印预览界面(
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的文档时,自动按该设置打印

方法详情

print

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代表横向。


返回:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: