pdf_constancias.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. //ini_set('max_execution_time', 150);
  3. setlocale(LC_TIME, 'es_MX.UTF-8');
  4. require_once("../../include/nocache.php");
  5. require_once("../../include/bd_pdo.php");
  6. require_once("../../include/util.php");
  7. require_once("../../include/constantes.php");
  8. require_once("../../classes/ValidaSesion.php");
  9. include_once('../../include/xTemplate/xtemplate.class.php'); // including mpdf.php
  10. include_once('../../include/mpdf/autoload.php'); // including mpdf.php
  11. include_once('../include/util.php');
  12. $pag = "../constancias_busca.php";
  13. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  14. $objSesion = new ValidaSesion($pdo, 321, CONSTANCIA);
  15. if(!$objSesion->tieneAcceso()){
  16. header("Location: ".$pag."?error=1");
  17. exit();
  18. }
  19. unset($objValida);
  20. if( !isset($_GET["sist"]) || !isset($_GET["ev"]) || !isset($_GET["id"]) ){
  21. header("Location: ".$pag."?error=0");
  22. exit();
  23. }
  24. $sist = filter_input(INPUT_GET, "sist", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  25. $evento_id = filter_input(INPUT_GET, "ev", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  26. $folio = filter_input(INPUT_GET, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  27. $stmt = $pdo->prepare('SELECT * from fs_constancialogfirma(:sist, :evento, :serial )');//firmas
  28. $stmt->bindParam(":sist", $sist);
  29. $stmt->bindParam(":evento", $evento_id);
  30. $stmt->bindParam(":serial", $folio);
  31. if(!$stmt->execute()){
  32. $pdo->rollBack();
  33. header("Location:".$pag."?error=2");
  34. //print_r($stmt->errorInfo());
  35. exit();
  36. }
  37. $firma_rs = $stmt->fetchAll();
  38. $stmt->closeCursor();
  39. $firmasArr = array();
  40. foreach($firma_rs as $firma){
  41. $firmasArr[] = array("id"=>$firma["ConstanciaFirma_id"] ,"grado"=>$firma["ConstanciaFirma_grado"] ,
  42. "nombre"=> $firma["ConstanciaFirma_nombre"], "puesto"=>$firma["ConstanciaLog_Firma_puesto"],
  43. "firma"=> $firma["ConstanciaFirma_imagen"], "lleva_firma"=>$firma["ConstanciaLog_Firma_mostrar"]
  44. );
  45. }
  46. $stmt = $pdo->prepare('Select * from fs_constancialog(:sist, :evento, :serial )');//firmas
  47. $stmt->bindParam(":sist", $sist);
  48. $stmt->bindParam(":evento", $evento_id);
  49. $stmt->bindParam(":serial", $folio);
  50. if(!$stmt->execute()){
  51. header("Location:".$pag."?error=2");
  52. //print_r($stmt->errorInfo());
  53. exit();
  54. }
  55. $constancia_rs = $stmt->fetch();
  56. $stmt->closeCursor();
  57. $tipo = $constancia_rs["ConstanciaLogTipo_desc"];
  58. $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
  59. $fontDirs = $defaultConfig['fontDir'];
  60. $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
  61. $fontData = $defaultFontConfig['fontdata'] +
  62. [ 'tipo' => [
  63. 'R' => 'IndivisaDisplaySans-Thin.ttf',
  64. ]] +
  65. [ 'texto-a' => [
  66. 'R' => 'IndivisaTextSans-Light.ttf',
  67. ]] +
  68. ['indivisa-text' => [
  69. 'R' => 'IndivisaTextSans-Regular.ttf',
  70. 'B' => 'IndivisaTextSans-Bold.ttf',
  71. 'BI' => 'IndivisaTextSans-BoldItalic.ttf',
  72. ]];
  73. $stylesheet = "<style>";
  74. //$stylesheet .= file_get_contents('../../css/indivisa.css'); // external css
  75. $stylesheet .= file_get_contents('../css/constancia.css'); // external css
  76. $stylesheet .= "</style>";
  77. //Marca de agua
  78. if (file_exists($_SERVER['DOCUMENT_ROOT']. '/const/export/zip/marca.png')) {
  79. unlink($_SERVER['DOCUMENT_ROOT']. '/const/export/zip/marca.png');
  80. }
  81. $marca = mb_strtoupper($constancia_rs["ConstanciaLog_evento"],'UTF-8') . ' ' . fechaGuion($constancia_rs["ConstanciaLog_fecha"]) . ' | '; //No acepta caracteres especiales
  82. generaMarcaDeAgua($marca, "zip/");
  83. $header = '';
  84. if(!empty($constancia_rs["ConstanciaLog_imagen"])){
  85. $target_dir = "../img/logos/";
  86. $header .= '<img id="logo_secondary" src="'.$target_dir.$constancia_rs["ConstanciaLog_imagen"].'">';
  87. }
  88. $header .= '<img id="logo" src="../img/lasalle_pdf.jpg">';
  89. //Footer
  90. $footer = "";
  91. $nombre = $constancia_rs["ConstanciaLog_participante"];
  92. $mpdf = new \Mpdf\Mpdf([
  93. 'mode'=>'utf-8', 'format'=>'Letter',
  94. 'margin_header'=> 21, 'margin_top'=>52, 'margin_left'=> 35, 'margin_right'=> 30, 'margin_footer'=>10,
  95. 'orientation' => 'P',
  96. 'fontDir' => array_merge($fontDirs, [
  97. __DIR__ . '/../../fonts/indivisaFont/ttf',
  98. ]),
  99. 'fontdata' => $fontData,
  100. 'default_font' => 'indivisa-text'
  101. ]);
  102. $xtpl = new XTemplate('../tpl/constancia.tpl.html');
  103. $xtpl->assign("TIPO", $tipo);
  104. $xtpl->assign("NOMBRE", $nombre);
  105. $xtpl->assign("TEXTO", $constancia_rs["ConstanciaLog_evento_desc"]);
  106. $xtpl->parse("main");
  107. $footer = imprimeFooter($constancia_rs["ConstanciaLog_fecha"], count($firmasArr), $firmasArr, CONSTANCIA, $evento_id, $folio);
  108. /*
  109. echo $stylesheet;
  110. echo $header;
  111. echo $xtpl->text("main");
  112. echo $footer;
  113. exit();*/
  114. $mpdf->SHYlang = 'es';
  115. $mpdf-> SetTitle($tipo . '-' . $nombre);
  116. $mpdf-> SetAuthor('Facultad de Ingeniería. © Universidad La Salle A.C. '.date("Y").' Todos los derechos Reservados.');
  117. $mpdf->SetHTMLHeader($header);
  118. $mpdf->WriteHTML($stylesheet);
  119. $mpdf->WriteHTML($xtpl->text("main"));
  120. $mpdf->SetHTMLFooter($footer);
  121. $mpdf->SetProtection(array('print', 'print-highres'), '', md5(time()));
  122. $mpdf->Output($tipo."_".$nombre.".pdf", 'I');
  123. unlink("zip/marca.png");
  124. ?>