Mike42 ESCPOS-在一行中打印4个png文件

时间:2020-05-20 02:47:50

标签: php escpos

当我想通过Mik42 / ESCPOS打印4个PNG文件(100x100)时。它在每一行上打印了每个PNG文件。有没有一种方法可以在一行中打印所有四个PNG文件?

$printer -> setJustification(Printer::JUSTIFY_LEFT);
$printer -> graphics($HC1,false);
$printer -> graphics($HC1,false);
$printer -> graphics($HC1,false);
$printer -> graphics($HC1,false);

2 个答案:

答案 0 :(得分:0)

可以考虑以下之一。

  1. 通过在一条水平线上排列四个图像数据并打印来创建一个图像数据。
  2. 通过组合原始ESC / POS命令数据来设置页面模式,在escpos-php的图形打印功能之后执行打印开始位置,并在原始ESC / POS命令数据之后重复打印开始位置,最后执行原始ESC / POS命令实际打印和页面模式结束。

相关的ESC / POS命令:

ESC L选择页面模式
ESC W在页面模式下设置打印区域
ESC T在页面模式下选择打印方向

GS $在页面模式下设置绝对垂直打印位置
ESC $设置绝对打印位置
GS \在“页面”模式下设置相对垂直打印位置
ESC \设置相对打印位置

FF (in Page mode)打印并返回到标准模式(在页面模式下)

答案 1 :(得分:0)

使用imgagick将其保存到Web目录中的PNG文件,然后用PHP进行编码。

function appendImages($img1,$img2,$img3,$img4,$format) {

$im = new Imagick();

$im->addImage(new Imagick($_SERVER['DOCUMENT_ROOT'].'/images/'.$img1.'.jpg'));
$im->addImage(new Imagick($_SERVER['DOCUMENT_ROOT'].'/images/'.$img2.'.jpg'));
$im->addImage(new Imagick($_SERVER['DOCUMENT_ROOT'].'/images/'.$img3.'.jpg'));
$im->addImage(new Imagick($_SERVER['DOCUMENT_ROOT'].'/images/'.$img4.'.jpg'));

$im->resetIterator();
$combined = $im->appendImages(false);
$combined->setImageFormat($format);
$combined->writeImage($_SERVER['DOCUMENT_ROOT'].'/images/combined.png'); }