1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| procedure RefreshPrinter(FontName : string = 'Courier New');
var
Device : array[0..75] of char;
Driver : array[0..(MAX_PATH-1)] of char;
Port : array[0..32] of char;
hDMode : THandle;
PdMode : PDevMode;
OldOrient : TPrinterOrientation;
begin
OldOrient := Printer.Orientation;
Printer.GetPrinter(Device,Driver,Port,hDMode);
Printer.SetPrinter(Device,Driver,Port,0);
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device,Driver,Port,hDMode);
PdMode := GlobalLock(hDMode);
Printer.Canvas.Font.PixelsPerInch := pdMode^.dmPrintQuality;
GlobalUnlock(hDMode);
Printer.Orientation := OldOrient;
Printer.PrinterIndex := PRinter.PrinterIndex;
Printer.Canvas.Font.Style := [];
Printer.Canvas.Font.Size := 8;
Printer.Canvas.Font.Name := FontName;
end; |