Breite jedes Zeichens eines Fonts ermitteln

Hallo,

ich möchte gerne berechnen, wie breit Texte mit einer bestimmten Schrift werden, um dann ermitteln zu können, ob diese Texte dann in ein definiertes Rechteck passen.

Eine optische Sichtung ist keine Lösung, da ich dies für über mehrere tausend von Textzeilen prüfen möchte. Die Texte aus der Datenbank in ein Programm zu laden, wäre ein zu umständlicher Vorgang. Deshalb möchte ich das über Datenbank-Abfragen berechnen und analysieren.

Dazu muss ich ja dann wissen, wie Breit jedes einzelne Zeichen in dem Font ist und kann dann jedes dieser Zeichen meines Textes mit dem Faktor multiplizieren. Es ist mir klar, dass die Breite sich bei Fettschrift usw. ändert, aber innerhalb meiner Texte kommen keine Styleänderungen vor - nur Plaintext.

Ich würde dann 1-malig die Zeichenbreite für den gewünschten Font mit Font-Höhe und -Style ermitteln lassen und dann die Zeichenbreiten in einen Datenbank importieren.

Kann mir jemand ein Programm (oder .vba, .js, .ps, …) nennen, wo ich das herausbekomme?

Sutti

Hallo Sutti,

die Zeichen einer Schrift haben (zusammen mit dem Abstand zum nächsten Zeichen) keine einheitliche Breite (Stichwort Kerning).

Einfacher wird es, wenn Du eine Schrift mit festen Weiten verwendest. Zum Beispiel eine von diesen hier:

http://www.dafont.com/theme.php?cat=503

Generell hat Deine Problembehandlung aber nicht das geringste mit Typografie zu tun. So würde ich nur vorgehen, wenn ich mir sicher wäre, dass niemand den Text je lesen muß.

Freundliche Grüße und ein erfolgreiches neues Jahr

Hans-Jürgen Schneider

Hallo,

die Buchstabenbreite (Dickte) ist nur die halbe Miete; darüber hinaus spielen Laufweite und Unterschneidung (Kerning) eine Rolle.

http://de.wikipedia.org/wiki/Dickte
http://de.wikipedia.org/wiki/Unterschneidung_(Typogr…
http://de.wikipedia.org/wiki/Laufweite

in ein Programm

Verschiedene Programme gehen mit dem Kerning unterschiedlich um; während Word das Kerning weitgehend ignoriert, kennt Indesign zwei verschiedene Einstellungsmöglichkeiten (optisch und metrisch). Metrisch ist oft etwas enger.

Gerade wenn es sich um größere Textmengen handelt, funktioniert aber eine durchschnittliche Berechnung ganz gut: Wenn von einem allgemeinen Mustertext in der gleichen Schrftgröße und Zeilenabstand 5000 oder 10 000 Zeichen in das vordefinierte Rechteck passen, dann kann man davon ausgehen, daß dort immer 5000 oder 10 000 Zeichen Platz haben, plusminus einer bestimmten Toleranz, die man aber in der Regel bei großen Textmengen durch Vergrößern oder Verringern der Wortzwischenräume ausgleichen kann. Auf die Weise arbeiten auch professionelle Redaktionen. Das ganze hängt aber davon ab, wie groß das vordefinierte Rechteck ist.

Gruß,
Max

Dazu muss ich ja dann wissen, wie Breit jedes einzelne Zeichen
in dem Font ist und kann dann jedes dieser Zeichen meines
Textes mit dem Faktor multiplizieren. Es ist mir klar, dass
die Breite sich bei Fettschrift usw. ändert, aber innerhalb
meiner Texte kommen keine Styleänderungen vor - nur Plaintext.

Ich würde dann 1-malig die Zeichenbreite für den gewünschten
Font mit Font-Höhe und -Style ermitteln lassen und dann die
Zeichenbreiten in einen Datenbank importieren.

Kann mir jemand ein Programm (oder .vba, .js, .ps, …)
nennen, wo ich das herausbekomme?

Sutti

(…) wie breit Texte mit einer
bestimmten Schrift werden, um dann ermitteln zu können, ob
diese Texte dann in ein definiertes Rechteck passen.
(…) über
mehrere tausend von Textzeilen

Hallo,

die Antwort von Denker zeigt wahrscheinlich schon den besten Ansatz, also einen langen Text (in der gewünschten Sprache) analysieren und den ermittelten Wert auf andere Texte anwenden.

Mich interessiert noch folgendes:
Welches Ausgabemedium soll denn diese tausende Textzeilen in einem einzelnen vorgegebenen Rechteck anzeigen? (sofern ich das richtig verstanden habe?) Da fehlt mir die Vorstellungskraft.

Gruß
A

Das Thema Kerning wurde ja schon erwähnt. Wenn überhaupt lässt sich das nur mit Monospace-Schriften, die alle die gleiche Zeichenbreite haben realisieren (Courier ist z.B. so eine).