Bartender SDK C#调用二次开辟 代码示例

打印 上一主题 下一主题

主题 870|帖子 870|积分 2610

分析

软件版本:Bartender 2022
是否支持32位:否
SDK范例:Engine类调用(另有另一种风格的SDK,忘记是啥了)
引用COM库

参考路径:
Seagull\BarTender 2022\SDK\Assemblies\Seagull.BarTender.Print.dll
可能只能用framework4.8跑
启动引擎
  1. // 启动引擎(第一次运行耗时较多)
  2. Engine btEngine = new Engine(true)
复制代码
打开BTW文档并指定打印机
  1. // 打开标签
  2. LabelFormatDocument btFormat = btEngine.Documents.Open(文件名, 打印机名);
复制代码
给具名字段赋值
  1. // 设置数据 字段信息 Directory<string, string>
  2. foreach(var kv in 字段信息)
  3. {
  4.     btFormat.SubStrings[kv.Key].Value = kv.Value;
  5. }
复制代码
设置数量
  1. // 对应软件里的序号数量
  2. btFormat.PrintSetup.NumberOfSerializedLabels = 序号数量;
  3. // 对应软件里每个序号的copies数量
  4. btFormat.PrintSetup.IdenticalCopiesOfLabel = 打印数量;
复制代码
设置纸张大小
  1. btFormat.PageSetup.PaperWidth = 纸张宽度;
  2. btFormat.PageSetup.PaperHeight = 纸张高度;
复制代码
打印并得到返回值
  1. // 第一个参数为JobName
  2. Result result = btFormat.Print("", out Messages messages);
  3. // Result为枚举 例如if (result == Result.Success)
  4. // Messages是IEnumerable<Message> 迭代可得到更多详细信息
  5. foreach(Message msg in messages)
  6. {
  7.     Console.WriteLine(msg.ID);
  8.     Console.WriteLine(msg.Text);
  9.     // msg.xx 还有更多
  10. }
复制代码
不完备的整体代码
  1. // 启动引擎
  2. using (Engine btEngine = new Engine(true))
  3. {
  4.     // 打开标签
  5.     LabelFormatDocument btFormat = btEngine.Documents.Open(文件名, 打印机名);
  6.     // 设置数据
  7.     foreach(var kv in 字段信息)
  8.     {
  9.         btFormat.SubStrings[kv.Key].Value = kv.Value;
  10.     }
  11.     // 设置数量
  12.     btFormat.PrintSetup.NumberOfSerializedLabels = 序号数量;
  13.     btFormat.PrintSetup.IdenticalCopiesOfLabel = 打印数量;
  14.     btFormat.PageSetup.PaperWidth = 纸张宽度;
  15.     btFormat.PageSetup.PaperHeight = 纸张高度;
  16.     Result result = btFormat.Print("", out Messages messages);
  17.     // 关闭
  18.     btFormat.Close(SaveOptions.DoNotSaveChanges);
  19.     btEngine.Stop();
  20.     // 返回信息
  21.     Console.WriteLine(result.ToString());   // Success
  22.     foreach(Message msg in messages)
  23.     {
  24.         Console.WriteLine(msg.ID);
  25.         Console.WriteLine(msg.Text);
  26.     }
  27. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表