通过 POS 系统在收据上打印我们的图像时出错

Posted

技术标签:

【中文标题】通过 POS 系统在收据上打印我们的图像时出错【英文标题】:Error on printing our Images on Receipt via POS system 【发布时间】:2021-11-26 05:54:43 【问题描述】:

下面是我的代码。

 Future<List<int>> getImage() async 
    List<int> bytes = [];
    CapabilityProfile profile = await CapabilityProfile.load();
    final generator = Generator(PaperSize.mm80, profile);

    final ByteData data = await rootBundle.load('assets/logo.png');
    final buffer = data.buffer;
    final image = base64.encode(Uint8List.view(buffer));
    bytes += generator.image(image);

    return bytes;
  

bytes += generator.image(image); 

错误提示

错误:不能将参数类型“字符串”分配给参数类型“图像”。

【问题讨论】:

base64 是一个字符串 @flaxon,知道我应该如何修复它吗? 【参考方案1】:

来自The docs

你需要传递字节而不是 base64

您好像错过了decodeImage()

Future<List<int>> getImage() async 
    List<int> bytes = [];
    CapabilityProfile profile = await CapabilityProfile.load();
    final generator = Generator(PaperSize.mm80, profile);

    final ByteData data = await rootBundle.load('assets/logo.png');
    final Uint8List buffer = data.buffer.asUint8List();
    final Image image = decodeImage(buffer);

    bytes += generator.image(image);

    return bytes;
  

【讨论】:

最终的 Uint8List bytes= data.buffer.asUint8List(); , 错误: 'bytes' 已在此范围内声明。 好的,所以使用另一个变量名。我改成buffer 我错过了你的List&lt;int&gt; bytes = [];,但我认为它没有节点 还有 1 个问题是最终的 Image 图像,名称 'Image' 定义在库 'package:flutter/src/widgets/image.dart' 和 'package:image/src/image.飞镖(通过包:image/image.dart)'。 添加import 'package:image/image.dart'; on top

以上是关于通过 POS 系统在收据上打印我们的图像时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 通过 ESC/POS 将图像打印命令发送到以太网上的热敏打印机

如何在 Odoo POS 收据中添加二维码图像

如何在 Flutter 中使用带有打印机名称的以太网 POS 打印机打印收据?

Intermec PB42 打印图像

在 ESC/POS 命令中选择字符代码表

POS 打印机 - 文件格式