delphi 中的两个打印问题(100分)

  • 主题发起人 主题发起人 杜杜先生
  • 开始时间 开始时间

杜杜先生

Unregistered / Unconfirmed
GUEST, unregistred user!
第一、不用quickreport控件而实现打印预览。
第二、实现与打印机无关的打印,使得在不同的打印机下打印出来的相片大小保持一个尺寸。
 
用Tdbgrideh控件試試
 
这个问题都没有人回答,太令我失望了。
 
1、可以用TMetaFile来做,将打印的内容都写到metaFile中,示例:
var
MyMetaFile:TMetaFile;
begin
??//创建图元文件
MyMetafile:= TMetafile.Create;
//以打印机句柄创建图元文件画布对象(Tmetafilecanvas),
?TMetafileCanvas.Create(MyMetafile,printer.Handle);、
//在图元文件中调用你的打印程序
......
//在Image中画出图元文件
image1.Canvas.StretchDraw?(image1.canvas.cliprect?MyMetafile);
2、要想使不同打印机打出来的相片一样大,主要完成以下
(1)用GetDeviceCaps (Printer.Handle,LOGPIXELSX)获取当前打印机的水平分辨率。
var dpi,dpm:real;
??dpi:=GetDeviceCaps?(Printer.Handle,LogPixelsX);??//获取当前打印机的水平分辨率
(2)统一你的度量单位,这里用的是毫米。
??dpm:=trunc(dpi/25.4);?//算出每毫米的打印机点数。
这样单位统一后便可以在指定的位置打印了。

 
xsj_by兄能否把打印预览那个给说的详细一些或者给个例子,多谢了
 
我正在做一个程序,里面就有打印及预览的代码,不过还没有完成,成功了发到你的信箱里。你信箱是什么?
 
那真的是太谢谢你了,我的邮箱是hezhen@digiark.com我的邮箱能够容纳100M,是收费的,非常感谢你。我把这100分都给你了!!!!现在就给分。
 
接受答案了.
 
后退
顶部