2010-11-08 59 views
3

這聽起來像一個奇怪的請求,但是...我有一個Web應用程序,設置爲收集數據並定期將其存儲到數據庫中。應用程序的設計基本上始終保持打開狀態,屏幕顯示最近添加到數據庫中的內容(通過使用ajax檢查數據庫並在有新內容時刷新頁面)。我還需要創建一個打印輸出,無論何時添加到數據庫中。我目前有一個打印按鈕,它強制打印對話框出現,並使用不同的樣式表作爲「打印視圖」,但用戶仍然需要按下打印按鈕,然後在出現的對話框中按打印。有沒有一種方法可以完全自動化該過程,以便網站將頁面打印到默認打印機並繞過打印按鈕和出現的對話屏幕?如何強制網站打印

編輯:我知道我可以做window.print();讓打印對話框出現......我問我是否可以在沒有任何人工輸入的情況下使頁面從打印機中出來。根據這些帖子,似乎只有網頁瀏覽器才能完成。

回答

10

您可以編寫一個具有Web瀏覽器控件的獨立應用程序,並讓它爲您進行打印。儘管如此,在常規瀏覽器中無法做到這一點,但請考慮這一點的含義。

+0

哈哈我知道。如果使用不當,會很糟糕。 – Bill 2010-11-08 20:20:39

+1

或者如果是的話,這取決於你的觀點。 – JasonFruit 2010-11-08 20:23:35

0

你可以使用JS調出打印對話框,我認爲它的window.print(),你可以用你的ajax調用。關於汽車點擊我不確定。

+0

我有window.print()獲取對話框,只是不知道我是否可以打印 – Bill 2010-11-08 20:21:00

+0

我同意Jason的看法,應用程序會更好 – 2010-11-08 20:22:55

3

打印功能是由瀏覽器處理的(並因此每個瀏覽器是唯一的),它可以(通過JavaScript)的調用,但不能強制打印

(這裏的JavaScript來調用print方法瀏覽器)

<script language="Javascript1.2"> 
    <!-- 
    function printpage() { 
    window.print(); 
    } 
    //--> 
</script> 
0

正如其他人所指出的那樣 - 在Web瀏覽器對話窗口中完成打印任務是不可能的,無需人工干預或使用宏來控制鼠標。

而不是讓瀏覽器做打印,我建議你有你的ajax請求觸發一些東西,將數據打印到一個文件(wkhtmltopdf是一種選擇),並讓你的Web服務器(可能是Linux, OSX,Windows Server)監視文件夾並打印(然後刪除)該文件夾中顯示的任何內容。在OSX中,您可以使用Automator輕鬆完成此操作。在Linux中,您可以編寫一個bash腳本,每隔X分鐘(通過cron)監視文件夾,並運行lpr程序將文件發送到打印機。在Windows上......好吧,我不知道你會怎麼做,但我確實記得在打印機屬性中的舊版Windows中看到類似於文件夾作爲打印隊列選項的東西。不過,我可以做到這一點。