<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.text.figlet">
    <title>Zend_Text_Figlet</title>

    <para>
        <classname>Zend_Text_Figlet</classname> ist eine Komponente die es Entwicklern erlaubt einen
        sogenannten FIGlet Text zu erstellen. Ein FIGlet Text ist ein String der eine
        <acronym>ASCII</acronym> Kunst repräsentiert. FIGlets sind ein spezielles Schriftformat, das
        FLT (FigLet Font) genannt wird. Standardmäßig wird eine Schriftart mit
        <classname>Zend_Text_Figlet</classname> ausgeliefert, aber man kann zusätzliche Schriftarten
        unter <ulink url="http://www.figlet.org/fontdb.cgi">http://www.figlet.org</ulink>
        herunterladen.
    </para>

    <note>
        <title>Komprimierte Schriftarten</title>

        <para>
            <classname>Zend_Text_Figlet</classname> unterstützt gezippte Schriftarten. Das bedeutet
            das man eine <filename>.flf</filename> Datei nehmen und diese gzip-pen kann. Um
            <classname>Zend_Text_Figlet</classname> zu erlauben diese Datei zu erkennen, muß die
            gezippte Schriftart die Erweiterung <filename>.gz</filename> haben. Weiters, um die
            gezippte Schriftart verwenden zu können muß in <acronym>PHP</acronym> die Erweiterung
            GZIP aktiviert sein.
        </para>
    </note>

    <note>
        <title>Encoding</title>

        <para>
            <classname>Zend_Text_Figlet</classname> erwartet das Strings standardmäßig UTF-8 kodiert
            sind. Wenn das nicht der Fall ist, kann die Zeichenkodierung als zweiter Parameter an
            die <methodname>render()</methodname> Methode übergeben werden.
        </para>
    </note>

    <para>
        Man kann mehrere Optionen für ein FIGlet definieren. Wenn ein
        <classname>Zend_Text_Figlet</classname> instanziiert wird, kann ein Array oder eine Instanz
        von <classname>Zend_Config</classname> übergeben werden.

        <itemizedlist>
            <listitem>
                <para>
                    <property>font</property> - Definiert die Schriftart die für die Darstellung
                    verwendet werden soll. Wenn keine definiert wird, wird die eingebaute Schriftart
                    verwendet.
                </para>
            </listitem>

            <listitem>
                <para>
                    <property>outputWidth</property> - Definiert die maximale Breite des
                    Ausgabestrings. Das wird für die Trennung von Wörtern verwendet sowie für die
                    Feineinstellung. Achtung vor zu kleinen Werten, da diese zu undefiniertem
                    Verhalten führen können. Der Standardwert ist 80.
                </para>
            </listitem>

            <listitem>
                <para>
                    <property>handleParagraphs</property> - Ein boolscher Wert welcher anzeigt wie
                    neue Zeilen zu handhaben sind. Wenn er auf <constant>TRUE</constant> gesetzt
                    wird, werden einzelne neue Zeilen ignoriert und stattdessen als einzelnes
                    Leerzeichen behandelt. Nur mehrere neue Zeilen werden als solche behandelt. Der
                    Standardwert ist <constant>FALSE</constant>.
                </para>
            </listitem>

            <listitem>
                <para>
                    <property>justification</property> - Kann einer der Werte von
                    <classname>Zend_Text_Figlet::JUSTIFICATION_*</classname> sein. Es gibt
                    <constant>JUSTIFICATION_LEFT</constant>,
                    <constant>JUSTIFICATION_CENTER</constant> und
                    <constant>JUSTIFICATION_RIGHT</constant>. Die standardmäßige Justierung ist mit
                    dem Wert <property>rightToLeft</property> definiert.
                </para>
            </listitem>

            <listitem>
                <para>
                    <property>rightToLeft</property> - Definiert in welche Richtung geschrieben
                    wird. Das kann entweder
                    <constant>Zend_Text_Figlet::DIRECTION_LEFT_TO_RIGHT</constant> oder
                    <constant>Zend_Text_Figlet::DIRECTION_RIGHT_TO_LEFT</constant> sein.
                    Standardmäßig wird die Einstellung der Datei der Schriftart verwendet. Wenn die
                    Justierung nicht definiert ist, wird ein Text der von rechts-nach-links
                    geschrieben wird automatisch nach rechts gerückt.
                </para>
            </listitem>

            <listitem>
                <para>
                    <property>smushMode</property> - Ein Integer-Bitfeld welches definiert wie
                    einzelne Zeichen ineinander gesmusht (verflochten) werden. Das kann die Summe
                    von mehreren Werten von <classname>Zend_Text_Figlet::SM_*</classname> sein. Es
                    gibt die folgenden Smush-Modi: SM_EQUAL, SM_LOWLINE, SM_HIERARCHY, SM_PAIR,
                    SM_BIGX, SM_HARDBLANK, SM_KERN und SM_SMUSH. Ein Wert von 0 schaltet das
                    Smushing nicht aus sondern erzwingt die Anwendung von SM_KERN, während es ein
                    Wert von -1 ausschaltet. Eine Erklärung der verschiedenen Smush-Modi kann <ulink
                        url="http://www.jave.de/figlet/figfont.txt">hier</ulink> gefunden werden.
                    Die Smush-Mode Option wird normalerweise nur von Schriftart-Designer verwendet
                    um die verschiedenen Layoutmodi mit einer neuen Schriftart zu testen.
                </para>
            </listitem>
        </itemizedlist>
    </para>

    <example id="zend.text.figlet.example.using">
        <title>Verwendung von Zend_Text_Figlet</title>

        <para>
            Dieses Beispiel zeigt die einfache Verwendung von
            <classname>Zend_Text_Figlet</classname> um einen einfachen FIGlet Text zu erstellen:
        </para>

        <programlisting language="php"><![CDATA[
$figlet = new Zend_Text_Figlet();
echo $figlet->render('Zend');
]]></programlisting>

        <para>
            Angenommen es wird eine Monospace Schriftart verwenden dann würde das Beispiel wie folgt
            aussehen:
        </para>

        <programlisting language="text"><![CDATA[
  ______    ______    _  __   ______
 |__  //   |  ___||  | \| || |  __ \\
   / //    | ||__    |  ' || | |  \ ||
  / //__   | ||___   | .  || | |__/ ||
 /_____||  |_____||  |_|\_|| |_____//
 `-----`'  `-----`   `-` -`'  -----`
]]></programlisting>
    </example>
</sect1>
