AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Printer.canvas Fontgrösse

Ein Thema von khh · begonnen am 25. Apr 2009 · letzter Beitrag vom 26. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#1

Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 17:19
hallo zusammen,
ich drucke direkt auf die Printer.canvas mit einer definierten fontgrösse und einem definierten font.
BS Vista
(Arial 8)

leider ist der Ausdruck (auf 2 verschiednen Druckern getestet) viel kleiner als wenn ich zb aus word oder open office mit dem gleichen font und der greichen Schriftgösse drucke.
Woran liegt das, bzw was mache ich falsch?

Danke gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 17:24
Das habe ich bisher auch nicht rausgefunden. Ich habe dann einfach die Schriftgröße so gewählt, dass sie passt. das geht natürlcih nicht, wenn der Anwender die Schriftgröße ändern können soll -- ist bei mir aber Gott sei dank nicht der Fall.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 17:26
Zitat von Luckie:
Das habe ich bisher auch nicht rausgefunden. Ich habe dann einfach die Schriftgröße so gewählt, dass sie passt. das geht natürlcih nicht, wenn der Anwender die Schriftgröße ändern können soll -- ist bei mir aber Gott sei dank nicht der Fall.
dann bin ich schon mal froh,dass das nicht meine Schuld ist.

In meinem fall muss der Anwender, zum Glück, die Schriftgrösse auch nicht ändern können.

Danke Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 17:43
Hallo,

Zeig doch mal den Code zum Setzen der Größe.
(sie Größe muss als -XX angegeben werden).

Am einfachsten macht es sich aber,
wenn man einen Reportgenerator benutzt (FreeReport z.B.)


Heiko
Heiko
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 17:59
ich habe einfach :
Printer.Canvas.Font.Size:= 22; gemacht.

Der Reportgenerator (Lazreport) scheidet aus, weil das druckende Programm den Report nicht druckt

Ursache scheint der Aufruf der exe per shellexecute zu sein.

beim Direktaufruf funktioniert der Druck per Report, ich kann aber nicht auf die Ausführung per shellexecute verzichten.


Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 18:23
Hallo,

versuch mal

Printer.Canvas.Font.Size:= -22;

oder

Printer.Canvas.Font.Height:= -22;


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 18:27
Nein, das bringt nichts. Das Minus berücksichtigt in der Schriftgröße nur die Unterlängen der Buchstaben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 20:17
Font.PixelsPerInch (dpi) ist falsch.

Bei meinem Drucker mit 300dpi steht der Wert auf 254. Setze ich den auf 300 dann ist die Schriftgröße identisch mit anderen Dokumenten.

Also nach Wahl des Druckers Font.PixelPerInch auf dpi des gewählten Druckers einstellen. Das Canvas scheint die Schriftgröße beim initialisieren zu skalieren, keine Ahnung wo das passiert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#9

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 20:25
hängt das nicht an der eingestellten Druckauflösung?

die Fontgröße stellt sich doch auf den Canvas ein und wenn beim Ausdruck die Pixel dann größer/kleiner sind, dann ändert sich damit auch die Schriftgröße (im Verhältnis zum Blatt ... im Verhältnis zu den Bildpunkten bleibt die aber soweit gleich)

entweder du paßt die Fontfgröße an die Druckauflösung an,
oder stellst die Druckauflösung auf ein einheitliches Maß ... such mal nach Hier im Forum suchenSetMapMode.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Printer.canvas Fontgrösse

  Alt 25. Apr 2009, 22:31
also ich habe jetzt mit
Delphi-Quellcode:

Printer.Canvas.Font.PixelsPerInch:= GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX);
die pixel eingestellt. Sind im konkreten Fall bei mir 600.
Jetzt passts!


ich danke euch


Gruss Kh
Karl-Heinz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz