Font einbinden
Natalie van Breem
- php
Liebes Forumteam, liebe Forumleser,
nachdem ich mich auf der Suche nach einer Lösung für mein Problem stundenlang erfolglos durch div. Foren etc. gequält habe, ohne eine Lösung zu finden, hoffe ich auf Euch.
Vorab: Ich programmiere nur ab und zu - Ihr könnt bei der Beschreibung der Lösung sozusag. nur Anfängerkenntnisse voraussetzen.
Das Problem:
Ich möchte in mein php-Script einen Font einbinden (z.B. arial.ttf - habe ich zumindest auf den Server geladen).
Ursprünglich wollte ich das über das Anlegen einer Envirement-Variablen machen mit folgendem Ergebnis:
Warning: putenv() [function.putenv]: Safe Mode warning: Cannot set environment variable 'GDFONTPATH' - it's not in the allowed...
Gut. Oder auch nicht. Jedenfalls habe ich daraufhin verschiedenste Varianten ausprobiert - immer ohne Erfolg. Mein letzter Versuch z.B.:
$font = imageloadfont('arial.ttf') brachte auch nur folgende Fehlermeldung: "Warning: imageloadfont() [function.imageloadfont]: Error reading font in /home/www/XXXX/html/Unterverzeichnis/XXXXXX.php on line 54" - übrigens auch bei vollständiger (absoluter) Pfadangabe.
Ich hoffe, Euch mein Problem klar genug dargestellt zu haben.
Und: Ich hoffe auf Euch.
Viele Grüße
Natalie
Hallo.
Ich würde sagen du lässt das mit dem Font. Keine gute Idee ausserdem ist Arial doch auf fast jedem Rechner vorhanden.
mfg
Phil Z.
Ehrlich gesagt - unter Problemlösung stelle ich mir anders vor ;-)
LG Tali
Hallo,
Ihr gehts wohl eher darum,allgemein beliebige Schriftarten einzufügen,Arial.ttf war nur ein Bsp. .
gruß aus Hosena
hi,
Mein letzter Versuch z.B.:
$font = imageloadfont('arial.ttf') brachte auch nur folgende Fehlermeldung: "Warning: imageloadfont() [function.imageloadfont]: Error reading font in [...]
imageloadfont lädt Bitmap-Fonts.
TTF sind keine Bitmap-Fonts.
Du möchtest imagettftext verwenden.
gruß,
wahsaga
hi,
Mein letzter Versuch z.B.:
$font = imageloadfont('arial.ttf') brachte auch nur folgende Fehlermeldung: "Warning: imageloadfont() [function.imageloadfont]: Error reading font in [...]imageloadfont lädt Bitmap-Fonts.
TTF sind keine Bitmap-Fonts.
ok. Danke. Habs verstanden.
Du möchtest imagettftext verwenden.
"Möchte?" - Na, wenn's nur so geht - muss wohl.
Gesagt -getan:
---
ImageTTFText($im, $text_size, 0, $text_x, $text_y,
$text_color, $font, $text);
... mit Angabe des absoluten Pfades zur Datei z.B. arial.ttf
---
führt zwar zu keiner Fehlermeldg. (das erzeugte Bild [Statistik-Balken] erscheint korrekt) - alles aber ohne Text.
LG
Tali
Ergänzung (habs gerade erst bemerkt):
... mit Angabe des absoluten Pfades zur Datei z.B. arial.ttf
--> die Angabe erfolgte so: $font = '/home/.../.../arial.ttf';
LG
Tali
hi,
ImageTTFText($im, $text_size, 0, $text_x, $text_y,
$text_color, $font, $text);führt zwar zu keiner Fehlermeldg. (das erzeugte Bild [Statistik-Balken] erscheint korrekt) - alles aber ohne Text.
Dann überprüfe die übrigen Parameter auf Plausibilität.
gruß,
wahsaga
hi,
ImageTTFText($im, $text_size, 0, $text_x, $text_y,
$text_color, $font, $text);führt zwar zu keiner Fehlermeldg. (das erzeugte Bild [Statistik-Balken] erscheint korrekt) - alles aber ohne Text.
Dann überprüfe die übrigen Parameter auf Plausibilität.
da dürfte es null Problemo geben - habe zuvor alles auf dem lokalen Rechner getestet (halt mit anderer Technik:
putenv('GDFONTPATH=c:\WINDOWS\Fonts');
--> Da klappte alles wunderbar.
Da dies auf dem Hostserver so nicht möglich ist, hatte ich es eben -wie zuvor beschrieben - ausprobiert.
Also, wie gesagt. Der Rest müsste plausibel sein.
Keine Ahnung, woran es noch liegen könnte.
LG Tali
hi,
putenv('GDFONTPATH=c:\WINDOWS\Fonts');
--> Da klappte alles wunderbar.
Da dies auf dem Hostserver so nicht möglich ist, hatte ich es eben -wie zuvor beschrieben - ausprobiert.
Probier mal, den Parameter für die Font-Datei mit realpath() anzugeben.
gruß,
wahsaga
hi,
putenv('GDFONTPATH=c:\WINDOWS\Fonts');
--> Da klappte alles wunderbar.
Da dies auf dem Hostserver so nicht möglich ist, hatte ich es eben -wie zuvor beschrieben - ausprobiert.Probier mal, den Parameter für die Font-Datei mit realpath() anzugeben.
Hab ich so mal probiert:
$font = realpath('/home/www/XXX/html/XXXX/arial.ttf');
mal so:
$font = realpath('/home/www/XXX/html/XXXX/arial');
mal so:
$font = realpath('arial.ttf');
etc.
--> jeweils keine Fehlermeldg., aber auch kein Text :-(.
Hallo Natalie,
--> jeweils keine Fehlermeldung., aber auch kein Text :-(.
Versuch doch mal bitte heraus zu finden, ob die PHP In-
stallation auf dem Server ueberhaupt ttf verarbeiten kann.
Unter Zuhilfenahme von phpinfo()
, such bitte
mal nach: --with-ttf-dir=/usr/lib \
.
Wenn es vorhanden ist, dann wurde PHP mit der Fasehigkeit
kompiliert, TrueType Schriften lesen zu koennen.
Wenn nicht, bleibt es so wie es ist :-(
gruesse aus'm ruhrpott
jens mueller
Hallo Natalie,
--> jeweils keine Fehlermeldung., aber auch kein Text :-(.
Versuch doch mal bitte heraus zu finden, ob die PHP In-
stallation auf dem Server ueberhaupt ttf verarbeiten kann.
Unter Zuhilfenahme vonphpinfo()
, such bitte
mal nach:--with-ttf-dir=/usr/lib \
.
Hallo Jens,
exakt in dieser Reihenfolge habe ich keinen Eintrag gefunden. Aber u.a.
...... --enable-gd-imgstrttf' '--with-tiff-dir=/usr' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-zlib=yes' '--with-bz2' '--with-gmp' '--with-xml' '--with-dom' '--with-ttf' '--with-t1lib' '--with-mcal=/usr' ......
Wenn es vorhanden ist, dann wurde PHP mit der Fasehigkeit
kompiliert, TrueType Schriften lesen zu koennen.
Dürfte also eigentlich kein Problem sein, TrueType zu lesen.
Wenn nicht, bleibt es so wie es ist :-(
Na, will ich nicht hoffen - irgendwie muss das Ding doch zu knacken sein.
LG an alle da draussen - auch in den Ruhrpott ;-)
Guten Abend Natalie,
mal nach:
--with-ttf-dir=/usr/lib \
.
'--with-ttf
'
Ist vorhanden. Das sagt dir=/usr/lib
PHP nur, wo es
zuerst nach Schriften suchen soll.
Das bedeutet aber nicht, dass nur dieses Verzeichnis ver-
wendet werden kann.
Na, will ich nicht hoffen - irgendwie muss das Ding doch
zu knacken sein.
Genau.
Es gibt eine Reihe von moeglichen Fehlerquellen, versuchen
wir mal diese der Reihe nach auszuschliessen.
Vorschlag 1) setzt bitte einmal die Fehlerberichterstattung,
im Script auf alles wat geht. error_reporting(E_ALL);
Ich habe so den Verdacht, dass es noch eine Fehlermeldung
gibt, diese aber durch die Konfiguration unterbunden wird.
Wenn dir eine Meldung ueber den Weg laeuft, bitte hier ins
Forum schreiben.
Vorschlag 2) ueberpruefe bitte einmal, ob du die Schrift-
datei, als Binaer auf den Server uebertragen hast.
LG an alle da draussen - auch in den Ruhrpott ;-)
Sooo schlimm sind wir im Pott auch nich. Wir haben den
Ruf, dass wir aller herzliche Menschen sind. :-)
gruesse aus'm ruhrpott
jens mueller
Hallo Jens,
so negativ war das eigentlich nicht gemeint - das mit dem Ruhrpott;-).
Ok. Sorry, dass ich erst jetzt antworte und vielen Dank für Deine Unterstützung.
Vorschlag 1 werde ich demnächst mal probieren.
Vorschlag 2 ist erl.--> war binär übertragen worden.
Mangels schneller Lösung hab ich es nun erst mal ohne TrueType
Font (mit imagestring) erledigt - so klappte es zumindest.
Doch gleich stellte sich ein anderes Problem ein:
ich wollte das per PHP-generierte Bild in eine bestehende Html-Datei einbinden per <img src="auswerten.php" alt="Testergebnis" /> .
Tja, was soll ich sagen:
Das Bild wird generiert, aber offenbar werden jeweils nur die bestehenden Datenbankinhalte herausgelesen - neue Einträge werden nicht vorgenommen :-(.
Jetzt is aber gut....
LG Tali
Na, will ich nicht hoffen - irgendwie muss das Ding doch
zu knacken sein.Genau.
Es gibt eine Reihe von moeglichen Fehlerquellen, versuchen
wir mal diese der Reihe nach auszuschliessen.
Vorschlag 1) setzt bitte einmal die Fehlerberichterstattung,
im Script auf alles wat geht.error_reporting(E_ALL);
Ich habe so den Verdacht, dass es noch eine Fehlermeldung
gibt, diese aber durch die Konfiguration unterbunden wird.Wenn dir eine Meldung ueber den Weg laeuft, bitte hier ins
Forum schreiben.Vorschlag 2) ueberpruefe bitte einmal, ob du die Schrift-
datei, als Binaer auf den Server uebertragen hast.LG an alle da draussen - auch in den Ruhrpott ;-)
Sooo schlimm sind wir im Pott auch nich. Wir haben den
Ruf, dass wir aller herzliche Menschen sind. :-)gruesse aus'm ruhrpott
jens mueller