/// <summary> /// 初始化打印数据 /// </summary> private void InitData() { //获取打印数据 string address = Config.FullAddress.Replace("{batchNumber}", Config.BatchNumber); var data = GetPrintData(address); JObject obj = (JObject)JsonConvert.DeserializeObject(data); if (obj == null || obj["result"].ToString() == "False") { XMessageBox.Error("获取数据失败,请检查网络链接是否正常和模板参数是否设置正确。"); return; } PrintData = JsonConvert.DeserializeObject <PrintDataModel>(obj["data"].ToString()); using (var stream = new StreamWriter(Config.TemplateLocation(PrintData.PrintTemplate.FileName), false)) { stream.Write(PrintData.FileContent); } if (PrintData != null && PrintData.Data != null && PrintData.Total > 0) { UpdateDataGridViewData(PrintData.Data); UpdateStatusBar($"加载数据:{PrintData.Data.Count}/{PrintData.Total}"); int pageCount = PrintData.Total / 20; if (pageCount * 5 < PrintData.Total) { pageCount += 1; } //从第二页开始获取数据 for (int i = 2; i <= pageCount; i++) { data = GetPrintData(address, i); obj = (JObject)JsonConvert.DeserializeObject(data); var pData = JsonConvert.DeserializeObject <PrintDataModel>(obj["data"].ToString()); if (pData != null) { PrintData.Data.AddRange(pData.Data); UpdateDataGridViewData(pData.Data); UpdateStatusBar($"加载数据:{PrintData.Data.Count}/{PrintData.Total}"); } } } }
public Form_Print(PrintDataModel data, Configuration config, int index) { InitializeComponent(); this.FormBorderStyle = FormBorderStyle.None; PrintData = data; Config = config; Index = index; this.Hide(); ReportViewer1 = new ReportViewer(); //this.Controls.Add(ReportViewer1); //ReportViewer1.Visible = true; //ReportViewer1.BringToFront(); //ReportViewer1.Dock = DockStyle.Fill; ReportViewer1.LocalReport.EnableExternalImages = true; ReportViewer1.RenderingComplete += ReportView_RenderingComplete; }
public Form_PrintPreview(PrintDataModel printData, Configuration config, int index) { InitializeComponent(); MyReportViewer = new ReportViewer { Anchor = ((AnchorStyles.Top | AnchorStyles.Bottom) | AnchorStyles.Left) | AnchorStyles.Right, Margin = new Padding(10), AutoSizeMode = AutoSizeMode.GrowAndShrink, MinimumSize = new Size(780, 600), }; MyReportViewer.LocalReport.EnableExternalImages = true; this.Controls.Add(MyReportViewer); Config = config; PrintData = printData; InitData(index); }
//打印IQC public string GetPrintCodeConvertStr(PrintDataModel PrintData) { try { byte[] result = new byte[] { }; result = new byte[] { 0x1B, 0x40 }; //打印机复位 result = result.Concat(new byte[] { 0x1B, 0x33, 0x00 }).ToArray(); //设置行间距为0 result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray(); //设置居中 result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray(); //设置倍高 result = result.Concat(Encoding.Default.GetBytes("来料抽样")).ToArray(); result = result.Concat(new byte[] { 0x0D }).ToArray(); //回车并打印 result = result.Concat(new byte[] { 0x1d, 0x48, 0x02 }).ToArray(); //设置02条码内容打印在条码下方 00不打印 result = result.Concat(new byte[] { 0x1D, 0x77, 0x02 }).ToArray(); //设置条码宽度 1 2 3 4 result = result.Concat(new byte[] { 0x1D, 0x68, 0x20 }).ToArray(); //设置条码高度 result = result.Concat(new byte[] { 0x1D, 0x66, 0x00 }).ToArray(); //设置条码字体 result = result.Concat(new byte[] { 0x1D, 0x6B, 0x45, 0x0D }).ToArray(); result = result.Concat(Encoding.Default.GetBytes(PrintData.YBBQ)).ToArray(); string ProductDescribe = CutByteString(PrintData.ProductDescribe, 34); string Describe = CutByteString(PrintData.Describe, 38); string productshortname = GetProductLastShortName(PrintData.ProductShortName).PadRight(14); result = result.Concat(new byte[] { 0x1B, 0x61, 0x00 }).ToArray(); //左对齐 result = result.Concat(new byte[] { 0x1B, 0x21, 0x00 }).ToArray(); // 还原默认字体大小,取消下划线,取消粗体模式 result = result.Concat(new byte[] { 0x1d, 0x21, 0x00 }).ToArray(); //设置不倍高 result = result.Concat(Encoding.Default.GetBytes("┏━━━━┳━━━━━━┳━━┳━━━━━━━┓\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┃采购单号┃" + PrintData.POName.PadRight(12) + "┃物料┃" + GetProductLastShortName(PrintData.ProductShortName).PadRight(14) + "┃\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┣━━━━╋━━━━━━┻━━┻━━━━━━━┫\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┃物料描述┃" + ProductDescribe + "┃\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┣━━┳━┻━┳━━┳━━━┳━━━━┳━━━┫\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┃AQL1┃" + PrintData.AQL1.PadRight(6) + "┃AQL2┃" + PrintData.AQL2.PadRight(6) + "┃抽样方式┃" + PrintData.CYFS.PadRight(4) + "┃\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┣━━╋━━━┻━━┻━━━┻━━━━┻━━━┫\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┃备注┃" + Describe + "┃\n")).ToArray(); result = result.Concat(Encoding.Default.GetBytes("┗━━┻━━━━━━━━━━━━━━━━━━━┛\n")).ToArray(); result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray(); //设置居中 //result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray(); //设置倍高 result = result.Concat(Encoding.Default.GetBytes("打印日期:" + PrintData.SendDate.ToString("yyyy-MM-dd") + " \n\n\n\n\n\n\n")).ToArray(); return(Convert.ToBase64String(result)); } catch (Exception) { byte[] result = new byte[] { }; result = result.Concat(Encoding.Default.GetBytes("打印发生意外,请联系管理员")).ToArray(); return(Convert.ToBase64String(result)); } //byte[] result = new byte[] { }; //result = new byte[] { 0x1B, 0x40 }; //打印机复位 //result = result.Concat(new byte[] { 0x1B, 0x33, 0x00 }).ToArray(); //设置行间距为0 //result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray(); //设置居中 //result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray(); //设置倍高 //result = result.Concat(Encoding.Default.GetBytes("抽样物料")).ToArray(); //result = result.Concat(new byte[] { 0x0D }).ToArray(); //回车并打印 //result = result.Concat(new byte[] { 0x1d, 0x48, 0x02 }).ToArray(); //设置02条码内容打印在条码下方 00不打印 //result = result.Concat(new byte[] { 0x1D, 0x77, 0x02 }).ToArray(); //设置条码宽度 1 2 3 4 //result = result.Concat(new byte[] { 0x1D, 0x68, 0x20 }).ToArray(); //设置条码高度 //result = result.Concat(new byte[] { 0x1D, 0x66, 0x00 }).ToArray(); //设置条码字体 //result = result.Concat(new byte[] { 0x1D, 0x6B, 0x45, 0x0C }).ToArray(); ////打印code128条码 //result = result.Concat(Encoding.Default.GetBytes(PrintData.YBBQ.Trim())).ToArray(); //result = result.Concat(new byte[] { 0x1B, 0x61, 0x00 }).ToArray(); //左对齐 //result = result.Concat(new byte[] { 0x1B, 0x21, 0x00 }).ToArray(); // 还原默认字体大小,取消下划线,取消粗体模式 //result = result.Concat(new byte[] { 0x1d, 0x21, 0x00 }).ToArray(); //设置不倍高 //result = result.Concat(Encoding.Default.GetBytes("┏━━━━┳━━━━━━┳━━━━┳━━━━━┓\n")).ToArray(); //result = result.Concat(Encoding.Default.GetBytes("┃送检单号┃"+ PrintData.SendQCReportId.PadRight(12) + "┃物料代码┃"+ PrintData.ProductShortName.PadRight(10) + "┃\n")).ToArray(); //.PadRight() //result = result.Concat(Encoding.Default.GetBytes("┣━━━━╋━━━━━━┻━━━━┻━━━━━┫\n")).ToArray(); //result = result.Concat(Encoding.Default.GetBytes("┃物料描述┃" + PrintData.ProductDescribe.PadRight(30) + "┃\n")).ToArray(); //result = result.Concat(Encoding.Default.GetBytes("┣━━━━╋━━━━━━┳━━━━┳━━━━━┫\n")).ToArray(); //result = result.Concat(Encoding.Default.GetBytes("┃抽样方式┃"+ PrintData.CYFS.PadRight(12) + "┃检查水平┃"+PrintData.CYSP.PadRight(10) + "┃\n")).ToArray(); //result = result.Concat(Encoding.Default.GetBytes("┣━━┳━┻━┳━━┳━┻━┳━━┻┳━━━━┫\n")).ToArray(); //result = result.Concat(Encoding.Default.GetBytes("┃AQL1┃" + PrintData.AQL1.PadRight(6) + "┃AQL2┃" + PrintData.AQL2.PadRight(6) + "┃样本量┃" + PrintData.SampleSize.PadRight(6) + "┃\n")).ToArray(); //result = result.Concat(Encoding.Default.GetBytes("┗━━┻━━━┻━━┻━━━┻━━━┻━━━━┛\n")).ToArray(); //result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray(); //设置居中 //result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray(); //设置倍高 //result = result.Concat(Encoding.Default.GetBytes("送检日期:2011-05-17\n\n\n")).ToArray(); }