ScriptX控件如何在不跳转页面的情况下将要打印的内容打印出来

来源:互联网 发布:女生学金融 知乎 编辑:程序博客网 时间:2024/05/19 23:15

需求:如医生给患者开了很多的处方,在处方总列表界面有发送按钮,发送到收费系统的时候要求系统自动打印所有的处方

西药草药检查治疗等打印格式是不一样的,分别有对应的html打印文件,如果在每一个打印文件中都引入了ScriptX打印对象或者是jatoolsPrint打印对象,那就只能挨个进去后查看样式才能打印了,但用户要求不需要点进去查看是什么样的,只需要在处方汇总列表界面点一下按钮就能全部打印出来。
处理方法:用jatoolsPrint打印控件或者ScriptX打印控件,jatoolsPrint控件反应快且支持一个浏览器窗口内同时开启多个打印文件并都能正常打印,ScriptX控件反应慢一些,ScriptX控件还有一个缺点就是一个浏览器窗口只能有一个ScriptX打印对象。

思路:假如已知一个处方列表界面叫List.html,创建一个autoPrint.html文件,在这个文件中会根据打印处方的多少动态创建相应数量的iframe出来,每个iframe对应一个处方文件,即相当于把所有要打的内容都集中到一个文件中了,单个处方文件中不需要引入ScriptX对象,但是这个文件怎么引入呢,不能在List.html中创建iframe引入autoPrint.html(不能让autoPrint.html成为List.html的子界面),因为处方汇总界面在发送完之后用户会要求有个状态的变化,即需要刷新List.html,所以不能这样创建,但是List.html的父界面不需要刷新,那么我就考虑在List.html的父界面创建一个iframe,指向autoPrint.html,即autoPrint.html与List.html是平级关系.在autoPrint.html中引入ScriptX对象就可以打印所有的处方了。

这时候可能还会遇到一个问题,那就是打印处方用的是A5纸,而ScriptX免费版只支持A4纸打印,如果autoPrint.html中内容过多如何让其自动分页呢?
如果autoPrint.html内各个iframe的高度都不是太高,势必会造成自动分页的时候格式出错,那就把高度设置成比较大的数值,比如900px,这样打印的时候虽然打印机放的是A5纸,但是会按照A4纸的打印样式打印,这时候需要的部分正好显示在了A5纸上,打印文件的空白部分正好是A5纸对比A4纸所缺的那一块。

还要特别注意一个现象:List.html的父界面中创建的iframe,如果用的是jatoolsPrint控件,这个iframe可以隐藏,如果用ScriptX打印控件,这个iframe必须不隐藏,只需要将这个iframe的wdith与height都设为0即可,否则打印的内容就不是你想要的内容了!

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 恋爱中不够细心怎么办 孩子不愿学英语怎么办 孩子不愿学数学怎么办 孩子不愿学钢琴怎么办 小孩子学习不开窍怎么办 一年级没有读好怎么办 小孩眉毛很杂乱怎么办 孩子不好好听课怎么办 成绩差的孩子怎么办 三年级语文太差怎么办? 孩子叛逆不学习怎么办 三年级阅读理解能力差怎么办 孩子静不下心怎么办 孩子体温低于35怎么办 小孩体温突然低怎么办 宝宝35.5度体温怎么办 宝宝出汗体温低怎么办 小孩体温35.2度怎么办 孩子睡觉出冷汗怎么办 小孩感冒发烧咳嗽怎么办 小孩咳嗽出汗多怎么办 小孩手脚出汗多怎么办 小孩感冒出虚汗怎么办 宝宝感冒出冷汗怎么办 宝宝感冒睡觉出汗怎么办 宝宝感冒冒冷汗怎么办 宝宝感冒爱出汗怎么办 宝宝感冒老出汗怎么办 两只小鸡打架怎么办 老年人老是换保姆怎么办 孩子9不吃饭怎么办 两岁半宝宝不爱喝水怎么办 宝宝老是不吃饭怎么办 宝宝不爱吃饭喝水怎么办 小宝宝突然不爱吃饭怎么办 一岁多小宝宝不爱吃饭怎么办 宝宝肚子发撑怎么办 小宝宝咳嗽有痰怎么办 一岁小宝宝咳嗽怎么办 oppo连wifi超时怎么办 小孩不会写3怎么办