在 Linux 中使用 PHP escpos 打印发票



我正在实现打印发票的功能,因为我使用了 Escpos 模块,但是当我运行它时没有响应。

如果我打印php_sapi_name我得到了"Apache2handler"而不是"CLI",我有Linux系统。 我不知道如何在我的网络服务器中获取"CLI"。

你能分享你的想法来解决这个问题吗

if(php_sapi_name() == 'cli') {// i got apache2handler
    $connector = new FilePrintConnector("php://stdout");
} else {
 throw new InvalidArgumentException("Argument passed to Escpos::__construct() must implement interface PrintConnector, null given.");
  }

由于问题引用了一段非常熟悉的代码,我假设你指的是mike42/escpos-php。

如果是这样,您将需要选择一个适合您的平台(Windows,Mac,Linux)和接口(USB,串行,Samba共享,CUPS)的PrintConnector。初始化驱动程序的正确方法将特定于系统。

自述文件中会显示一个受支持的组合表,其中包含指向示例代码段的链接。

例如,如果您在 Linux 上有 USB 打印机,它可能显示为 /dev/usb/lp0 .假设您的权限配置为允许 Web 服务器用户访问该文件,则发送基本收据的链接在 Linux/USB 下的自述文件中链接:

<?php
require __DIR__ . '/vendor/autoload.php';
use Mike42EscposPrintConnectorsFilePrintConnector;
use Mike42EscposPrinter;
$connector = new FilePrintConnector("/dev/usb/lp0");
$printer = new Printer($connector);
$printer -> text("Hello World!n");
$printer -> cut();
$printer -> close();

旁白:您引用的代码片段不再在代码中,而是在命令行上并且没有指定打印连接器时可以回退php:///stdout的旧功能。

相关内容

  • 没有找到相关文章

最新更新