//制作字体过程
function MakeFont:integer;
begin
 FillChar(FLogFont, sizeof(TLogFont), 0);
 // Set the TLOGFONT's fields
 with FLogFont do
 begin
   lfHeight         := 10;
   lfWidth          := 8;
   lfEscapement     := 0;
   lfOrientation    := 0;
   lfWeight         := 0;
   lfItalic         := 0;
   lfUnderline      := 0;
   lfStrikeOut      := 0;
   lfCharSet        := 0;
   lfOutPrecision   := 0;
   lfClipPrecision  := 0;
   lfQuality        := 0;
   lfPitchAndFamily := 0; end;  tmpFont := CreateFontIndirect(FLogFont);
  result:=tmpFont;end;//在quickReport报表上应用字体
QuickRep.QRlabel1.font.handle:=makeFont;
QuickRep.QRlabel1.caption:='中华人民共和国2004年';
QuickRep.preView;//预览结果是正确的,字体为扁体字但打印出来后却不是这样,这是为什么啊????????????

解决方案 »

  1.   

    怎么解决这事呢?难道就无法解决了吗?
    WORD就可以啊!!!!
      

  2.   

    这个,你可以用tmetafilecanvas 和tmetafile 来打印机,在tmetafilecanvas造字,形成矢量图后再打印这个图就可以了,祝你好运
      

  3.   

    TO: CB123(CB爱好者):
    能否说详细些?
    tmetafilecanvas和tmetafile如何使用?它们是API吗?
    这事真的很急,就帮小弟一把吧,真诚感谢你!!!
      

  4.   

    tmetafilecanvas tmetafile都是类,它们的用法你可以在帮助中查。
    metafile: tmetafile;
    metafilecanvas :tmetafilecanvas ;
    metafile:=tmetafile.create;
    metafilecanvas :=Tetafilecanvas.create(printer.handle,metafile);
    metafilecanvas.draw..
    metafilecanvas.textout(...);metafilecanvas就是画布。
    metafilecanvas.free;
    printer.begindoc
    printer.canvas.draw(0,0,metafile);
    printer.enddoc
    详细的你自已看吧,我只是用metafilecanvas做过打印的预览
      

  5.   

    我曾经试过在Canvas上画字,是可以打出来但效果很差,不如WORD打印的那么精细.
    这种方法打印的效果好吗?