procedure ChgPaperSize(PSize, PLen, PWid: 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:= PSize;
if PSize = 256 then
begin
pDMode^.dmPaperLength:= PLen;
pDMode^.dmPaperWidth:= PWid;
end;
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;