slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
开发者开发出GitHub问题票打印机
17611538698
webmaster@21cto.com

开发者开发出GitHub问题票打印机

资讯 0 1525 2022-04-01 11:52:06

最近开发者Andrew Schmelyun 在Twitter上宣布,为了方便解决问题,他将GitHub上的每个issue问题单,连接到票据打印机以单张方式打印出来,方便大家浏览展示:


图片



大量程序员与开发者跟帖,称赞其太酷了,简直是太优秀


图片

大家的一部分评论


Andrew Schmelyun 倒是很谦逊,他说是在吃外卖时得到的灵感,那袋子上的小票让他联想,为什么不能把GitHub上的问题票(Issue Ticket)也用小票方式打印出来?


于是他用PHP连接到USB连接树莓派RPi Zero上,发送原始指令给打印机,并成功实现。



require __DIR__ . '/vendor/autoload.php';
use Mike42\Escpos\PrintConnectors\FilePrintConnector;use Mike42\Escpos\Printer;
$connector = new FilePrintConnector('/dev/usb/lp0');$printer = new Printer($connector);
$printer->text('Hello, world!');$printer->feed(2);$printer->cut();


原材料是一台老旧的EPSON票据打印机,GitHub webhooks、PHP、ngrok 和一台Raspberry Pi,此君还开发了一个完整的作业系统。


据作者Schmelyun 所说,他花了大约八个小时才让奇迹发生。“最长的部分是试图将打印机连接到 Raspberry Pi 并将数据发送给它。最初我在 Linux 中使用 CUPS,但它没有给出我想要的结果。”


使用 Pi Zero W ,是因为 Schmelyun 有一个这样一个东西扔在那吃灰。他认为基于 RP2040 的 Pi Pico 也可以完成这项工作。他还考虑过使用 ESP8266 开发板(如 NodeMCU),这些都可以搞定此事。


之所以选择 PHP,是因为 Schmelyun 是使用该语言的开发人员(Node 或 Python 也是选项),并且所以使用的打印机可以理解 ESC/POS 命令。最后监听 repos 上的事件是通过 GitHub 的 webhook 实现的。


GitHub在限制 webhook方面并不严格,Schmelyun 并不认为他会遇到很多问题。“我的项目遇到的大多数问题都不是严重的错误,”他解释说,“而且我每天最多会遇到几个问题。”


“最坏的情况我可能会将它迁移到使用 GitHub API 来代替。”


展望未来,Schmelyun 正在考虑添加一个直接链接到该问题的二维Q码:“打印库具有内置的本机二维码打印功能,添加此功能将是分分钟的事。”


更多关于票据信息会很方便,新的 PR、成功合并或问题票关闭通知也会很方便。“有人还建议他在打印开始之前添加一个轻小的通知,因为这件事对于一些人可能有点刺耳,但这会非常有用。”


这是一个有趣的项目,也很实用,这需要更多开发者的创新加入。然而这位作者也不否认,上周末的大部分时间都花在考虑如何从当地二手办公用品店购买旧 Epson TM-T88IV 打印机上了。


评论