PHP打印到服务器端打印机

时间:2015-02-24 00:01:15

标签: php apache dll printing

我正在尝试使用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文件

延长= 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符合不同的visual studio c ++版本,因此需要重新编译。它提供了大部分步骤,我仍然需要让它工作

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

Php错误:

  

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

1 个答案:

答案 0 :(得分:0)

如果你还没有找到解决方案......

首先检查phpinfo()是否启用了使用线程安全的wmap服务器版本。只需ctrl+F phpinfo()中的php_printer.dll用于&#34;线程安全&#34;。

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

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

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

;

如果已经不在那里,只需在ini文件中添加此行,并且开头就没有using Newtonsoft.Json.Linq string json = @"{ CPU: 'Intel', Drives: [ 'DVD read/writer', '500 gigabyte hard drive' ] }"; JObject o = JObject.Parse(json); string CPU = o.CPU; int NumDrives = o.Drives.Count;

希望它有所帮助...