★★★难度实在太大:如何将字体为'Fixedsys'的英文文本输出到打印机? ★★★ (100分)

  • 主题发起人 主题发起人 LargeWang
  • 开始时间 开始时间
L

LargeWang

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
uses
Printers;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := 'AMVW269';
Button1.Font.Name := 'Fixedsys';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
with Printerdo
begin
begin
Doc;
Canvas.Font.Name := 'Fixedsys';
Canvas.TextOut(10, 10, 'AMVW269');
EndDoc;
end;
end;

end.

把打印结果同Button1.Caption比较看看,字体不一样啊。
我相信这个问题一定有解(确实有人解决了这个问题)
Thanks for your help.
 
procedure TForm1.Button1Click(Sender: TObject);
begin
with Printerdo
begin
begin
Doc;
Canvas.Font.Name := 'Fixedsys';
Canvas.Font:=Button1.font;
Canvas.TextOut(10, 10, 'AMVW269');
EndDoc;
end;
end;
 
to bpc:
多谢你的关心。这么多天以来,就没有人敢接招。我的这段代码你要打印出来以后才能知道问题所在。
在这里也给后来者一些提示:
1.这种字体在Word里面是不支持的;
2.在写字板里可以选择这种字体,但是打印不出这种效果;
3.在控制面板的字体目录下没有这种字体(在TFontDialog中可以选择)。
 
Button1.Font.Name := 'Fixedsys';

在你打印时调用
Printer.Canvas.Font.Assign( Button1.Font );
 
在 Todd Miller &
David Powell 著的 DELPHI 3 开发使用手册 中提到有些字体只能显示不能打印
 
接受答案了.
 
后退
顶部