找回密码
 立即注册

QQ登录

只需一步,快速开始

hbtx

论坛元老

21

主题

61

帖子

1万

积分

论坛元老

积分
11127

活字格认证

hbtx
论坛元老   /  发表于:2013-7-24 10:34  /   查看:10466  /  回复:13
htmlviewer方式下怎么添加打印?在线等速回

13 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-7-24 11:13:00
沙发
HtmlViewer模式下能够实现的打印方案如下:
  1.     <script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>

  2.     <script type="text/javascript">
  3.         var viewMode;
  4.         $(document).ready(function () {
  5.             $('#WebViewer1').bind('loaded', function () {
  6.                 viewMode = GetViewModel('WebViewer1');
  7.             });
  8.         });

  9.         function btnPrint_onclick() {
  10.             if (viewMode.PageLoaded()) {
  11.                 viewMode.Print();
  12.             }
  13.         }
  14.     </script>
复制代码
回复 使用道具 举报
hbtx
论坛元老   /  发表于:2013-7-24 11:50:00
板凳
此方法实现后为导出一个pdf文件,并未出现打印窗口。还有就是RawHtml方式下如何实现,谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-7-24 12:10:00
地板
在 ASP.NET 中提供打印的ViewerType类型是PDF和Flash,在Html和RawHtml模式下可以通过帮助文档中的这种方法来实现,在 ASP.NET 中添加另外一个 WebViewer 控件,然后通过 Button 按钮的Click事件为 WebViewer 加载报表内容,帮助文章位置:ActiveReports Developer 7 &gt; ActiveReports Developer Guide &gt; How To &gt; Provide One-Touch Printing in the WebViewer (Pro Edition)
回复 使用道具 举报
hbtx
论坛元老   /  发表于:2013-7-24 15:51:00
5#
回复 4楼dof的帖子

此方法虽可以实现打印,本机调试时打印对话框弹出的速度极慢,发布之后打印对话框一直不弹出,状态栏显示有进度条在加载。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-7-24 17:10:00
6#
hbtx

此方案是PostBack到后台重新生成报表,所以耗时会更多。

同时,现在AR能够提供的打印方案归结如下:
1、HTMLViewer、RawViewer 模式打印
  1.     <script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>

  2.     <script type="text/javascript">
  3.         var viewMode;
  4.         $(document).ready(function () {
  5.             $('#WebViewer1').bind('loaded', function () {
  6.                 viewMode = GetViewModel('WebViewer1');
  7.             });
  8.         });

  9.         function btnPrint_onclick() {
  10.             if (viewMode.PageLoaded()) {
  11.                 viewMode.Print();
  12.             }
  13.         }
  14.     </script>
复制代码

2、PDF、FlashViewer工具栏直接提供打印按钮
3、直接打印:ActiveReports Developer 7 > ActiveReports Developer Guide > How To > Provide One-Touch Printing in the WebViewer (Pro Edition)


关于第一种方式,我这边会和产品团队确认一下是否能够显示打印设置对话框,而不是直接导出PDF文件。

同时,你这边的实际结果中第一种打印方式等待的时间与第三种方式等待的时间差距大吗,多少页报表需要等待多长时间呢。
回复 使用道具 举报
hbtx
论坛元老   /  发表于:2013-7-25 11:17:00
7#
Js方法弹出打开还是保存对话框比较快,打开之后如果PDF本身设置为安全模式下,会报错,不在安全模式下会再弹出一个打印对话框。
每3种方法在调试模式下大概5秒以上才会弹出打印对话框,发布之后非常慢,跟页数没关系,一页都慢,其实能不能出来也不能确定,因为它不报错,但是网页下面会自动生成进度条,感觉是在等待中,但是实际我等了很久也没出来过,进度条也是显示到一半左右不再动。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-7-25 12:21:00
8#
hbtx 你好

我今天重新测试了第一种打印方案,可以正常显示打印设置对话框,因为这种打印机制是借助PDF打印来实现的,出现你遇到的情况应该和PDF相关设置有关,但是我现在还不确定是什么设置引起的该问题,我先讲示例代码发给你进行测试,看在你的环境中是否正常:



这是我的运行录像:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
hbtx
论坛元老   /  发表于:2013-7-25 16:36:00
9#
今天换了台开发电脑,原来用的是XP系统,现在用的是Win7,突然昨天还能运行的代码今天就不行了,错误如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-7-25 16:45:00
10#
首先你看 jquery-1.9.1.min.js 是否正常下载,你也可以先下载该 jquery 库,然后写成本地路径

再有就是你在 viewMode = GetViewModel('WebViewer1') 代码行价格断点,看是否正常执行了改代码,并且 viewMode 是否有值

还有一个重要的值就是 WebViewer1,需要确认的是 WebViewer 控件的 ID 是否为 WebViewer1
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部