一个自动设置打印的问题,高手请进(20分)

  • 主题发起人 主题发起人 daidaiworm
  • 开始时间 开始时间
D

daidaiworm

Unregistered / Unconfirmed
GUEST, unregistred user!
我想每次打印用QuickReport做的报表之前都把当前打印机的纸张大小设置为与我要打印的
报表一致,请问该如何实现?
 
呵呵,在报表的对象观察器里面有Pagesetting
里面可以设置通常的A4,B5啦,等等
也可以设置打印机的页面为手动设置的大小。
比较简单啊。
 
我想你误解我的意思了,我是想设置当前打印机的纸张大小,而不是报表的纸张大小,而且
要在打印前利用程序来自动设置,而不用printdialog
 
up........................
up........................
up........................
up........................
啊........................扑........................
啊........................扑........................
啊........................扑........................
啊........................扑........................
 
http://delphibase.yeah.net setpapersize() function
 
你直接設置打印機
然後把你的quickrep的紙張設好就行了
 
众所周知的 setpapersize(),来信则给代码。
 
代码如下:
Printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle);
DevMode:=GlobalLock(DeviceHandle);
with DevMode^do

begin

dmFields:=dmFields or DM_PAPERSIZE;
dmPaperSize:=DMPAPER_USER;
dmFields:=dmFields or DM_PAPERLENGTH;
dmPaperLength:=1050 //以0.1mm为单位的纸张长度
dmFields:=dmFields or DM_PAPERWIDTH;
dmPaperWidth:=1900 //以0.1mm为单位的纸张长度
dmFields:=dmFields or DM_ORIENTATION;
dmOrientation:=DMORIENT_PORTRAIT;
end;

if DeviceHandle<>0 then
GlobalUnlock(DeviceHandle);
Printer.begin
Doc;
....
Printer.EndDoc;
但是以上代码在Windows98/2000下一切正常,但在Nt4上却不起作用,可能是NT4的缺陷.
ME和XP我没试过,估计应该可以.

 
接受答案了.
 
后退
顶部