关于打印信封(25分)

  • 主题发起人 主题发起人 strang
  • 开始时间 开始时间
S

strang

Unregistered / Unconfirmed
GUEST, unregistred user!
我想通过数据库打印信封,请问应如何设置打印纸的大小,另外是否还要设置打印机设置中的打印纸大小?
 
用TPrintsetupdialog直接设置打印机中纸的大小即可.
 
打印有多种方式,不知道你用那种,在Qreport,有一项关于打印纸的设置,可用它设置
另:若你自己控制打印,可向如下方式控制打印纸大小:
Device :array [0..(cchDeviceName-1) ] of Char;
Driver :array [0..(MAX_PATH-1)] of char ;
Port : array[0..32] of char ;
hDMode :THandle;
pDMode :PDevMode;
Printer.PrinterIndex:=Printer.PrinterIndex;
Printer.GetPrinter(Device,Driver,Port,hDMode);
if hDMode<> 0 then

begin

pDMode:=GlobalLock(hDMode);
if pDMode <> nil then

begin

pDMode^.dmPaperSize:=256;
{
注:设置为'自定义纸大小'方式,在有本书中例子为
pDMode^.dmPaperSize:=0;
我用的环境为 win97,oki打印机
改为 :=256 后才正确,你具体看一下.
}
pDMode^.dmPaperLength:=1000;//纸长
pDMode^.dmPaperWidth:=1000;//纸宽
pDMode^.dmFields:=pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmFields:=pDMode^.dmFields or DM_PAPERLENGTH;
pDMode^.dmFields:=pDMode^.dmFields or DM_PAPERWIDTH;
GlobalUnlock(hDMode);
Printer.PrinterIndex:=Printer.PrinterIndex;
end;

end;

begin
doc
enddoc
把以上程序放到打印前.
回见!
 

Similar threads

回复
0
查看
861
不得闲
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
886
DelphiTeacher的专栏
D
后退
顶部