请教:如何得到这个比例因子?(100分)

  • 主题发起人 主题发起人 inforum
  • 开始时间 开始时间
I

inforum

Unregistered / Unconfirmed
GUEST, unregistred user!
要在纸上画10CM的线,我这样做
SetMapMode(Printer.Handle , MM_LOMETRIC);
Printer.BeginDoc;
Printer.Canvas.MoveTo(100, 50);
Printer.Canvas.LineTo(1100,50);
Printer.EndDoc;
可是打出来只有8.5CM,好象是分辨率的缘故,
请问具体怎么做才能使得打出来也是10CM?
 
看看这个,应该可以:

代码:
 Printer.BeginDoc; // **
         with Printer do
         try
            ScaleX := GetDeviceCaps(Handle, logPixelsX) div
               PixelsPerInch;
            ScaleY := GetDeviceCaps(Handle, logPixelsY) div
               PixelsPerInch;
            R := Rect(0, 0, childform.Image1.Picture.Width * ScaleX,
               childform.Image1.Picture.Height * ScaleY);
            Canvas.StretchDraw(R, childform.Image1.Picture.Graphic); // ** ÒªÀ­Éì
         finally
            EndDoc; // **
 
Re:huazai
您的方法不对,打出来结果太长了
如果用div,ScaleX为3

欢迎各位经过测试后回答,谢谢!
 
该问题自己已解决,原来很简单。
仓促提出,真不好意思
 
抱歉,1年前该问题自己已解决,只是忘了结帖。

主要设置纸张大小,然后将TCanvas通过StretchDraw画到指定的大小内
 
多人接受答案了。
 
你是怎么解决的?告诉我好吗?我正好学学
 

Similar threads

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