【发布时间】:2014-05-30 21:16:38
【问题描述】:
好的,我使用的是 PHP 5.4,我想直接从 Web 服务器打印到打印机。我正在使用 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号打印机,但是另一台不能。
状态仅为“已发送至打印机”。如果正在打印,则状态为“spooling”
我附上假脱机打印机中队列数据的屏幕截图。
这是成功后台处理程序的屏幕截图(我使用打印正常,ctrl+p 和打印进行测试)
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
我很确定你不能不通过线轴。如果可以,如果您在前一个打印作业完成之前启动打印作业会发生什么?您最好调查一下打印作业卡在假脱机中的原因。
-
嗨@GordonM,请参阅下面的回复
标签: php windows apache printing permissions