dompdf,生成的pdf第一页显示空白页

问题描述 投票:0回答:1

我使用 dompdf 为参与者创建数字证书。 PDF创建成功,但是有一个问题,生成的PDF在第一页上显示了一个空白页,这是不应该存在的。

如果我回显 html 代码,则没有错误并且它会按我想要的方式显示

这是我创建的代码:

            ....

            $html='
            <!doctype html>
            <html lang="en">
            <head>
                <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
            </head>
            <style>
                @page{margin:0px;}
                @font-face {
                  font-family: "Tangerine_Regular";
                  font-style: normal;
                  font-weight: 500;
                  src: url("https://qrcode.ffpm-iafmi.com/sertifikat/Tangerine_Regular.ttf") format("truetype");
                }
                body{margin:0px;}
                #bgs{
                    width:841pt;
                    height:595pt;
                    background:url(bg1.png);
                    background-size:contain;
                    background-repeat:no-repeat;
                    padding-top:345px;
                    text-align:center;
                    font-family:arial;
                    line-height:1;
                    overflow:hidden;
                    left: 0px; 
                    top: 0px;
                    right: 0px;
                    bottom: 0px;
                }
                #spk{
                    width:841pt;
                    height:595pt;
                    background:url(bg2.jpg);
                    background-size:contain;
                    background-repeat:no-repeat;
                }
                .names{
                  font-family: "Tangerine_Regular", serif;
                  font-size:70px;
                  font-weight:500;
                  color:#192489;
                }
            </style>
            <body>
                <div id="bgs">
                    <span class="names"><u>'.$name.'</u></span><br/>
                    <span style="font-size:22px;"><i>'.$roles.'</i></span>
                </div>
                <div id="spk"></div>
            </body>
            </html>';
            
        $dompdf->loadHtml($html);
        $dompdf->set_option('isRemoteEnabled',true);
        $dompdf->set_paper(array(0,0,841,595));
        $dompdf->render();
        $dompdf->stream("e-Certificate for ".$name);
        //echo $html;
    }

我的脚本中缺少什么?

php html dompdf
1个回答
0
投票

我已经设法找到了我的问题的解决方案,看来问题出在样式的编写上(padding-top:345px)。 因此,我删除了样式,并在第一个 div 内放置了一个 div,样式高度为:345px。第一个空白页消失了。

这是我使用的设置 1.去掉padding-top样式:

#bgs{
    width:841pt;
    height:595pt;
    background:url(bg1.jpg);
    background-size:contain;
    background-repeat:no-repeat;
    text-align:center;
    font-family:arial;
    line-height:1;
}

2.然后在第一个div内放置一个div,样式高度:345px

<div id="bgs">
    <div style="width:1000px;height:345px;"></div>
    <span class="namanya"><u>'.$name.'</u></span><br/>
    <span style="font-size:22px;"><i>'.$roles.'</i></span>
</div>
<div id="spk"></div>

所以,在我看来,margin 和 padding 的使用存在问题

© www.soinside.com 2019 - 2024. All rights reserved.