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

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

lepsi_sunmi_cloud_printer

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


重要事项

此插件仅适用于Android平台!


类名

SunmiCloudPrinter

示例

以下是一个完整的示例代码,展示了如何在Flutter应用中使用lepsi_sunmi_cloud_printer插件。

import 'dart:async';

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

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

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

  @override
  State<MyApp> createState() => _MyAppState();
}

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

  // 初始化平台状态
  Future<void> initPlatformState() async {
    // 设置网络打印机的IP地址
    await SunmiCloudPrinter.setNetPrinter("192.168.2.93");
    // 连接打印机
    await SunmiCloudPrinter.connect();
  }

  @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("连接测试!");
                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(),
          ],
        ),
      ),
    );
  }
}

安装

在项目的pubspec.yaml文件中添加以下依赖:

flutter pub add lepsi_sunmi_cloud_printer

然后运行以下命令以安装依赖:

flutter pub get

插件功能

以下是此插件支持的功能列表:

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

测试设备

以下设备已成功测试:

Sunmi NT311

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

1 回复

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


lepsi_sunmi_cloud_printer 是一个用于在 Flutter 应用中集成云打印功能的插件,特别适用于与 Sunmi 云打印机进行交互。以下是如何在 Flutter 项目中使用 lepsi_sunmi_cloud_printer 插件的详细步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 lepsi_sunmi_cloud_printer 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  lepsi_sunmi_cloud_printer: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入插件:

import 'package:lepsi_sunmi_cloud_printer/lepsi_sunmi_cloud_printer.dart';

3. 初始化打印机

在使用打印机之前,你需要初始化打印机。通常,你可以在应用的 initState 方法中进行初始化。

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

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    _initPrinter();
  }

  Future<void> _initPrinter() async {
    try {
      await LepsiSunmiCloudPrinter.initPrinter();
      print("Printer initialized successfully");
    } catch (e) {
      print("Failed to initialize printer: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Sunmi Cloud Printer Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: _printTestPage,
            child: Text('Print Test Page'),
          ),
        ),
      ),
    );
  }
}

4. 打印内容

你可以使用 LepsiSunmiCloudPrinter 提供的方法来打印文本、图像等内容。以下是一个简单的示例,打印一段文本:

Future<void> _printTestPage() async {
  try {
    await LepsiSunmiCloudPrinter.printText("Hello, Sunmi Cloud Printer!");
    await LepsiSunmiCloudPrinter.printText("This is a test print.");
    await LepsiSunmiCloudPrinter.lineWrap(2);  // 换行
    await LepsiSunmiCloudPrinter.cutPaper();  // 切纸
    print("Printing completed successfully");
  } catch (e) {
    print("Failed to print: $e");
  }
}

5. 处理打印状态

你可以监听打印机的状态,以便在打印过程中处理错误或状态变化。

LepsiSunmiCloudPrinter.onPrinterStateChanged.listen((state) {
  print("Printer state changed: $state");
});

6. 其他功能

lepsi_sunmi_cloud_printer 还提供了其他功能,如打印二维码、条形码、设置打印样式等。你可以根据需求使用这些功能。

// 打印二维码
await LepsiSunmiCloudPrinter.printQRCode("https://example.com");

// 打印条形码
await LepsiSunmiCloudPrinter.printBarcode("123456789012");

// 设置打印样式
await LepsiSunmiCloudPrinter.setAlignment(LepsiSunmiCloudPrinterAlignment.center);
await LepsiSunmiCloudPrinter.setFontSize(24);

7. 处理权限

在某些情况下,你可能需要处理打印机的权限。确保在 Android 项目中正确配置权限。

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.INTERNET"/>
回到顶部