227 lines
6.1 KiB
PHP
227 lines
6.1 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':
|
|
case 'dirigeant':
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
break;
|
|
case 'finance':
|
|
switch($action){
|
|
case 'synthese':
|
|
case 'bilan':
|
|
$params['typeBilan'] = $elements[4];
|
|
break;
|
|
case 'ratios':
|
|
$params['typeBilan'] = $elements[4];
|
|
$params['mil'] = $elements[5];
|
|
break;
|
|
case 'liasse':
|
|
$params['unit'] = $elements[4];
|
|
$params['date'] = $elements[5];
|
|
break;
|
|
}
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
break;
|
|
case 'juridique':
|
|
switch($action){
|
|
case 'annonces':
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
$params['idAnn'] = $elements[4];
|
|
$params['vue'] = $elements[5];
|
|
$params['p'] = $elements[6];
|
|
break;
|
|
case 'infosreg':
|
|
case 'conventions':
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
break;
|
|
case 'competences':
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
$params['type'] = $elements[4];
|
|
break;
|
|
case 'marques':
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
$params['idObject'] = $elements[4];
|
|
break;
|
|
default:
|
|
return false;
|
|
break;
|
|
}
|
|
break;
|
|
case 'evaluation':
|
|
$params['siret'] = $elements[2];
|
|
$params['id'] = $elements[3];
|
|
break;
|
|
case 'giant':
|
|
$params['idRapport'] = $elements[2];
|
|
break;
|
|
case 'surveillance':
|
|
switch($action){
|
|
case 'fichier':
|
|
$params['nomFic'] = $elements[2];
|
|
$params['filtre'] = $elements[3];
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
return false;
|
|
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);
|
|
|
|
$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);
|
|
}
|
|
}
|