怎样做打印预览程序(50分)

  • 主题发起人 主题发起人 goldeyes
  • 开始时间 开始时间
G

goldeyes

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样做打印预览程序
 
delphi自带的quick report控件可以
 
我希望能在panel上进行预览
 
哪就在panel的画布上输入
 
那就将打印输出的内容输出到panel.canvas,就可以实现打印预览了。
 
我認為用系統自帶的QRPreview1比較好,也好控制。
如更換頁次,縮放,設置打印頁次或保存等,方便。
 
使用panel带实现预览,很灵活的。有些难度。
 
推荐fastReport,它有专门的预澜控件,能开启新窗口预览,也能放到某个容器控件里,我用它做过大量的特殊报表
 
把 TQRPreview
放在
panel上
 
puyd:
fastReport安装后为什么会出现为定义‘frparser’未定义这样错误
你的控件在 哪下载的
 
http://www.angelfire.com/jazz/puyd/DownLoad/Freereport240.zip
这个版本较低,其他高版本的在许多地方都有的载,还有,安装好已后要把云程序的搜索路径
加到Delphi里去,另外,这个东东在运行时必须要求机上有能用的默认打印机,实在不行
就装一个打印到文件的打印机驱动吧,不然初始化会出错
 
puyd,如何安装打印到文件的打印机驱动程序?
 
用报表嘛!
 
再帖一次!
自己用QrPreview作preview Form。
一个QrPreview,几个按钮就行了。
在你的QuickRep Preview中加入
procedure Trepform1.QuickRep1Preview(Sender: TObject);
begin
zoomform1.QRPreview1.qrprinter:=TQRPrinter(Sender);
zoomform1.show;
end;
调用报表Preview就显示自己作的Preview表单。
Preview Form中就一个QrPreview和几个你自己想要的功能按钮。
给你写几个简单的。界面作PP点,想要什么功能,自己加。
procedure Tzoomform1.SpeedButton9Click(Sender: TObject);
begin
//关闭
close;
end;

procedure Tzoomform1.SpeedButton1Click(Sender: TObject);
begin
//还原
QRPreview1.zoom:=100;
end;

procedure Tzoomform1.SpeedButton2Click(Sender: TObject);
begin
//放大
if QRPreview1.zoom<390 then
QRPreview1.zoom:=QRPreview1.zoom+10
else
showmessage('已放大到最大');
end;

procedure Tzoomform1.SpeedButton3Click(Sender: TObject);
begin
//缩小
if QRPreview1.zoom>10 then
QRPreview1.zoom:=QRPreview1.zoom-10
else
showmessage('已缩小到最小');
end;

procedure Tzoomform1.SpeedButton4Click(Sender: TObject);
begin
//打印设置
QRPreview1.QRPrinter.PrintSetup;
end;

procedure Tzoomform1.SpeedButton8Click(Sender: TObject);
begin
//下一页
with Qrpreview1do
begin
if pagenumber=Qrprinter.pagecount
then
showmessage('已到最后一页')
else
pagenumber:=pagenumber+1;
end;
end;

procedure Tzoomform1.SpeedButton7Click(Sender: TObject);
begin
//上一页
with Qrpreview1do
begin
if pagenumber=1
then
showmessage('已到第一页')
else
pagenumber:=pagenumber-1;
end;
end;
 
用quickrep做预览,为什么反复调用它的preview方法,会出错
project hz.exe raised exception class EcomponentError with message 'A component
named QRstandarPrevie already exist' Process stopped use step or run to continue
而且我已经free了该控件,并赋为nil
 
高手请进来,机械《Delphi5开发人员指南》上说
“一个更好的打印预览可以由图元文件创立。要创建图元文件,使用参照设备的打印机句
柄,然后如同在打印机画布上一样,在图元文件画布上进行描绘,再将图元文件显示在屏幕上。
不需要比例尺或视区范围的调整。”
我想请教高手:
1)如何使用PlayMetaFile函数显示图元文件的内容
最好将示例贴出来。
2)能用PlayMetaFile函数直接把图元文件的内容发送给打印机吗?
 
后退
顶部