如下是我做的打印预览主要代码,98下完全正确,但是xp下失真。可是xp下用ACDSee直接打印产生的图元文件也完全正确。
我想知道的是:图元文件的1像素对应打印机多少像素?
注: WmfFile 是 ShortString,对应于产生的图元文件名。
----
var
wmf : TMetafile;
begin
wmf := TMetaFile.Create;
try
wmf.LoadFromFile(WmfFile);
with Printer do
begin
BeginDoc;
Printer.Canvas.StretchDraw(Rect(0,0,(wmf.Width),(wmf.Height)), wmf);
EndDoc;
end;
finally
wmf.Free;
end;
谢谢
我想知道的是:图元文件的1像素对应打印机多少像素?
注: WmfFile 是 ShortString,对应于产生的图元文件名。
----
var
wmf : TMetafile;
begin
wmf := TMetaFile.Create;
try
wmf.LoadFromFile(WmfFile);
with Printer do
begin
BeginDoc;
Printer.Canvas.StretchDraw(Rect(0,0,(wmf.Width),(wmf.Height)), wmf);
EndDoc;
end;
finally
wmf.Free;
end;
谢谢
解决方案 »
- 发一个Bpl框架2.0(for D7),欢迎接分...
- 关于tchart画线问题。
- 关于报表设计的一个问题,请大虾们指教!谢谢!在线等...
- 如何将excel文件的数据导入到dbf数据库中
- 如何使ListBox中的滚动条一直停留在最下面﹐该用什幺API函数,如何实现?
- 写COM(BHO),实时监控桌面上新弹出/打开的IE窗口,将他的URL写在RichEdit里。
- 怎样在label中显示一个到计时?
- 这是什么鬼城市!大家没有必要一定不要来长沙,治安太差了!
- 中国队上半场1:0领先!!!!!
- 如何在程序中打开一个。。。。
- 寻找vcl高手
- 我朋友的同事(美女)歌唱比赛,来UP一下呀,还有可能获奖哦~~~~
ScaleX, ScaleY: Integer; try
BeginDoc; // **
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, wmf.Width * ScaleX, wmf.Height * ScaleY);
Canvas.StretchDraw(R, m_BitMap); // **
finally
EndDoc; // **
end;