莫寒语 2022-06-02 14:40 采纳率: 100%
浏览 218
已结题

flutter 调用网络打印机没有反应

最近在使用flutter开发移动端App的时候,遇到了通过ip直接调用网络打印机,打印机没有反应的问题
点击打印按钮,开始连接打印机
ElevatedButton(
    child: const Text("打印"),
    onPressed: () async {
        const PaperSize paper = PaperSize.mm80;
        final profile = await CapabilityProfile.load();
        final printer = NetworkPrinter(paper, profile);

        final PosPrintResult res = await printer.connect('10.228.109.100',  port: 3911);
         /// 此处已经success
         if (res == PosPrintResult.success) {
            testReceipt(printer);
            printer.disconnect();
          }

          print('Print result: ${res.msg}');
      },
)
连接成功之后,调用testReceipt方法开始绘制打印

void testReceipt(NetworkPrinter printer) {
    print('开始打印');
    printer.text(
        'Regular: aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ');
    printer.text('Special 1: àÀ èÈ éÉ ûÛ üÜ çÇ ôÔ',
        styles: PosStyles(codeTable: 'CP1252'));
    printer.text('Special 2: blåbærgrød',
        styles: PosStyles(codeTable: 'CP1252'));

    printer.text('Bold text', styles: PosStyles(bold: true));
    printer.text('Reverse text', styles: PosStyles(reverse: true));
    printer.text('Underlined text',
        styles: PosStyles(underline: true), linesAfter: 1);
    printer.text('Align left', styles: PosStyles(align: PosAlign.left));
    printer.text('Align center', styles: PosStyles(align: PosAlign.center));
    printer.text('Align right',
        styles: PosStyles(align: PosAlign.right), linesAfter: 1);

    printer.text('Text size 200%',
        styles: PosStyles(
          height: PosTextSize.size2,
          width: PosTextSize.size2,
        ));
    printer.feed(2);
    printer.cut();
    print('打印结束');
  }
运行结果未报错,控制台输出没有任何问题

img

代码上没看出任何问题,但是打印机毫无反应
求指点迷津,我错哪了,该怎么做
  • 写回答

1条回答 默认 最新

  • 不吐泡泡的咸鱼 2022-06-07 21:36
    关注

    提供的信息可以确定网络连接成功了
    没有打印出内容的原因应该在testReceipt内。由于并未提供NetworkPrinter的信息,所以无法确认具体位置,一下提出几点假设

    1. NetworkPrinter是一个正常的网络启动程序,那就考虑使用的问题,是否是printer中输出内容后没有将缓冲区刷出,或者需要提交打印任务之类的(这块应该是NetworkPrinter内部实现的一些函数,有可能未被调用)
    2. 若NetworkPrinter是一个正在开发的打印机驱动,那需要考虑是否是NetworkPrinter实现上的问题,包括是否有实现与打印机之间的协议相关的功能等
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 已采纳回答 6月9日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