Delphi-PRAXiS
Seite 2 von 4     12 34      

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)

Bjoerk 31. Jul 2013 13:34

AW: Schrift Größe
 
Die Unit printers "weiß", daß für gewöhnlich der Drucker eine andere Auflösung als der Bildschirm hat und rechnet die Schrifthöhe für dich um. Es reicht also, wenn du (nach Printer.BeginDoc) zum Beispiel Printer.Canvas.Font.Size := 12 schreibst.

Furtbichler 1. Aug 2013 07:38

AW: Schrift Größe
 
Man Leute:
Die Schriftgröße wird in Punkt (oder von mir aus auch in Millimetern) angegeben, das ist eine absolute Größe.

Das Ausgabegerät auf Pixelbasis hat eine bestimmte Anzahl von Pixeln pro Millimeter. Hier ist die Einheit allerdings DPI, also 'Dots per Inch'.

Gut gut. Ich habe also einen 12pt. Font. Auf einem Drucker mit 600dpi sind das dann...600*12/72=100 pixel (Höhe). Auf einem Bildschirm mit 96dpi wären das eben nur 96*12/72=16 pixel.

Bei Bildschirmen wird man sich nicht immer die Mühe machen, die korrekten DPI anzugeben, weswegen es eben vorkommt, das auf dem einen Bildschirm die Schrift größer erscheint (weil ein Pixel größer ist) als auf dem anderen.

Das Ganze hat nichts mit astraler Intelligenz einer Unit zu tun. Die weiß nämlich nichts, sondern ist dumm wie Brot und rechnet eben nur (Absolute Größen in Geräteeinheiten, ergo: pt/inch/cm in Pixel).

Um deine Zeilenumbrüche auf dem Papier genauso hinzubekommen, wie auf dem Bildschirm, musst Du deine Papierbreite (21cm abzüglich Rand) auf dem Bildschirm simulieren. Lassen wir 2cm Rand, dann hätten wir 21-2*2=17cm. Das sind 17/2.54 inches und bei z.B. 96dpi wäre das Papier dann 642 pixel breit.

Nebenbei:
Zitat:

Zitat von MeierZwoo (Beitrag 1222420)
1 Pica Point = 0,35147 mm = 1/72,27 Inches <commentend>

Ist so korrekt, hat aber nichts mit der Einheit 'pt' zu tun. Die ist als exakt 1/72 inch definiert.

MeierZwoo 1. Aug 2013 11:18

AW: Schrift Größe
 
Zitat:

Zitat von Furtbichler (Beitrag 1223143)
Nebenbei:
Zitat:

Zitat von MeierZwoo (Beitrag 1222420)
1 Pica Point = 0,35147 mm = 1/72,27 Inches <commentend>

Ist so korrekt, hat aber nichts mit der Einheit 'pt' zu tun. Die ist als exakt 1/72 inch definiert.

Es ging ja auch nur um diie Erklärung, woher 1/72 beim Übergang vom inch-System zu metrischen System herkommt. Die 1/72 haben die Xerox-Labs "damals" als sog. User-Unit festgelegt ... und seit dem ist sie für alle Endausgabegeräte maßgeblich.

Es nützt allerdings herzlich wenig, wenn der TE nichtmal sagen kann, was er eigentlich als Ergebnis haben will und wie er den Drucker anspricht.

p80286 1. Aug 2013 11:41

AW: Schrift Größe
 
Mann hier geister Know How durch die Beiträge, da könnte man Bibliotheken mit füllen.
@Finki was willst Du eigentlich?
a) Text, der in einem Memo angezeigt wird ausdrucken, egal wie die Bildschirmanzeige ist, das bedruckte Blatt soll "füllend" mit max.Zeilenlänge/breite gefüllt sein. Die Schriftgröße ist vorgegeben, aber unabhängig von der Bildschirmdarstellung.
b) Du möchtest WYSIWYG(ähnliches). Wird die Zeile auf demBildschirm umgebrochen, soll auch die Zeile im Ausdruck umgebrochen werden. (Was ist wenn Papierformat und Bildschirmformat nicht zueinander passen?)
c) nichts davon, Du ist mit der eierlegenden Wollmilchsau zufrieden.

Gruß
K-H

Finki 2. Aug 2013 10:26

AW: Schrift Größe
 
Zitat:

Zitat von p80286 (Beitrag 1223168)
Mann hier geister Know How durch die Beiträge, da könnte man Bibliotheken mit füllen.
@Finki was willst Du eigentlich?
a) Text, der in einem Memo angezeigt wird ausdrucken, egal wie die Bildschirmanzeige ist, das bedruckte Blatt soll "füllend" mit max.Zeilenlänge/breite gefüllt sein. Die Schriftgröße ist vorgegeben, aber unabhängig von der Bildschirmdarstellung.
b) Du möchtest WYSIWYG(ähnliches). Wird die Zeile auf demBildschirm umgebrochen, soll auch die Zeile im Ausdruck umgebrochen werden. (Was ist wenn Papierformat und Bildschirmformat nicht zueinander passen?)
c) nichts davon, Du ist mit der eierlegenden Wollmilchsau zufrieden.

