2009-08-07 14:08:36 +00:00
|
|
|
|
<?php
|
|
|
|
|
/*
|
|
|
|
|
Le nom de la page est pass<EFBFBD> en param<EFBFBD>tre
|
|
|
|
|
Comme par le fichier index.php
|
|
|
|
|
On d<EFBFBD>marre la recup<EFBFBD>ration du contenu - ob_start()
|
|
|
|
|
On charge main.php avec page2 = nom de la page
|
|
|
|
|
Les informations sont g<EFBFBD>n<EFBFBD>r<EFBFBD>es - ob_get_contents()
|
|
|
|
|
On <EFBFBD>teint la r<EFBFBD>cup<EFBFBD>ration du contenu sans l'afficher - ob_end_clean();
|
|
|
|
|
On ecrit le contenu dans un fichier html (quid du hash ??) - gestion avec le nom d'utilisateur
|
|
|
|
|
On g<EFBFBD>n<EFBFBD>re un pdf <EFBFBD> partir du fichier HTML g<EFBFBD>n<EFBFBD>rer (wkhtmltopdf - attention au lien symbolique)
|
|
|
|
|
|
2009-08-10 16:27:58 +00:00
|
|
|
|
Faire un batch qui supprime les fichiers de la journ<EFBFBD>e et d'avant vers 20 heures
|
2009-08-07 14:08:36 +00:00
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Envoi la page <EFBFBD> imprimer au navigateur
|
|
|
|
|
* @param $filename
|
|
|
|
|
* @param $type
|
|
|
|
|
* @param $page
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
function print_page($filename, $type = 'pdf'){
|
2009-08-10 16:27:58 +00:00
|
|
|
|
global $firephp;
|
|
|
|
|
$path = PATH_SITE.'/print';
|
2009-08-07 14:08:36 +00:00
|
|
|
|
$file = $path.'/'.$filename.'.html';
|
|
|
|
|
print_write_content($file);
|
|
|
|
|
switch($type){
|
|
|
|
|
case 'pdf':
|
|
|
|
|
$output_file = print_pdf($file);
|
|
|
|
|
$content_type = 'application/pdf';
|
|
|
|
|
break;
|
|
|
|
|
default: exit; break;
|
|
|
|
|
}
|
|
|
|
|
//Envoi au navigateur
|
2009-08-10 16:27:58 +00:00
|
|
|
|
$firephp->log($output_file, 'fichier');
|
|
|
|
|
$firephp->log(file_exists($output_file), 'fichier_exist');
|
2009-08-07 14:08:36 +00:00
|
|
|
|
if(file_exists($output_file)){
|
|
|
|
|
header("Content-type: $content_type");
|
|
|
|
|
header("Content-disposition: filename=\"$output_file\"");
|
|
|
|
|
print file_get_contents($output_file);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* D<EFBFBD>marre la capture du contenu
|
|
|
|
|
* @return unknown_type
|
|
|
|
|
*/
|
|
|
|
|
function print_capture(){
|
|
|
|
|
if (ob_start()===FALSE){
|
|
|
|
|
//TODO : Gestion des erreurs
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Ecrit le contenu captur<EFBFBD> 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';
|
2009-08-10 16:27:58 +00:00
|
|
|
|
return $method($file);
|
2009-08-07 14:08:36 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
$options = '-n';
|
|
|
|
|
if (stristr(PHP_OS, 'WIN')) {
|
|
|
|
|
exec(realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR.'wkhtmltopdf-0.8.3.exe '.$options.' "'.$file.'" '.$output_file);
|
|
|
|
|
} else {
|
2009-08-10 16:27:58 +00:00
|
|
|
|
exec(realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR.'wkhtmltopdf '.$options.' "'.$file.'" '.$output_file);
|
2009-08-07 14:08:36 +00:00
|
|
|
|
}
|
2009-08-10 16:27:58 +00:00
|
|
|
|
return $output_file;
|
2009-08-07 14:08:36 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|