8

使用printer_open()php 中的函数,我能够打印我保存在$content变量中的字符串,并能够从文件中打印。

$printer = "\\\\Pserver.php.net\\printername"; 
$handler = printer_open($printer);
$content = "Test Content";  //string
printer_write($handler, $content); 
printer_close($handler); 

但是有一个我从数据库生成的 html 输出,并显示在网页中,一旦页面加载,我需要将其直接打印到相同格式的打印件上,我尝试了很多,但我不知道该怎么做使用printer_open().

我应该怎么办?如果有的话,请提出比这更好的方法


更新

我不想使用 javascript 的 windows.print() 方法,因为它显示打印对话框而不是直接向打印机启动打印作业

我希望用户点击提交表单和打印机直接打印收据而不问他们任何事情

4

3 回答 3

2

您可以尝试使用输出缓冲区:

ob_start();
// generate your output from the DB here
// .....

// Send generated output to the printer
printer_write($handler, ob_get_contents());

// And show it to client on the frontend
ob_end_flush();
于 2013-09-20T08:16:48.470 回答
0

据我了解您的问题,您正在尝试呈现 HTML 然后打印它。不幸的是,如果你在客户端渲染它,你需要在客户端打印它——这将启动打印对话框。

可以在服务器上运行 PhantomJS 来呈现 HTML,保存快照并打印它,但这听起来像是为了打印发票而过度杀伤力。

可能更好的主意是生成 PDF 并打印出来。

于 2014-10-03T13:57:36.493 回答
0

创建一个带有自动对焦的隐藏字段(需要支持 HTML5 的浏览器)并使用 html onblur 属性(输出,如果用户点击任何其他表单元素)或特定表单元素(按钮)上的 onfocus 属性触发打印输出。不要提交表单,因为这会导致页面重新加载......

于 2013-11-27T14:43:37.607 回答