好的,我使用的是PHP 5.4,我想直接从网络服务器打印到打印机。我正在使用PHP模块php_printer.dll。
该功能运作良好。我在打印机队列中看到数据已进入,但挂起状态“发送到打印机”
这是代码
$printerList = printer_list(PRINTER_ENUM_LOCAL);
var_dump($printerList);
$printerName = $printerList[0]['NAME'];
echo $printerName;
$printer = $printerName;
if($ph = printer_open($printer)) {
$content = "hello";
// Set print mode to RAW and send PDF to printer
printer_set_option($ph, PRINTER_MODE, "RAW");
printer_write($ph, $content);
printer_close($ph);
}
else "Couldn't connect...";
Apache中的屏幕或日志文件没有错误,所以我假设PHP代码运行良好。我看到数据是在Windows打印假脱机程序中。问题是它卡在那里,它无法从打印机产生输出。
我认为问题是因为Windows权限问题(我使用的是Windows 8,在Windows 7或XP中测试也无法正常工作)。我有4台测试打印机:1。HP Laser Jet 401,2。PDF打印机,3。Windows传真,4。XPS文档编写器。
我的电脑无法打印到所有4台打印机。我在其他计算机上测试,它可以打印到1号打印机,但另一台不能打印。
状态仅为“发送至打印机”。如果是打印,则状态为“假脱机”
我在假脱机打印机中附加了队列数据的屏幕截图。
这是成功假脱机程序的屏幕截图(我使用print normal,ctrl + p和print进行测试)
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
我得到了答案,问题是你必须在开头添加这个
printer_start_doc($ph, "Start Doc");
和之前的printer_close
printer_end_doc($ph);
没有开始和结束文档无法打印。
我只是想知道为什么我仍然可以在其他计算机上打印到1号打印机,但不使用该开始和结束doc PHP命令。