首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# Bartender 打印多條碼:SDK 集成核心代碼骨架

     編輯:程式設計綜合問答

前置條件

  • 安裝 Bartender Enterprise Automation 版(含 COM SDK)。
  • 引用 Seagull.BarTender.Print.dll 或 COM BarTender.Application。

核心流程

using Seagull.BarTender.Print;

public void PrintLabels(List<LabelData> items) {
    using (var engine = new Engine(true)) {  // true = 無訊息模式
        engine.Start();

        var format = engine.Documents.Open(@"C:\Templates\label.btw");
        format.PrintSetup.IdenticalCopiesOfLabel = 1;

        foreach (var item in items) {
            // 設置命名數據源
            format.SubStrings.SetSubString("ProductName", item.Name);
            format.SubStrings.SetSubString("BarcodeValue", item.Code);
            format.SubStrings.SetSubString("Price", item.Price.ToString("F2"));

            // 打印一張
            var result = format.Print(string.Empty, 1);
            if (result != Result.Success) {
                Log.Error($"打印失敗: {result}, {format.PrintSetup.PrinterName}");
            }
        }

        format.Close(SaveOptions.DoNotSaveChanges);
        engine.Stop();
    }
}

關鍵點

  1. 命名數據源:BTW 模板中建立「ProductName」「BarcodeValue」「Price」等命名數據源,代碼通過 SubStrings.SetSubString 賦值。
  2. Engine 生命週期:Start() → 打印 → Stop(),避免重複啟動 Bartender 進程。
  3. 異常處理:捕獲 BarTenderException,記錄 Messages 屬性獲取詳細錯誤。
  4. 性能優化:批量打印時設置 format.PrintSetup.CachedCopies = true,或使用 PrintOut 異步隊列。

常見問題

現象原因解決
條碼掃不出模板條碼類型/尺寸錯誤檢查 Symbology、XDimension、QuietZones
中文亂碼字體不支持/編碼錯誤模板字體選 Microsoft YaHei,數據源編碼 Unicode
打印機離線驅動/端口問題用 Printers.GetPrinterNames() 確認名稱完全匹配
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved