怪问题 ( 积分: 100 )

  • 主题发起人 主题发起人 sonation
  • 开始时间 开始时间
S

sonation

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var x,y:integer;
begin
if printdialog1.Execute then
begin
printer.Orientation:=polandscape;
try
printer.begin
Doc;
printer.Canvas.Font:=label1.Font;
printer.Canvas.Rectangle(400,330,3738,2530);
printer.Canvas.TextOut(200,200,'55555');
printer.EndDoc;
except
end;
end;
end;
早先字体为10号我打印了一次,后来把字体改为初号我再打印一次,结果第二次打印的坐标发生了变化,我再把字体改为10号时打印出来的结果却无法与第一次一样(坐标与第二次相同).
 
我的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var x,y:integer;
begin
if printdialog1.Execute then
begin
printer.Orientation:=polandscape;
try
printer.begin
Doc;
printer.Canvas.Font:=label1.Font;
printer.Canvas.Rectangle(400,330,3738,2530);
printer.Canvas.TextOut(200,200,'55555');
printer.EndDoc;
except
end;
end;
end;
早先字体为10号我打印了一次,后来把字体改为初号我再打印一次,结果第二次打印的坐标发生了变化,我再把字体改为10号时打印出来的结果却无法与第一次一样(坐标与第二次相同).
 
打印机的纸型没设定
 
但是打印机的默认纸型是 A4 没变过啊?
 
To li_zhifu:
谢谢! 好象跟打印机分辨率的设定有关系,360dpi打出来的跟第一次一样, 240dpi打出来的跟第二次一样,我应该如何编写才能让程序对任何打印机或是大多打印机通用呢?
 
谢谢.已经搞定,硬着头皮查离线资料,原来是需要将分辨率和纸上的实际位置进行换算。
结贴,to li_zhifu 100分.
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
687
import
I
I
回复
0
查看
610
import
I
后退
顶部