PHP打印到服务器端打印机


PHP to print to a server side printer

我正在尝试使用PHP打印到服务器端打印机。我发现了类似的示例代码,它们大多使用相同的API函数来完成这项任务。当我在服务器上运行它来测试代码时,它说"PHP致命错误:调用未定义的函数printer_open()"。因此,我为这个打印机函数找到了至少三个不同版本的php_printer.DLL的,并分别尝试了它们。我做了更多的研究,查看了apache服务器错误日志,发现了以下警告

PHP警告:PHP启动:无法加载动态库"ext''PHP_printer.dll"-找不到指定的模块。''''r''n在未知的第0行

从中发现了一些Bing搜索结果,这些结果表明,当apache启动时,它没有加载的原因是因为它依赖于其他库。如果这是真的,我还不能找到这些是哪个库DLL,以及在哪里可以得到它们。这就是我需要帮助的地方,首先基本上知道它是否不依赖,然后为什么会抛出PHP警告,或者我需要什么库。

感谢的帮助

zac

我正在运行wampserver2.2

Apache 2.4.2

PHP 5.4.3

操作系统:windows 7 64位

添加到php.ini文件

extension=php_printer.dll

php日志中没有错误

此外,每次更改php.ini文件或在*ext*目录中放入新DLL时,我都会重新启动服务器我甚至把wamp DLL的"…''ext''"的路径放在窗口的环境变量中,就像在黑暗中拍摄一样。

示例代码

<?php
/* get the sample text */
$lipsum = "test print";//file_get_contents('lipsum.txt');
phpinfo();
/* open a connection to the printer */
$printer = printer_open("Microsoft XPS Document Writer");
/* write the text to the print job */
printer_write($printer, $lipsum);
/* close the connection */
printer_close($printer);
?>

2015年3月19日编辑

我在这个网站上发现了一条与php错误日志略有不同的错误消息。基本上,下面的链接说发生错误是因为PHP_printer.dll符合不同的visualstudioc++版本,因此需要重新编译。它给出了大部分我仍在努力使其工作的步骤

https://community.apachefriends.org/f/viewtopic.php?t=53348&p=204590

Php错误:

[18-Mar-2015 22:55:56 UTC]PHP警告:PHP启动:打印机:无法初始化模块使用模块API编译的模块=20121212 PHP
使用模块API编译=20100525这些选项需要在中匹配第0行未知

如果您还找不到解决方案。。。。

首先在phpinfo()中检查您使用的wmap服务器版本是否启用了线程安全。只有phpinfo()中的ctrl+F表示"线程安全"。

可能在您使用的版本中启用了线程安全。然后你必须下载php_printer.dll的ts(线程安全)版本,你可以在这里找到。。。。

http://windows.php.net/downloads/pecl/snaps/printer/0.1.0-dev/

根据您的系统需求(操作系统和其他系统)下载特定文件,并将其复制到wamp的扩展目录中。然后只需在php.ini文件中启用扩展名,如

extension=php_printer.dll

如果已经不存在,只需在ini文件中添加这一行,一开始就不会有;

希望它能帮助。。。