<?php
//ini_set('error_reporting', E_ALL);

//require_once './timbre.php';
require_once('../lib/tcpdf/tcpdf_barcodes_2d.php');

if (!isset($_GET["documento"])){
  echo "<h3>No se ha enviado ninguna ruta.</h3>";  
}
else{
    include '../lib/mpdf/mpdf.php';
    $documentos = explode("|", $_GET["documento"]) ;
    
    // documento[n] = nombre archivo
    
    $rutadoc = '../DOC/ORIGINAL/';
    $rutafrm = '../DOC/FIRMADO/';
    $rutapdf = '../DOC/PDF/';
    //$xmlfirmado = "";
    
    // prueba: xml
    $xmlf = file_get_contents($rutafrm.$documentos[0]);
   // debug($xmlf); exit();
   /*<?xml version="1.0"?>*/
    
    $xmlf=str_replace('<?xml version="1.0"?>','<?xml version="1.0" encoding="ISO-8859-1" ?>',$xmlf);
    //debug($xmlf); exit();    
    $xmlted = extraerTED(utf8_decode($xmlf));           // ted como xml    
   // debug($xmlted); exit();
//    echo "<textarea>".utf8_encode($xmlted)."</textarea>"; exit();
    
    $barcodeobj = new TCPDF2DBarcode($xmlted, 'PDF417');
    $timbre = $barcodeobj->getBarcodePngData(2, 1.3, array(0,0,0));
    $fp = fopen('timbre_1.png', 'w');
    fwrite($fp, $timbre);
    fclose($fp);
    
    //echo "<img src='timbre_1.png' >"; exit();
    
    genPDF($documentos[0]);
    
    exit();
       
}

function genPDF($xmlfirmado) {
    $rutafrm = '../DOC/FIRMADO/';
    $rutapdf = '../DOC/PDF/';
    
    $rutadoc = $rutafrm . $xmlfirmado;
    $mpdf = new mPDF();
    
    $xslDoc = new DOMDocument();
    $xslDoc->load("visualizador_cer_cedible.xsl");
    
    $sXmlDoc=  utf8_encode(str_replace('<?xml version="1.0" encoding="UTF-8"?>'.chr(10), chr(10), file_get_contents($rutadoc)));
    
    $xmlDoc = new DOMDocument("1.0","iso-8859-1");
    $xmlDoc->loadXML($sXmlDoc);
    //echo $xmlDoc->saveXML();
    

    $proc = new XSLTProcessor();
    $proc->importStylesheet($xslDoc);
   
    $html = $proc->transformToXML($xmlDoc);
    
    //echo "$html";exit();

    $mpdf->WriteHTML($html);
    
    $mpdf ->Output($rutapdf.  str_replace(".xml", ".pdf", $xmlfirmado),'F');
    $mpdf->Output();
}

/* funcion para extraer CAF, omitiendo nodos fuera de éste */
function extraerTED($xmlfirmado) {
    $dom = new DOMDocument();
    $dom->loadXML($xmlfirmado);
    $xmlted = $dom->saveXML();
    preg_match('/<TED.+?>.*?<\/TED>/ims', $xmlted, $ted);
    
    return(alinearXML($ted[0]));
}

function alinearXML($xml) {
	$xmlt = str_replace("\t", '', $xml);
	$xmlt = str_replace("\n", '', $xmlt);
	$xmlt = str_replace("\r", '', $xmlt);
	return($xmlt);
}

function debug($xmlstr) {
    $xmlstr = htmlentities($xmlstr);
    echo "<textarea style='width: 99%; height: 99%'>$xmlstr</textarea";
}