Gruß
K-H

d) :D

nein ernsthaft ich möchte ein Programm (Text Editor) der Text wird in eine Memo geschrieben und dann kann man ihn ausdrucken...
so weit so gut

die Probleme sind:

1. Leerzeilen werden komischer weiße nicht gedruckt

2. Ich will die Option haben das man die Schriftgröße sowohl auf dem Bildschirm (also in der Memo) als auch auf dem gedruckten Papier zu ändern (logischer weise in Abhängigkeit, also ich ändere sie in meiner Memo und dann wird es auch in der richtigen Größe ausgedruckt)

3. Wenn eine Zeile zulang ist soll sie beim Ausdrucken automatisch umbrechen

ja ich glaub das wäre es dann :D uff

es würde mir, vorerst, aber auch ein (sehr gut) kommentierter Druckbefehl (an dem an erkennen kann was wo wie geändert wird) reichen

VIELEN VIELEN DANK:?

p80286 2. Aug 2013 10:56

AW: Schrift Größe
 
Zitat:

Zitat von Finki (Beitrag 1223266)

1. Leerzeilen werden komischer weiße nicht gedruckt

Ohne Deinen Sourcecode zu kennen kann man nur raten.

Zitat:

Zitat von Finki (Beitrag 1223266)
2. Ich will die Option haben das man die Schriftgröße sowohl auf dem Bildschirm (also in der Memo) als auch auf dem gedruckten Papier zu ändern (logischer weise in Abhängigkeit, also ich ändere sie in meiner Memo und dann wird es auch in der richtigen Größe ausgedruckt)

3. Wenn eine Zeile zulang ist soll sie beim Ausdrucken automatisch umbrechen

Und genau hier ist der Hund begraben.
a) nutzt Du Wordwrap in Deinem Memo?
Dann hast Du unter Umständen ungewollte Zeilenumbrüche, bzw. Umbrüche die garnicht existieren.
b) wie auch immer Du die Fontgröße änderst, die Bildschirmdarstellung und die Darstellung auf dem Drucker sind maximal ähnlich, aber nie gleich. In der Praxis bedeutet das, daß Zeilenumbrüche nie gleich aussehen.
c) "leere Zeilen" und "Leerzeilen" sind nicht das gleiche! Leere zeilen können z.b. durch ein Blank am Satzende verursacht werden, das durch den Umbruch in die nächste Zeile gerutscht ist.

Wenn Du zu lange Zeilen im Ausdruck umbrechen willst, solltest Du mal nach Textrec und Textwidth,Cliprect schauen.

Gruß
K-H

Finki 2. Aug 2013 11:25

AW: Schrift Größe
 
Code lade ich heute abend hoch.

Was zur Hölle ist Wordwarp?????

Leerzeilen == zb das hier

text text

text text

Medium 2. Aug 2013 11:32

AW: Schrift Größe
 
Für einen Texteditor bei dem Druckbild und Bildschirmanzeige übereinstimmen sollen halte ich ein Memo für denkbar ungeeignet. Man sollte eher daher gehen, und den Text komplett selber auf einen Canvas zeichnen. Damit hätte man die Freiheit dies sowohl auf einen Bitmap-Canvas als auch den Drucker-Canvas genau gleich zu malen, und schafft sich zugleich die Freiheit beliebig zoomen zu können, sowie eine Basis für andere Elemente als nur Text. (Spinnt man das zu ende würde man grob bei Word heraus kommen.)

Finki 2. Aug 2013 11:53

AW: Schrift Größe
 
Zitat:

Zitat von Medium (Beitrag 1223277)
Für einen Texteditor bei dem Druckbild und Bildschirmanzeige übereinstimmen sollen halte ich ein Memo für denkbar ungeeignet. Man sollte eher daher gehen, und den Text komplett selber auf einen Canvas zeichnen. Damit hätte man die Freiheit dies sowohl auf einen Bitmap-Canvas als auch den Drucker-Canvas genau gleich zu malen, und schafft sich zugleich die Freiheit beliebig zoomen zu können, sowie eine Basis für andere Elemente als nur Text. (Spinnt man das zu ende würde man grob bei Word heraus kommen.)

des wäre zu zeit aufwendig ich hab mir eher was richtung microsoft texteditor vorgestellt

Bjoerk 2. Aug 2013 12:26

AW: Schrift Größe
 
dann würd' ich vielleicht einfach was von TStringlist ableiteten, so daß man nachher einfach schreiben kann:

Delphi-Quellcode:
var
  StringListPrintExt: TStringListPrintExt;
begin
  StringListPrintExt := TStringListPrintExt.Create;
  try
    StringListPrintExt.Assign(Memo1.Lines);
    StringListPrintExt.Font.Assign(Memo1.Font);
    StringListPrintExt.Print;
  finally
    StringListPrintExt.Free;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.
Seite 2 von 4     12 34      

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