Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/08/2011, 10h39   #1
Invité de passage
 
Homme Anthony Petruzzi
Étudiant
Inscription : août 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Anthony Petruzzi
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2011
Messages : 1
Points : 0
Points : 0
Par défaut Génération de PDF

Bonjour à tous,

je suis nouveau sur le forum. Je travaille depuis 3 semaines sur symfony pour apprendre à l'utiliser pleinement. La raison, c'est que je dois créer un site web pour mon examen de laboratoire web, et après avoir tester cakePhp et Zend, j'en arrive à Symfony

Après de longue recherche et teste sur la génération d'un pdf, je suis tombé sur une solution qui marche relativement bien. J'ai juste un soucis pour une vue mais en recherchant sur le forum, je n'ai pas trouvé de réponse.

La source de comment générer un pdf se trouve sur ce blog.

C'est assez simple. La solution utilise la bibliothèque mPDF, qui se place dans le dossier projet/lib/

Dans le action.class.php du module dont on veut afficher la page, on place ce code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
	public function executePdfIndex(sfWebRequest $request)
	{
	   $html = $this->getController()->getPresentationFor($this->getModuleName(), 'index');
	   $mpdf = new mPDF('en-GB','A4','','',32,25,27,25,16,13);
	   $mpdf->useOnlyCoreFonts = true;
 
	   // LOAD a stylesheet
	   $stylesheet = file_get_contents(sfConfig::get('sf_web_dir').'/css/pdf.css');
	   $mpdf->WriteHTML($stylesheet,1);	// The parameter 1 tells that this is css/style only and no body/html/text
	   $mpdf->WriteHTML($html, 2);
	   $mpdf->Output('mpdf.pdf','D');
	}
J'ai nommé mon action PdfIndex car je veux faire un pdf de la vue index.
D'ailleurs, on spécifie à cette ligne l'action visée
Code :
$html = $this->getController()->getPresentationFor($this->getModuleName(), 'index');
Il suffit de se rendre sur www.projet.com/module/PdfIndex et l'action se lance et créé le pdf. La plupart du design et du css est gardé.
Maintenant, il se peut que ca mette du temps... La première fois, vu que je ne le savais pas, je pensais que ca ne marchait pas :s J'ai cherché et cherché quand au bout de 1min, le pdf est apparu en téléchargement Donc soyez patient si vous testez cette solution (ou si ca se peut, c'est mon site qui a un soucis.. Surtout qu'il est probablement pas optimisé vu que c'est le premier que je fais)

J'en arrive à mon problème, j'ai tenté de faire le même avec l'action show, qui me permet d'avoir une fiche technique de l'objet, mais sans succès...
Et c'est justement cette page la qui est demandé pour mon examen

Je sais pas trop comment m'y prendre pour le faire, j'ai bien tenté de mettre "show" à la place de "index" dans l'action à viser, mais quand je me rends sur www.projet.com/module/PdfShow, ca me dit
Code :
1
2
 
Fatal error: Call to undefined method sfRoute::getObject() in /var/www/examen/apps/frontend/modules/article/actions/actions.class.php on line 30
Si quelqu'un a une idée de comment je peux résoudre mon problème, je suis preneur
hardy021 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 11h52   #2
Invité de passage
 
Matthieu Fradcourt
Inscription : octobre 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : Matthieu Fradcourt

Informations forums :
Inscription : octobre 2010
Messages : 3
Points : 4
Points : 4
Hello,

Si tu veux juste voir le résultat de ton PDF dans une page web, il suffit de faire
Code :
1
2
3
 
$mpdf->Output('mpdf.pdf','I');
return sfView::NONE;
ça devrait fonctionner.
m.fradcourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h28.


 
 
 
 
Partenaires

Hébergement Web