2015-02-24 3 views
1

Я пытаюсь использовать PHP для печати на серверной стороне принтера. Я нашел аналогичный пример кода, который в основном использует одни и те же функции API для выполнения этой задачи. Когда я запускал его на своем сервере для проверки кода, он говорил «PHP Неустранимая ошибка: вызов неопределенной функции printer_open()». Поэтому я нашел по крайней мере три разные версии php_printer.DLL's для этой функции принтера и попробовал их все отдельно. Я сделал еще несколько исследований и посмотрел на журнал ошибок сервера Apache, который нашел это предупреждение.PHP для печати на серверной стороне принтера

PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку 'ext \ php_printer.dll' - указанный модуль не найден. \ R \ п в Unknown в строке 0

Из этого найдено результатами некоторые поиска Bing, который сказал, что причина, она не загружается, когда апач запускается потому, что он зависит от других библиотек. Если это так, я еще не смог найти библиотечную библиотеку DLL и где ее можно получить. Это то, что мне нужна помощь, прежде всего, чтобы понять, не зависит ли это от того, почему возникает предупреждение PHP или какая библиотека мне нужна.

Спасибо за любую помощь

Zac

Я бегу wampserver2.2

Apache 2.4.2

PHP 5.4.3

ОС: Windows 7 64 бит

Добавлено в файл php.ini

расширение = php_printer.dll

и отсутствие ошибок в журнале PHP

также я перезагрузил сервер каждый раз, когда я изменить файл php.ini или когда я поставил новый DLL в * вне * directory Я даже поместил путь к «... \ ext \» в DLL-библиотеке Wamp в переменных среды для окон, как в темноте.

Пример кода

<?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); 
?> 

3/19/2015 отредактировал

Я нашел этот сайт вместе с немного другим сообщением об ошибке из журнала ошибок PHP. в основном приведенная ниже ссылка сказала, что ошибка произошла, потому что PHP_printer.dll соответствует другой версии Visual Studio C++ и поэтому ее необходимо перекомпилировать. это дает шаги по большей части я до сих пор я Тринга, чтобы заставить его работать

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

Php ошибку:

[18-Mar-2015 22:55:56 UTC] PHP Warning: PHP Startup: printer: Unable to initialize module Module compiled with module API=20121212 PHP
compiled with module API=20100525 These options need to match in Unknown on line 0

+1

Проверьте это: http://stackoverflow.com/questions/5833223/installing-php-printer-on-wamp-server – cch

+0

вы можете использовать [зависимость ходок] (HTTP: //www.dependencywalker.com/), чтобы найти, что dll отсутствует –

+0

спасибо cchacholiades и Lashane Я изучаю ваши предложения. Я позволю вам обоим знать, что эта кроличья дыра ведет меня. –

ответ

0

В случае, если вы не удалось найти решение еще ....

Прежде всего проверьте phpinfo(), что в версии сервера wmap вы используете защиту потоков, включен или нет. Просто ctrl+F в категории «Безопасность потока». phpinfo().

Вероятно, безопасность потока включена в версии, которую вы используете. Тогда вы должны скачать версию TS (поточно) от php_printer.dll который вы можете найти здесь ....

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

скачать определенный файл в соответствии с вашими требованиями систем (OS и другими) и скопировать его в каталог расширений. Тогда просто включить расширение в файле php.ini как

extension=php_printer.dll 

просто добавьте эту строку в ини файл, если уже не там и не будет ; в самом начале.

Надеется, что это помогает ...