<?php
// session_start(); 
// TERMINAL composer require smalot/pdfparser

declare(strict_types=0);
foreach($_GET  as $key => $value){${$key}=trim($value);$_PARAMS[$key]=${$key};}  
foreach($_POST as $key => $value){${$key}=trim($value);$_PARAMS[$key]=${$key};}

include_once('lib_main.php');
if(!empty($empr)){$link_data=msql_connect('','','',$empr); $cfg_empr=$empr;}
// include('PdfToText.phpclass');
$user_codigo=$_SESSION['user_codigo'];
$user0=data_maes('user',$user_codigo);


     $file_pdf='cnmb.pdf';
     $file_pdf='../_lib/cnmb.pdf';
echo 'EXist== >'.file_exists($file_pdf);


//                $file_pdf='../_lib/cnmb.pdf';

//                $pdf = new PdfToText ( $file_pdf ) ;
//                $file = $pdf -> Text ;


// echo '=====>'.$file;


// if you are using composer, just use this
include 'vendor/autoload.php';

// initiate
// $pdf = new Gufy\PdfToHtml\Pdf('file.pdf');
$pdf = new Gufy\PdfToHtml\Pdf($file_pdf);

// convert to html string
$html = $pdf->html();

// convert a specific page to html string
$page = $pdf->html(3);

// convert to html and return it as [Dom Object](https://github.com/paquettg/php-html-parser)
$dom = $pdf->getDom();

// check if your pdf has more than one pages
$total_pages = $pdf->getPages();

// Your pdf happen to have more than one pages and you want to go another page? Got it. use this command to change the current page to page 3
$dom->goToPage(3);

// and then you can do as you please with that dom, you can find any element you want
$paragraphs = $dom->find('body > p');

// change pdftohtml bin location
\Gufy\PdfToHtml\Config::set('pdftohtml.bin', '/usr/local/bin/pdftohtml');

// change pdfinfo bin location
\Gufy\PdfToHtml\Config::set('pdfinfo.bin', '/usr/local/bin/pdfinfo');



return;


require 'vendor/autoload.php'; // Incluye PDFParser

use Smalot\PdfParser\Parser;

// Crear instancia del parser
$parser = new Parser();

// Cargar el archivo PDF
// $filePath = 'ruta/al/archivo.pdf';
$filePath = 'cnmb.pdf';

echo '<br>';
echo '<br>';
echo '<br>';
echo '<br>';
echo 'Exists===>'.file_exists($filePath);


$pdf = $parser->parseFile($filePath);

// Extraer texto completo del PDF
$text = $pdf->getText();

// Imprimir el texto extraído
echo $text;

// Opcionalmente, para mostrar las tablas con mejor estructura puedes procesar el texto
// usando expresiones regulares o divisores basados en el formato del PDF.






return;




// $tipo=$_POST['ptipo']; 
// $ffile=$_POST['xfile']; 
// $ffile2=substr($ffile,0,48);

// @mkdir('../_cel/_files/');
// $cel_file='../_cel/_files/';

// $tipo=gettype($ffile);

// echo '*/*/*/*'.$tipo;

// if($tipo=='.xml' or $tipo=='.pdf' or $tipo=='.txt')
{
     if($tipo=='string')
     {
          $file=trim($ffile);
     }
     else   
     {
          $n_tempo=$_FILES['xfile']['tmp_name'];
          $n_original=$_FILES['xfile']['name'];
          $n_destino=$cel_file.$n_original;
          move_uploaded_file($n_tempo, $n_destino);
          
          
          $file=file_get_contents($n_destino);
          
	     if($_FILES['xfile']['type']=='text/xml')
          {
               $file='';
               $dom1 = new DOMDocument('1.0', 'utf-8');
               $xml1=file_get_contents($n_destino);
               
               $dom1->loadXML($xml1);
               $claveacc= $dom1->getElementsByTagName('claveAcceso')->item(0)->nodeValue;
               $atrzce= $dom1->getElementsByTagName('numeroAutorizacion')->item(0)->nodeValue;
               $atrzfe= $dom1->getElementsByTagName('fechaAutorizacion')->item(0)->nodeValue;
               $estado= $dom1->getElementsByTagName('estado')->item(0)->nodeValue;
               $atrzfe=date('Y-m-d H:i:s',strtotime($atrzfe));
               $claveacc=$atrzce;
               
               if(val_clac($claveacc) and $claveacc==$atrzce and $estado=='AUTORIZADO')
               {
                    $clave_acceso=$claveacc;
                    $ruta_ce='../_cel/';
                    $dir_ce=mkdir_ce($clave_acceso);
                    $xmlfile=$ruta_ce.$dir_ce.$clave_acceso.'.xml';
                    $xmlfiles=$ruta_ce.$dir_ce.$clave_acceso.'.sign.xml';
                    $xmlfiler=$ruta_ce.$dir_ce.$clave_acceso.'.sri.xml';

                    if(!file_exists($xmlfiler))
                    {file_put_contents($xmlfiler,$xml1);}
                    
                    
               }
               
          }
          
          if($_FILES['xfile']['type']=='application/pdf')
          {
               $file='';
               $pdf = new PdfToText ( $n_tempo ) ;
               $file = $pdf -> Text ;
          }
//           else
//           {
//                $file=file_get_contents($n_destino);
//           }
     }
     

//      $lfile=strlen($file)-48;
//      $claves=array();
//      $ccla=0;

     // elimina letras y caracteres especiales
     {
          for($idx=1; $idx<255; $idx++)
          {
               if($idx>=65 and $idx<=90){$file=str_replace(chr($idx),'',$file);}
               if($idx>=97 and $idx<=122){$file=str_replace(chr($idx),'',$file);}
               if($idx<48 or $idx>57){$file=str_replace(chr($idx),'-',$file);}
          }
          $file=str_replace('---','-',$file);          
          $file=str_replace('---','-',$file);          
          $file=str_replace('--','-',$file);          
          $file=str_replace('--','-',$file);          
     }

     
     $lfile=strlen($file)-48;
     $claves=array();
     $ccla=0;
     
     
     for($idx=0; $idx<$lfile; $idx++)
     {
          $clave=substr($file,$idx,49);
          if(strlen($clave)>=49 and !mb_stristr($clave,'-')){if(val_clac($clave)){$idx=$idx+48;$ccla++;};}
     }
     
     
$dom = new DOMDocument();
     $dom->encoding = 'utf-8';
     $dom->xmlVersion = '1.0';
     $dom->formatOutput = true;
$response=$dom->appendChild($dom->createElement("response"));
$msgswal=$response->appendChild($dom->createElement("msgswal")); 

$msgswal->appendChild($dom->createElement("icon","success")); 
$msgswal->appendChild($dom->createElement("title","Archivo Cargado")); 
$msgswal->appendChild($dom->createElement("text",$n_original)); 
// $msgswal->appendChild($dom->createElement("text",$n_original.' <br> '.$ccla.' Claves')); 
     
echo $dom->saveXML();
     


}



return;


?>







