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

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日

悬赏问题

  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动