使用JavaScript打印文档

时间:2013-05-21 09:56:47

标签: javascript iframe printing sharepoint-2010

我想通过SharePoint Workflow打开文件(docx,pdf,...)的打印对话框。在那里我用GET调用一个URL并在之后传递文件的URL?像这样:

  

http://www.sharepoint_intranet.com/print.html?link-to-file.pdf

编辑:我也尝试过:

<script type="text/javascript">
    //Get the URL of the file
    var urlOfFile = window.location.search.replace("?", "");
    document.write("<iframe id=" + "printDocument" + " src=" + "'" + urlOfFile + "'" + " width=" + "600" + " height=" + "400" + "></iframe>");

    window.frames['printDocument'].focus();
    window.frames['printDocument'].print();

</script>

“打印”对话框正在打开,在打印选项中,选择了“仅选定框架”点,但是当我按下打印按钮时,不会发生任何事情。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

问题是新的url在当前脚本块完成执行之前不会开始加载。因此,当您致电w.print()时,新窗口当前为空白。

尝试:

<script type="text/javascript">
    //Get the URL of the file
    var urlOfFile = window.location.search.replace("?", "");
    //print
    var w = window.open(urlOfFile);
    w.onload = function() {
        w.print();
    }
</script>
编辑:我没有正确地阅读这个问题!以上技术仅适用于html。解决这个问题的方法是使用iframe,如果我们使用iframe,我们也可以完全免除弹出窗口。以下代码创建一个iframe,其源设置为所需文档,将iframe附加到页面(但保持不可见),打印iframe的内容,最后在完成iframe后删除iframe。仅在Chrome中测试过,但我相信它可以在其他浏览器中使用。

<script type="text/javascript">
    //Get the URL of the file
    var urlOfFile = window.location.search.replace("?", "");
    //print
    var iframe = document.createElement('iframe');
    iframe.src = urlOfFile;
    iframe.style.display = "none";
    var iFrameLoaded = function() {
        iframe.contentWindow.print();
        iframe.parentNode.removeChild(iframe);
    };
    if (iframe.attachEvent) iframe.attachEvent('onload', iFrameLoaded); // for IE
    else if(iframe.addEventListener) iframe.addEventListener('load', iFrameLoaded, false); // for most other browsers
    else iframe.onload = iFrameLoaded; // just in case there's a browser not covered by the first two
    window.onload = function() {
        document.body.appendChild(iframe);
    };
</script>

答案 1 :(得分:1)

你可以放入html的正文

<body onLoad="window.print();">

所以页面打开已打印文档。

答案 2 :(得分:-1)

我们可以给出文件的路径,如(“abc.doc”/“abc.xls”)

var urlOfFile = window.location.search.replace(“?”,“”);