Flutter热敏打印机控制插件gertec_pos_printer的使用

Flutter热敏打印机控制插件gertec_pos_printer的使用

Gertec_printer

Gertec_pos_printer

关于   |   功能   |   技术   |   前提条件   |   帮助   |   作者


Buy Me A Book

Github Badge

_ Package仅适用于Android _ #

🎯 关于 #

该插件gertec_pos_printer并非Gertec官方插件。这是一个与GERTEC GPOS700和GERTEC SK-210型号打印机进行集成的项目。

Package仅适用于Android API 21或更高版本 #

Package目前仅实现对GPOS700和SK-210型号的支持 #

✨ 功能 #

要使用该插件,需要创建一个GertecPOSPrinter类的实例,并传递使用的设备型号作为参数GertecType

已实现的功能:

final GertecPOSPrinter gertecPosPrinter = GertecPOSPrinter(gertecType: GertecType.gpos700);

✔️ gertecPosPrinter.instance.cut() -> 切纸;

✔️ gertecPosPrinter.instance.printLine("message") -> 打印单行消息;

✔️ gertecPosPrinter.instance.printTextList(['message1', 'message2']) -> 打印文本列表;

✔️ gertecPosPrinter.instance.barcodePrint('barcode') -> 按照参数配置打印条形码;

✔️ gertecPosPrinter.instance.wrapLine(1) -> 按参数指定的行数前进;

✔️ gertecPosPrinter.instance.checkStatusPrinter() -> 返回当前打印机状态的字符串;

🚀 技术 #

该项目使用了以下工具:

✅ 前提条件 #

* 在开始之前: ** #

该包仅适用于Android API 21或更高版本。这是由Gertec实施的一个规则。

🏁 帮助 #

如果需要有关插件的帮助,请参阅附带的Discord服务器。


Jhonathan Queiroz制作

返回顶部


示例代码

import 'package:flutter/material.dart';

import 'package:gertec_pos_printer/gertec_pos_printer.dart';
import 'package:gertec_pos_printer/printer/domain/enum/barcode_type.dart';
import 'package:gertec_pos_printer/printer/domain/enum/gertec_type.dart';

import 'service/gertec_service.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({super.key});

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

class _MyAppState extends State<MyApp> {
  late GertecPOSPrinter _gertecPrinterPlugin;
  late GertecService _gertecService;

  [@override](/user/override)
  void initState() {
    _gertecPrinterPlugin = GertecPOSPrinter(gertecType: GertecType.gpos700);
    _gertecService = GertecService(gertecPrinter: _gertecPrinterPlugin);
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Gertec Printer Example'),
        ),
        body: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () => _gertecService.printLine('Print one line'),
              child: const Text('Print Line'),
            ),
            ElevatedButton(
              onPressed: () => _gertecService
                  .printTextList(['print line one', 'print line two']),
              child: const Text('Print Text List'),
            ),
            ElevatedButton(
              onPressed: () => _gertecService.barcodePrint(
                text: '789654136872685',
                height: 50,
                width: 50,
                type: BarcodeType.code128,
              ),
              child: const Text('Barcode Print'),
            ),
            ElevatedButton(
              onPressed: () => _gertecService.wrapLine(1),
              child: const Text('Wrap Line'),
            ),
            ElevatedButton(
              onPressed: () => _gertecService.checkStatusPrinter(),
              child: const Text('Check Status Print'),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter热敏打印机控制插件gertec_pos_printer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


gertec_pos_printer 是一个用于控制 Gertec 热敏打印机的 Flutter 插件。它允许开发者通过 Flutter 应用程序与 Gertec 打印机进行交互,发送打印任务等操作。以下是使用该插件的基本步骤:

1. 添加依赖

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

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

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

2. 导入插件

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

import 'package:gertec_pos_printer/gertec_pos_printer.dart';

3. 初始化打印机

在使用打印机之前,你需要初始化打印机对象:

GertecPrinter printer = GertecPrinter();

4. 检查打印机连接状态

你可以检查打印机是否已连接:

bool isConnected = await printer.isConnected();
if (isConnected) {
  print("Printer is connected");
} else {
  print("Printer is not connected");
}

5. 发送打印任务

你可以发送文本、图像等打印任务到打印机:

打印文本

await printer.printText("Hello, World!");

打印图像

Uint8List imageData = await _loadImageAsBytes();
await printer.printImage(imageData);

打印条形码

await printer.printBarcode("123456789012", BarcodeType.CODE128);

打印二维码

await printer.printQRCode("https://example.com");

6. 其他操作

你还可以执行其他操作,如切纸、设置打印密度等:

切纸

await printer.cutPaper();

设置打印密度

await printer.setDensity(PrinterDensity.HIGH);

7. 断开连接

在使用完打印机后,断开连接:

await printer.disconnect();

8. 错误处理

在使用插件时,建议添加错误处理以捕获可能的异常:

try {
  await printer.printText("Hello, World!");
} catch (e) {
  print("Error: $e");
}

9. 示例代码

以下是一个完整的示例代码:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PrinterDemo(),
    );
  }
}

class PrinterDemo extends StatefulWidget {
  [@override](/user/override)
  _PrinterDemoState createState() => _PrinterDemoState();
}

class _PrinterDemoState extends State<PrinterDemo> {
  GertecPrinter printer = GertecPrinter();

  Future<void> printDemo() async {
    try {
      bool isConnected = await printer.isConnected();
      if (isConnected) {
        await printer.printText("Hello, World!");
        await printer.printQRCode("https://example.com");
        await printer.cutPaper();
      } else {
        print("Printer is not connected");
      }
    } catch (e) {
      print("Error: $e");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Gertec Printer Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: printDemo,
          child: Text('Print Demo'),
        ),
      ),
    );
  }
}
回到顶部