这是我的代码
//在设备空间映射成0.1mm
SetMapMode(Printer.Handle , MM_LOMETRIC);
with Printer do
begin
BeginDoc;
Canvas.Rectangle(0, 0, 2250, 800);
Canvas.Font.Name := '宋体';
Canvas.Pen.Color := rgb(0, 0, 255);
Canvas.Font.PixelsPerInch := Vdpi;
Canvas.Font.Size:= 10;
... ...
EndDoc;
end;
是要打出一个22.5CM*8CM的矩形,
实际打出的结果是19.08CM*6.8CM。
这是怎么回事,如何得到这个比率?
//在设备空间映射成0.1mm
SetMapMode(Printer.Handle , MM_LOMETRIC);
with Printer do
begin
BeginDoc;
Canvas.Rectangle(0, 0, 2250, 800);
Canvas.Font.Name := '宋体';
Canvas.Pen.Color := rgb(0, 0, 255);
Canvas.Font.PixelsPerInch := Vdpi;
Canvas.Font.Size:= 10;
... ...
EndDoc;
end;
是要打出一个22.5CM*8CM的矩形,
实际打出的结果是19.08CM*6.8CM。
这是怎么回事,如何得到这个比率?
解决方案 »
- 询问关于获取实时股票信息的问题
- 好多人都转向.NET或JAVA了,Delphi到底还有没有前途!?招聘的可是越来越少了!
- 在使用FastReport时,用ShowReport出现问题
- 我再放...
- 在线等待:ADOQuery的filter属性的问题
- 我想把一本书扫描后转为PDF格式,请问如何来做
- 如何让表中的true,false在dbedit中显示为先和后两个字?
- 数据库用户加密---蔡鸟100分请教高手门
- 急!!!哪位大侠知道: .wav文件以何种格式写到modem中,才能播放出声音呀?
- delphi里怎么把 String类型转换到 Tbitmap类型
- 用msscript.ocx如何来执行Run()。举个例子调用一个已经写好的函数。
- 强制类型转换于指针的问题
(不好意思,只是猜测)
你試一下:
Canvas.Font.PixelsPerInch := Screen.PixelsPerInch
与TCustomForm无关;
加
Canvas.Font.PixelsPerInch := Screen.PixelsPerInch
只是使下面文字字体打出来与Canvas的字体一致。我知道打印机分辨率与Canvas的不一致,想得到比例因子
可是我已经用SetMapMode(Printer.Handle , MM_LOMETRIC);
将打印机模式映射成0.1mm了。
那你要在纸上画1CM的线该如何写?
这样吗?
SetMapMode(Printer.Handle , MM_LOMETRIC);
Printer.Canvas.MoveTo(0, 0);
Printer.Canvas.LineTo(100,0);