2014-02-26 49 views
2

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

我完全是在git链接中告诉的。

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

//应用程序/ 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等,但从哪里和如何?

+0

好吧,它看起来像你在Windows上,并且你指定了一个Linux路径......我假设你没有[download](http://wkhtmltopdf.org/)二进制文件。 – Touki

+0

@Touki安装了二进制文件。未能配置Windows的路径。二进制文件位于C:\ Program Files \ wkhtmltopdf \ bin中。所以我在config.php中显示了路径。它仍然说'退出状态码'1'表示出了点问题:stderr:''C:/ Program'不被识别为内部或外部命令,可操作程序或批处理文件。' – AtanuCSE

+0

向我们展示配置文件 –

回答

4

几个月后,但这是什么帮助我。

我把路径放到了wkthmltopdf文件夹中的转义双引号中。

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

你能做到这些

1-更新的一个你config.yml

pdf: 
    enabled: true 
    binary:  wkhtmltopdf 
    options: [] 
  • 和更新您的窗户,path/to/my/wkhtmltopdf

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

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

wkhtmltopdf位于C:\ Program Files \ wkhtmltopdf \ bin中,并使用它生成此'退出状态代码'1'表示出错: stderr:“'C:/ Program'不被识别为内部或外部命令, 可操作的程序或批处理文件。'和'二进制:wkhtmltopdf'它说'退出状态代码'1'说出了点问题: stderr:'''wkhtmltopdf'不被识别为内部或外部命令' – AtanuCSE

+0

我试图设置路径变量为bin文件夹和.exe文件,它们都不起作用。 – AtanuCSE

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

二进制代码在Windows中不起作用。 – parisssss