Zbudowałem aplikację POS (Point of Sale) w PHP, która może drukować bezpośrednio na drukarce termicznej. W większości przypadków uruchamiam aplikację na lokalnym serwerze internetowym za pomocą WAMP.Drukowanie PHP na lokalnej drukarce termicznej, nie działa bez nazwy sieciowej
część kodu drukowania wynosi:
$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');
}
Ten kod działa poprawnie, dopóki komputer jest podłączony do sieci. Mogę uzyskać PHP, aby połączyć się z udostępnioną drukarką (na tym samym komputerze lub na komputerze w sieci) za pomocą fopen i "LOCALHOST" lub "COMPUTER-NAME": fopen ("\\ localhost \ TM-T88V "," w ");
Gdybym odłączyć komputer od sieci, PHP nie może połączyć się z \\ localhost lub \\ Computer-NAME.
Próbowałem rzeczy takie jak: fopen ('TM-T88V'), fopen ('\\. \ TM-T88V'), ale nadal otrzymuję "[function.fopen]: nie udało się otworzyć strumienia: Nie taki plik lub katalog ... ".
Jak mogę połączyć się z lokalną (shared) drukarki (najlepiej po nazwie) bez aktywnego połączenia z siecią?
Korzystanie z loopback adapter Znalazłem sposób obejścia problemu, w ten sposób komputer nadal „myśli”, że ma połączenie sieciowe, aby mogło rozwiązać \\ localhost. Ale myślę, że powinien istnieć sposób na bezpośrednie połączenie z drukarką. –
Cześć Bauke. Czy możesz wyjaśnić nieco więcej tego rozwiązania tego problemu? Jesteśmy w takiej samej sytuacji, jak ty od roku. Nie jesteśmy w stanie wysłać wydruku do drukarki termicznej Zebra. Wypróbowaliśmy również Twój kod, ale nie zadziałało. –
Cześć Bauke. Dzięki za pomysł. W końcu mogliśmy to rozwiązać. Jedyne, co musieliśmy zrobić, to udostępnić drukarkę w sieci, a następnie uzyskać do niej dostęp przez sieć. Adapter sprzężenia zwrotnego nie działa dla nas. –