ZenosZeng 发表于 2016-10-12 15:59:44

为WebViewer添加打印和导出功能

当WebViewer选择HtmlViewer浏览方式时,仅需添加以下代码就可以增加打印和导出功能。

源码下载:


    <script language="javascript" type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function () {
            $(".arvToolBar").append("<span style='margin-right:5px;'><input id='btnPrint' type='Button' value='打印' onclick='OnPrint()'/></span>");
            $(".arvToolBar").append("<span style='margin-right:5px;'><input id='btnExportPDF' type='Button' value='PDF' onclick='OnExportPDF()'/></span>");
            $(".arvToolBar").append("<span style='margin-right:5px;'><input id='btnExportWord' type='Button' value='Word' onclick='OnExportWord()'/></span>");
            $(".arvToolBar").append("<span style='margin-right:5px;'><input id='btnExportExcel' type='Button' value='Excel' onclick='OnExportExcel()'/></span>");
      });
      function OnExportPDF() {
            var viewModel = GetViewModel('WebViewer1');
            if (!viewModel.PageLoaded())
                return;
            viewModel.Export(ExportType.Pdf, function (url) {
                try {
                  window.open(url, '_blank');
                } catch (e) {
                }
            }, true, { FileName: 'ActiveReports报表.pdf' });
      };

      function OnPrint() {
            var viewModel = GetViewModel('WebViewer1');
            if (!viewModel.PageLoaded())
                return;
            viewModel.Print();
      };

      function OnExportWord() {
            var viewModel = GetViewModel('WebViewer1');
            if (!viewModel.PageLoaded())
                return;
            viewModel.Export(ExportType.Word, function (url) {
                try {
                  window.open(url, '_blank');
                } catch (e) {
                }
            }, true, { FileName: 'ActiveReports报表.doc' });
      };

      function OnExportExcel() {
            var viewModel = GetViewModel('WebViewer1');
            if (!viewModel.PageLoaded())
                return;
            viewModel.Export(ExportType.Xls, function (url) {
                try {
                  window.open(url, '_blank');
                } catch (e) {
                }
            }, true, { FileName: 'ActiveReports报表.xlsx' });
      };
    </script>


jian.du 发表于 2016-10-12 16:04:48

:hjyzw:

SDESamson 发表于 2017-11-5 16:55:48

求教,用ar11在ie下文件打印为何变为到处PDF文件了,,

KearneyKang 发表于 2017-11-10 09:50:39

你好!您现在的情况是谷歌打印正常,但是用IE浏览器打印就会先变成PDF文件,然后才能在PDF下打印是吧!
首先这是由于我们的打印调用的是浏览器的打印,不同浏览器的内部打印逻辑是不同的,但是打印最根本的原理都是先保存为PDF文件,然后在进行打印。
在AR9以前IE浏览器上打印是不会弹出说的PDF文件,但是由于我们检测不到在IE浏览器上是否安装Adobe插件,如果没有安装点击打印就不会有任何反应。然后在AR10和AR11上就修改了IE的打印逻辑,这样至少我们可以进行文件的保存和打印。

锂氏股份 发表于 2018-5-4 21:02:42

:lol

1214664300 发表于 2020-6-23 17:34:12

点击打印没有反应,需要安装打印插件吗

KearneyKang 发表于 2020-6-30 18:33:39

点击没有反应,你换一个浏览器看看,使用IE浏览器试试
页: [1]
查看完整版本: 为WebViewer添加打印和导出功能