用delphi的Tprinter作打印时,如何控制纸的高度和宽度呢?(50分)

  • 主题发起人 主题发起人 nilong
  • 开始时间 开始时间
N

nilong

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:小弟用delphi的Tprinter作打印时,如何控制纸的高度和宽度呢?
 
我也想知道!
 
用TDeviceMode这个API函数 ,不过好像在windows98下可以设置自定义纸长,2k不行
我用的打印机是松下 kx_1121
 
不好意思问题解决了!
 
我的是delphi6 qickreport打印机是star-ar3200+横向打印超过A4幅面的内容,纸张大小已设为自定义,可超过A4的部分就是打不出来,请教高手解答一下,谢谢
 
给你个程序吧
设定纸张大小
Procedure PrintPapersize(Width,Length:integer);
var
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;
begin
Printer.GetPrinter(Device,Driver,Port,hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
pDMode^.dmPaperSize := 256;
pDMode^.dmPaperLength :=Length ;
pDMode^.dmPaperWidth := Width;
pDMode^.dmFields :=pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmFields :=pDMode^.dmFields or DM_PAPERLENGTH;
pDMode^.dmFields :=pDMode^.dmFields or DM_PAPERWIDTH;
ResetDC(Printer.Handle,pDMode^);

GlobalUnlock(hDMode);
end;
end;

end;
 
多人接受答案了。
 
后退
顶部