wince6.0 设备 打印定长字符串问题
pda 售货时,打印售货小票,其中商品名称有汉字,有英文,字符长度有长有短,所以定长打印8个汉字,16个长度,不足补空格,问题来了
foreach (DataRow row in dt.Rows)
{
string spmc = row["商品名称"].ToString();
string spmctxt = spmc + new string(' ', 16 - Encoding.GetEncoding("gb2312").GetBytes(spmc).Length);
MessageBox.Show(spmctxt.Length.ToString());//这里是不管汉字还是英文,都算一个字符长度,所以字符长度有长有短。
MessageBox.Show(Encoding.GetEncoding("gb2312").GetBytes(spmctxt).Length.ToString());//这里显示定长16个长度
string spdj = row["单价"].ToString();
decimal sl = Convert.ToDecimal(row["数量"].ToString());
decimal je = Convert.ToDecimal(row["金额"].ToString());
pr.PrintLine(spmctxt + spdj.PadRight(4) + sl.ToString().PadRight(6) + je.ToString());//可是打印后,并不是一样的长,造成小票对不齐,非常难看。
}
哪位大神指点指点吧。。。。。