var
aDevice,aDriver,aPort: array [0..255] of Char;
DevhWnd: THandle;
DevMode: PDevMode;
int1,intleft,inttop:Integer;
str1:string;
begin
try
Printer.Refresh;
Printer.GetPrinter(aDevice, aDriver, aPort, DevhWnd);
if DevhWnd = 0 then
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(aDevice, aDriver, aPort, DevhWnd);
end;
if DevhWnd = 0 then
begin
Result:=false;
exit;
end
else
begin
DevMode := GlobalLock(DevhWnd);
if DevMode <> nil then
begin
DevMode^.dmFields := DevMode^.dmFields or DM_PaperWidth or DM_PaperLength or DM_PaperSize;
case pgsize of
1: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 1400;
DevMode^.dmPaperWidth := 970;
end;
2: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 1430;
DevMode^.dmPaperWidth := 1910;
end;
3: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 2050;
DevMode^.dmPaperWidth := 1690;
end;
4: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 1436;
DevMode^.dmPaperWidth := 1910;
end;
else
DevMode^.dmPaperSize := DMPaper_A4;
DevMode^.dmPaperLength := 1000;
DevMode^.dmPaperWidth := 1000;
end;
ResetDC(Printer.Handle,DevMode^);
GlobalUnlock(DevhWnd);
end
else
begin
Result:=false;
exit;
end;
end;
except
Result:=false;
end;
end;
aDevice,aDriver,aPort: array [0..255] of Char;
DevhWnd: THandle;
DevMode: PDevMode;
int1,intleft,inttop:Integer;
str1:string;
begin
try
Printer.Refresh;
Printer.GetPrinter(aDevice, aDriver, aPort, DevhWnd);
if DevhWnd = 0 then
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(aDevice, aDriver, aPort, DevhWnd);
end;
if DevhWnd = 0 then
begin
Result:=false;
exit;
end
else
begin
DevMode := GlobalLock(DevhWnd);
if DevMode <> nil then
begin
DevMode^.dmFields := DevMode^.dmFields or DM_PaperWidth or DM_PaperLength or DM_PaperSize;
case pgsize of
1: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 1400;
DevMode^.dmPaperWidth := 970;
end;
2: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 1430;
DevMode^.dmPaperWidth := 1910;
end;
3: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 2050;
DevMode^.dmPaperWidth := 1690;
end;
4: begin
DevMode^.dmPaperSize := DMPaper_User;
DevMode^.dmPaperLength := 1436;
DevMode^.dmPaperWidth := 1910;
end;
else
DevMode^.dmPaperSize := DMPaper_A4;
DevMode^.dmPaperLength := 1000;
DevMode^.dmPaperWidth := 1000;
end;
ResetDC(Printer.Handle,DevMode^);
GlobalUnlock(DevhWnd);
end
else
begin
Result:=false;
exit;
end;
end;
except
Result:=false;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货