2016-01-23 28 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()。 –