nfephp-org / posprint
热敏POS打印机库
Requires
- php: >=5.6
- endroid/qrcode: ^2
Requires (Dev)
- phpmd/phpmd: dev-master
- phpunit/phpunit: ^5.7
- scrutinizer/ocular: ^1.3
- squizlabs/php_codesniffer: ^2.8
This package is auto-updated.
Last update: 2024-09-24 04:49:30 UTC
README
posprint
POS热敏打印机API。用于零售网络收银台。
注意:此包仍在alpha阶段,不可用。
我们需要贡献者!
此API通过直接向打印机发送命令(RAW)来运行,无需使用特定驱动程序。它是基于多个制造商(品牌和型号)的可用的Esc/Pos命令构建的,重点在于巴西市场。
以下制造商已包含在此API中,但由于其固件提供的资源可用性,并非所有品牌的型号都将正常工作。(目前指定的型号仅为基本信息,尚未进行所有实际功能测试)。
- EPSON (TM-T20)
- DARUMA (DR700)
- BEMATECH (MP-4200 TH)
- ELGIN (VOX)
- STAR (BSC-10)
- SWEDA (SI-300)
- DIEBOLD (TSP143MD/MU)
此API应提供通过多种连接方式访问连接的热敏打印机,以及在任何操作系统上,只要正确安装和配置了连接,无需为每个操作系统安装特定驱动程序(在某些情况下仅需要一个标准的RAW驱动程序)。
- 串行
- 并行
- USB
- Cups打印服务器
- Windows打印服务器
- IPP
- LPR
- 网络(qz.io java)
PHP先决条件
- PHP >= 5.6
- ext-gd(用于图像和标志处理)
- 研究使用ext-imagick的可能性
基本功能
- 加载适当的连接器类
- 加载适当的打印机类
- 使用接口和打印机类的基本功能发送命令序列
- 使用选择的连接器向打印机发送命令
贡献者的笔记
我们遇到的问题是PhpSerial类,因为作者决定单独执行更改端口的Windows命令。但是,在Windows中,每次执行"mode PORTA"命令时,如果传递了参数,则其他参数都会恢复默认值。而打印机应该以如图所示的端口方式运行。
为了实现这一点,您需要修改posprint-master/vendor/hyperthese/php-serial/src/PhpSerial.php文件中的行
//$this->_device = "\\.com" . $matches[1]; $this->_device = "COM" . $matches[1];
更改了该行,因为Windows不使用"\.com"命令打开串行端口,而是使用"COM"命令
然后我们对以下行进行了另一项更改。
"mode " . $this->_winDevice . " PARITY=" . $parity{0}, "mode " . $this->_winDevice . " DATA=8 PARITY=" . $parity{0},
此更改是必要的,因为邮件开头已解释。
各位,这些更改仅用于在Windows上使用串行端口进行测试,请记住这不是项目的目的。
此致敬礼,
R Ribeiro Soares
安装(Install)
通过Composer
$ composer require nfephp-org/posprint
用法(Usage)
$filename = "/tmp/epson.prn"; $connector = new Posprint\Connector\File($filename); $printer = new Posprint\Printers\Epson($connector); $printer->initialize(); $printer->setBold(); $printer->text("Hello World !!"); $printer->setBold(); $printer->lineFeed(2); $printer->setAlign("C"); $printer->text("CENTRAL"); $printer->lineFeed(2); $printer->cut(); $printer->send();
变更日志(Change Log)
请查看变更日志以获取有关最新变更的更多信息。请参阅变更日志以获取有关最近更改的信息。
测试中(测试)
$ composer test
贡献(贡献)
请阅读如何在贡献指南和我们的行为准则中了解更多详细信息。请参阅贡献指南和行为准则以获取详细信息。
安全性
如果您发现任何与安全相关的问题,请直接联系维护者linux.rlm@gmail.com,而不是在github上创建ISSUE。 如果您发现任何安全相关的问题,请通过电子邮件发送:author_email而不是使用问题跟踪器。
致谢(致谢)
- escpos-php(C)Michael Billington(MIT许可证)
- php-esc-pos(C)Roni Saha(MIT许可证)
- PHP:IPP(C)(GPL)
我必须感谢这些开发者,因为没有他们的帮助,在开源许可证下他们的作品将无法开发这个项目。
许可证(许可证)
此软件包正在LGPLv3或GPLv3或MIT许可证下提供,有关更多信息,请参阅许可证文件。LGPLv3、GPLv3和MIT许可证。请参阅许可证文件以获取更多信息。