wkhtmltopdf所有页面上的重复背景图像

时间:2014-07-15 10:09:02

标签: symfony pdf wkhtmltopdf

我正在努力为生成的PDF制作重复背景。

我有一个自动生成的证书,证书设计的框架应该在所有页面上重复...

我试过

.main_container{
   background: url({{ resourceDir ~ 'img/certificate_margin.jpg' }}) 0 0;
   padding-top:15px;
   z-index: 99;
   background-size: cover;
   width:658px;
   height:975px;
}

但在显示第一页后,我只获得内容和白页。 有没有人设法解决这个问题?或者甚至可以这样做?

我的配置文件:

knp_snappy:
    pdf:
        enabled:    true
        binary:     "%wkhtmltopdf_binary_path%"
        options:
            page-size: A4
            dpi: 150
            image-dpi: 150
            encoding: utf-8

和代码:

$unsignedPdfContent = $this->snappy->getOutputFromHtml(
    $this->templating->render(
        $this->getTemplate(), [
            'certificate' => $this->certificate,
            'resourceDir' => __DIR__.'/../Resources/public/'
        ]
    )
);

2 个答案:

答案 0 :(得分:0)

我成功地解决了#34;问题。

基于这个问题Why doesn't wkhtmltopdf page-break-after have any effect?我实际上强制页面在固定点之后手动中断并创建具有相同背景的新页面。

好吧,这是一个" hackish"方式,但它完成了工作...

现在我的代码看起来像这样

CSS

.main_container{
    background: url({{ resourceDir ~ 'img/certificate_margin.jpg' }}) 0 0;
    padding-top:15px;
    padding-left:5px;
    z-index: 99;
    background-size: cover;
    width:652px;
    height:975px;
    position:relative;
 }
.break{
        display: block;
        clear: both;
        page-break-after: always;
}

和树枝

...
<body>
<div class="main_container break" style='position:relative'>

    first page content 

    {% block body %}

    {% endblock %}

    {% include 'BlablaBundle:Pdf:_partial_certificate/_footer_contact.html.twig' with {'page': 'Seite 1/2'} %}
</div>

<div class="main_container" style='position:relative'>

    second page content

        {% include 'BlablaBundle:Pdf:_partial_certificate/_footer_contact.html.twig' with {'page': 'Seite 2/2'} %}
</div>
</body>
...

答案 1 :(得分:0)

在考虑了这个问题之后,我建议只委托给pdftk之类的东西,并为重复出现的背景图像使用相同的水印逻辑。

https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-multistamp