Zum Inhalt springen

Prüfen auf Großbuchstaben

Erstellt am 27. Juli 2009 · 5 Antworten · letzte Antwort am 17. August 2009

Tags: Bilder, Frage

Terrance ·

Hallo,

ich möchte gerne einen Überschrift grafisch darstellen. Dabei habe ich folgende Vorgabe:

Nehmen wir an, ich habe folgenden Text: "BeispielTextInNormalschrift". Ich möchte jetzt den kompletten Text in Großbuchstaben ausgeben (klar, kein Problem), aber die Großbuchstaben sollen eine andere Schriftgröße haben als die kleinen. Ist das möglich? Wenn ja, wo setze ich an?

Gruß,
Oliver

QBorg ·

Hallo Oliver,

Terrance schrieb

Nehmen wir an, ich habe folgenden Text: "BeispielTextInNormalschrift". Ich möchte jetzt den kompletten Text in Großbuchstaben ausgeben (klar, kein Problem), aber die Großbuchstaben sollen eine andere Schriftgröße haben als die kleinen.

irgendwie beissen sich die Angaben: Wenn du aus dem Text "BeispielTextInNormalschrift" alles in Großbuchstaben ausgibst (also "BEISPIELTEXTINNORMALSCHRIFT"), wo sind denn da noch die Kleinbuchstaben, zu denen die Großbuchstaben in Relation ne größere Schriftgröße haben sollen?!

Oder willst du, dass der Text so beibehalten wird und NUR die darin befindlichen Großbuchstaben ne andere Schriftgrösse bekommen?!

Dann würde wahrscheinlich die userFunc wieder ins Spiel kommen, ansonsten das halt via .case = upper in Großbuchstaben formen und eine entsprechende Schriftgröße definieren (da ja alles Großbuchstaben sind und dieselbe Schriftgröße haben).

Grüsse,
Wolfgang

Terrance ·

Hallo Wolfgang,

stimmt, das war etwas unglücklich ausgedrückt. Die Großbuchstaben sollen eine andere Schriftgröße haben als die Kleinbuchstaben und die Kleinbuchstaben sollen in Großbuchstaben umgewandelt werden (aber ihre Schriftgröße behalten).

Userfuncs hab ich noch nicht benutzt, aber dann werde ich mich damit mal auseinander setzen. Hatte bei meiner Recherche schon was darüber gelesen, aber gehofft, dass es vllt. etwas einfacher geht. :-)

Vielen Dank,
Oliver

Terrance ·

Ich habe mir jetzt eine kleine Extension geschrieben, die die aktuelle Überschrift als Grafik rendert. Das klappt soweit ganz gut, leider weiß ich nicht, wie ich den Offset vernünftig berechnen kann. Daher habe ich das Problem, dass z.B. bei I und J die Abstände zum nächsten Buchstaben sehr groß sind, bei G oder Q überlappen die Buchstaben allerdings. Hat jemand 'nen Tipp?

Anbei der Ausschnitt aus meiner Extension.

function main($content, $conf)	{
    $this->conf = $conf;
    #$this->pi_loadLL();
    // Make the plugin not cachable
    $this->pi_USER_INT_obj = 1;
    $content = '';
    $sForm = '';
    $sFormResult = '';

    $content = $this->cObj->data['header']; // Überschrift

    $this->ts['img'] = 'IMAGE';
    $this->ts['img.']['file'] = 'GIFBUILDER';
    $this->ts['img.']['file.']['format'] = 'gif';
    $this->ts['img.']['file.']['XY'] = '600,30';

    $header_length = strlen($content);
    
    $x = 0;
    
    while ($x < $header_length) {
      if (ctype_upper($content[$x]) == TRUE ) {
        $fontsize = 24;
      } else {
        $fontsize = 18;
      }
      $this->buildHeader($x+1, $fontsize, $content[$x]);
      $x++;
    }
    $img = $this->cObj->IMAGE($this->ts['img.']);
    #return $this->pi_wrapInBaseClass($content);
    return $img;

}
	
function buildHeader($i, $fontsize, $char) {

    $this->ts['img.']['file.'][$i] = 'TEXT';
    $this->ts['img.']['file.'][$i.'.']['text'] = strtoupper($char);
    $this->ts['img.']['file.'][$i.'.']['fontSize'] = $fontsize;
    $this->ts['img.']['file.'][$i.'.']['fontColor'] = '#43616B';
    $this->ts['img.']['file.'][$i.'.']['fontFile'] = 'fileadmin/beludm.ttf';
    if ($char == 32) {
      $fontsize = 1;
    }
    $this->width += ($fontsize);
    $offset = $this->width;
    $this->ts['img.']['file.'][$i.'.']['offset'] = $offset.',20';
  }