<commit_before><?php

/**
 * LibreDTE
 * Copyright (C) SASCO SpA (https://sasco.cl)
 *
 * Este programa es software libre: usted puede redistribuirlo y/o
 * modificarlo bajo los términos de la Licencia Pública General GNU
 * publicada por la Fundación para el Software Libre, ya sea la versión
 * 3 de la Licencia, o (a su elección) cualquier versión posterior de la
 * misma.
 *
 * Este programa se distribuye con la esperanza de que sea útil, pero
 * SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita
 * MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO.
 * Consulte los detalles de la Licencia Pública General GNU para obtener
 * una información más detallada.
 *
 * Debería haber recibido una copia de la Licencia Pública General GNU
 * junto a este programa.
 * En caso contrario, consulte <http://www.gnu.org/licenses/gpl.html>.
 */

namespace sasco\LibreDTE;

// Directorio para imágenes (no se asume nada)
define ('K_PATH_IMAGES', '');

/**
 * Clase para generar PDFs
 *
 * Los métodos se copiaron desde la clase \sowerphp\general\View_Helper_PDF
 * disponible en:
 *
 * <https://github.com/SowerPHP/extension-general/blob/master/View/Helper/PDF.php>
 *
 * @author <NAME>, DeLaF (esteban[at]delaf.cl)
 * @version 2015-09-08
 */
class PDF extends \TCPDF
{

    private $footer; ///< Mensaje a colocar en el footer

