将 Symfony 包添加到 Silex 框架

Add Symfony bundle to Silex Framework

我有一个 Silex 项目,我正在尝试使用 KnpSnappyBundle 从树枝视图生成 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 class 注册为一项服务,它会按您预期的方式工作。

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