Flutter云打印机集成插件sunmi_cloud_printer的使用

Flutter云打印机集成插件sunmi_cloud_printer的使用

sunmi_cloud_printer

一个用于80mm厨房云打印机——SUNMI的包。

重要事项

此插件仅在Android上有效!


类名

SunmiCloudPrinter

示例

Future<void> initPlatformState() async {
  await SunmiCloudPrinter.setNetPrinter("192.168.2.93");
  await SunmiCloudPrinter.connect();
}

[@override](/user/override)
Widget build(BuildContext context) {
  return ElevatedButton(
    onPressed: () async => {
      await SunmiCloudPrinter.printText("Connection Test !"),
      await SunmiCloudPrinter.lineWrap(3),
    },
    child: const Text("Print connection test")
  );
}

安装

flutter pub add sunmi_cloud_printer

此包的功能

  • ✅ 编写一些文本
  • ✅ 更改字体大小
  • ✅ 跳(n)行
  • ✅ 绘制分隔线
  • ✅ 开启/关闭加粗模式
  • ✅ 打印所有类型的条形码
  • ✅ 打印自定义宽度和错误级别的二维码
  • ✅ 从资源或网页打印图像
  • ✅ 打印自定义宽度和对齐方式的行,如收据
  • ❌ 可以与你已经拥有的某些ESC/POS代码结合使用!
  • ✅ 切纸 - 专用方法来切断行
  • ❌ 获取打印机序列号
  • ✅ 获取打印机版本

测试设备

Sunmi NT311

完整示例代码

以下是一个完整的示例代码,展示了如何使用sunmi_cloud_printer插件进行基本操作:

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:sunmi_cloud_printer/sunmi_cloud_printer.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 平台消息是异步的,因此我们在异步方法中初始化。
  Future<void> initPlatformState() async {
    await SunmiCloudPrinter.setNetPrinter("192.168.2.93");
    await SunmiCloudPrinter.connect();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            const Spacer(),
            ElevatedButton(
              onPressed: () async => await SunmiCloudPrinter.connect(),
              child: const Text("连接"),
            ),
            ElevatedButton(
              onPressed: () async => await SunmiCloudPrinter.initPrinter(),
              child: const Text("初始化打印机"),
            ),
            ElevatedButton(
              onPressed: () async => {
                await SunmiCloudPrinter.printText("Connection Test !"),
                await SunmiCloudPrinter.lineWrap(3),
              },
              child: const Text("打印连接测试"),
            ),
            ElevatedButton(
              onPressed: () async => {
                await SunmiCloudPrinter.printQRCode('https://canteen.risto.cloud/api/company/service_status', size: 8),
                await SunmiCloudPrinter.lineWrap(3),
              },
              child: const Text("打印二维码测试"),
            ),
            const Spacer(),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter云打印机集成插件sunmi_cloud_printer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter云打印机集成插件sunmi_cloud_printer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中集成并使用sunmi_cloud_printer插件的代码示例。这个插件通常用于与Sunmi云打印机进行交互。请注意,实际使用时需要确保您已经正确设置了Flutter开发环境,并且已经添加了所需的依赖项。

1. 添加依赖项

首先,在您的pubspec.yaml文件中添加sunmi_cloud_printer依赖项:

dependencies:
  flutter:
    sdk: flutter
  sunmi_cloud_printer: ^最新版本号  # 请替换为实际发布的最新版本号

然后运行flutter pub get来安装依赖项。

2. 导入插件并初始化

在您的Dart代码中导入插件并进行必要的初始化。例如,在main.dart文件中:

import 'package:flutter/material.dart';
import 'package:sunmi_cloud_printer/sunmi_cloud_printer.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  SunmiCloudPrinter? _printer;

  @override
  void initState() {
    super.initState();
    // 初始化打印机插件
    _initPrinter();
  }

  Future<void> _initPrinter() async {
    _printer = SunmiCloudPrinter();
    // 这里可以添加打印机初始化成功的逻辑,比如显示状态信息
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Sunmi Cloud Printer Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: _printText,
                child: Text('Print Text'),
              ),
            ],
          ),
        ),
      ),
    );
  }

  Future<void> _printText() async {
    if (_printer != null) {
      try {
        // 打印纯文本
        String textToPrint = "Hello, Sunmi Cloud Printer!";
        await _printer!.printText(textToPrint);
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text('Text printed successfully!')),
        );
      } catch (e) {
        print('Error printing text: $e');
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text('Error printing text')),
        );
      }
    } else {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('Printer not initialized')),
      );
    }
  }
}

3. 权限和配置

确保在Android的AndroidManifest.xml文件中添加了必要的权限(如果需要的话,具体权限要求请参考插件文档)。同时,根据Sunmi打印机的具体要求,可能还需要在设备的系统设置中开启相关权限或进行其他配置。

4. 运行应用

现在,您应该能够在Flutter模拟器或实际设备上运行这个应用,并点击按钮来尝试打印文本到Sunmi云打印机。

注意事项

  • 确保您的设备已经正确连接到Sunmi云打印机,并且打印机处于可用状态。
  • 插件的具体API和用法可能会随着版本的更新而有所变化,请参考最新的插件文档以获取最准确的信息。
  • 如果遇到任何问题,请查阅插件的GitHub页面或相关社区寻求帮助。

希望这个示例能帮助您在Flutter项目中集成并使用sunmi_cloud_printer插件!

回到顶部