杰表技术论坛 's Archiver

admin 发表于 2017-12-13 09:38

【jcp使用手册】保留打印设置到注册表

[font=宋体]当设置了[/font] myDoc[font=宋体]的[/font]settingsId[font=宋体]属性,则[/font]jcp[font=宋体]打印后,会将本次打印的设置保存在注册表,如下所示:[/font]
[align=left][code]var myDoc = {  
    settings : {  
        paperName : "A4",         
        portrait : true, // 纵向  
        marginLeft : 5, //设置左边距,单位为mm  
        marginTop : 5,  
        marginRight : 5,  
        marginBottom : 5  
    },  
    settingsId:"mysettings1", // 打印后,将打印参数保存到注册表项目 mysettings1 中  
    documents : document,  
    copyrights : '杰创软件拥有版权  www.jatools.com'  
};  
getJCP().print(myDoc);  
[/code]
[/align]
[font=宋体]到下次打印时,[/font]jcp[font=宋体]将忽略[/font]myDoc [font=宋体]的设置,直接使用注册表中的参数进行打印。[/font]
[font=宋体]可以保存在注册表中的打印参数包括:[/font]
[table][tr][td=1,1,343]  printer
  [/td][td=1,1,343]  [font=宋体]输出打印机[/font]
  [/td][/tr] [tr][td=1,1,343]  paperHeight
  [/td][td=1,1,343]  [font=宋体]纸张高度[/font]
  [/td][/tr] [tr][td=1,1,343]  paperWidth
  [/td][td=1,1,343]  [font=宋体]纸张宽度[/font]
  [/td][/tr] [tr][td=1,1,343]  marginLeft
  [/td][td=1,1,343]  [font=宋体]左边距[/font]
  [/td][/tr] [tr][td=1,1,343]  marginRight
  [/td][td=1,1,343]  [font=宋体]右边距[/font]
  [/td][/tr] [tr][td=1,1,343]  marginTop
  [/td][td=1,1,343]  [font=宋体]上边距[/font]
  [/td][/tr] [tr][td=1,1,343]  marginBottom
  [/td][td=1,1,343]  [font=宋体]下边距[/font]
  [/td][/tr] [tr][td=1,1,343]  noMargins
  [/td][td=1,1,343]  [font=宋体]是否零边距[/font]
  [/td][/tr] [tr][td=1,1,343]  orientation/portrait
  [/td][td=1,1,343]  [font=宋体]纸张方向[/font]
  [/td][/tr] [tr][td=1,1,343]  copies
  [/td][td=1,1,343]  [font=宋体]打印份数[/font]
  [/td][/tr] [tr][td=1,1,343]  collate
  [/td][td=1,1,343]  [font=宋体]是否逐份打印[/font]
  [/td][/tr][/table]

[font=宋体]为什么需要保存设置功能[/font]?
[font=宋体]保存设置功能,通常用在以下两种情况:[/font]
[font=宋体]([/font]1[font=宋体])一个套打系统,由于各客户端打印机不同,或者进纸盒的位置不同,或者其他原因,可能引起打印出来的票据位置发生偏移,用户希望能根据自己打印机的状况,自行调整边距以纠正位置,但不希望每次打印前,都进行一次手工调整。[/font]
[font=宋体]([/font]2[font=宋体])一个客户端配置了多台打印机,分别用于打印不同类型的文档,用户不希望每次打印一个文档前,选择一次打印机;[/font]
[font=宋体]对于第一种情况,你可以这样解决:[/font]
1. [font=宋体]页面中设置两个按钮,一个[/font]"[font=宋体]直接打印[/font]"[font=宋体],一个[/font]"[font=宋体]打印预览[/font]"[font=宋体];[/font]
2. [font=宋体]当客户发现位置有偏移时,可以点击[/font]"[font=宋体]打印预览[/font]"[font=宋体]按钮,调整左、上边距,并打印这个页面;[/font]
3. [font=宋体]如果发现位置还不理想,则重复第[/font]2[font=宋体]步,如果正确,则下一次打印这个票据时,只需点击[/font]"[font=宋体]直接打印[/font]"[font=宋体]即可保证位置正确。[/font]

[font=宋体]对于第二种多种打印机的情况,你可以这样解决:[/font]
1. [font=宋体]页面中设置两个按钮,一个[/font]"[font=宋体]直接打印[/font]"[font=宋体],一个[/font]"[font=宋体]打印预览[/font]"[font=宋体];[/font]
2. [font=宋体]第一次打印时,可以点击[/font]"[font=宋体]打印预览[/font]"[font=宋体]按钮,选择你想要的打印机进行打印;[/font]
3. [font=宋体]则下一次打印这个票据时,只需点击[/font]"[font=宋体]直接打印[/font]"[font=宋体]即可保证输出到正确的打印机。[/font]

[font=宋体]提一点建议:因为[/font]"[font=宋体]打印预览[/font]"[font=宋体]按钮不常用,最好不要跟[/font]"[font=宋体]直接打印[/font]"[font=宋体]按钮并排放在一起,以避免干扰。[/font]
[font=宋体]
[/font][font=宋体]保存设置参数的工作原理是怎样的[/font]?
[font=宋体]控件是如何保留设置参数的,有些用户感觉困惑,下面介绍一下保留与加载打印参数的工作原理。[/font]
[font=宋体]保存设置参数原理:[/font]
1. [font=宋体]客户打印一个文档到打印机后;[/font]
2. [font=宋体]控件触发打印完成事件;[/font]
3. [font=宋体]控件响应打印完成事件,查询本次打印是否有[/font]myDoc.settingsID[font=宋体]属性,如果有,则保存本次打印的配置参数到注册表[/font]([font=宋体]如果注册表中存在该[/font]id[font=宋体]设置,则替换以前设置[/font])[font=宋体]。[/font]


[font=宋体]所以,保存打印参数的前提是:已经输出到打印机,并且设置了[/font]myDoc.settingsID[font=宋体]。[/font][font=宋体]有些用户,只在控件的预览窗口中设置了边距等,而不实际打印,这样,控件是不会保留你的设置的。[/font]

[font=宋体]加载打印参数原理:[/font]
1. [font=宋体]客户在预览或打印前,控件查询是否有[/font]myDoc.settingsID[font=宋体]属性;[/font]
2. [font=宋体]如果有[/font]myDoc.settingsID[font=宋体]属性,控件尝试从注册表中读入该[/font]id[font=宋体]相关的配置参数,如果存在,则用该配置参数来设置打印机(即忽略[/font]myDoc.settings[font=宋体]里的设置),转第[/font]4[font=宋体]步;[/font]
3. [font=宋体]根据用户的[/font]myDoc.settings[font=宋体]里的设置,设置打印参数;[/font]
4. [font=宋体]根据设置,启动打印或打印预览。[/font]

admin 发表于 2017-12-13 09:40

在线演示:[url=http://print.jatools.com/jcp/0.99/savesettings.htm]http://print.jatools.com/jcp/0.99/savesettings.htm[/url]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.