<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.barcode.objects" xmlns:xi="http://www.w3.org/2001/XInclude">
    <title>Objetos Zend_Barcode</title>

    <para>
        Os objetos código de barras te permitem gerar códigos de barras independentemente do suporte
        de renderização. Após a geração, você pode recuperar o código de barras como uma matriz de
        instruções de desenho que você pode fornecer a um renderizador.
    </para>

    <para>
        Os objetos têm um grande número de opções. A maioria deles são comuns a todos os objetos.
        Essas opções podem ser definidas em quatro formas:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                Como uma matriz ou um objeto <classname>Zend_Config</classname> passado ao
                construtor.
            </para>
        </listitem>

        <listitem>
            <para>
                Como uma matriz passada ao método <methodname>setOptions()</methodname>.
            </para>
        </listitem>

        <listitem>
            <para>
                Como um objeto <classname>Zend_Config</classname> passado ao método
                <methodname>setConfig()</methodname>.
            </para>
        </listitem>

        <listitem>
            <para>Através de métodos de acesso individuais para cada tipo de configuração.</para>
        </listitem>
    </itemizedlist>

    <example id="zend.barcode.objects.configuration">
        <title>Diferentes maneiras de parametrizar um objeto código de barras</title>

        <programlisting language="php"><![CDATA[
$options = array('text' => 'ZEND-FRAMEWORK', 'barHeight' => 40);

// Caso 1: construtor
$barcode = new Zend_Barcode_Object_Code39($options);

// Caso 2: setOptions()
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setOptions($options);

// Caso 3: setConfig()
$config  = new Zend_Config($options);
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setConfig($config);

// Caso 4: métodos de acesso individuais
$barcode = new Zend_Barcode_Object_Code39();
$barcode->setText('ZEND-FRAMEWORK')
        ->setBarHeight(40);
]]></programlisting>
    </example>

    <sect2 id="zend.barcode.objects.common.options">
        <title>Opções Comuns</title>

        <para>
            Na lista seguinte, os valores não têm unidades; usaremos o termo "unidade". Por exemplo,
            o valor padrão da "barra fina" é "1 unidade". As unidades reais dependem do suporte de
            renderização (veja <link linkend="zend.barcode.renderers">a documentação dos
                renderizadores</link> para mais informações). Os métodos de acesso são nomeados
            mudando a letra inicial da opção para maiúscula e colocando o prefixo "set" (por exemplo
            "barHeight" se torna "setBarHeight"). Todas as opções têm um método de leitura
            correspondente com prefixo "get" (por exemplo "getBarHeight"). As opções disponíveis
            são:
        </para>

        <table id="zend.barcode.objects.common.options.table">
            <title>Opções Comuns</title>

            <tgroup cols="4">
                <thead>
                    <row>
                        <entry>Opção</entry>
                        <entry>Tipo de Dado</entry>
                        <entry>Valor Padrão</entry>
                        <entry>Descrição</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><emphasis>barcodeNamespace</emphasis></entry>
                        <entry><type>String</type></entry>
                        <entry><classname>Zend_Barcode_Object</classname></entry>

                        <entry>
                            Namespace do código de barras; por exemplo, se você precisar estender
                            os objetos incorporados
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>barHeight</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>50</entry>
                        <entry>Altura das barras</entry>
                    </row>

                    <row>
                        <entry><emphasis>barThickWidth</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>3</entry>
                        <entry>Largura da barra grossa</entry>
                    </row>

                    <row>
                        <entry><emphasis>barThinWidth</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>1</entry>
                        <entry>Largura da barra fina</entry>
                    </row>

                    <row>
                        <entry><emphasis>factor</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>1</entry>

                        <entry>
                            Fator com o qual a largura das barras e o tamanho das fontes
                            são multiplicados
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>foreColor</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>0 (preto)</entry>

                        <entry>
                            Cor da barra e do texto. Poderia ser fornecido como um inteiro ou como
                            um valor em <acronym>HTML</acronym> (por exemplo "#333333")
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>backgroundColor</emphasis></entry>
                        <entry><type>Integer</type> ou <type>String</type></entry>
                        <entry>16777125 (branco)</entry>

                        <entry>
                            Cor do fundo. Poderia ser fornecido como um inteiro ou como um valor
                            em <acronym>HTML</acronym> (por exemplo "#333333")
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>reverseColor</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>
                        <entry>Permite-lhe trocar a cor da barra e do fundo</entry>
                    </row>

                    <row>
                        <entry><emphasis>orientation</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>0</entry>
                        <entry>Orientação do código de barras</entry>
                    </row>

                    <row>
                        <entry><emphasis>font</emphasis></entry>
                        <entry><type>String</type> ou <type>Integer</type></entry>
                        <entry><constant>NULL</constant></entry>

                        <entry>
                            Caminho para uma fonte <acronym>TTF</acronym> ou um número entre 1 e 5,
                            caso esteja utilizando a geração de imagem com o GD (fontes internas)
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>fontSize</emphasis></entry>
                        <entry><type>Integer</type></entry>
                        <entry>10</entry>
                        <entry>Tamanho da fonte (não aplicável à fontes numéricas)</entry>
                    </row>

                    <row>
                        <entry><emphasis>withBorder</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>

                        <entry>
                            Desenhar uma borda em torno do código de barras e dos espaços vazios
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>withQuietZones</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>TRUE</constant></entry>
                        <entry>Deixar um espaço vazio antes e depois do código de barras</entry>
                    </row>

                    <row>
                        <entry><emphasis>drawText</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>TRUE</constant></entry>
                        <entry>Define se o texto será mostrado abaixo do código de barras</entry>
                    </row>

                    <row>
                        <entry><emphasis>stretchText</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>

                        <entry>
                            Especifica se o texto será esticado ao longo do código de barras
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>withChecksum</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>

                        <entry>
                            Indica se o checksum será adicionado automaticamente ao código de barras
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>withChecksumInText</emphasis></entry>
                        <entry><type>Boolean</type></entry>
                        <entry><constant>FALSE</constant></entry>
                        <entry>Indica se o checksum será exibido na representação textual</entry>
                    </row>

                    <row>
                        <entry><emphasis>text</emphasis></entry>
                        <entry><type>String</type></entry>
                        <entry><constant>NULL</constant></entry>
                        <entry>O texto que será reproduzido como um código de barras</entry>
                    </row>
                </tbody>
            </tgroup>
        </table>

        <sect3 id="zend.barcode.objects.common.options.barcodefont">
            <title>O caso particular do setBarcodeFont() estático</title>

            <para>
                Você pode definir uma fonte comum para todos os seus objetos usando o método
                estático <methodname>Zend_Barcode_Object::setBarcodeFont()</methodname>. Este valor
                pode ser substituído por objetos individuais usando o método
                <methodname>setFont()</methodname>.
            </para>

            <programlisting language="php"><![CDATA[
// Em seu arquivo bootstrap:
Zend_Barcode_Object::setBarcodeFont('my_font.ttf');

// Depois em seu código:
Zend_Barcode::render(
    'code39',
    'pdf',
    array('text' => 'ZEND-FRAMEWORK')
); // utilizará 'my_font.ttf'

// or:
Zend_Barcode::render(
    'code39',
    'image',
    array(
        'text' => 'ZEND-FRAMEWORK',
        'font' => 3
    )
); // utilizará a terceira fonte interna do GD
]]></programlisting>
        </sect3>
    </sect2>

    <sect2 id="zend.barcode.objects.common.getters">
        <title>Métodos de Leitura Comuns Adicionais</title>

        <para></para>

        <table id="zend.barcode.objects.common.getters.table">
            <title>Métodos de Leitura Comuns</title>

            <tgroup cols="3">
                <thead>
                    <row>
                        <entry>Método de Leitura</entry>
                        <entry>Tipo de Dado</entry>
                        <entry>Descrição</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><methodname>getType()</methodname></entry>
                        <entry><type>String</type></entry>

                        <entry>
                            Retorna o nome da classe de código de barras sem o namespace
                            (por exemplo, <classname>Zend_Barcode_Object_Code39</classname> retorna
                            simplesmente "code39")
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getRawText()</methodname></entry>
                        <entry><type>String</type></entry>
                        <entry>Retorna o texto original fornecido pelo objeto</entry>
                    </row>

                    <row>
                        <entry><methodname>getTextToDisplay()</methodname></entry>
                        <entry><type>String</type></entry>

                        <entry>
                            Retorna o texto a ser exibido, incluindo, se ativado,
                            o valor do checksum
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getQuietZone()</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Retornar a quantidade de espaço necessário antes e depois do código
                            de barras sem nenhum desenho
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getInstructions()</methodname></entry>
                        <entry><type>Array</type></entry>
                        <entry>Retorna as instruções de desenho como uma matriz</entry>
                    </row>

                    <row>
                        <entry><methodname>getHeight($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Retorna a altura do código de barras calculado após uma
                            possível rotação
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getWidth($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Retorna a largura do código de barras calculado após uma
                            possível rotação
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getOffsetTop($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Retorna a posição do topo do código de barras calculado após
                            uma possível rotação
                        </entry>
                    </row>

                    <row>
                        <entry><methodname>getOffsetLeft($recalculate = false)</methodname></entry>
                        <entry><type>Integer</type></entry>

                        <entry>
                            Retorna a posição da esquerda do código de barras calculado após
                            uma possível rotação
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </table>
    </sect2>

    <xi:include href="Zend_Barcode-Objects_Details.xml" />
</sect1>
