在snappy

时间:2017-08-25 11:28:45

标签: symfony twig snappy

我想在snappy生成的pdf中添加一个图像,但没有任何内容出现

在我的树枝上:

我在我的数据库中保存文件的名称,survey.event.image包含图像的名称

<div style="margin-top: 26px; width: 200px">

    <img   src="{{ asset('uploads/imagesFile/'~survey.event.image) }}" id="imgEvent">

</div>

我启用了images =&gt; true

return new Response(
    $this->get('knp_snappy.pdf')->getOutputFromHtml($html,array(
        'default-header'=>null,
        'encoding' => 'utf-8',
        'images' => true,
        'enable-javascript' => true,
        'margin-right'  => 7,
        'margin-left'  =>7,
        'javascript-delay' => 5000
    )),
    200,
    array(
        'Content-Type'          => 'application/pdf',
        'Content-Disposition'   => 'attachment; filename="file1.pdf"'
    )
);

4 个答案:

答案 0 :(得分:0)

尝试使用absolute_url获取绝对资产网址

<div style="margin-top: 26px; width: 200px">

<img   src="{{ absolute_url(asset('uploads/imagesFile/'~survey.event.image)) }}" id="imgEvent">

答案 1 :(得分:0)

使用absolute = true作为图片的路径。

<img src="{{ asset('uploads/imagesFile/'~survey.event.image, , absolute=true) }}" id="imgEvent">

答案 2 :(得分:0)

以防万一有人仍在寻求解决方案。 在我的 Laravel 8 中,我能够加载图像,但在下载图像时需要一段时间才能加载,然后无法下载。我正在使用 snappy 进行 pdf 生成和下载。

这是我解决它的方法。

从这里

<img src="{{asset('assets/images/czm/bismillah.png')}}" width="10%" alt="">

为此。我只是删除了 Laravel 默认资产并将图像转换为 base64。

<img src="{{'data:image/png;base64,'.base64_encode(file_get_contents(public_path('assets/images/czm/bismillah.png')))}}" width="180"/>

您可以找到更多here

答案 3 :(得分:-1)

也许图像路径错误,试试这个:

SELECT DATE '2016-06-07' FROM DUAL UNION ALL
SELECT DATE '2016-06-08' FROM DUAL UNION ALL
SELECT DATE '2016-06-09' FROM DUAL UNION ALL
SELECT DATE '2016-06-10' FROM DUAL UNION ALL
SELECT DATE '2016-06-11' FROM DUAL UNION ALL
SELECT DATE '2016-06-12' FROM DUAL UNION ALL
SELECT DATE '2016-06-13' FROM DUAL UNION ALL
SELECT DATE '2016-06-14' FROM DUAL UNION ALL
SELECT DATE '2016-06-15' FROM DUAL;

并在config.yml中添加:

<div style="width: 200px; height: auto;">
  <img src="{{ pathToWeb }}/uploads/imagesFile/image.jpg" alt="img">
</div>