using System.Data; using System.Text; namespace Estsh.Client { public class Printer { private static string BarTenderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"App_Data\Bartend\bartend.exe"); private static string LabelPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"App_Data\LabelFile"); private static object _lock_print_object = new object(); private const char TAB = '\t'; private const string NEW_LINE = "\r\n"; /// /// 过程条码 /// /// /// /// /// public static bool PrintSerialNumber(DataRow snData, string labelFileName, string dataFileName) { string LabelTemplatePath = Path.Combine(LabelPath, labelFileName); string LabelTextPath = Path.Combine(LabelPath, dataFileName); if (snData == null) return false; StringBuilder PrintContent = new StringBuilder(); PrintContent.Append(snData["serial_number"].ToString()); PrintContent.Append(TAB);//1 PrintContent.Append(snData["type_desc"].ToString()); PrintContent.Append(TAB); //2 PrintContent.Append(snData["model_name"].ToString()); PrintContent.Append(TAB); //3 PrintContent.Append(snData["part_spec"].ToString()); PrintContent.Append(TAB); //4 PrintContent.Append(snData["part_no_3c"].ToString()); PrintContent.Append(TAB); //5 PrintContent.Append(snData["enum_desc"].ToString()); PrintContent.Append(TAB); //6 PrintContent.Append(snData["car_no"].ToString()); PrintContent.Append(TAB); //7 PrintContent.Append(snData["cust_part_no"].ToString() + snData["part_class"].ToString()); PrintContent.Append(TAB); //8 简码+颜色代码 PrintContent.Append(snData["part_no"].ToString()); PrintContent.Append(TAB); //9 PrintContent.Append(snData["number_T"].ToString()); PrintContent.Append(TAB); //10 PrintContent.Append(snData["part_T"].ToString()); PrintContent.Append(TAB); //11 PrintContent.Append(snData["part_class"].ToString()); PrintContent.Append(TAB); //12 part_class lock (_lock_print_object) { //BarTenderPrinter.WriteFile(LabelTextPath, null, Encoding.UTF8, false); //BarTenderPrinter.WriteFile(LabelTextPath, PrintContent.ToString(), Encoding.UTF8, false); //BarTenderPrinter.Print(BarTenderPath, LabelTemplatePath); } return true; } public static bool YYPrintSerialNumber(DataRow snData, string Bcode, string txtBcode) { string LabelFilePath = Path.Combine(LabelPath, Bcode); string LabelTextPath = Path.Combine(LabelPath, txtBcode); if (snData == null) return false; StringBuilder PrintContent = new StringBuilder(); PrintContent.Append(snData["csn"].ToString()); PrintContent.Append(TAB); //1 PrintContent.Append(snData["dates"].ToString()); PrintContent.Append(TAB); //2 PrintContent.Append(snData["part_no_3c"].ToString()); PrintContent.Append(TAB); //3 PrintContent.Append(snData["cust_part_no"].ToString()); PrintContent.Append(TAB); //4 PrintContent.Append(snData["part_spec"].ToString()); PrintContent.Append(TAB); //5 PrintContent.Append(snData["part_spec2"].ToString()); PrintContent.Append(TAB); //5 PrintContent.Append(snData["part_no"].ToString()); PrintContent.Append(TAB); //6 PrintContent.Append(snData["order_seq"].ToString()); PrintContent.Append(TAB); //7 PrintContent.Append(snData["car_no"].ToString()); PrintContent.Append(TAB); //8 PrintContent.Append(snData["part_location"].ToString()); PrintContent.Append(TAB); //9 PrintContent.Append(snData["seq"].ToString()); PrintContent.Append(TAB); //10 PrintContent.Append(snData["label_type"].ToString()); PrintContent.Append(TAB); //11 PrintContent.Append(snData["model_code"].ToString()); PrintContent.Append(TAB); //13 PrintContent.Append(snData["enum_alias"].ToString()); PrintContent.Append(TAB); //14 PrintContent.Append(snData["model_name"].ToString()); PrintContent.Append(TAB); //15 PrintContent.Append(snData["type_name"].ToString()); PrintContent.Append(TAB); //16 PrintContent.Append(Environment.NewLine); lock (_lock_print_object) { //BarTenderPrinter.WriteFile(LabelTextPath, PrintContent.ToString(), Encoding.UTF8, false); //BarTenderPrinter.Print(BarTenderPath, LabelFilePath); ////BarTenderPrinter.WriteFile(LabelTextPath, null, Encoding.UTF8, false); } return true; } /// /// 合格证 /// /// /// /// /// public static bool PrintCSN(DataRow snData, string labelFileName, string dataFileName) { string LabelTemplatePath = Path.Combine(LabelPath, labelFileName); string LabelTextPath = Path.Combine(LabelPath, dataFileName); if (snData == null) return false; StringBuilder PrintContent = new StringBuilder(); //PrintContent.Append(snData["csn"].ToString()); PrintContent.Append(TAB);//1 //PrintContent.Append(snData["type_name"].ToString()); PrintContent.Append(TAB); //2 //PrintContent.Append(snData["model_name"].ToString()); PrintContent.Append(TAB); //3 //PrintContent.Append(snData["part_spec"].ToString()); PrintContent.Append(TAB); //4 //PrintContent.Append(snData["part_no_3c"].ToString()); PrintContent.Append(TAB); //5 //PrintContent.Append(snData["enum_desc"].ToString()); PrintContent.Append(TAB); //6 //PrintContent.Append(snData["car_no"].ToString()); PrintContent.Append(TAB); //7 //PrintContent.Append(snData["cust_part_no"].ToString() + snData["part_class"].ToString()); PrintContent.Append(TAB); //8 简码+颜色代码 //PrintContent.Append(snData["part_no"].ToString()); PrintContent.Append(TAB);//9 //PrintContent.Append(snData["number_T"].ToString()); PrintContent.Append(TAB); //10 PrintContent.Append(snData["csn"].ToString()); PrintContent.Append(TAB); //1 PrintContent.Append(snData["type_desc"].ToString()); PrintContent.Append(TAB); //2 PrintContent.Append(snData["model_name"].ToString()); PrintContent.Append(TAB); //3 PrintContent.Append(snData["part_spec"].ToString()); PrintContent.Append(TAB); //4 PrintContent.Append(snData["serial_number"].ToString()); PrintContent.Append(TAB); //5 PrintContent.Append(snData["create_time"].ToString()); PrintContent.Append(TAB); //6 PrintContent.Append(snData["order_seq"].ToString()); PrintContent.Append(TAB); //7 PrintContent.Append(snData["number_T"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["part_T"].ToString()); PrintContent.Append(TAB); //盐城改过8 PrintContent.Append(snData["part_no"].ToString()); PrintContent.Append(TAB); //8 PrintContent.Append(snData["car_no"].ToString()); PrintContent.Append(TAB); //9 PrintContent.Append(snData["part_no"].ToString()); PrintContent.Append(TAB); //10 PrintContent.Append(snData["part_spec2"].ToString()); PrintContent.Append(TAB); //11 PrintContent.Append(snData["part_location"].ToString()); PrintContent.Append(TAB); //12 PrintContent.Append(snData["cust_part_no"].ToString()); PrintContent.Append(TAB); //13 PrintContent.Append(snData["part_class"].ToString()); PrintContent.Append(TAB); //14 PrintContent.Append(snData["label_type"].ToString()); PrintContent.Append(TAB); //15 PrintContent.Append(snData["part_no_3c"].ToString()); PrintContent.Append(TAB); //16 PrintContent.Append(snData["model_code"].ToString()); PrintContent.Append(TAB); //17 PrintContent.Append(snData["model_alias"].ToString()); PrintContent.Append(TAB); //18 PrintContent.Append(snData["enum_desc"].ToString()); PrintContent.Append(TAB); //19 PrintContent.Append(snData["prod_type"].ToString()); PrintContent.Append(TAB); //20 PrintContent.Append(snData["model_name"].ToString()); PrintContent.Append(TAB); //21 PrintContent.Append(snData["type_name"].ToString()); PrintContent.Append(TAB); //22 lock (_lock_print_object) { //BarTenderPrinter.WriteFile(LabelTextPath, null, Encoding.UTF8, false); //BarTenderPrinter.WriteFile(LabelTextPath, PrintContent.ToString(), Encoding.UTF8, false); //BarTenderPrinter.Print(BarTenderPath, LabelTemplatePath); } return true; } ///// ///// 打印所有的条码 ///// ///// 条码数据 ///// //public static bool PrintSerialNumber(DataTable snData, string labelFileName, string dataFileName) //{ // string LabelTemplatePath = Path.Combine(LabelPath, labelFileName); // string LabelTextPath = Path.Combine(LabelPath, dataFileName); // if (snData == null) // return false; // StringBuilder PrintContent = new StringBuilder(); // foreach (DataRow dr in snData.Rows) // { // PrintContent.Append(dr["serial_number"].ToString()); PrintContent.Append(TAB);//1 // PrintContent.Append(dr["type_name"].ToString()); PrintContent.Append(TAB); //2 // PrintContent.Append(dr["model_name"].ToString()); PrintContent.Append(TAB); //3 // PrintContent.Append(dr["part_spec"].ToString()); PrintContent.Append(TAB); //4 // PrintContent.Append(dr["part_no_3c"].ToString()); PrintContent.Append(TAB); //5 // PrintContent.Append(dr["enum_desc"].ToString()); PrintContent.Append(TAB); //6 // PrintContent.Append(dr["car_no"].ToString()); PrintContent.Append(TAB); //7 // PrintContent.Append(dr["cust_part_no"].ToString() + dr["part_class"].ToString()); PrintContent.Append(TAB); //8 简码+颜色代码 // PrintContent.Append(Environment.NewLine); // } // lock (_lock_print_object) // { // BarTenderPrinter.WriteFile(LabelTextPath, PrintContent.ToString(), Encoding.UTF8, false); // BarTenderPrinter.Print(BarTenderPath, LabelTemplatePath); // BarTenderPrinter.WriteFile(LabelTextPath, null, Encoding.UTF8, false); // } // return true; //} public static bool PrintPackageBarcode(DataRow snData, string labelFileName, string dataFileName) { string LabelTemplatePath = Path.Combine(LabelPath, labelFileName); string LabelTextPath = Path.Combine(LabelPath, dataFileName); if (snData == null) return false; //打出来的条码段中间没有用“-”分开 string sn = snData["type_code"].ToString() + snData["car_body_code"].ToString() + snData["decoration_code"].ToString() + snData["car_color_code"].ToString() + snData["sn_suffix"].ToString(); ////打出来的条码段中间用“-”分开 //string sn = snData["type_code"].ToString() + "-" + snData["car_body_code"].ToString() + "-" // + snData["decoration_code"].ToString() + "-" + snData["car_color_code"].ToString() + "-" // + snData["sn_suffix"].ToString(); StringBuilder PrintContent = new StringBuilder(); PrintContent.Append(snData["type_name"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["type_code"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["car_body_name"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["car_body_code"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["decoration_name"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["decoration_code"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["car_color_name"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["car_color_code"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["tray_no"].ToString()); PrintContent.Append(TAB); PrintContent.Append(snData["check_result"].ToString()); PrintContent.Append(TAB); PrintContent.Append(sn); PrintContent.Append(TAB); lock (_lock_print_object) { //BarTenderPrinter.WriteFile(LabelTextPath, null, Encoding.UTF8, false); //BarTenderPrinter.WriteFile(LabelTextPath, PrintContent.ToString(), Encoding.UTF8, false); //BarTenderPrinter.Print(BarTenderPath, LabelTemplatePath); } return true; } } }