SorgenkindMech: GD2 + Euro-zeichen

moins ihr

ich hatte ursprünglich das problem, dass ich eine tabelle habe, welche nicht umgebrochen werden darf

beispiel:

Summe: 100 €

  • 16% Mwst: 16 €
    Summe inkl: 116 €

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

  1. 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...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
    1. weiterhin schönen abend...

      hm, bei mir geschieht aber folgendes:

      $netto=str_replace(".",",",$_GET['netto'])." &#937";
      [...]
      imagettftext ( $image, $groesse, 0, bcsub($groesse_w,$breite,0), $hoehe, $color, $schrift,$netto );

      so, und da steht dann auf dem bild:

      test &#937, sprich kein euro-zeichen sondern die zeichenfolge

      bin da etas doof drin ... wie mach ich das, damit der das akzeptiert?

      1. hi,

        $netto=str_replace(".",",",$_GET['netto'])." &#937";
        [...]
        imagettftext ( $image, $groesse, 0, bcsub($groesse_w,$breite,0), $hoehe, $color, $schrift,$netto );

        so, und da steht dann auf dem bild:

        test &#937, sprich kein euro-zeichen sondern die zeichenfolge

        Natürlich - warum sollte sich eine Grafik-Lib um irgendeine HTML-Notation scheren?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          $netto=str_replace(".",",",$_GET['netto'])." &#937";
          [...]
          imagettftext ( $image, $groesse, 0, bcsub($groesse_w,$breite,0), $hoehe, $color, $schrift,$netto );

          so, und da steht dann auf dem bild:

          test &#937, 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?

          1. 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

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. 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'])." &#8364";

              $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 ;(

              1. AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

                *aufknieenniederfall*

                Semikolon vergessen *inar***beiß*

                BOAH! ich flipp aus und dafür nun 4 stunden *arg*

                *gegendiewandrenn*

                sorry ...

                1. Hallo,

                  sorry ...

                  schon gut. Dennoch solltest Du Dich unbedingt mit dem Thema UTF-8 auseinandersetzen. Welchen Editor verwendest Du denn?

                  Freundliche Grüße

                  Vinzenz

  2. 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

    --
    "Love your nation - respect the others."
    1. 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 angeht

      Hä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

      1. 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

        --
        "Love your nation - respect the others."