$controller, 'action' => $action, 'params' => $params ); } public function indexAction(){} /** * Imprime la page en PDF * Par défaut, le contenu html a déjà été enregistré.. * Mais si ce n'est pas le cas retrouver le contenu * Générer le PDF gràce à wkhtmltopdf * Attention à bien retrouver les css spécifiques pour l'impression * !! Cacher le menu display:none */ public function pdfAction() { $request = $this->getRequest(); $fichier = $request->getParam('fichier'); if (substr($fichier,-4)!='.pdf') { echo 'Fichier incorrect'; exit; } $fichier = str_replace('.pdf', '', $fichier); $c = Zend_Registry::get('config'); $file = $c->profil->path->pages.'/'.$fichier.'.html'; if (!file_exists($file)) { echo 'Fichier introuvable'; exit; } require_once 'wkhtmltopdf/wkhtmltopdf.php'; $pdf = new wkhtmltopdf(); $pdf->setOptions('footer-right', 'Page [page] sur [toPage]'); $pdf->setOptions('header-right', date('d/m/Y H:i:s')); $output_file = $pdf->exec($file); //Envoi au navigateur if(!file_exists($output_file)) { echo 'Impossible de générer le fichier PDF'; exit; } $content_type = 'application/pdf'; $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; } } /** * Imprime la page en activant le javascript d'impression * Il faut récupérer le controller et l'action du nom du fichier, ainsi que * les paramètres * Par exemple : * identite-fiche-siret-id.html */ public function ecranAction() { $request = $this->getRequest(); $fichier = $request->getParam('fichier', ''); if (substr($fichier,-5)!='.html') { echo 'Fichier incorrect'; exit; } $fichier = str_replace('.html', '', $fichier); $elements = $this->pageParams($fichier); if ($elements===false){ exit; } $this->view->assign('controller', $elements['controller']); $this->view->assign('action', $elements['action']); $this->view->assign('params', $elements['params']); } /** * Envoi le fichier XML de l'objet sérialiser sur la sortie standard */ public function xmlAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $request = $this->getRequest(); $fichier = $request->getParam('fichier', ''); if (substr($fichier,-4)!='.xml') { echo 'Fichier incorrect.'; exit; } $c = Zend_Registry::get('config'); $file = $c->profil->path->files.'/'.$fichier; if (!file_exists($file)){ echo "Erreur lors de la génération du fichier."; exit; } header("Content-type: application/xml"); header("Content-Disposition: attachement; filename=\"$fichier\""); flush(); echo file_get_contents($file); } }