Anmelden

View Full Version : AFP und Schriften...



Xanas
27-04-06, 08:19
Hallo, gibts eine Möglichkeit, zu ermitteln wie breit ein Text im Ausdruck wird.

Für die Schriftart Courier hab ich mir das mal selbst gebastet, funktioniert auch super, aber ist auch nicht so das wahre.

gibts da ein Api für oder so was?.


Gruß
Xanas

Fuerchau
27-04-06, 11:00
Nicht direkt.
Es gibt irgendwo ein API, wo ich eine gegebebe Fontresource abfragen kann und somit über die Laufweiten eines Zeichens Info's bekomme.
Da aber die tatsächlich verwendetet Schrift des Druckers durch COR und HPT eine ganz andere sein kann, gibts da keinen Verlass.

sim
27-04-06, 12:15
Hallo, gibts eine Möglichkeit, zu ermitteln wie breit ein Text im Ausdruck wird.

Für die Schriftart Courier hab ich mir das mal selbst gebastet, funktioniert auch super, aber ist auch nicht so das wahre.

gibts da ein Api für oder so was?.


Gruß
Xanas

Hallo Xanas,

die Laufweite eines bestimmten Textes abh. vom verwendeten Font zu ermitteln geht. Jedoch ist das mit seeeehr viel Programmiertechnischen Aufwand verbunden. Ein API dazu ist mir leider nicht bekannt.

Besonders knifflig wird wenn du in 1 Textzeile Abschnitte mit verschiedenen Fonts bzw Größen hast.

Wir haben dies mittlerweile gelöst. Google mal nach AFM + Font
AFM ist das Adobe Font Metric File. Hier ist für jedes Zeichen das in diesem Font dargestellt werden kann dessen Größe hinterlegt. In Kombination mit der Pointsize kriegt man dann die Größe raus.

Aber wie gesagt, sehr Aufwendig.

Fuerchau
27-04-06, 13:11
In der Windowsumgebung gibts in den GDI-Funktionen einfach die Funtion GetTextExtentPoint, die den aktuellen Font verwendet.
Auf der AS/400 muss ich das API QGYOLAFP bemühen um Informationen über den gewählten Font zu erhalten.
Dann kann ich an Hand der Metric-Einträge die Texthöhe und -länge ausrechnen.

Aber wie gesagt, wenn dann COR oder HPT zuschlägt, kann die ganze Berechnung für die Katz sein.

API:
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/apis/qgyolafp.htm?resultof=%22%61%70%69%22%20%22%66%6f% 6e%74%22%20%22%66%6f%6e%22%20