【问题标题】:PHP printing - Call to undefined function printer_list()PHP 打印 - 调用未定义的函数 printer_list()
【发布时间】:2019-09-12 08:19:15
【问题描述】:

我正在尝试使用 PHP 的打印机功能。但是 PHP 给出了一个未定义的函数错误。我使用的是 PHP 7.2,所以我在网上寻找了一个 php_printer.dll,但我只找到了 PHP 5.x。我将它复制到 PHP ext 目录并在我的 php.ini 中添加了一行,重新启动了 apache 但它仍然无法正常工作。

我希望能够列出我网络上所有可用的打印机,然后选择一台并使用它进行打印。

C:\xampp\php\ext\php_printer.dll

php.ini

extension=php_printer.dll

这是我的代码

$ouput = 'Test print...';

$getprt = printer_list( PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED );
$handle = printer_open(getprt['NAME']);

 if($handle) {
      echo "connected";
 } else {
      echo "not connected";    
 }

printer_set_option($handle, PRINTER_MODE, "raw"); 
printer_write($handle,$output);
printer_close($handle);

【问题讨论】:

  • phpinfo() 显示什么?它是否显示已加载扩展程序?
  • 我在 phpinfo() 中找不到它没有显示在那里

标签: php printing php-extension


【解决方案1】:

查看那个 git repo (https://github.com/gimjudge/php) 上的一个问题,我看到 gimjudge 仅针对 32 PHP 编译了这些 DLL。他们的理由是,在 PHP7 之前,64 位 PHP 版本实际上只是实验性的。 PHP 到 PHP7.0 才变成真正的 64 位

因此,要使用此 dll,您必须安装 32 位版本的 WAMPServer。那么你激活这个 DLL 可能就没有问题了。

您可以从这里下载 32 位版本的 WAMPServer 3:http://wampserver.aviatechno.net/ 它是备份存储库,比普通的 SourceForge 存储库更容易查看您在做什么以及正在下载哪个版本。

确保在安装 32 位 WAMPServer 之前备份所有站点和数据库。

但是可以在同一台 PC 上安装 32 位和 64 位 WAMPServer,因为默认文件夹名称不同(C:\wamp 或 C:\wamp64)Apache 和 MySQL 服务名称也不同(wampapache 或 wampapache64)和(wampmysqld 或 wampmysqld64)

虽然同时启动两者并不是一个好主意,因为这会无缘无故地占用大量内存。

(感谢 RiggsFolly)

【讨论】:

  • 我使用的是最新版本的XAMPP
  • 使用 PHP 7 64bit 不能打印是不是很奇怪?
  • 我不认为人们通常使用 php 进行打印。它通常从前端完成,也许尝试使用 ajax 在空白页中输出您的打印目标?
猜你喜欢
  • 2018-06-20
  • 2015-09-15
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 2014-10-19
  • 2021-06-05
  • 2013-05-19
相关资源
最近更新 更多