2011-03-17 121 views
0

我無法真正找到有關如何使用打印機打印文件的主題。 首先,我不是指打印回聲,而是真正的打印機。使用PHP打印內容

我想讓用戶點擊一個按鈕,然後開始打印頁面。

與javascript:window.print()相同,但與PHP相比。有這樣的選擇嗎?

謝謝!

+1

是否要在連接到Web服務器的打印機或連接到瀏覽器PC的打印機上打印? – 2011-03-17 12:14:13

+1

簡答:不,不可能!只有當你在Linux機器上運行php並希望寫入該機器的打印機插口,也許你可以打印某些東西,但這不是真實的場景,你似乎希望網絡用戶在其打印機上打印。你可以把它打印到服務器的打印機上面! – 2011-03-17 12:14:24

+1

否。因爲PHP在服務器上運行,而不在客戶端瀏覽器中運行。 – 2011-03-17 12:14:27

回答

1

你是指在服務器端還是客戶端打印?

對於客戶端可以包括一段JavaScript代碼,它調用你所提到的JS功能:

<?php 
print '<input type="button" value="Print this document" onclick="window.print();" />\n'; 
?> 

對於服務器端:它肯定是更復雜。您可以找到一個PHP接口,例如到CUPS(標準UNIX打印系統)或調用打印文檔的系統程序。 Svish發佈了一個連接到的CUPS接口,據我所知是一個在MS Windows中打印的界面(當然,只有當服務器在Windows下運行時纔有用)。

編輯:如果您希望找到一個解決方案,它打印由客戶端瀏覽器呈現但未打印在客戶端上但在服務器上顯示的頁面PHP輸出 - 這應該是不可能的。我想你可以實現將PHP的輸出發送給呈現頁面本身的系統程序,但它不會像客戶端上的那樣看起來像100%。也許在服務器上調用一個打印程序是可以接受的,將所有必要的信息傳遞給它,並且呈現它自己的一些文檔,一個RTF文本文件?

1

PHP在服務器端工作,因此無法在客戶端打印任何內容。它不能在客戶端實際上什麼,除了通過生成的HTML,CSS,JavaScript等PHP 可以talk to a printer雖然,但它會是一個服務器端打印機,據我所知。

因此,如果您希望用戶在打印機上單擊按鈕打印頁面,則它必須是客戶端。例如JavaScript。

1

由於PHP是一種服務器端腳本語言,這是不可能的。

0

您不能讓用戶使用PHP從他的打印機打印文檔。

如果打印文檔的設計不合需要,可以添加打印樣式表。

或者有一個打印機友好的頁面。例如, ;傳遞一個名爲printer的get變量會讓你的php腳本回應你頁面的另一種設計。

如果您正在討論服務器端打印機,您可以。