Beispiel #1
0
        /// <summary>
        /// 打印左右对齐的行
        /// </summary>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        private byte[] PrintLineLeftRight(string left, string right, int fontSize = 1)
        {
            var zhLeft  = PrinterCmdUtils.CalcZhQuantity(left);                                   // 左边文本的中文字符长度
            var enLeft  = left.Length - zhLeft;                                                   // 左边文本的其他字符长度
            var zhRight = PrinterCmdUtils.CalcZhQuantity(right);                                  // 右边文本的中文字符长度
            var enRight = right.Length - zhRight;                                                 // 右边文本的其他字符长度
            var len     = FormatLen - ((zhLeft * 2 + enLeft + zhRight * 2 + enRight) * fontSize); // 缺少的字符长度

            if (len > 0)
            {
                for (int i = 0; i < len / fontSize; i++)
                {
                    left += " ";
                }
            }
            else
            {
                var times = 1;
                while (true)
                {
                    if (FormatLen * times + len > 0)
                    {
                        break;
                    }
                    times++;
                }
                for (int i = 0; i < (FormatLen * times + len) / fontSize; i++)
                {
                    left += " ";
                }
            }
            return(TextToByte(left + right));
        }