GD2 + Euro-zeichen
SorgenkindMech
- php
moins ihr
ich hatte ursprünglich das problem, dass ich eine tabelle habe, welche nicht umgebrochen werden darf
beispiel:
Summe: 100 €
kann man sich ja vorstellen ;)
naja, jedenfalls sollen alle drei tabellenzeilen immer zusammen auf einem blatt stehen
da ich das nicht als pdf ausgeben will, sondern es html bleiben soll, suche ich nun nach einer möglichkeit, es zu verhindern
css wird ja in dem bereich noch nicht wirklich unterstützt, zumindest was das break-inside angeht
da habe ich mir gedacht, ok, machste n bild draus, per GD2
alles gut und schön, aber GD2 (oder welche komponente auch immer da noch mitspielt) kann kein €-zeichen darstellen?
zumindets kommt bei mir dann ein schönes eckiges kästchen ... mit kanten ;)
tja, google brachte mich nicht wirklich weiter und es SOLL times.ttf verwendet werden, sprich times new roman
sprich imagettftext() soll den text ausgeben....
weiß jemand dazu eine lösung?
umgebung:
getestet auf:
win2kpro PHP 5.1.2 + PHP 5.1.6
winxppro PHP 5.1.2
beide:
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.9
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
ich wollt ja gern GD 2.2.1 ausprobieren, aber dafür finde ich keine binary für PHP ;(
naja, jedenfalls hoffe ich, dass jemand eine lösung hat
grüße
der mech
n'abend,
alles gut und schön, aber GD2 (oder welche komponente auch immer da noch mitspielt) kann kein €-zeichen darstellen?
zumindets kommt bei mir dann ein schönes eckiges kästchen ... mit kanten ;)
imagettftext() kann auch UTF-8 Zeichen bekommen ;) (FreeType Support ist bei dir ja enabled)
Ob die anderen Schreiberlinge das auch können, weiss ich nicht. Aber den TrueTypeFont der Wahl benutzen zu können, dürfte sowieso netter sein.
weiterhin schönen abend...
weiterhin schönen abend...
hm, bei mir geschieht aber folgendes:
$netto=str_replace(".",",",$_GET['netto'])." Ω";
[...]
imagettftext ( $image, $groesse, 0, bcsub($groesse_w,$breite,0), $hoehe, $color, $schrift,$netto );
so, und da steht dann auf dem bild:
test Ω, sprich kein euro-zeichen sondern die zeichenfolge
bin da etas doof drin ... wie mach ich das, damit der das akzeptiert?
hi,
$netto=str_replace(".",",",$_GET['netto'])." Ω";
[...]
imagettftext ( $image, $groesse, 0, bcsub($groesse_w,$breite,0), $hoehe, $color, $schrift,$netto );so, und da steht dann auf dem bild:
test Ω, sprich kein euro-zeichen sondern die zeichenfolge
Natürlich - warum sollte sich eine Grafik-Lib um irgendeine HTML-Notation scheren?
gruß,
wahsaga
hi,
$netto=str_replace(".",",",$_GET['netto'])." Ω";
[...]
imagettftext ( $image, $groesse, 0, bcsub($groesse_w,$breite,0), $hoehe, $color, $schrift,$netto );so, und da steht dann auf dem bild:
test Ω, sprich kein euro-zeichen sondern die zeichenfolge
Natürlich - warum sollte sich eine Grafik-Lib um irgendeine HTML-Notation scheren?
gruß,
wahsaga
ja das habe ich mich auch gefragt, aber der vorschlag kam nicht von mir ;)
bzw. es kann auch sein, dass ich es falsch interoretiert habe und ich das irgentwie falsch verstanden habe
ABER: in der php-doku steht:
ImageTTFText ($im, 20, 0, 10, 20, $white, "/path/arial.ttf",
"Teste... Omega: Ω");
so, und nu?
hi,
ABER: in der php-doku steht:
ImageTTFText ($im, 20, 0, 10, 20, $white, "/path/arial.ttf",
"Teste... Omega: Ω");
Stimmt, in der englichen Version steht sogar:
"text
May include decimal numeric character references (of the form: €) to access characters in a font beyond position 127. The hexadecimal format (like ©) is supported as of PHP 5.2.0. Strings in UTF-8 encoding can be passed directly."
_Eigentlich_ hätte das also, zu meiner Überraschung, sogar "funzen" sollen.
Hast du denn man versucht, € im Script an der Stelle zu benutzen - und das Script als UTF-8 abzuspeichern?
gruß,
wahsaga
hi,
ABER: in der php-doku steht:
ImageTTFText ($im, 20, 0, 10, 20, $white, "/path/arial.ttf",
"Teste... Omega: Ω");Stimmt, in der englichen Version steht sogar:
"text
May include decimal numeric character references (of the form: €) to access characters in a font beyond position 127. The hexadecimal format (like ©) is supported as of PHP 5.2.0. Strings in UTF-8 encoding can be passed directly."_Eigentlich_ hätte das also, zu meiner Überraschung, sogar "funzen" sollen.
also, wenn ich das beispiel aus der doku nehme, dann funktioniert das sogar, aber bei mir funzt das nicht
habe gestetet, ob es vielleicht daran liegt, dass der zeichencode in einer variablen steht, aber selbst dann funktioniert das beispielscript
Hast du denn man versucht, € im Script an der Stelle zu benutzen - und das Script als UTF-8 abzuspeichern?
ich wüsste ehrlich gesagt nicht, wie ich ein script in utf8 abspeichern soll ....
gruß,
wahsaga
hier mal die wichtigen teile des quellcodes:
<?
$schrift="times.ttf";
// auszugebender text:
$netto=str_replace(".",",",$_GET['netto'])." €";
$groesse=14; // schriftgröße
// Textgrößen
$groesse_w=imagettfbbox ( $groesse, 0, $schrift, $brutto);
$groesse_w=$groesse_w[2]+5;
$groesse_h=imagettfbbox ( $groesse, 0, $schrift, $brutto);
$groesse_h=$groesse_h[1]-$groesse_h[7];
$groesse_h=($groesse_h+4)*3;
Header ("Content-type: image/gif");
$image=imagecreate($groesse_w, $groesse_h);
$colorWhite=imagecolorallocate($image, 255, 255, 255);
if(isset($_GET['color']))
{
$color=$_GET['text'];
$__rot=intval("0x".substr($color,0,2),16);
$__gru=intval("0x".substr($color,2,2),16);
$__bla=intval("0x".substr($color,4,2),16);
$color=imagecolorallocate($image, $__rot, $__gru, $__bla);
}
else
{
$color=imagecolorallocate($image, 0, 0, 0);
}
//netto-text
$breite=imagettfbbox ( $groesse, 0, $schrift, $netto);
$hoehe=$breite[1]-$breite[7];
$breite=$breite[2]+5;
imagettftext ( $image, $groesse, 0, bcsub($groesse_w,$breite,0), $hoehe, $color, $schrift,$netto );
if(isset($_GET['angle']))
{
$image=imagerotate ( $image, $_GET['angle'], 0);
}
ImageGif ($image);
imagedestroy($image);
?>
so, und bei dem quelltext (ja es ist nur testweise, der sieht nachhe rnoch schöner aus ;)) funktioniert das nicht
ich habe übrigens im beispiel aus der doku die schrift auch auf times.ttf gesetzt und es funktionierte dennoch
ich versteh nicht ganz, warum das nun in meinem script nicht funktionniert ;(
AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
*aufknieenniederfall*
Semikolon vergessen *inar***beiß*
BOAH! ich flipp aus und dafür nun 4 stunden *arg*
*gegendiewandrenn*
sorry ...
Hallo,
sorry ...
schon gut. Dennoch solltest Du Dich unbedingt mit dem Thema UTF-8 auseinandersetzen. Welchen Editor verwendest Du denn?
Freundliche Grüße
Vinzenz
Moin!
ich hatte ursprünglich das problem, dass ich eine tabelle habe, welche nicht umgebrochen werden darf
Bei was? Bildschirmdarstellung? Ausdruck?
beispiel:
Summe: 100 €
- 16% Mwst: 16 €
Summe inkl: 116 €kann man sich ja vorstellen ;)
Was darf da nicht umbrochen werden?
naja, jedenfalls sollen alle drei tabellenzeilen immer zusammen auf einem blatt stehen
Also Ausdruck?
da ich das nicht als pdf ausgeben will, sondern es html bleiben soll, suche ich nun nach einer möglichkeit, es zu verhindern
css wird ja in dem bereich noch nicht wirklich unterstützt, zumindest was das break-inside angeht
Hängt stark vom Browser ab. Und davon, was du eigentlich ausdrucken willst.
naja, jedenfalls hoffe ich, dass jemand eine lösung hat
Erkläre dein ursprüngliches Problem genauer.
- Sven Rautenberg
Moin!
ich hatte ursprünglich das problem, dass ich eine tabelle habe, welche nicht umgebrochen werden darf
Bei was? Bildschirmdarstellung? Ausdruck?
beim audruck der seite muss der block ansich erhalten bleiben, es dürfen nicht einzelne teile davon auf unterschiedlichen blättern sein
beispiel:
Summe: 100 €
- 16% Mwst: 16 €
Summe inkl: 116 €kann man sich ja vorstellen ;)
Was darf da nicht umbrochen werden?
kein seitenumbruch zwischen den teilen, wie gesagt ..
da ich das nicht als pdf ausgeben will, sondern es html bleiben soll, suche ich nun nach einer möglichkeit, es zu verhindern
css wird ja in dem bereich noch nicht wirklich unterstützt, zumindest was das break-inside angehtHängt stark vom Browser ab. Und davon, was du eigentlich ausdrucken willst.
korrekt, und da ich nicht will, dass das stark vom browser abhäbgt, wollt ich ja n bild machen
naja, jedenfalls hoffe ich, dass jemand eine lösung hat
Erkläre dein ursprüngliches Problem genauer.
- Sven Rautenberg
ja wie gesagt, ich will ne rechnung drucken, wo der teil summe mwst und summe inkl zusammen auf ein blatt gehören, und nicht summe auf ein blatt und mwst und summe inkl auf das nächste blatt
denn da der inhalt des dokumentes stark variiert, steht es ja immer an anderer Position
Moin!
ja wie gesagt, ich will ne rechnung drucken, wo der teil summe mwst und summe inkl zusammen auf ein blatt gehören, und nicht summe auf ein blatt und mwst und summe inkl auf das nächste blatt
denn da der inhalt des dokumentes stark variiert, steht es ja immer an anderer Position
Aber das kann man ja auch ändern und es immer an einer festen Position drucken.
- Sven Rautenberg