调用未定义的函数printer_open()

时间:2013-03-11 12:03:54

标签: php printing

我正在尝试通过此代码连接到另一台机器上的打印机

     $handle = printer_open("\\\\xxx.xxx.xxx.xxx\\Canon MF4320-4350");
     if($handle)
     echo "connected";
     else
     echo "not connected";     

并收到错误

    Fatal error: Call to undefined function printer_open() in C:\wamp\www\print\index.php on line 3

我已经安装了php_printer.dll,但它没有在phpinfo()下显示。使用PHP版本5.3.0

如何连接打印机并使我的printer_open()方法有效?

2 个答案:

答案 0 :(得分:3)

我有类似的问题。这是我到目前为止所想到的。

  1. 确保您的扩展文件夹(php / ext /)中的php编译版本符合php_printer.dll。使用此link下载文件。

  2. 在php.ini文件中添加以下内容:

    printer.default_printer=PHP_INI_ALL
    extension=php_printer.dll
    
  3. 错误已消失,但文件仍未打印。

答案 1 :(得分:3)

如果您在WAMP中使用PHP 5.3 / 5.4 / 5.5,请按以下步骤设置打印机。

  1. 转到此链接:http://windows.php.net/downloads/pecl/snaps/printer/0.1.0-dev/
  2. 下载适用于您的版本的zip。首先尝试用ts。如果它不起作用,请尝试nts。
  3. 解压缩并复制php_printer.dll文件。粘贴在这里:C:\ wamp \ bin \ php(phpyourversion)\ ext。注意:(phpyourversion)将类似于php5.5.12,具体取决于您的版本。
  4. 找到加载的php.ini文件。使用phpinfo或Wamp菜单找到它。在线查看更多帮助。
  5. 将其粘贴到文件末尾:extension = php_printer.dll
  6. 重新启动服务器。
  7. 使用以下代码创建一个文件并对其进行测试:

    <?php
    $printer_name = "Your Printer Name exactly as it is"; $handle = printer_open($printer_name); printer_start_doc($handle, "My Document"); printer_start_page($handle); $font = printer_create_font("Arial", 100, 100, 400, false, false, false, 0); printer_select_font($handle, $font); printer_draw_text($handle, 'This sentence should be printed.', 100, 400); printer_delete_font($font); printer_end_page($handle); printer_end_doc($handle); printer_close($handle);

  8. 如果上述方法无效,请尝试使用第二步中提到的php_printer.dll文件的nts版本。记得在删除上一个文件后重新启动服务器,粘贴新文件。