Я создал приложение POS (Point of Sale) на PHP, которое может печатать непосредственно на термопринтере. В большинстве случаев я запускаю приложение на локальном веб-сервере с помощью WAMP.PHP-печать на локальный термальный принтер, не работает без сетевого имени
Часть кода печати является:
$printer = "\\\\localhost\\TM-T88V";
// Open connection to the thermal printer
$fp = fopen($printer, "w");
if (!$fp){
die('no connection');
}
$data = " PRINT THIS ";
// Cut Paper
$data .= "\x00\x1Bi\x00";
if (!fwrite($fp,$data)){
die('writing failed');
}
Этот код работает отлично до тех пор, пока компьютер подключен к сети. Я могу заставить PHP подключиться к общему принтеру (либо на том же ПК, либо на ПК в сети), используя fopen и «LOCALHOST» или «COMPUTER-NAME»: fopen («\\ localhost \ TM-T88V », 'W');
Если я отключу компьютер от сети, PHP больше не сможет подключаться к \\ localhost или \\ COMPUTER-NAME.
Я пробовал такие вещи, как: fopen ('TM-T88V'), fopen ('\\. \ TM-T88V'), но я продолжаю получать "[function.fopen]: не удалось открыть поток: Нет такой файл или каталог ... ».
Как подключиться к локальному (совместно используемому) принтеру (желательно по имени) без активного сетевого подключения?
При использовании петлевого-адаптера я нашел способ обойти эту проблему, таким образом, компьютер все еще «думает», что имеет сетевое соединение, чтобы он мог разрешить \\ localhost. Но я думаю, что должен быть способ напрямую подключиться к принтеру. –
Привет, Bauke. Не могли бы вы объяснить это решение более подробно. Мы находимся в той же ситуации, что и ты, год назад. Мы не можем отправить печать на термографический принтер Zebra. Мы также пробовали ваш код, но он не работал. –
Привет, Bauke. Спасибо тонну за эту идею. Мы смогли решить это, наконец, и в нашем конце. Единственное, что нам нужно было сделать, это обмениваться принтером по сети, а затем обращаться к нему через сеть. Адаптер Loopback не работал для нас. –