当内容达到一定宽度时,mPDF将创建一个额外的空白页。我如何摆脱多余的空白页?

时间:2020-06-25 03:01:37

标签: mpdf

我在使用mpdf时遇到此问题,如果某些文本碰到页面的最后一行,则会创建一个额外的空白页面。

我已经尝试了100万件事,但似乎无法弄清楚。我想要一种确定的方法,以确保我的pdf文件中没有空白页。

因此,我想知道我的HTML中是否包含{PAGEEND}标签或某些标签,以使mPDF这是页面的结尾,并且不要在该页面之后创建页面。我没有在文档中看到任何东西。

这是我的mpdf配置中的内容:

$mpdf = new \Mpdf\Mpdf([
    'format' => 'A4',
    'margin_left' => 0,
    'margin_right' => 0,
    'margin_top' => 6,
    'margin_bottom' => 20,
    'margin_header' => 5,
    'margin_footer' => 5
]);

if ( isset( $_REQUEST['css_files'] ) ) {
    $css_files = $_REQUEST['css_files'];
    if ( is_array($css_files) ) {
        foreach ( $_REQUEST['css_files'] as $cssurl ) {
            $stylesheet = file_get_contents($cssurl);
            $mpdf->WriteHTML($stylesheet,1);
        }
    }
}

$mpdf->useSubstitutions = false; // optional - just as an example
$mpdf->simpleTables = false;
$mpdf->SetAuthor("My Website");
$mpdf->SetDisplayMode('fullpage');
$mpdf->setAutoBottomMargin = 'stretch';
$mpdf->SetHTMLFooter('<div width="90%" align="right">{PAGENO}</div>');
$mpdf->setBasePath($url);
$mpdf->WriteHTML( $html );
$mpdf->Output($title . ".pdf", 'D'); exit;

我将下边距设置为20mm,以使内容不会与页脚冲突。

css_files是从我的模板接收到的数组。 CSS文件是网站样式和打印样式表。我正在加载它们并将它们应用于页面。

我已经尝试在整个print.css上撒上page-break-after: avoid;,但是我仍然得到那讨厌的额外空白页。

我也经历了并清除了所有多余的底部边距,但这似乎无济于事。

1 个答案:

答案 0 :(得分:0)

经过数小时的故障排除,结果发现这完全是愚蠢的。

发生的事情是我的“打印到pdf”按钮正在第4页上打印。我看不到它,因为它在pdf中的白色背景上有白色文本。

直到我将生成的pdf分享到Teams中后,我们才看到了文字。我们有一个条件,就是我们设置为从pdf中不需要的页面中删除html。

请记住,带有“打印到pdf”按钮的表单被包装在div中,上面带有“ hidden-print”类,并且按钮本身也带有“ hidden-print”类。不知道为什么它没有在页面的这一元素上采用这种风格。因此,将其从代码中删除是最好的选择。

相关问题