将Symfony捆绑包添加到Silex Framework


Add Symfony bundle to Silex Framework

我有一个Silex项目,我正试图用KnpSnapyBundle从一个树枝视图生成一个pdf文件。我的控制器中有以下代码:

$this->app['knp_snappy.pdf'] = new KnpSnappyBundle($this->app, $this->client);

然后我有这样的东西:

if ($request->get('print') == 'print') {
    $html = $body;
    return new Response(
        $app['knp_snappy.pdf']->getOutputFromHtml($html),
        200,
        array(
            'Content-Type'          => 'application/pdf',
            'Content-Disposition'   => 'attachment; filename="file.pdf"'
        )
    );
}

我有以下错误:Fatal error: Call to undefined method Knp'Bundle'SnappyBundle'KnpSnappyBundle::getOutputFromHtml()

你们能帮我解决这个问题吗?或者用Silex找到另一种从html获取pdf文件的方法(我尝试过domtopdf,它很有效,但它很难看,似乎不支持svg图像)。。。

也许我找到了另一种方法,但我想我也会遇到同样的问题。。。PdfBundle

KnpSnappyBundle只是SNappy库的包装器,因此尝试将其注入Silex应用程序是没有意义的。这不值得。

只需使用Snappy。将Pdf类注册为一个服务,它将按您期望的方式工作。

如果你不确定如何将这个SilexServiceProvider放入你的DI容器,你也可以检查它的Snappy。