    /**
     * Constructor de la clase
     * @param o Orientación
     * @param u Unidad de medida
     * @param s Tipo de hoja
     * @param top Margen extra (al normal) para la parte de arriba del PDF
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2016-02-06
     */
    public function __construct($o = 'P', $u = 'mm', $s = 'LETTER', $top = 0)
    {
        parent::__construct($o, $u, $s);
        $this->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP+$top, PDF_MARGIN_RIGHT);
        $this->SetHeaderMargin(PDF_MARGIN_HEADER+$top);
        $this->SetFooterMargin(PDF_MARGIN_FOOTER+6);
        $this->SetCreator('LibreDTE (http://libredte.cl)');
        $this->SetAuthor('LibreDTE (http://libredte.cl)');
        $this->setFont('helvetica');
    }

    /**
     * Método para evitar que se renderice el de TCPDF
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2015-09-08
     */
    public function Header()
    {
    }

    /**
     * Método que genera el footer del PDF
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2015-09-16
     */
    public function Footer()
    {
        if (is_array($this->footer) and (!empty($this->footer['left']) or !empty($this->footer['right']))) {
            $style = ['width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => [50, 50, 50]];
            $this->Line($this->getX(), $this->getY()-1, 201, $this->getY()-2, $style);
            $this->SetFont('', 'B', 6);
            if (!empty($this->footer['left']))
                $this->Texto($this->footer['left']);
            if (!empty($this->footer['right']))
                $this->Texto($this->footer['right'], null, null, 'R');
        }
    }

    /**
     * Método que asigna el texto que se deberá usar en el footer
     * @param footer =true se asignará texto por defecto. String al lado izquiero o bien arreglo con índices left y right con sus textos
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2015-09-29
     */
    public function setFooterText($footer = true)
    {
        if ($footer) {
            // asignar valor por defecto
            if ($footer===true) {
                $footer = [
                    'left' => 'LibreDTE ¡facturación electrónica libre para Chile!',
                    'right' => !$this->papelContinuo ? 'http://libredte.cl' : '',
                ];
            }
            // si no es arreglo se convierte en uno
            if (!is_array($footer))
                $footer = ['left'=>$footer];
            // asignar footer
            $this->footer = array_merge(['left'=>'', 'right'=>''], $footer);
        } else {
            $this->footer = null;
        }
    }

    /**
     * Agregar una tabla al PDF removiendo aquellas columnas donde no existen
     * datos en la columna para todas las filas
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2015-09-16
     */
    public function addTableWithoutEmptyCols($titles, $data, $options = [])
    {
        $cols_empty = [];<commit_msg>Se cambia a https en pdf<commit_after><?php

/**
 * LibreDTE
 * Copyright (C) SASCO SpA (https://sasco.cl)
 *
 * Este programa es software libre: usted puede redistribuirlo y/o
 * modificarlo bajo los términos de la Licencia Pública General GNU
 * publicada por la Fundación para el Software Libre, ya sea la versión
 * 3 de la Licencia, o (a su elección) cualquier versión posterior de la
 * misma.
 *
 * Este programa se distribuye con la esperanza de que sea útil, pero
 * SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita
 * MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO.
 * Consulte los detalles de la Licencia Pública General GNU para obtener
 * una información más detallada.
 *
 * Debería haber recibido una copia de la Licencia Pública General GNU
 * junto a este programa.
 * En caso contrario, consulte <http://www.gnu.org/licenses/gpl.html>.
 */

namespace sasco\LibreDTE;

// Directorio para imágenes (no se asume nada)
define ('K_PATH_IMAGES', '');

/**
 * Clase para generar PDFs
 *
 * Los métodos se copiaron desde la clase \sowerphp\general\View_Helper_PDF
 * disponible en:
 *
 * <https://github.com/SowerPHP/extension-general/blob/master/View/Helper/PDF.php>
 *
 * @author <NAME>, DeLaF (esteban[at]delaf.cl)
 * @version 2015-09-08
 */
class PDF extends \TCPDF
{

    private $footer; ///< Mensaje a colocar en el footer

    /**
     * Constructor de la clase
     * @param o Orientación
     * @param u Unidad de medida
     * @param s Tipo de hoja
     * @param top Margen extra (al normal) para la parte de arriba del PDF
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2016-02-06
     */
    public function __construct($o = 'P', $u = 'mm', $s = 'LETTER', $top = 0)
    {
        parent::__construct($o, $u, $s);
        $this->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP+$top, PDF_MARGIN_RIGHT);
        $this->SetHeaderMargin(PDF_MARGIN_HEADER+$top);
        $this->SetFooterMargin(PDF_MARGIN_FOOTER+6);
        $this->SetCreator('LibreDTE (https://libredte.cl)');
        $this->SetAuthor('LibreDTE (https://libredte.cl)');
        $this->setFont('helvetica');
    }

    /**
     * Método para evitar que se renderice el de TCPDF
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2015-09-08
     */
    public function Header()
    {
    }

    /**
     * Método que genera el footer del PDF
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2015-09-16
     */
    public function Footer()
    {
        if (is_array($this->footer) and (!empty($this->footer['left']) or !empty($this->footer['right']))) {
            $style = ['width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => [50, 50, 50]];
            $this->Line($this->getX(), $this->getY()-1, 201, $this->getY()-2, $style);
            $this->SetFont('', 'B', 6);
            if (!empty($this->footer['left']))
                $this->Texto($this->footer['left']);
            if (!empty($this->footer['right']))
                $this->Texto($this->footer['right'], null, null, 'R');
        }
    }

    /**
     * Método que asigna el texto que se deberá usar en el footer
     * @param footer =true se asignará texto por defecto. String al lado izquiero o bien arreglo con índices left y right con sus textos
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2016-03-09
     */
    public function setFooterText($footer = true)
    {
        if ($footer) {
            // asignar valor por defecto
            if ($footer===true) {
                $footer = [
                    'left' => 'LibreDTE ¡facturación electrónica libre para Chile!',
                    'right' => empty($this->papelContinuo) ? 'https://libredte.cl' : '',
                ];
            }
            // si no es arreglo se convierte en uno
            if (!is_array($footer))
                $footer = ['left'=>$footer];
            // asignar footer
            $this->footer = array_merge(['left'=>'', 'right'=>''], $footer);
        } else {
            $this->footer = null;
        }
    }

    /**
     * Agregar una tabla al PDF removiendo aquellas columnas donde no existen
     * datos en la columna para todas las filas
     * @author <NAME>, DeLaF (esteban[at]delaf.cl)
     * @version 2015-09-16
     */
    public function addTableWithoutEmptyCols($titles, $data, $options = [])
    {
        $cols_empty = [];
{'fraction_non_alphanumeric': 0.14313412408759124, 'fraction_numerical': 0.015054744525547446, 'mean_word_length': 2.4825258141382047, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 85, 'https://': 7, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7502539', 'n_tokens_mistral': 3110, 'n_tokens_neox': 2967, 'n_words': 813}