对这个没有想法吗?任何人?
这是我的情况:
我有一个表单,用户可以在其中选择报告类型,然后选择要为其生成报告的用户列表。当他们提交表单时,将打开一个使用分页的新窗口,以允许用户使用下一个和上一个链接查看每个用户报告。
用户希望该选项:
单独打印当前显示的报告(这很简单),并且
“全部打印”选项以打印所有选定的报告。
但是,每个用户的每个报表必须具有其自己的“第x页,共n页”页脚。
对于页脚,我一直在使用浏览器页脚选项,但是为了使页码在每个报表打印输出上都重新开始,我必须为每个报表单独创建一个window.print()调用。我已经以这种方式实现了它,但是它很有效,因为每个print()调用都会导致显示一个新的打印对话框,这意味着用户必须在每个对话框中单击“打印”才能最终确定打印请求。许多报告=愚蠢的弹出的打印对话框。
理想情况下,我希望报告组的打印看起来像一个打印作业,但是我需要为每个报告重新启动该页数。
我本想尝试自己计算页数以使自己成为页脚,但是考虑到所有可能影响报表占用多少页的变量,这似乎是一项艰巨的任务。我还阅读了一些有关使用ActiveX和WebBrowser对象强制打印并隐藏打印对话框的信息,但是由于在XP SP2上运行,因此我没有成功。另外,从安全性的角度来看,我也对此表示反对,这不是一个好的跨浏览器解决方案。
以前有没有人处理过这种类型的打印,并且会提出一些建议来实现此工作或更好的处理方式?
提前致谢。
最佳答案
我已经看到使用MeadCo scriptx组件的简易列表有两种实现方式,使您无需对话框即可进行打印。但是,正如您正确地说的那样,从安全角度来看这不是很好。这是在他们可以控制最终用户浏览器的公司环境中完成的。
第二个方法是沿ajax路由并单独加载每个报告页面,而无需进行定价,然后将每个报告html合并为一个文档,添加任何所需的分页符。最后渲染为IFRAME,并在该帧上调用print以一次动作打印所有报告。
关于javascript - 帮助:从浏览器打印多个“报告”(IE 6必不可少,其他会很好),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1842615/