为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
森栏 2023-04-02 10:50:09
当我想通过 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 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

可以考虑以下之一。

  1. 通过将四个图像数据排列在一条水平线上来创建一个图像数据并打印它。

  2. 结合原始ESC/POS命令数据设置页面模式,在escpos-php的图形打印功能后,用原始ESC/POS命令数据重复打印起始位置,最后原始ESC/POS命令,进行实际打印和页面模式结束。

相关ESC/POS指令:

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

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

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


查看完整回答
反对 回复 2023-04-02
?
精慕HU

TA贡献1845条经验 获得超8个赞

使用 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'); }


查看完整回答
反对 回复 2023-04-02
  • 2 回答
  • 0 关注
  • 209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信