Php 打印机\u open()打印html输出

Php 打印机\u open()打印html输出,php,html,Php,Html,使用php中的printer\u open()函数,我可以打印保存在$content变量中的字符串,并且可以从文件中打印 $printer = "\\\\Pserver.php.net\\printername"; $handler = printer_open($printer); $content = "Test Content"; //string printer_write($handler, $content); printer_close($handler); 但是有一个我

使用php中的
printer\u open()
函数,我可以打印保存在
$content
变量中的字符串,并且可以从文件中打印

$printer = "\\\\Pserver.php.net\\printername"; 
$handler = printer_open($printer);
$content = "Test Content";  //string
printer_write($handler, $content); 
printer_close($handler); 
但是有一个我从数据库生成的html输出,显示在网页中,我需要在页面加载后以相同的格式将其直接打印到打印的页面上,我尝试了很多,但我不知道我该怎么做才能使打印机在页面加载后使用
printer\u open()
直接打印相同的html输出

我该怎么办?如果有更好的方法,请提出建议


更新

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


我希望用户点击提交表单和打印机直接打印收据,而无需询问任何问题

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

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();

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

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

您可以在服务器上运行PhantomJS来呈现HTML,保存快照并打印,但这听起来像是打印发票的巨大过度


更好的办法可能是生成PDF并打印。

您想从服务器还是从客户端打印?通常情况下,服务器无法访问呈现的HTML,您不能从客户端使用PHP打印,因为PHP在服务器上运行。@Rahul TS您可以尝试使用javascript window.print()函数@RoToRa我正在使用客户端printer@xurca促使我使用此php代码的主要问题是window.print()运行时出现的打印对话框,我正在尝试打印销售点系统的收据,我希望在销售完成后打印打印机可以在某些版本的IE中使用ActiveX控件执行此操作,但通常不可能完全绕过确认对话框。