用Tprinter打印一张图片怎么才能在不同的打印机分辨率打出的图片大小相同? 用Tprinter打印一张图片怎么才能在不同的打印机分辨率打出的图片大小相同? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用API设置Printer的Handle:SetWindowExtEx, SetViewportExtEx。说白了就是重新设置设备描述表的缩放行为。这种办法有点麻烦。此外还有一种方法:先把位图画到一个图元文件(TMetafile)对象上,然后再把图元文件画到打印机上,这样一来实际上就是以恒定的屏幕分辨率(通常是96dpi)来绘制位图。也能够保证图象的打印大小。 var mf : TMetafile; mc : TMetafileCanvas;begin mf := TMetafile.Create(......); try mc := TMetafileCanvas.Create(mf, 0); try mc.TextOut...... ...... finally md.Free; end; Printer.BeginDoc; Printer.BeginPage; Printer.Canvas.Draw(0, 0, mf); Printer.EndDoc; finally mf.Free; end;end; listbox选项做标记的问题!! 关于TWebBrowser和Delhpi之间的通讯问题,在线等待,急 我作好了一个dcom得程序。怎么发布阿!! 如何在我的程序中运行windows的注册程序 regsvr32? 关于扫描图片尺寸的问题 文件处理高手请进 很菜的问题,请大家帮忙,高分相送。 用ADO连接SQL2000数据库,数据库中有触发器,前台采用缓存更新模式,会出现很多问题,不知道各高手是否曾如此使用,如何解决? 谁有或者知道CHM的SDK,100分奉送 困惑的数据库密码 我竟然不知道面向过程和面向对象的不同之处和个有什么优缺点???? 概念的东西,好久不用了,请帮忙!!动态数组
说白了就是重新设置设备描述表的缩放行为。这种办法有点麻烦。此外还有一种方法:先把位图画到一个图元文件(TMetafile)对象上,然后再把图元文件画到打印机上,这样一来实际上就是以恒定的屏幕分辨率(通常是96dpi)来绘制位图。也能够保证图象的打印大小。
mf : TMetafile;
mc : TMetafileCanvas;
begin
mf := TMetafile.Create(......);
try
mc := TMetafileCanvas.Create(mf, 0);
try
mc.TextOut......
......
finally
md.Free;
end;
Printer.BeginDoc;
Printer.BeginPage;
Printer.Canvas.Draw(0, 0, mf);
Printer.EndDoc;
finally
mf.Free;
end;
end;