import 'dart:io'; import '../server/protocol.dart'; import 'cups_backend.dart'; import 'pavo/pavo_backend.dart'; /// 打印后端抽象:Windows 走 HiTi PavoApi 直打(分层 BITMAP);macOS 走系统 CUPS 队列。 abstract class PrintBackend { /// 后端名:pavo / cups / mock(暴露给日志) String get name; Future getStatus(); Future printOneCard(PrintRequest request); } /// manifest 里的后端名按操作系统报,与是否 mock 无关(对齐 C# 版行为)。 String osBackendName() => Platform.isWindows ? 'pavo' : 'cups'; /// 创建当前操作系统的真实打印后端(非 mock)。 /// PavoPrintBackend 构造不加载 DLL(延迟到实际调用的子 isolate 内),mac 上亦可安全实例化/分析。 PrintBackend createOsBackend({void Function(String line)? onLog}) { if (Platform.isWindows) { return PavoPrintBackend(onLog: onLog); } return CupsPrintBackend(onLog: onLog); }