Печать принтера POS (EPSON TM-U220D) с использованием PHP-библиотеки Mike42/Escpos-php
Мы работаем над основанным на PHP веб-приложением для обменника денег. Обменник денег, над которым мы работаем, использует принтер POS (EPSON TM-U220D) для получения клиентских чеков, поэтому мы ищем способ печати из веб-приложения на принтер POS, и мы попробовали PHP-библиотеку mike42/escpos-php и использовали это Получение USB-чекового принтера, работающего над Windows Tutorial, но оно не работает. Это первый раз, когда мы работаем с POS-принтером, поэтому мы полностью потеряны. Кто-нибудь может помочь с этим? Заранее спасибо.Деталь:
Printer : [EPSON TM-U220D][1]
PHP Library : [Mike42/Escpos-php][1]
Tutorial : [Getting a USB receipt printer working on Windows][1]
Programming Languages : [PHP 7.2.0][1]
Web Server : [Apache][1]
Database : [MySQL][1]
Код:
/*
// Call this file 'hello-world.php'
require __DIR__ . '/inc/escpos/vendor/autoload.php';
use Mike42\Escpos\PrintConnectors\FilePrintConnector;
use Mike42\Escpos\Printer;
$connector = new FilePrintConnector("php://stdout");
$printer = new Printer($connector);
$printer -> text("Hello World!\n");
$printer -> cut();
$printer -> close();
*/
/* Change to the correct path if you copy this example! */
require __DIR__ . '/inc/escpos/vendor/autoload.php';
use Mike42\Escpos\Printer;
use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;
/**
* Install the printer using USB printing support, and the "Generic / Text Only" driver,
* then share it (you can use a firewall so that it can only be seen locally).
*
* Use a WindowsPrintConnector with the share name to print.
*
* Troubleshooting: Fire up a command prompt, and ensure that (if your printer is shared as
* "Receipt Printer), the following commands work:
*
* echo "Hello World" > testfile
* copy testfile "\\%COMPUTERNAME%\Receipt Printer"
* del testfile
*/
try {
// Enter the share name for your USB printer here
$connector = null;
//$connector = new WindowsPrintConnector("Receipt Printer");
/* Print a "Hello world" receipt" */
$printer = new Printer($connector);
$printer -> text("Hello World!\n");
$printer -> cut();
/* Close printer */
$printer -> close();
} catch (Exception $e) {
echo "Couldn't print to this printer: " . $e -> getMessage() . "\n";
}
2 ответа
Надеюсь, это поможет кому-то другому. Вам необходимо сначала установить драйверы. Затем напишите свой код, как показано ниже. WindowsPrintConnector - это тот, который используется для создания объекта коннектора. У меня это работает с Laravel.
use Mike42\Escpos\PrintConnectors\FilePrintConnector;
use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;
use Mike42\Escpos\Printer;
require 'C:\wamp64\www\myappname\vendor\autoload.php';
try {
// Enter the share name for your USB printer here
$connector = null;
$connector = new WindowsPrintConnector("E-PoS 80mm Thermal Printer");
/* Print a "Hello world" receipt" */
$printer = new Printer($connector);
$printer -> text("Hello World\n");
$printer -> cut();
/* Close printer */
$printer -> close();
} catch (Exception $e) {
echo "Couldn't print to this printer: " . $e -> getMessage() . "\n";
}
Вы поставляете null на свой принтер.
$connector = null;
$printer = new Printer($connector);
Вместо этого вы должны попробовать это:
$printername="EPSON_LX_310";
$connector = new WindowsPrintConnector($printername);
$printer = new Printer($connector);