2011-03-17 123 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脚本回应你页面的另一种设计。

如果您正在讨论服务器端打印机,您可以。