Halihallo
So, bin leider noch immer nicht wirklich weiter und langsam werde ich sauer :-)
Leider konnte ich auf die vertical-Headertabelle nicht bei jedem Font zugreifen, also
bin ich auf den Header der TTF zurückgegangen. Dort gibt es zwei Attribute, yMin und yMax
deren Sinn ich eigentlich nur erraten kann (Doku nicht wirklich hilfreich). Bei
Arial haben sie z.B. folgende Werte:
xMax: 4154
xMin: -1361
yMax: 2060
yMin: -665
unitsPerEm: 2048 (na, dann können wir das mal in Em umrechnen, s. ff...)
Calculated to em:
xMax: 2.0283203125
xMin: -0.66455078125
yMax: 1.005859375
yMin: -0.32470703125
calculated Font-information:
Size: 400 px (given)
yMax: 402.34375 px (naja, die BottomLine des Fonts + 402.3 px = TopLine?)
yMin: -129.8828125 px (Hm. BottomLine des Fonts = BaseLine - 129.882px ?)
(wird ausgegeben, beim starten meines Test-Programms, s. unten)
also yMin = -0.3247... tja, das stimmt schon mal etwa mit Christians 1/5 überein.
dann yMax = 1.0058... Hä? - Ein Buchstabe grösser als das totale selber? - Kann mir
das jemand erklären, was das soll?
Egal, kurz ein PDF-generierer geschrieben und mit den Werten rumgespielt, Resultat:
Disaster. Zumindest bei Arial ist das "H" grösser als die berechnete Top-linie des
Fonts... Schaut es euch selber an:
Arial: http://www.emedias.ch/fonttest/arial.pdf
TTF: http://www.emedias.ch/fonttest/arial.ttf
Times: http://www.emedias.ch/fonttest/times.pdf
TTF: http://www.emedias.ch/fonttest/times.ttf
Das Script liegt unter http://www.emedias.ch/fonttest/font.txt
Folgende "Formeln" habe ich verwendet:
Y-Achse der Top-Linie:
TopLineY = BaseLineY - (yMax+yMin) * FontSize
= something - (1.0058-0.3247) * 400 (in den PDF's)
Y-Achse der Bottom-Linie:
BotLineY = BaseLineY - (yMin) * FontSize
= something - 0.3247 * 400 (also etwa BaseLine-130px)
Y-Achse der Base-Line:
Äm, da wird der Font ausgerichtet, kann man also selber ganz einfach festlegen...
---
Liebe Leute, ich hab den Überblick verlohren... Ich weiss weder was ich will (OK, dass
ich eine richtige, saubere Darstellung kriege), noch wie ich es erreiche...
Fakt ist, dass entweder meine Berechnungen falsch sind, die yMin/yMax nicht dem
entsprechen, was ich glaube dass sie sind, oder dass meine TTF-Fonts korrupt sind...
Nun, vielleicht hat jemand von euch eine Idee?
Allgemeine Zielsetzung ist übrigens schlicht: Die Y-Position der TopLine und der Bottom-
Line des Fonts zu berechnen (BaseLine gegeben).
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.