S springm Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-19 #1 在Printer.Canver.TextOut(X,Y,字符); 中,X,Y是Integer,怎样转换为毫米? 打印机不同,怎样保持效果,如字体?
S springm Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-19 #2 .........................等待
C coao Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-19 #4 好像不能更改其度量单位(打印机), 字体可以设置成通用的打印机字体。
S springm Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-19 #5 我是想问textout的X,y与毫米的关系,是不是不同的打印机会不同? 打印字体一般printer.canvas.Font:=i;i 为integer,是不是不同分辨率的打印机 字体会打成不同大小
Y yck Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-19 #6 每个FORM上都有一个属性叫“PixelsPerInch”,记录着在本窗口内, 一英寸等于多少Pixels。 而1 inch 英寸=25.4 millimetres 毫米,所以换算关系就可以确定了。
S springm Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-20 #9 R_Baggio兄,GetDeviceCaps是获取打印机的分辨率,有没有 完整的过程进行处理,
R R_Baggio Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-20 #10 看看帮助,有两个参数的,得到的结果是每厘米有多少象素
C Croco Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-20 #11 在打印机上画十毫米长的线段。 function GetXFactor: Extended; begin Result := Printer.PageWidth / GetDeviceCaps(Printer.Handle, HORZSIZE); end; function GetYFactor: Extended; begin Result := Printer.PageHeight / GetDeviceCaps(Printer.Handle, VERTSIZE); end; procedure TForm1.Button1Click(Sender: TObject); begin Printer.begin Doc; Printer.Canvas.MoveTo(Trunc(10 * GetXFactor), Trunc(10 * GetYFactor)); Printer.Canvas.LineTo(Trunc(20 * GetXFactor), Trunc(10 * GetYFactor)); Printer.EndDoc; end;
在打印机上画十毫米长的线段。 function GetXFactor: Extended; begin Result := Printer.PageWidth / GetDeviceCaps(Printer.Handle, HORZSIZE); end; function GetYFactor: Extended; begin Result := Printer.PageHeight / GetDeviceCaps(Printer.Handle, VERTSIZE); end; procedure TForm1.Button1Click(Sender: TObject); begin Printer.begin Doc; Printer.Canvas.MoveTo(Trunc(10 * GetXFactor), Trunc(10 * GetYFactor)); Printer.Canvas.LineTo(Trunc(20 * GetXFactor), Trunc(10 * GetYFactor)); Printer.EndDoc; end;