怎樣在Delphi中控制自定義打印?(200分)

  • 主题发起人 主题发起人 kaneboy
  • 开始时间 开始时间
K

kaneboy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做報表時遇到了一個很怪的問題,用delphi實現無法自定義打印,因為紙張大小是固定的
而系統中沒有這種紙張,并要求實現連打!!
我用程序已實現了自定義紙張的大小,但是沒有辦法控制頁邊距!!!
而且在DEVMODE中好象也沒有說到頁邊距的設置,不知在windows有沒有這樣的函數,如果
有的話,應該怎麼樣做???
 
如果要用自定义纸张,建议不用QReport,真的不是那么好用。
 
能推荐一個嗎???
 
这个控件不好啊
 
很好,用2.41汉化版!功能很强大了!
 
我都裝了,還有report builder也試了都不行!!!!
關鍵是要通過API設置頁面邊距!!!
 
如何用程序实现自定義紙張的大小!!!谢谢!!!!
 
我也遇到了此问题,有消息别忘告诉我
 
用CRW作报表,应该可以,而且还可以连续打印,
 
这个函数好用,不过winxp,2000,nt下不好用
function setprnpaper(const wdth,lenth:real):boolean;
var FDevice, FDriver, FPort:array [0..255] of char;
DeviceMode,HPrt:THandle;
DevMode:PDeviceMode;
begin
result:=true;
Printer.GetPrinter(FDevice, FDriver, FPort, DeviceMode);
if DeviceMode<=0 then
begin
result:=false;
exit;
end;

DevMode := GlobalLock(DeviceMode);
OpenPrinter(FDevice, HPrt, nil);
begin
DevMode^.dmFields := DevMode^.dmFields or dm_paperlength;
DevMode^.dmPaperLength :=trunc(lenth*10);
DevMode^.dmFields := DevMode^.dmFields or dm_paperwidth;
DevMode^.dmPaperWidth :=trunc(wdth*10);
DevMode^.dmFields := DevMode^.dmFields or dm_papersize;
DevMode^.dmPaperSize := DMPAPER_USER;
end;
SetPrinter(HPrt,0,DevMode,PRINTER_CONTROL_SET_STATUS);
do
cumentProperties(DeviceMode,HPrt,FDevice,DevMode^,DevMode^,DM_IN_BUFFER or DM_UPDATE);
GlobalUnlock(DeviceMode);
ClosePrinter(HPrt);
end;
 
fastreport好。
 
fastreport真的好。
 
请问DZHZH2000如何知道有没有正确设置了打印纸张的高度与宽度呢?
 
to hxbboy:
不管他有没有正确设置了打印纸张的高度与宽度。每次打印前调用设置函数,保证不会
错。
 
打印机设置里有一项,“不可打印区域”,将顶底空设为0
 
请问fastreport 2.41汉化版!在那里有下栽的。
 
后退
顶部