Board logo

标题: 技术问题:打印试用的插件问题 [打印本页]

作者: cesfis    时间: 2010-7-1 11:25     标题: 技术问题:打印试用的插件问题

我设置了受信站点 并且支持插件签名 但是预览无法正常使用 问一下 不需要采购printer 没有套打的需求 只是浏览器的打印使用 是否需要购买
详细见附件
作者: admin    时间: 2010-7-1 13:46

你这个是杰表,杰表是收费的,带控件的,所以我们一般不建议使用浏览器来打印。
至于简表,你确实可以这样做。你只要将其中的 tools\下的有关js改成对webbrowser调用就可以了,具体代码参照楼下。
作者: admin    时间: 2010-7-1 13:47

具体请参照 : http://acdf111.javaeye.com/blog/441760

1)写一个javascrīpt函数,只要简单的一句话:

Java代码


function printPage() {document.all.WebBrowser.ExecWB(7,1); }
这个组件还有其他的用法,列举如下:
Java代码


WebBrowser.ExecWB(1,1) 打开 WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 WebBrowser.ExecWB(4,1) 保存网页 WebBrowser.ExecWB(6,1) 打印 WebBrowser.ExecWB(7,1) 打印预览 WebBrowser.ExecWB(8,1) 打印页面设置 WebBrowser.ExecWB(10,1) 查看页面属性 WebBrowser.ExecWB(15,1) 好像是撤销,有待确认 WebBrowser.ExecWB(17,1) 全选 WebBrowser.ExecWB(22,1) 刷新 WebBrowser.ExecWB(45,1) 关闭窗体无提示 WebBrowser.ExecWB(7,6) 直接打印

2)html页中,<a class="Noprint" ōnclick="printPage" href="#">打印</a> ;
点击既可出来当前页的打印预览

3)可以在样式表中控制打印输出的内容:
Java代码


<style media=print>.OnlyPrintTitle{ display:inline;}.Noprint{display:none;} .PageNext{page-break-after: always;} </style>

说明:
a)media=print 表示这段样式对打印时起作用
b)OnlyPrintTitle:在非针对print的样式表中加入这个标签,并设置为display:none可实现只有打印时才显示的内容
c)display:none:表示打印时不显示,见2)中的html实例
d)page-break-after: always;遇到这个标记时,开始分页
Java代码


作者: cesfis    时间: 2010-7-1 14:03

很清楚呵呵 我发你消息了 一些商务上的问题 麻烦回复一下
作者: cesfis    时间: 2010-7-1 14:14

对了 网站上几个联系的邮箱都发送不了邮件 呵呵 有什么具体的联系方式吗
作者: admin    时间: 2010-7-1 14:24

jatools@gmail.com
作者: wenhao    时间: 2010-10-20 22:51

这个帖子不错
作者: wjyijun    时间: 2010-12-8 21:00

我已按照这个方式做了,但并不能打印出正常报表,预览时只有两页,第一页是工具条,第二面是正常报表的第一页,且还有个外框。
作者: admin    时间: 2010-12-9 09:42

你大概调用了ie自带的打印按钮,或打印菜单。
如果安装了控件,必须点击左上角的打印按钮,才会正确打印。
作者: wjyijun    时间: 2010-12-11 21:48

我的确执行的是document.all.WebBrowser.ExecWB(7,1)。
我安装的是IE8
作者: wjyijun    时间: 2010-12-11 22:13

修改了tools下两个文件:
defaultviewer.jsp
toolsbar.jsp
作者: admin    时间: 2010-12-13 10:14

要修改的地方,是对的,就这两文件,但你只嵌入了webbrowser控件,和打印命令,而没告诉浏览器哪些对象要打印,哪些不打印,哪里分页,所以,你除上以上修改,还需要修改defaultviewer.jsp,toolsbar.jsp。将打印按钮这排工具栏,将设置成
<style media=print>   
.Noprint{display:none;}    // 凡是遇到Noprint类的对象,都不打印
.pcls{page-break-after: always;}    // jor输出的每一页,都会自动加上pcls,这里告诉浏览器,当打印完一个pcls的对象时,强制分页,这正是我们需要的
</style>
<div class='Noprint'><button>打印</button>...</div>




欢迎光临 杰表技术论坛 (http://bbs.jatools.com/) Powered by Discuz! 6.1.0