如何在程序中修改打印机的自定义纸张大小? LQ1600K打印机,连续纸,用QReport打印报表,各个报表的大小不一样,每次打印前要手工修改自定义纸张的大小,否则打出来换页位置不对。请问,如何在程序中修改打印机的自定义纸张大小? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var ADevice,ADriver,Aport : Array [0..255] of char; DeviceHandle: THandle; DevMode: PDeviceMode; ps: integer;// pagesize; po: integer;//Orientationbegin case combobox1.ItemIndex of 0: ps:= DMPAPER_A3; 1: ps:= DMPAPER_A4; 2: ps:= DMPAPER_B4; 3: ps:= DMPAPER_B5; end; if RadioButton2.Checked then po:= DMORIENT_PORTRAIT else po:= DMORIENT_LANDSCAPE; printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle); if DeviceHandle = 0 then begin Printer.PrinterIndex := Printer.PrinterIndex + 1; printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle); end; if DeviceHandle = 0 then begin application.MessageBox('没有发现打印机','错误',MB_OK+MB_ICONERROR); exit; end; DevMode:= GlobalLock(DeviceHandle); DevMode.dmFields:= DevMode.dmFields or DM_PAPERSIZE; DevMode.dmPaperSize := ps; DevMode.dmFields:= DevMode.dmFields or DM_ORIENTATION; DevMode.dmOrientation := po; GlobalUnLock(DeviceHandle); self.ModalResult := mrok;end; 谢了,我先试一下,然后给分。我还在 http://expert.csdn.net/Expert/topic/1998/1998083.xml?temp=.9230463 提了个相同的问题,没人回答,你去up一下,分一并给你。 如何让dll注入的线程,无窗口(不是隐藏窗口)在后台运行 怎么获取指定文件大小? DLL窗体变成非激活时自动关闭. 有关三层问题,请高手指教 用动态数组记录memo的值 关于FORM的背景图的问题??? Delphi7.0 delphi中能否实现:单击一个按钮时:自动运行一个登陆程序并根据已知的用户名和密码完成登陆? 请问我想控制一个外部程序的按钮,比如有一个游戏要我不停地点鼠标左键,我的鼠标左键不灵,我想用键盘上的回车键来代替鼠标左键,请问如 怪事!谁结了我的贴子? 各位大哥帮我看看这条SQL语句有没有错误,先谢谢你们了! 在触发器中能用EXEC来执行存储过程吗
ADevice,ADriver,Aport : Array [0..255] of char;
DeviceHandle: THandle;
DevMode: PDeviceMode;
ps: integer;// pagesize;
po: integer;//Orientation
begin case combobox1.ItemIndex of
0: ps:= DMPAPER_A3;
1: ps:= DMPAPER_A4;
2: ps:= DMPAPER_B4;
3: ps:= DMPAPER_B5;
end;
if RadioButton2.Checked then
po:= DMORIENT_PORTRAIT else
po:= DMORIENT_LANDSCAPE; printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle);
if DeviceHandle = 0 then
begin
Printer.PrinterIndex := Printer.PrinterIndex + 1;
printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle);
end;
if DeviceHandle = 0 then
begin
application.MessageBox('没有发现打印机','错误',MB_OK+MB_ICONERROR);
exit;
end;
DevMode:= GlobalLock(DeviceHandle);
DevMode.dmFields:= DevMode.dmFields or DM_PAPERSIZE;
DevMode.dmPaperSize := ps;
DevMode.dmFields:= DevMode.dmFields or DM_ORIENTATION;
DevMode.dmOrientation := po; GlobalUnLock(DeviceHandle);
self.ModalResult := mrok;
end;