K
kongkong
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure SetprintPaper(PageWidth, PaperHeight: 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);
// 获取打印机DevMode 结构的句柄值,存放在hDMode 中
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
// 获取指向打印机DevMode 结构的// 指针
if pDMode <> nil then
begin
pDMode^.dmPaperSize := 256;
pDMode^.dmPaperLength := PaperHeight;
pDMode^.dmPaperWidth := PageWidth;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERLENGTH;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERWIDTH;
{ 以上三条语句是对相应的dmFields 成员进行置位。}
ResetDC(Printer.Handle, pDMode^);
// 设置打印机设备环境句柄的值
GlobalUnlock(hDMode);
end;
end;
end;
我用这个函数来设置发票纸张的大小,结果打印出来的实际高度和设置的不相符合。
比如:SetprintPaper(1790,930)结果打印出来的是17.9cm,8.95cm
设置SetprintPaper(1790,950)打印出来的是17.9cm,9.4cm狂郁闷啊!!!
我用的环境是2000 server 打印机爱普生LK1600kiii的。各位救命啊!!!!
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);
// 获取打印机DevMode 结构的句柄值,存放在hDMode 中
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
// 获取指向打印机DevMode 结构的// 指针
if pDMode <> nil then
begin
pDMode^.dmPaperSize := 256;
pDMode^.dmPaperLength := PaperHeight;
pDMode^.dmPaperWidth := PageWidth;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERLENGTH;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERWIDTH;
{ 以上三条语句是对相应的dmFields 成员进行置位。}
ResetDC(Printer.Handle, pDMode^);
// 设置打印机设备环境句柄的值
GlobalUnlock(hDMode);
end;
end;
end;
我用这个函数来设置发票纸张的大小,结果打印出来的实际高度和设置的不相符合。
比如:SetprintPaper(1790,930)结果打印出来的是17.9cm,8.95cm
设置SetprintPaper(1790,950)打印出来的是17.9cm,9.4cm狂郁闷啊!!!
我用的环境是2000 server 打印机爱普生LK1600kiii的。各位救命啊!!!!