<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.barcode.creation">
    <title>Création de code-barres avec la classe Zend_Barcode</title>
    <sect2 id="zend.barcode.creation.configuration">
        <title>Utilisation de la fabrique Zend_Barcode::factory</title>

        <para>
            <classname>Zend_Barcode</classname> possède une méthode de fabrique pour créer une
            instance d'un générateur de rendu qui étend
            <classname>Zend_Barcode_Renderer_RendererAbstract</classname>. Ce méthode accepte 5
            arguments.
        </para>

        <orderedlist>
            <listitem>
                <para>Le nom du format de code-barres (ex. "code39") (obligatoire)</para>
            </listitem>
            <listitem>
                <para>Le nom du générateur de rendu (ex. "image") (obligatoire)</para>
            </listitem>
            <listitem>
                <para>
                    Les options de l'objet code-barres (un tableau ou un objet
                    <classname>Zend_Config</classname>) (optionnel)
                </para>
            </listitem>
            <listitem>
                <para>
                    Les options du générateur de rendu (un tableau ou un objet
                    <classname>Zend_Config</classname>) (optionnel)
                </para>
            </listitem>
            <listitem>
                <para>
                    Booléen indiquant si le générateur automatique d'erreur est activé. Si
                    une exception intervient, l'objet code-barres fourni sera remplacé par un
                    objet représentant l'erreur (optionnel par défaut vaut
                    <constant>TRUE</constant>)
                </para>
            </listitem>
        </orderedlist>

        <example id="zend.barcode.creation.configuration.example-1">
            <title>Récupérer un générateur de rendu avec Zend_Barcode::factory()</title>

            <para>
                <methodname>Zend_Barcode::factory()</methodname> instancie un objet code-barres
                et un générateur de rendu et les lie ensemble. Dans le premier exemple, nous allons
                utiliser le type de code-barres <emphasis>Code39</emphasis> avec le générateur
                de rendu <emphasis>Image</emphasis>.
            </para>

            <programlisting language="php"><![CDATA[
// Seul le texte à écrire est obligatoire
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// Pas d'options requises
$rendererOptions = array();
$renderer = Zend_Barcode::factory(
    'code39', 'image', $barcodeOptions, $rendererOptions
);
]]></programlisting>
        </example>

        <example id="zend.barcode.creation.configuration.example-2">
            <title>Utiliser Zend_Barcode::factory() avec des objets Zend_Config</title>

            <para>
                Vous pouvez fournir un objet <classname>Zend_Config</classname> à la fabrique afin
                de créer les objets souhaités. L'exemple suivant est fonctionnellement équivalent
                au précédent.
            </para>

            <programlisting language="php"><![CDATA[
// En utilisant seulement un objet Zend_Config
$config = new Zend_Config(array(
    'barcode'        => 'code39',
    'barcodeParams'  => array('text' => 'ZEND-FRAMEWORK'),
    'renderer'       => 'image',
    'rendererParams' => array('imageType' => 'gif'),
));
$renderer = Zend_Barcode::factory($config);
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.barcode.creation.drawing">
        <title>Tracer un code-barres</title>

        <para>
            Quand vous <emphasis>dessiner</emphasis> un code-barres, vous récupérez la ressource
            dans laquelle le code-barres est tracée. Pour ensuite tracer le code-barres, vous
            pouvez appeler la méthode <methodname>draw()</methodname> du générateur de rendu ou
            simplement utiliser la méthode proxy fournie par <classname>Zend_Barcode</classname>.
        </para>

        <example id="zend.barcode.creation.drawing.example-1">
            <title>Tracer un code-barres avec l'objet générateur de rendu</title>

            <programlisting language="php"><![CDATA[
// Seul le texte à écrire est obligatoire
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// Pas d'options requises
$rendererOptions = array();
// Tracé du code-barres dans une nouvelle image
$imageResource = Zend_Barcode::factory(
    'code39', 'image', $barcodeOptions, $rendererOptions
)->draw();
]]></programlisting>
        </example>

        <example id="zend.barcode.creation.drawing.example-2">
            <title>Trace un code-barres avec Zend_Barcode::draw()</title>

            <programlisting language="php"><![CDATA[
// Seul le texte à écrire est obligatoire
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// Pas d'options requises
$rendererOptions = array();
// Tracé du code-barres dans une nouvelle image
$imageResource = Zend_Barcode::draw(
    'code39', 'image', $barcodeOptions, $rendererOptions
);
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.barcode.creation.renderering">
        <title>Générer le rendu d'un code-barres</title>

        <para>
            Quand vous générez un code-barres, vous dessinez le code-barres, vous envoyez les
            entêtes et vous envoyez la ressource (par exemple vers un navigateur). Pour rendre un
            code-barres, vous pouvez appeler la méthode <methodname>render()</methodname> du
            générateur de rendu ou simplement utiliser la méthode proxy fournie par
            <classname>Zend_Barcode</classname>.
        </para>

        <example id="zend.barcode.creation.renderering.example-1">
            <title>Effectuer le rendu d'un code-barres avec l'objet générateur de rendu</title>

            <programlisting language="php"><![CDATA[
// Seul le texte à écrire est obligatoire
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// Pas d'options requises
$rendererOptions = array();
// Tracé du code-barres dans une nouvelle image,
// envoi des entêtes et de l'image
Zend_Barcode::factory(
    'code39', 'image', $barcodeOptions, $rendererOptions
)->render();
]]></programlisting>

            <para>
                Ceci générera ce code-barres&#160;:
            </para>

            <para>
                <inlinegraphic width="275" align="center" valign="middle"
                    fileref="figures/zend.barcode.introduction.example-1.png" format="PNG"/>
            </para>
        </example>

        <example id="zend.barcode.creation.renderering.example-2">
            <title>Effectuer le rendu d'un code-barres avec Zend_Barcode::render()</title>

            <programlisting language="php"><![CDATA[
// Seul le texte à écrire est obligatoire
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');
// Pas d'options requises
$rendererOptions = array();
// Tracé du code-barres dans une nouvelle image,
// envoi des entêtes et de l'image
Zend_Barcode::render(
    'code39', 'image', $barcodeOptions, $rendererOptions
);
]]></programlisting>

            <para>
                Ceci générera le même code-barres que l'exemple précédent.
            </para>
        </example>
    </sect2>
</sect1>
