SpiritLabelLibrary C# SDK 使用手册
1. 概述
SpiritLabel 是打印精灵开放平台二次开发工具之一。基于 Spirit C 库开发的 C# 封装组件,提供开箱即用的标签打印解决方案。完整保留原生C语言版本功能特性.进一步简化C#桌面程序集成标签打印和标签编辑功能。
2. 环境要求与安装
2.1 系统要求
- .NET 5.0 或更高版本
- Windows/Linux 系统(需部署对应平台的libspirit动态库)
- 安装打印精灵桌面版(SpiritDesktop)
2.2 安装方式
NuGet 安装(推荐)
SpiritLabel已经发布到NutGet, 可以直接通过NuGet包管理工具或Visual Studio安装
1# Visual Studio 包管理器
2Install-Package SpiritLabel
3
4# 或使用dotnet CLI
5dotnet add package SpiritLabel
3. 快速入门
3.1示例代码
请查看https://github.com/printspirit/spirit_example 项目c-sharp
子目录下的示例。 demo-win-gui
是windows下WPF程序,功能包括选择打印机、打印、创建并编辑标签。
效果如下:
3.2 标签打印流程
1try
2{
3 // 连接打印机
4 // "Spirit Image"为打印精灵内置的虚拟打印机, 可以在文档\打印精灵\outoput目录下生成一个png文件
5 // 请修改为实际的打印机名称, 支持Windows系统打印机和ZPL,TSPL,CPCL, ESC/POS打印机, 无需驱动
6 // 可通过piritLabel.PrnLst()获取系统可用打印机
7 var printer = SpiritLabel.OpenPrinter("Spirit Image");
8
9 // 配置打印参数
10 printer.size(500, 300) // 设置纸张大小为50x30mm
11 .quality(Qty.High) // 设置打印模式:高质量模式
12
13 // 创建打印变量, 实现可变数据套打
14 var printVars = new Dictionary<string, object>
15 {
16 { "co_name", "打印精灵" },
17 { "name", "标签打印机" }
18 };
19
20 // 执行打印(支持UUID或本地文件)
21 printer.Print("acae8013-28db-4b77-a500-1a6052633a22", printVars);
22}
23catch (SpiritException ex)
24{
25 Console.WriteLine($"[ERR] 打印失败: {ex.ErrorCode}-{ex.Message}");
26}
解释:
Spirit Image
为打印精灵内置的虚拟打印机, 可以在当前用户文档\打印精灵\outoput
目录下生成一个png文件printer.Print()
的第一个参数支持UUID或本地文件, 如果为UUID将从打印精灵官网获取标签内容
3.3 标签设计器集成
1var newLabelPath = @"C:\Labels\product_label.psl";
2
3// 新建空白标签 或 复制基础模板
4SpiritLabel.NewLabel(
5 templatePath,
6 "标签名称",
7 "标签说明",
8 1000, // 宽度(0.1mm)
9 600, // 高度(0.1mm)
10 203, // DPI
11 @"C:\Templates\base_template.psl" // 基础模板(可选, 请修改为你自己的参考模板, 否则将创建空白标签)
12);
13
14// 启动设计器编辑标签
15SpiritLabel.Design(newLabelPath);
16
17// 保存新标签文件名, 以便后续使用
系统集成时, 务必将标签文件名(newLabelPath)保存在你的软件系统中, 用于后续打印标签或编辑修改标签.
4. 核心API详解
4.1 打印机管理
获取打印设备列表
1var printers = SpiritLabel.PrnLst();
2Console.WriteLine($"检测到 {printers.Count} 台打印机:");
3foreach (var p in printers)
4{
5 Console.WriteLine($"- {p.Name} ({p.Type})");
6}
该功能可以自动发现Windows系统安装的打印机, USB接口打印机(包括主流的条码打印机如: ZPL,TSPL,CPCL, ESC/POS打印机, 无需驱动), 网络打印机(需要通过SpiritDeskop的管理界面设置添加)
打印机连接配置
1var printer = SpiritLabel.OpenPrinter(
2 "Zebra ZT410",
3 PrinterType.ZPL // 显式指定协议
4);
4.2 打印控制
链式参数配置
1p.row(2) // 设置行数
2 .col(3) // 设置列数
3 .gap(5) // 设置水平和垂直间距
4 .gapX(10) // 设置水平间距
5 .gapY(15) // 设置垂直间距
6 .quality(Qty.Hight) // 设置打印质量
7 .flush(true) // 设置是否立即刷新打印
8 .Print("模板ID", vars);
4.3 异常处理
1try {
2 // 打印操作...
3}
4catch (SpiritException ex) when (ex.ErrorCode == 0x1001) {
5 // 处理连接错误
6}
4.4 许可证管理
1// 添加企业许可证
2SpiritLabel.AddLicense("SPRT-XXXX-YYYY-ZZZZ");
3
SDK和桌面版共享许可, 可使用管理界面添加许可. 该函数主要方便软件开发者开发自己的的许可证管理功能