php - 使用php直接打印到网络打印机

标签 php windows printing network-printers

我无法使用 php 将页面打印到网络打印机。
但如果它是本地打印机,则此方法有效。 我已经安装了 php_printer.dll 并在 php.ini 中启用了 以下是代码:

//$handle  =  printer_open("Send To OneNote 2007"); ///This Works

$handle = printer_open('\\\\192.168.0.8\\Canon MF4320-4350'); 
printer_set_option($handle, PRINTER_MODE, "RAW");
printer_write($handle, "TEXT To print");
printer_close($handle);

显示错误

Warning: printer_write() [function.printer-write]: couldn't allocate the printerjob [5] in E:\Server\xampp\htdocs\Kiosk\Admin\print.php on line 16

最佳答案

如果您使用命令行 PHP (CLI),则可以打印到网络打印机。顺便说一句,你的 $addr 是正确的。

当您将 PHP 与 Apache 结合使用时,问题出在 PHP 上。在 Windows 中,您的 php 脚本将在用户 SYSTEM 下运行。出于安全考虑,所有网络资源对 SYSTEM 都是不可见的。

要解决此问题,请创建一个具有管理员权限(或至少具有网络资源可见性)的新用户。在 Windows 中,如果您将 Apache 作为服务运行,请单击 Apache 服务监视器中的服务按钮。在 Apache 2.2 下,右键单击属性。在 LOGIN 选项卡下,将用户从 SYSTEM 更改为您新创建的用户帐户。重新启动 Apache 。您现在应该能够运行 PHP 脚本以打印到网络打印机。

关于php - 使用php直接打印到网络打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956143/

相关文章:

有人可以解释一下 __declspec(naked) 吗?

c# - 使用 Windows 打印图像对话框打印图像

c# - 将原始数据发送到 Zebra TTP 2030 打印机并获取其状态

php - 使用 Codeigniter 连接到 (Linux)Centos 上的 MS SQL

搜索数据库时的 PHP 和 mysql 通配符运算符

c++ - Linux 和 Windows : Using Large Files to save physical memory

wpf - 为什么我需要调用 Dispatcher.BeginInvoke() 以允许视觉对象在打印之前正确绑定(bind)?

php - 在 woocommerce 管理产品列表中为产品标签添加过滤器下拉列表

php - 将数据添加到注册表中

c++ - 如何使用 Windows API WriteFile 将 ASCII 字符串写入文件?