打印字符串的时候怎么控制要打印的字符串的字体呢?
通过串口弄的  我想打印的时候能设置一下字体的大小 希望大虾指点 谢谢        
        public bool Write(string Data)
        {
            try
            {
                if (IsOpen())
                {
                    byte[] bData = System.Text.Encoding.Default.GetBytes(Data);
                    Write(bData);
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch { return false; }
        }        public bool Write(byte[] bdata)
        {
            try
            {
                if (IsOpen())
                {
                    serialPort.Write(bdata, 0, bdata.Length);
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch { return false; }
        }

解决方案 »

  1.   

    为什么不用GDI提供的打印功能,非要自己花力气做呢?窗体打印支持
    http://msdn.microsoft.com/zh-cn/library/xdt36c58.aspx
      

  2.   

    GDI打印的时候 总是即打即停 很慢  所以就自己写了一个但是字体不知道怎么去控制 求解
      

  3.   


    是热敏票据打印机  我看了一下 ESPON操作指令(用的是ESC/POS指令打印,不用装驱动直接可以打印) 但是里面没有找到
    控制字体的指令啊  求解有大虾指点一下这种方式应该怎么控制码?
      

  4.   


    晕!好好仔细看看手册吧。实用的小票打印机,为了保证效率,都有硬字库,都支持ESC/POS指令中变换字符大小、加粗等等命令。如果没有,你可能买了一个不该买的打印机。如果是稍微好一点的小票打印机,还应该有切纸功能,而且可以选择是全切还是只切90%(连一点不切断)。有些打印机还支持自动报警功能,当它计算纸卷快用完了,会提前报警。有些高档一点的打印机,支持光电检测发票纸(定位)功能,你可以用它打印定长的发票。只要你去印刷厂定制发票纸。
      

  5.   

    随便搜了一下,第一个结果:http://hi.baidu.com/xboshi/blog/item/d8864da2dd8592a9cbefd0cc.html不过你的打印机开发,还是要看他的厂商提供的手册。最好也联系一下厂商,看看有没有技术支持人员,是不是一个转了很多道手的。要买小票打印机就要跟直接开打印机工厂的厂商买,跳过中间的奸商。
      

  6.   


    这个手册手来找到了,但是写上了以后没有作用
    代码如下用的是16进制的 :
                    byte[] temp;
                    //1B, 33 设置行高, 54个像素
                    temp = new byte[] { 0x1B, 0x33, 0x48 };
                    serialPort.Write(temp, 0, temp.Length);
                    //1B 4D 选择字体 03为汉字字体
                    temp = new byte[] { 0x1B, 0x4D, 0x03 };
                    serialPort.Write(temp, 0, temp.Length);                //1B 45 选择/取消加粗模式 01选择/00取消
                    temp = new byte[] { 0x1B, 0x45, 0x01 };
                    serialPort.Write(temp, 0, temp.Length);没有效果`~我把所有的代码都去掉就留下加粗字体的那个也没有作用,但是这个打印机用其它的软件可以打
    出粗体来`肯定是我的办法不对` 但是不知道是什么原因 帮忙分析一下吧!还有看了一下手册 用的是ESC命令 有一点迷糊的地方就是:
    [例子]   char SendStr[4];           SendStr[0] = 0x1B;
               SendStr[1] = ’J’;
               SendStr[2] = 3;
               PrtSendData( SendStr, 3);//走纸1mm这个PrtSendData在Winform里面没有找到命名空间之类的东西
    请教大虾这个如果在winform里面应该怎么用呢
      

  7.   

    [例子]   char SendStr[4];           SendStr[0] = 0x1B;
               SendStr[1] = ’J’;
               SendStr[2] = 3;
               PrtSendData( SendStr, 3);//走纸1m人家这个例子只是为了告诉你发指定的数据格式和方法,PrtSendData当然不会有了。
    通过串口给打印机发的东西一般要分模式的,在命令模式只发控制的指令,在数据模式下才是发真正的数据。你在数据模式下发控制命令肯定啥也看不到结果
      

  8.   


    啥也没有`我从网上找的POS命令弄的`