Using knp snappy bundle to generate pdf - symfony2

匿名 (未验证) 提交于 2019-12-03 02:28:01

问题:

I'm new to symfony2 and very to use external libraries. I want to use the KNP Snappy Bundle, my first third party bundle.

I did exactly that is told in the git link.

{     "require": {         "knplabs/knp-snappy-bundle": "dev-master"     } } 

// app/AppKernel.php

public function registerBundles() {     $bundles = array(         //...         new Knp\Bundle\SnappyBundle\KnpSnappyBundle(), 

app/config/config.yml

knp_snappy:     pdf:         enabled:    true         binary:     /usr/local/bin/wkhtmltopdf         options:    []     image:         enabled:    true         binary:     /usr/local/bin/wkhtmltoimage         options:    [] 

Then I added following line in ACME welcome controller to test

$this->get('knp_snappy.pdf')->generate('http://www.google.fr', '/Symfony/file.pdf'); 

It says The exit status code '1' says something went wrong: stderr: "The system cannot find the path specified. " stdout: "" command: /usr/local/bin/wkhtmltoimage --format "jpg" "http://www.google.fr" "/Symfony/file.pdf".

I tried

$this->get('knp_snappy.pdf')->generateFromHtml(     $this->renderView(         'AcmeDemoBundle:Welcome:index.html.twig'),         '/Symfony/file.pdf'     ); 

It shows The exit status code '1' says something went wrong: stderr: "The system cannot find the path specified. " stdout: "" command: /usr/local/bin/wkhtmltopdf --lowquality "C:\Windows\TEMP\knp_snappy530da4525584b8.92211088.html" "/Symfony/file.pdf".

What I'm missing? Do I need to install anything ? Please describe how can I run it and generate a proper pdf????? I searched, I'm guessing I need to install wkhtmltoimage etc. But from where and how?

回答1:

Few months later, but here is what helped me.

I put the path to wkthmltopdf folder in escaped double quotes.

knp_snappy:    pdf:       binary: "\"C:/Program Files (x86)/wkhtmltopdf/wkhtmltopdf.exe\"" 


回答2:

you can also manage wkhtmltopdf with composer too, I did it in a recent project:

in your composer.json you can add:

"h4cc/wkhtmltopdf-amd64": "0.11.0-RC1" 

and in your config.yml:

binary:     %kernel.root_dir%/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 


回答3:

You can do one of these

1- Update your config.yml

 pdf:     enabled:    true     binary:     wkhtmltopdf     options:    [] 
  • And update your windows environment PATH with path/to/my/wkhtmltopdf

2- Or set the path directly in config.yml

pdf:         enabled:    true         binary:     /path/to/my/wkhtmltopdf         options:    [] 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!