Bonsoir mes amis,
je travaille actuellement sur un projet (j'utilise la version 2.7 Sous Ubuntu 14.02) qui permet de gérer les statistiques ainsi que la génération des rapports. D’après la recherche que j'ai fais sur google, je trouve le bundle "KnpSnappyBundle" pour la réalisation d'un fichier PDF. Donc j'ai essayé de suivre ce tutoriel.
Voilà mon configuration:
1- installation avec les commandes suivantes:
2- L'activation de la bibliothèque dans AppKernel.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 composer require knplabs/knp-snappy-bundle composer require h4cc/wkhtmltopdf-amd64
3-config du KnpSnappy:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 new Knp\Bundle\SnappyBundle\KnpSnappyBundle(),
4- l'action dans le contrôleur;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #config knp_snappy: knp_snappy: pdf: enabled: true binary: "%kernel.root_dir%/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64"
4- Ma view :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 class DefaultController extends Controller { /** * Export to PDF all chapitres * */ public function pdfTousAction() { $html = $this->renderView('ChapitresBundle:Default:pdfTous.html.twig'); $filename = sprintf('test-demo.pdf', date('Y-m-d')); return new Response( $this->get('knp_snappy.pdf')->getOutputFromHtml($html), 200, [ 'Content-Type' => 'application/pdf', 'Content-Disposition' => sprintf('attachment; filename="demo"', $filename), ] ); } }
5- route de cette action;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>info</title> <!-- Base Css Files --> <link href="{{ asset('template/css/bootstrap.min.css') }}" rel="stylesheet" > <!-- Custom Files --> <link href="{{ asset('template/css/helper.css') }}" rel="stylesheet" type="text/css" > <link href="{{ asset('template/css/style.css') }}" rel="stylesheet" type="text/css" > </head> <body> <header class="print-header"> <div class="clearfix"></div> </header> <div> <div class="box mybadge etiquette printed-badge"> <div class="js-barcode"> <ul class="list-unstyled"> <li><strong> chapitre1</strong></li> <li><strong> date: 21-12-25</strong></li> </ul> </div> <div class="clearfix"></div> </div> <div class="clearfix"></div> </div> </body> </html>
6- j'ai testé s'il est bien installé sur ma machine ou non:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 chapitres_pdfAll: path: /pdfAll defaults: { _controller: "ChapitresBundle:Default:pdfTous" }
=>le message d'erreur lorsque exécute ce code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 wkhtmltopdf -V Name: wkhtmltopdf 0.9.9 License: Copyright (C) 2008,2009 Wkhtmltopdf Authors.
J'ai pas arrivé a résoudre ce probléme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 In vendor/knplabs/knp-snappy/src/Knp/Snappy/AbstractGenerator.php at line 336 - protected function checkProcessStatus($status, $stdout, $stderr, $command) { if (0 !== $status and '' !== $stderr) { throw new \RuntimeException(sprintf( 'The exit status code \'%s\' says something went wrong:'."\n" .'stderr: "%s"'."\n" .'stdout: "%s"'."\n" // message d'erreur The exit status code '1' says something went wrong: stderr: "Loading pages (1/6) [> ] 0% [===> ] 10% [===> ] 11% Warning: Failed to load file:///template/css/helper.css (ignore) Warning: Failed to load file:///template/css/style.css (ignore) [===] 100% Counting pages (2/6) [==] Object 1 of 1 Resolving links (4/6) [====] Object 1 of 1 Loading headers and footers (5/6) Printing pages (6/6) [> ] Preparing [=====] Page 1 of 1 Done Exit with code 1 due to network error: ContentNotFoundError " stdout: "" command: /home/syrine01/Desktop/SecurityInfo/app/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 --lowquality '/tmp/knp_snappy579c17164c2002.54204422.html' '/tmp/knp_snappy579c17164c3295.39775580.pdf
Merci de m'orienter vers la solution (correction de l'URL).
Partager