101 lines
3.6 KiB
C#
101 lines
3.6 KiB
C#
|
|
using BarTender;
|
|||
|
|
using Microsoft.Extensions.Logging;
|
|||
|
|
using Syc.Basic.Web.WMS.Dto;
|
|||
|
|
using Syc.Basic.Web.WMS.Entitys;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace Syc.Basic.Web.WMS
|
|||
|
|
{
|
|||
|
|
public class BarTenderHelper
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 打印标签
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="templatePath">模板全路径,如:D://AD盘/新建文件夹/xxxx.btw</param>
|
|||
|
|
/// <param name="deviceName">打印机名称</param>
|
|||
|
|
/// <param name="@params">模板变量参数</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static void Print(string templatePath,string deviceName,Dictionary<string,string> @params = null)
|
|||
|
|
{
|
|||
|
|
Console.WriteLine("开始打印");
|
|||
|
|
|
|||
|
|
Application bartenderApp = new Application();
|
|||
|
|
var btFormat = bartenderApp.Formats.Open(templatePath,false,deviceName);
|
|||
|
|
if (@params is not null && @params.Any())
|
|||
|
|
{
|
|||
|
|
foreach (var param in @params)
|
|||
|
|
btFormat.SetNamedSubStringValue(param.Key, param.Value);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
btFormat.IdenticalCopiesOfLabel = 1;
|
|||
|
|
//设置打印份数,自动贴标就只出一张
|
|||
|
|
BarTender.Messages btMsgs;
|
|||
|
|
//开始打印
|
|||
|
|
var btPrintRtn = btFormat.Print(PrintJobName:"打印标签",WaitForSpoolJobToComplete:false,Messages:out btMsgs);
|
|||
|
|
if (btPrintRtn != BarTender.BtPrintResult.btSuccess)
|
|||
|
|
foreach (BarTender.Message msg in btMsgs)
|
|||
|
|
{
|
|||
|
|
var text = msg.Message;
|
|||
|
|
}
|
|||
|
|
//输出错误日志
|
|||
|
|
if (btPrintRtn != BarTender.BtPrintResult.btSuccess)
|
|||
|
|
{
|
|||
|
|
foreach(BarTender.Message msg in btMsgs)
|
|||
|
|
{
|
|||
|
|
var text = msg.Message;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//关闭模板
|
|||
|
|
btFormat.Close(BarTender.BtSaveOptions.btPromptSave);
|
|||
|
|
//退出打印程序
|
|||
|
|
bartenderApp.Quit(BarTender.BtSaveOptions.btDoNotSaveChanges);
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 打印箱子标签
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="box"></param>
|
|||
|
|
public static void BoxPrint(Box box)
|
|||
|
|
{
|
|||
|
|
Dictionary<string, string> list = new Dictionary<string, string>()
|
|||
|
|
{
|
|||
|
|
{"$TYPE", box.Type },
|
|||
|
|
{"$SPEC", box.Spec },
|
|||
|
|
{"$QTY", box.Qty.ToString()},
|
|||
|
|
{"$CTN", Math.Round(box.Net_Weight.Value,2).ToString()},
|
|||
|
|
{ "$LOTNO", box.Lot_No },
|
|||
|
|
{"$LENGTH", box.Length },
|
|||
|
|
{ "$DATE", box.Dom_Time.ToString()},
|
|||
|
|
{ "$EXP", box.Exp_Time.ToString()},
|
|||
|
|
{ "$CODE", box.Code }
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
Print(@"D:\btw\装箱码垛标签.btw", "NOVEXX Solutions XLP 504 (300 dpi)Max", list);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 打印丝锭标签
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="box"></param>
|
|||
|
|
public static void SilkPrint(Silk silk)
|
|||
|
|
{
|
|||
|
|
Dictionary<string, string> list = new Dictionary<string, string>()
|
|||
|
|
{
|
|||
|
|
{"$Name", silk.Name },
|
|||
|
|
{"$Type", silk.Type },
|
|||
|
|
{"$NetWeight", Math.Round(silk.Net_Weight.Value,2).ToString() },
|
|||
|
|
{ "$Length", silk.Length},
|
|||
|
|
{"$Date", silk.Date.ToString() },
|
|||
|
|
{ "$LotNo", silk.Lot_No},
|
|||
|
|
{ "$Code", silk.Code}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
Print(@"D:\btw\丝锭标签.btw", "NOVEXX Solutions XLP 504 (300 dpi)Min", list);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|