log($output_file, 'fichier'); $firephp->log(file_exists($output_file), 'fichier_exist'); if(file_exists($output_file)) { $dest = 'I'; switch($dest) { case 'I': //Send to standard output header('Content-type: '.$content_type.''); header('Content-Length: '.filesize($output_file)); header('Content-MD5: '.base64_encode(md5_file($output_file))); header('Content-Disposition: inline; filename="'.basename($output_file).'"'); header('Cache-Control: private, max-age=0, must-revalidate'); header('Pragma: public'); ini_set('zlib.output_compression','0'); echo file_get_contents($output_file); exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu break; case 'D': //Download file header('Content-Tranfer-Encoding: none'); header('Content-Length: '.filesize($output_file)); header('Content-MD5: '.base64_encode(md5_file($output_file))); header('Content-Type: application/octetstream; name="'.basename($output_file).'"'); header('Content-Disposition: attachment; filename="'.basename($output_file).'"'); header('Cache-Control: private, max-age=0, must-revalidate'); header('Pragma: public'); ini_set('zlib.output_compression','0'); //header('Date: '.gmdate(DATE_RFC1123);); //header('Expires: '.gmdate(DATE_RFC1123, time()+1)); //header('Last-Modified: '.gmdate(DATE_RFC1123, filemtime($output_file))); echo file_get_contents($output_file); exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu break; } } } /** * Démarre la capture du contenu * @return unknown_type */ function print_capture(){ if (ob_start()===FALSE){ //TODO : Gestion des erreurs } } /** * Ecrit le contenu capturé dans un fichier * @param $file * @return void */ function print_write_content($file){ $length = ob_get_length(); $content = ob_get_contents(); if($content !== FALSE){ if( !file_put_contents($file, $content)) { //TODO : Gestion des erreurs } } if(ob_end_clean()===FALSE){ //TODO : Gestion des erreurs } } /** * Impression en PDF * @param $file * @return unknown_type */ function print_pdf($file){ $method = 'wkhtmltopdf'; return $method($file); } /** * Impression en HTML * @param $file * @return void */ function print_html($file){} /** * Imprime un fichier HTML en PDF avec l'utilitaire wkhtmltopdf * @param $file * @return unknown_type */ function wkhtmltopdf($file){ $output_file = str_replace('.html', '.pdf', $file); /* * -n, --disable-javascript Do not allow webpages to run javascript. * --user-style-sheet Specify a user style sheet, to load with every page. * --print-media-type Use print media-type instead of screen. */ if(file_exists($output_file)){ unlink($output_file); } $options = '-n'; if (stristr(PHP_OS, 'WIN')) { $wkhtmltopdf = 'windows/wkhtmltopdf.exe'; } else { switch(WKHTMLTOPDF_ARCH) { case 'adm64': $wkhtmltopdf = 'wkhtmltopdf-amd64'; break; default: case 'i386': $wkhtmltopdf = 'wkhtmltopdf-amd64'; break; } } exec(realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR.$wkhtmltopdf.' '.$options.' "'.$file.'" "'.$output_file.'"'); return $output_file; }