|
管理员
  
|
1#
大 中
小 发表于 2017-12-13 09:38 显示全部帖子
【jcp使用手册】保留打印设置到注册表
当设置了 myDoc 的settingsId 属性,则jcp 打印后,会将本次打印的设置保存在注册表,如下所示:
复制内容到剪贴板 代码:
到下次打印时,jcp 将忽略myDoc 的设置,直接使用注册表中的参数进行打印。
可以保存在注册表中的打印参数包括:
| printer
| 输出打印机
| | paperHeight
| 纸张高度
| | paperWidth
| 纸张宽度
| | marginLeft
| 左边距
| | marginRight
| 右边距
| | marginTop
| 上边距
| | marginBottom
| 下边距
| | noMargins
| 是否零边距
| | orientation/portrait
| 纸张方向
| | copies
| 打印份数
| | collate
| 是否逐份打印
|
为什么需要保存设置功能?
保存设置功能,通常用在以下两种情况:
(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. 根据设置,启动打印或打印预览。
|