我用字符直接打印(因为本人是用超市票据打印机!)
程序如下:
var f:textfile;
    s:string;
begin
   s:='我想要打印的内容!'
   assignfile(f,'lpt1');//"把这个直接输出到操作系统的打印虚拟文件"
  writeln(f,s);
   closefile(f);
end;
问题是:如果我想要打印不是为默认的字体;
不知道各位高手有什么好的方法可以解决!!
快快!!!!!
第一个有正确的。。分数全给!!!(分数不够可以再加!!!)
来呀来呀不然就没有分了。。

解决方案 »

  1.   

    1.如果你坚持文本打印,想换字体的话,要检查一下打印机是否支持你想要的字体并在输出文本中插入适当的换码序列(查打印机手册,通常以Escape字符$27{手册中可能印刷成ESC或^[或\E}打头,后退特写的数字各字母);
    2.如果打印机支持点阵打印,可以使用Delphi定义的一个缺省的全局变量Printer,看一下帮助就可以,很容易用。这也是我推荐的方式。
      

  2.   

    可用
    printer.canvas.font.size:=10;
      

  3.   

    利用Printer對象
    var
      r: TRect;
      i: Integer;
    begin  with Printer do
        begin
          r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
          BeginDoc;
          Canvas.Font.Size := 20;
          Canvas.TextOut(812,812,'zhuhai is a nice city');
          canvas.TextOut(1232,1232,'X');
          canvas.TextOut(2252,222,'珠海是一個好地方!');
          canvas.Ellipse(1100,1130,260,1200);
          Canvas.Brush.Color := clBlack;
          Canvas.FrameRect(r);
          EndDoc;
        end;end;
      

  4.   

    to:所有人:
    怎么样使用ESC命令来控制
    它的说明书是有带ESC命令说明。。
    但怎么样我不太清楚
    有没有人能写一个例程来说明一下具体的用法。。
    万分感谢!!!
      

  5.   

    唉,就这点分,还问这么多……以下纯属举例,我几年前做过Unix下的打印,知道过程应该是这样的,但举例用的换码序列一定是不确切的,需要用你从手册上查出来的来替代:
    -----------------------
    比方说,手册上说明: 
      ^[1B  粗体
      ^[0B  正常字体
    你想打印字符串:
      I am a hero.
    其中,“am”为粗体,其他部分为正常字体,在Delphi中代码是:
      assignfile(f,'lpt1');//"把这个直接输出到操作系统的打印虚拟文件"  s := 'I ' + #27'1B' +  'am' + #27'0B' + ' a hero.';
      writeln(f,s);  closefile(f);
      

  6.   

    TO:大头鬼》》》》
      我想知道的是ESC(打印机的控制命令)怎么用??
    因为它可以让我设行间距。。
    还有可以设字符高度!
    所以请帮忙再说一下。。
    ESC的用法谁会的来一个。。
    ???我加分了。。
      

  7.   

    我已经举过例子了,ESC对应的ASC码是27,在Delphi中#27代表ASC码为27的字符,前述#27'1B'对应于手册中的ESC,'1','B'这样的换码序列。因为打印机是流式的,送出一个换码序列后其后所有的打印输出都采用此格式,直到你输出另一个换码为止。
        如前例:
        s := 'I ' 
             + 
             #27'1B' //从现在起,所有后继字符以粗体打印
             +  
             'am' 
             + 
             #27'0B' //从现在起,所有后继字符恢复正常打印模式
             + 
             ' a hero.';
        换码序列本身不会被打印出来,这是由打印机保证的。