簡體   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