Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Drucker liefert unterschiedliche Fontgrößen (https://www.delphipraxis.net/164251-drucker-liefert-unterschiedliche-fontgroessen.html)

p80286 4. Nov 2011 14:30

AW: Drucker liefert unterschiedliche Fontgrößen
 
@Deddyh
hab ich mich so vertan? ich mein ich hätte eben soetwas gesehen.

Mist, ist Freitag:
Delphi-Quellcode:
procedure TPrinterCanvas.UpdateFont;
var
  FontSize: Integer;
begin
  if GetDeviceCaps(Printer.DC, LOGPIXELSY) <> Font.PixelsPerInch then
  begin
    FontSize := Font.Size;
    Font.PixelsPerInch := GetDeviceCaps(Printer.DC, LOGPIXELSY);
    Font.Size := FontSize;
  end;
end;

Gruß
K-H

marcibaer 8. Nov 2011 10:06

AW: Drucker liefert unterschiedliche Fontgrößen
 
Ich hab's jetzt folgendermassen gemacht:

Zu Beginn setze ich die folgenden Werte bzw. den folgenden Mode:
Delphi-Quellcode:
      GesamtHoehe := GetDeviceCaps(Handle, VERTSIZE)*10;
      Gesamtbreite := GetDeviceCaps(Handle, HORZSIZE)*10;
      SetMapMode(Handle, MM_TEXT);
Die Angaben, die ich den Druckroutinen übergebe, sind in 0.1mm angrgeben, umgerechnet werden sie dann in Pixel:
Delphi-Quellcode:
FUNCTION XPosition(const x:Integer):Integer;
BEGIN
  Result := Trunc(x * Printer.PageWidth / Gesamtbreite);
END;

FUNCTION YPosition(const y:Integer):Integer;
BEGIN
  Result := Trunc(y * Printer.PageHeight / Gesamthoehe);
END;

FUNCTION XWidth(const x:Integer):Integer;
BEGIN
  Result := Trunc(x / (Printer.PageWidth / Gesamtbreite));
END;

FUNCTION YHeight(const y:Integer):Integer;
BEGIN
  Result := Trunc(y / (Printer.PageHeight / Gesamthoehe));
END;
Scheint soweit zu funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz