使用knp snappy bundle生成pdf - symfony2

时间:2014-02-26 08:35:22

标签: php git symfony pdf wkhtmltopdf

我是symfony2的新手,非常喜欢使用外部库。 我想使用我的第一个第三方软件包KNP Snappy Bundle

我完全按照git链接告诉了。

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

// app / AppKernel.php

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

应用程序/配置/ config.yml

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

然后我在 ACME 欢迎控制器中添加以下行以进行测试

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

它说 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".

我试过

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

显示 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".

我缺少什么?我需要安装什么吗?请描述我如何运行它并生成一个合适的pdf ?????我搜索,我猜我需要安装wkhtmltoimage等但是从哪里以及如何?

3 个答案:

答案 0 :(得分:7)

你也可以用作曲家管理wkhtmltopdf,我是在最近的一个项目中做到的:

你可以在你的composer.json中添加:

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

并在你的config.yml:

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

答案 1 :(得分:4)

几个月后,但这对我有所帮助。

我将转义为双引号的wkthmltopdf文件夹路径。

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

答案 2 :(得分:0)

你可以做其中一个

1-更新您的config.yml

 pdf:
    enabled:    true
    binary:     wkhtmltopdf
    options:    []
  • 并使用path/to/my/wkhtmltopdf
  • 更新您的Windows环境路径

2-或直接在config.yml中设置路径

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