2016-01-23 29 views
-1

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

如果我打印php_sapi_name我得到了“apache2handler”而不是“cli”,我有linux系统。我不知道如何在我的网络服务器上获得“cli”。

能否请您分享您的想法的问题引述非常熟悉的前瞻性代码片段,我假设你是指mike42/escpos-php解决这个问题

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."); 
    } 

回答

0

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

README文件中出现支持组合的表格,其中包含指向示例代码片段的链接。

举个例子,如果你在Linux上有USB打印机,它可能会显示为/dev/usb/lp0。假设你的权限被配置为允许Web服务器用户访问该文件时,发送一个基本的收据是在Linux/USB的README链接:

<?php 
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!\n"); 
$printer -> cut(); 
$printer -> close(); 

旁白:你报的片段不再代码,但是如果您处于命令行并且未指定打印连接器,则该功能可能会退回到php:///stdout

+0

如果我在Windows上安装USB打印机,该怎么传递给FilePrintConnector()。 –