コード例 #1
0
        private void HandlerNormalConfig(string normalConfig)
        {
            List <string>   itemArr = new List <string>();
            MatchCollection mc      = Regex.Matches(normalConfig, @"\[([^\]]*)\]");

            foreach (Match m in mc)
            {
                itemArr.Add(m.Groups[1].Value);
            }
            //处理每一项
            foreach (string str in itemArr)
            {
                if (str.Contains("Line"))
                {
                    foreach (PrintLine line in _curPrintConfig.PrintLines.LineList)
                    {
                        if (line.LineName == str)
                        {
                            int startPX = 0, endPX = 0;
                            if (line.StartPX.IndexOf('%') > 0)
                            {
                                string strAlign = line.StartPX;
                                string number   = strAlign.Substring(0, strAlign.Length - 1);
                                startPX = Convert.ToInt32(float.Parse(number) / 100f * _curPrintConfig.TotalCharNum);
                            }
                            else
                            {
                                startPX = int.Parse(line.StartPX.Trim());
                            }
                            if (line.EndPX.IndexOf('%') > 0)
                            {
                                string strAlign = line.EndPX;
                                string number   = strAlign.Substring(0, strAlign.Length - 1);
                                endPX = Convert.ToInt32(float.Parse(number) / 100f * _curPrintConfig.TotalCharNum);
                            }
                            else
                            {
                                endPX = int.Parse(line.EndPX.Trim());
                            }
                            string text = ArrangeLinePosition(line.LineText, startPX, endPX);
                            //打印设置
                            _printHelper.SetFontSize(0, 0);
                            //_printHelper.SetCharSpacing(0);
                            _printHelper.Write(text);
                            break;
                        }
                    }
                }
                else
                {
                    foreach (NormalConfig item in _curPrintConfig.NormalConfigs.NormalConfigList)
                    {
                        if (item.Name == str)
                        {
                            string itemName = item.ValuePrefix + _printData.GetValue(item.Name);
                            int    width    = 0;
                            if (item.Width.IndexOf('%') > 0)
                            {
                                string strWidth = item.Width;
                                string number   = strWidth.Substring(0, strWidth.Length - 1);
                                width = Convert.ToInt32(float.Parse(number) / 100f * _curPrintConfig.TotalCharNum);
                            }
                            else
                            {
                                width = int.Parse(item.Width.Trim());
                            }
                            TextAlign align;
                            if (item.Align.Equals("Left", StringComparison.InvariantCultureIgnoreCase))
                            {
                                align = TextAlign.Left;
                            }
                            else if (item.Align.Equals("Center", StringComparison.InvariantCultureIgnoreCase))
                            {
                                align = TextAlign.Center;
                            }
                            else if (item.Align.Equals("Right", StringComparison.InvariantCultureIgnoreCase))
                            {
                                align = TextAlign.Right;
                            }
                            else
                            {
                                align = TextAlign.Left;
                            }
                            string[] times       = item.FontSize.Split(',');
                            int      widthTimes  = int.Parse(times[0]);
                            int      heightTimes = int.Parse(times[1]);
                            //打印设置
                            _printHelper.SetFontSize(widthTimes, heightTimes);
                            //_printHelper.SetCharSpacing(0);
                            _printHelper.Write(itemName, align, width);
                            break;
                        }
                    }
                }
            }
            _printHelper.PrintAndFeedLines(1);
        }