91 lines
2.2 KiB
PHP
91 lines
2.2 KiB
PHP
<?php
|
|
class PrintController extends Zend_Controller_Action
|
|
{
|
|
|
|
public function init(){}
|
|
|
|
/**
|
|
* Renvoie les paramètres pour l'impression
|
|
*/
|
|
protected function pageParams($fichierPart)
|
|
{
|
|
$elements = explode('-', $fichierPart);
|
|
$controller = $elements[0];
|
|
$action = $elements[1];
|
|
$params = array();
|
|
switch($controller){
|
|
case 'identite':
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
break;
|
|
}
|
|
return array(
|
|
'controller' => $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);
|
|
|
|
//On Cherche le fichier html
|
|
|
|
//Le fichier html n'est pas présent
|
|
|
|
$elements = $this->pageParams($fichier);
|
|
$contoller = $elements['controller'];
|
|
$action = $elements['action'];
|
|
$params = $elements['params'];
|
|
$params['print'] = 'pdf';
|
|
|
|
// Désactivation affichage
|
|
$this->_helper->layout()->disableLayout();
|
|
$this->_helper->viewRenderer->setNoRender(true);
|
|
$content = $this->view->action($action, $controller, null, $params);
|
|
|
|
}
|
|
|
|
/**
|
|
* 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);
|
|
|
|
$this->view->assign('controller', $elements['controller']);
|
|
$this->view->assign('action', $elements['action']);
|
|
$this->view->assign('params', $elements['params']);
|
|
}
|
|
} |