繁体   English   中英

使用javascript打印txt文件

[英]Print txt file using javascript

我想知道是否可以使用javascript打印位于服务器中的txt文件。 我注意到window.print()只打开当前网页的打印对话框

您只能为用户打开打印对话框,这应该是应该的。 如果您只想打印文本文档,可以通过几种方法触发打印对话框。 它们需要遵循同源策略 (您的HTML和TXT文件需要位于同一个域中)。

最简单的方法是打开一个带有文本文件的弹出窗口,并在窗口句柄上调用print返回:

w = window.open('text.txt');
w.print();

如果您希望用户预览文本文件,则可以使用iframe代替:
我建议将JS保留在HTML之外,这只是一个例子

<iframe id="textfile" src="text.txt"></iframe>
<button onclick="print()">Print</button>
<script type="text/javascript">
function print() {
    var iframe = document.getElementById('textfile');
    iframe.contentWindow.print();
}
</script>

JQuery选项

<body>

    <div id="txtdiv"></div>

    <script type="text/javascript">
      $('#txtdiv').load('trial.txt', function()
      {
        window.print(); //prints when text is loaded
      });

    </script>
 </body>

你是正确的window.print()只是打开当前网页的打印对话框。

我建议你编写JavaScript代码来打开一个新窗口,将文本加载到该窗口,然后在该窗口上调用print()函数。

如果您只是不想删除页面内容并从文件中打印一些文本,可以在此处执行以下操作:

<body>

....some tags....

<script type="text/javascript">
// or onclick function
$.load('test.txt', function( printContent ){
    history.pushState( printContent, 'Print title', '/print_page' );
    document.write( printContent );
    if( window.print() ){
         document.location = '/back_page/';
         // or history.go(-1);
    } else {
         document.location = '/history/';
    }
});
</script>

您可以通过创建Web服务来完成此操作。

  1. 创建Web服务,并在Web服务中打印内容。

  2. 从JavaScript调用Web服务。

如果您想知道如何使用webservice进行打印,则stackoverflow中有一个可能有用的线程 不要只看问题,也要浏览答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM