如何输出长宽不等的字体?如何把象素转化为打印纸上的厘米?(50分)

S

snappy

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi输出的字体都是长宽相等的,如何让它输出长宽不等的字体?如字长100而宽是20
打印时不可能让用户来输入打印纸的象素是多大吧!那么怎么把图形象素转换为厘米呢?
谢谢各位。
 
将要写的文字写道 TIamge 的 Canvas 中,用StretchDraw画到另一 Canvas
算好比例,就打出来了。API中有创建你说的字体的函数,一时想不起了!
Screen.PixelsPerInch 可取到屏幕中每英寸的点数(一般为96)。1英寸=2.54厘米
自己换算一下。
 
procedure TForm1.Button1Click(Sender: TObject);
var
h : HFont;
begin
h:=CreateFont(200,50,0,0,300,0,0,0,0,0,0,0,0,'楷体');
Canvas.Font.Handle :=h;
Canvas.TextOut(100,100,'卷起千堆雪');
end;

1英寸=2.54厘米
你打印时,有一个dpi,也就是打印的分辨率!比如说300dpi,就是1英寸有300个
象素点!这样你就可以在厘米和象素之间转化了。2.54厘米=300个象素点
OK?
 
多人接受答案了。
 
顶部