Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Schrift Größe (https://www.delphipraxis.net/175845-schrift-groesse.html)

Finki 23. Jul 2013 15:37

Schrift Größe
 
Hey alle zusammen,

Ich hab da ein Problem. nach dem das mit dem Drucken jetzt funktioniert (alles außer Leerzeilen) hab ich ein problem mit Schriftgröße (zb Standard Word 11/12) und der Schriftgröße bei Lazarus. kann mir da jemand helfen wenn möglich einen umrechnuingsfaktor der auch die dpi des Druckers mit ein bezieht :D vielen dank schon mal.

liebe Grüße Finki

MeierZwoo 23. Jul 2013 15:59

AW: Schrift Größe
 
Wenn Du Schrifthöhe in Punkt [pt] in Drucker-Pixel [px] meinst:

Delphi-Quellcode:
mit
SchriftSize:double; // Schrifthöhe in Punkt

Printer.Canvas.Font.Height := -round(SchriftSize*Printer.Canvas.Font.PixelsPerInch/72); // [pt] -> [px]

Finki 23. Jul 2013 16:11

AW: Schrift Größe
 
Zitat:

Zitat von MeierZwoo (Beitrag 1222400)
Delphi-Quellcode:
Printer.Canvas.Font.Height := -round(SchriftSize*Printer.Canvas.Font.PixelsPerInch/72); // [pt] -> [px]

warum durch 72

MeierZwoo 23. Jul 2013 16:23

AW: Schrift Größe
 
weil das das aus dem Verhältnis cm/inch ergibt. Punkt ist nunmal metrisch, dpi wie das i darin schon sagt. per inch.

MeierZwoo 23. Jul 2013 17:59

AW: Schrift Größe
 
Beim Drucker kannst Du auch beides für die Schriftgröße verwenden, Punkt oder Pixel. Das würde ich abhängig machen von der verwendeten Schrift, ob es eine auf Punkt skalierbare Schrift ist oder eine nicht skalierbare Pixelschrift. (Beim Bildschirm dagegen würde ich immer Pixel vorgeben.)

Zitat:

Verwenden Sie die Eigenschaft Height, wenn die Schriftgröße in Pixel angegeben werden muss.
Verwenden Sie die Eigenschaft Size, wenn die Schriftgröße in Punkt angegeben werden muss.
Zitat:

<TFont.Height Eigenschaft>
property Height: Integer; [Pixel]
Mit folgender Formel kann der Wert der Eigenschaft Height aus der Punktgröße ermittelt werden:
Delphi-Quellcode:
Font.Height := -Font.Size * Font.PixelsPerInch / 72;

Zitat:

<TFont.Size Eigenschaft>
property Size: Integer; [Punkt]
Mit folgender Formel kann der Wert der Eigenschaft Size aus der Höhe in Pixel ermittelt werden:
Delphi-Quellcode:
Font.Size := -Font.Height * 72 / Font.PixelsPerInch;


Anmerkung zu meinem ersten Quellcode: Ich verwende einen Gleitkommawert für die Schriftgröße in Punkt, damit auch Zwischengrößen möglich sind. Bei Vorgaben in Pixeln sind logo Ganzzahlen (vorzeichenbehaftet) sinnvoll.

Namenloser 23. Jul 2013 19:45

AW: Schrift Größe
 
Zitat:

Zitat von MeierZwoo (Beitrag 1222404)
weil das das aus dem Verhältnis cm/inch ergibt. Punkt ist nunmal metrisch, dpi wie das i darin schon sagt. per inch.

Das Verhältnis cm/inch ist nicht 1/72, sondern 1/2.54.

Die 72 kommt daher, dass Schriftgrößen in der Einheit „Punkt“ angegeben werden, und ein „Punkt“ definiert ist als 1/72 inch.

Also bekommst du, wenn du die in Punkt angegebene Schriftgröße durch 72 dividierst, die Schriftgröße in inch. Wenn du diese Zahl dann mit PixelsPerInch multiplizierst, erhältst du folglich die Größe in Pixeln.

MeierZwoo 23. Jul 2013 20:01

AW: Schrift Größe
 
1 Pica Point = 0,35147 mm = 1/72,27 Inches <commentend>

Finki 26. Jul 2013 14:58

AW: Schrift Größe
 
und wenn ich meine Memo componente so breit machen will wie eine Din A 4 seite dann muss sie also 1 durch 0,35147 = 2,84519 und des dann mal meine breite von 210 ist dann die breite der memo componente stimmt das

MeierZwoo 26. Jul 2013 15:20

AW: Schrift Größe
 
Zitat:

Zitat von Finki (Beitrag 1222783)
.. also 1 durch 0,35147 = 2,84519

Wo bekommst Du denn diese Werte her? Meine Angabe zu Pica-Punkt beog sich doch auf Deine Frage, wo die 72 herkommen.

Wenn Du einen Text auf eine bestimmte Breite drucken willst, also nicht die Höhe oder Zeichen per Einheit vorgibt, sondern die Breite des Ausdrucks und zwar nur exakt für diesen einen Text, dann kannst Du doch einfach per Einpassen die Schrift setzen.

Alternativ eben auch für alle Textzeilen testen, welche die Längste ist, und mit den Einpaßwerten diese längsten Zeile (längste im Ausdruck in Breite in einer Längenmaßeinheit, nicht in Anzahl der Buchstaben) die anderen Zeilen auch drucken.

Finki 31. Jul 2013 11:32

AW: Schrift Größe
 
Hä (sry das ich nochmal darauf zurück komme, aber ich hatte grad viel um die Ohren)

also ich hab meinen Text in der Memo (Schriftgröße 12) und den möchte ich ausdrucken,

Wie kann ich bei veränderbarer Schriftgröße die richtige Schrifthöhe an meinen drucker senden,

Wie bekomme ich die Zeilenumbrüche an den Drucker gesendet,

Wie setze bzw bekomme ich die "breite" einer Textzeile???

ich entschuldige mich falls ich meine fragen wiederhole aber iwie finde ich des voll komisch
warum kann ich dem drucker nicht einfach sagen drucke das aus wenn die zeile länger is als das blatt
füge eine zeile drunter ein???:?:

vielen dank für eure Gedult mit mir :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
Seite 1 von 4  1 23     Letzte »    

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