【问题标题】:Print QrCode from php escpos Toshiba compatible从 php escpos Toshiba 兼容打印 QrCode
【发布时间】:2019-06-06 17:26:49
【问题描述】:

我正在尝试使用与 escpos 兼容的东芝 4610-1nr 打印,以模拟 Epson TM-T88II 收据。
一切正常,但不是二维码。

我尝试了一些代码,但没有任何工作

我可以打印所有内容,但不能打印 QR 码,条形码有效……但不能打印 QR 码。

<?php
header('Content-Type: text/html; charset=utf-8');
/* ASCII constants */
const ESC = "\x1b";
const GS="\x1d";
const NUL="\x00";
const BAR="\x1c";


/* Output an example receipt */
define('EURO',chr(128));
echo ESC."t".chr(19); // table 19 lituana // 858 multilingual
echo ESC."a".chr(0); // Left print
echo "MY PLACE\n";
echo ESC."a".chr(0); // Left print
echo "Description my place\n";
echo ESC."a".chr(0); // Left print
echo "Adress my place\n";
echo ESC."a".chr(1); // Center print
echo " \n";
echo " \n";
echo " \n";
echo "header text\n";
echo "header text\n";
echo " \n";
echo " \n";
echo ESC."a".chr(0); // Left print
echo "DESCRIPTION";
echo ESC."a".chr(2); // right print
echo "VAT ";
echo "PRICE(".EURO.")";
echo ESC."a".chr(0); // Left print
echo ESC."!".chr(16); // doppia altezza
echo "SUBTOTAL\n";
echo ESC."!".chr(0); // 4 Blank lines
echo ESC."a".chr(0); // Left print
echo "VAT\n";
echo " \n";
echo "Importo pagato\n";
echo " \n";
echo ESC."a".chr(1); // Center print

echo ESC."d".chr(1); // Blank line
echo GS."h".chr(60); // seleziono hight
echo GS."w".chr(1); // seleziono widht
echo GS."m".chr(8); // code128
echo GS."k".chr(4)."0000MFDFMD0000".chr(0);
echo ESC."d".chr(1); // Blank line

echo ESC."d".chr(1); // Blank line
echo GS."k".chr(4)."70707007";
echo ESC."d".chr(1); // Blank line

echo ESC."d".chr(1); // Blank line
//echo GS."k".chr(49).chr(81)."fdhfhsl";
//echo GS."k".chr(49).chr(81)."fdhfhsl";

echo ESC."d".chr(1); // Blank line
//echo qr code GS."k".chr(28).chr(4).chr(49).chr(81)."httpsooostackoverflowocomom44";

//echo ESC."v".chr(1); // Blank line
echo ESC."V".chr(66).chr(0); // Cut
exit(0);
?>

【问题讨论】:

    标签: php qr-code escpos


    【解决方案1】:
    def generate_qr(self, data, size= b'\x09'):
        return b'\x1D\x28\x6B\x04\x00\x31\x41\x32\x00\x1D\x28\x6B\x03\x00\x31\x43' + size + \
               b'\x1D\x28\x6B\x03\x00\x31\x43\x51' + b'\x1D\x28\x6B' \
               + (len(data) + 3).to_bytes(2, byteorder="little") + \
               b'\x31\x50\x30' + data.encode() + b'\x1D\x28\x6B\x03\x00\x31\x51\x30'
    

    这将输出

    b'\x1d(k\x04\x001A2\x00\x1d(k\x03\x001C\x04\x1d(k\x03\x001CQ\x1d(k=\x001P01111111111111111111111111111112222222222tyrytryryt12312312\x1d(k\x03\x001Q0'

    如果你echo -en '\x1d(k\x04\x001A2\x00\x1d(k\x03\x001C\x04\x1d(k\x03\x001CQ\x1d(k=\x001P01111111111111111111111111111112222222222tyrytryryt12312312\x1d(k\x03\x001Q0' &gt;/dev/usb/lp0#considering lp0 是你的热敏打印机会打印你的二维码

    【讨论】:

    • 嗨,问题是代码,所以现在我可以打印二维码:GS O 1 3 0 "145645-3434-34456ABAB564645454389084093804830984903890436".NUL
    • @pette 你应该有对齐功能调用echo -en '\x1B\x61\x01' &gt; dev/usb/lp0 将对齐中心
    猜你喜欢
    • 2015-12-23
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 2018-12-30
    • 2016-08-21
    • 1970-01-01
    • 2016-05-30
    • 2017-05-15
    相关资源
    最近更新 更多