【C#】C#调用Bartender模板打印

1,427 阅读1分钟

Bartender版本:Bartender 2016(11.0.7.3.3146)

Bartender下载

www.ddooo.com/softdown/14…

链接:pan.baidu.com/s/1GzT-dEXe…
提取码:tb30

Bartender模板设置

设置文本居中

属性--文本格式--单行--自动调整大小--对齐方式水平设置为中,设置完成,再调整字段方框大小

居中效果

设置文本多行(段落)

属性--文本格式--段落--自动调整大小--同时可以调整最大最小字体,再调整字段方框大小

多行效果

设置表格

在Bartender中没有找到表格的设置,可以使用矩形和直线配合使用

表格效果

设置数据源

在数据源中的名称设置,之后可以在C#代码中调用

C#调用Bartender模板

通过引用--COM--选择Bartender 11.0

​​​​

调用

private static BarTender.Application btApp = new BarTender.Application();
private static BarTender.Format btFormat;

/// <summary>
/// 打印
/// </summary>
/// <param name="printerName">打印机名称</param>
/// <param name="btFileName">bt文件</param>
public static void Print(string printerName, string btFileName)
{
    btFormat = btApp.Formats.Open(btFileName);
    btFormat.PrintSetup.Printer = printerName;

    btFormat.SetNamedSubStringValue("Name", "哈哈");
    btFormat.SetNamedSubStringValue("Time", "2020.01.04");

    btFormat.PrintOut(true, false);

    //btFormat.Close(BarTender.BtSaveOptions.btDoNotSaveChanges);
    //btApp.Quit(BarTender.BtSaveOptions.btSaveChanges);
}

封装一下,方便使用

/// <summary>
/// 打印
/// </summary>
public class PrintHelper 
{
    private static BarTender.Application btApp = new BarTender.Application();
    private static BarTender.Format btFormat;

    /// <summary>
    /// 打印
    /// </summary>
    /// <param name="printerName">打印机名称</param>
    /// <param name="btFileName">bt文件</param>
    /// <param name="dict">bt文件对应的key与value</param>
    public static void Print(string printerName, string btFileName, Dictionary<string, string> dict)
    {
        btFormat = btApp.Formats.Open(btFileName);
        btFormat.PrintSetup.Printer = printerName;

        foreach (var item in dict)
        {
            btFormat.SetNamedSubStringValue(item.Key, item.Value);
        }

        btFormat.PrintOut(true, false);

        //btFormat.Close(BarTender.BtSaveOptions.btDoNotSaveChanges);
        //btApp.Quit(BarTender.BtSaveOptions.btSaveChanges);

        Tools.IniHelper.Printer = printerName;
    }

}

使用

foreach (var mNInfo in mNInfos)
{
    Dictionary<string, string> mns = new Dictionary<string, string>()
        { { "MN", mNInfo.MN }, { "Name",mNInfo.Name }
        , { "LotNum", mNInfo.LotNum }, { "Time",mNInfo.Time }};

    PrintHelper.Print(printerName, IniHelper.MNBTPath, mns);
}

参考

blog.csdn.net/u013002790/…

blog.csdn.net/zeallag1/ar…