求救(200分)

  • 主题发起人 good_xue
  • 开始时间
G

good_xue

Unregistered / Unconfirmed
GUEST, unregistred user!
请教在EPSON LQ-1600k打印机中如何在程序中实现控制自定义纸张的长度。
 
查它的手册直接发控制码就可以了
var
f: file;
begin
assignfile(f, "LPT1");
reset(f);
write(f, 控制码);
....
end;
 
// 在执行打印前调用以下函数:
// x,y:纸张尺寸,单位是0.1mm
procedure SetPaperSize(X, Y: Integer);
var
Device: array[0..255] of char;
Driver: array[0..255] of char;
Port: array[0..255] of char;
hDMode: THandle;
PDMode: PDEVMODE;
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
if (x = 0) or (y = 0) then
begin
{设置合法的纸张大小}
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
// 合法的纸张大小标示
end
else
begin
{设置用户自定义纸张}
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE or DM_PAPERWIDTH or DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
// 设置为用户自定义纸张标示
pDMode^.dmPaperWidth := x;
// 纸张宽度
pDMode^.dmPaperLength := y;
// 纸张长度
end;
{设定纸张来源}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_MANUAL;
GlobalUnlock(hDMode);
end;
end;
end;
 
菜鸟问题
怎样调用此函数?
 

Similar threads

回复
0
查看
855
不得闲
D
回复
0
查看
749
DelphiTeacher的专栏
D
D
回复
0
查看
822
DelphiTeacher的专栏
D
D
回复
0
查看
629
DelphiTeacher的专栏
D
顶部