<?php require('cellpdf.php');
class PDF extends CellPDF
{
    private $store;
    var $B;
    var $I;
    var $U;
    var $HREF;
    function setStore($store)
    {
        $this->store = $store;
    }
    function Footer()
    {
        // Posiciona el pie de página a 15 mm del final
        $formatDate = date('m/d/Y h:ia');
        $this->SetY(-15);
        // Selecciona la fuente Arial itálica de 8 puntos
        $this->SetFont('Arial', 'I', 8);
        // Agrega el número de página
        $this->Cell(50, 10, 'FECHA Y HORA: ' . $formatDate, 0, 0, 'L');
        $this->Cell(0, 10, 'Sucursal: ' . $this->store . '- Pag: ' . $this->PageNo(), 0, 0, 'R');
    }
    function __constructor($orientation = 'P', $unit = 'mm', $size = 'A4')
    {
        // Llama al constructor de la clase padre
        $this->FPDF($orientation, $unit, $size);
        // Iniciaci�n de variables
        $this->B = 0;
        $this->I = 0;
        $this->U = 0;
        $this->HREF = '';
    }

    function WriteHTML($html)
    {
        // Int�rprete de HTML
        $html = str_replace("\n", ' ', $html);
        $a = preg_split('/<(.*)>/U', $html, -1, PREG_SPLIT_DELIM_CAPTURE);
        foreach ($a as $i => $e) {
            if ($i % 2 == 0) {
                // Text
                if ($this->HREF)
                    $this->PutLink($this->HREF, $e);
                else
                    $this->Write(5, $e);
            } else {
                // Etiqueta
                if ($e[0] == '/')
                    $this->CloseTag(strtoupper(substr($e, 1)));
                else {
                    // Extraer atributos
                    $a2 = explode(' ', $e);
                    $tag = strtoupper(array_shift($a2));
                    $attr = array();
                    foreach ($a2 as $v) {
                        if (preg_match('/([^=]*)=["\']?([^"\']*)/', $v, $a3))
                            $attr[strtoupper($a3[1])] = $a3[2];
                    }
                    $this->OpenTag($tag, $attr);
                }
            }
        }
    }

    function OpenTag($tag, $attr)
    {
        // Etiqueta de apertura
        if ($tag == 'B' || $tag == 'I' || $tag == 'U')
            $this->SetStyle($tag, true);
        if ($tag == 'A')
            $this->HREF = $attr['HREF'];
        if ($tag == 'BR')
            $this->Ln(5);
    }

    function CloseTag($tag)
    {
        // Etiqueta de cierre
        if ($tag == 'B' || $tag == 'I' || $tag == 'U')
            $this->SetStyle($tag, false);
        if ($tag == 'A')
            $this->HREF = '';
    }

    function SetStyle($tag, $enable)
    {
        // Modificar estilo y escoger la fuente correspondiente
        $this->$tag += ($enable ? 1 : -1);
        $style = '';
        foreach (array('B', 'I', 'U') as $s) {
            if ($this->$s > 0)
                $style .= $s;
        }
        $this->SetFont('', $style);
    }

    function PutLink($URL, $txt)
    {
        // Escribir un hiper-enlace
        $this->SetTextColor(0, 0, 255);
        $this->SetStyle('U', true);
        $this->Write(5, $txt, $URL);
        $this->SetStyle('U', false);
        $this->SetTextColor(0);
    }

    function Header($watermark = null)
    {
        if ($watermark) {
            //Put the watermark
            $this->SetFont('Arial', 'B', 130);
            $this->SetTextColor(255, 192, 203);
            $this->RotatedText(35, 220, $watermark, 45);
        }
    }

    function RotatedText($x, $y, $txt, $angle)
    {
        //Text rotated around its origin
        $this->Rotate($angle, $x, $y);
        $this->Text($x, $y, $txt);
        $this->Rotate(0);
    }
}
