打印预览中纸张设置的问题(50分)

  • 主题发起人 主题发起人 jamebo
  • 开始时间 开始时间
J

jamebo

Unregistered / Unconfirmed
GUEST, unregistred user!
我自己作了一个Quick Report打印预览
想用户能根据需要自己动态选择打印纸张
和调整边界
问题:
边界能调整,但纸张选择后,再preview时
纸张大小还是A4
语句
QuickReport.Page.PageSize:=....
以前我在D3中用这段代码---正常
现在在D5,QucikReport3.06 but --不正常
Why

???
 
我以前也遇到了,这是D5的Bug
D5的Bug多多
 
忘了说了
此时只能手工从win98的打印机设置中设置,如A5
 
??
add
printsetupdialog
设置 打印机
 
printsetupdialog
我以前也试了,不行,不过当时很急,你可以再
试试
 
试试这个函数:
Procedure PRT_SET(P_Size,P_Orientation:Shortint);
Var
APrinterName,APrinterDriver,APrinterPort : Array[0..255] of Char;
AHnd : THandle;
ADevMode : PDevMode;
begin

Printer.GetPrinter(APrinterName,APrinterDriver,APrinterPort,AHnd);

ADevMode := GlobalLock(AHnd);
Try
AdevMode^.dmPaperSize := P_Size;

AdevMode^.dmScale := 100;

AdevMode^.dmPrintQuality := DMRES_MEDIUM;

AdevMode^.dmOrientation := P_Orientation;

Finally
GlobalUnlock(AHnd);
end;

Printer.SetPrinter(APrinterName,APrinterDriver,APrinterPort,AHnd);
end;


打印时:
PRT_SET(DMPAPER_A4,DMORIENT_LandScape);

 
关注!!!
 
wangyuguo的这个函数是可行的,如果在Windows NT下把
纸张设置成自定义是行不通,这可能是Microsoft 的Bug。
多次验证过,可以自己人试试。
 
接受答案了.
 

Similar threads

D
回复
0
查看
930
DelphiTeacher的专栏
D
D
回复
0
查看
871
DelphiTeacher的专栏
D
D
回复
0
查看
945
DelphiTeacher的专栏
D
D
回复
0
查看
777
DelphiTeacher的专栏
D
后退
顶部