来自HTML的新页面kartik \ mpdf(Yii2)

时间:2016-06-01 10:38:04

标签: pdf yii2 pdf-generation mpdf

我有问题。如何将新页面从HTML添加到PDF?

我会马上说我不知道​​为什么,但是解决方案如:

<pagebreak />

h1 {page-break-before: always}

不能正常工作。

我的PHP代码:

$pdf = new Pdf([
    'mode' => Pdf::MODE_UTF8,
    'format' => Pdf::FORMAT_A4,
    'orientation' => Pdf::ORIENT_PORTRAIT,
    'destination' => Pdf::DEST_FILE,
    'filename' => $path,
    'content' => $content,
    'cssInline' => '.font_next{font-family:DoodlePen}table{border-collapse:collapse;width:100%}td{border:1px solid #000}',
]);
return $pdf->render();

有没有人有这方面的经验并可以帮到你?

2 个答案:

答案 0 :(得分:4)

docs看起来您可以像HTML一样使用

<pagebreak />
or
<tocpagebreak />

PHP

$mpdf->AddPage();
$mpdf->TOCpagebreak();

但是你已经说过你试过html并且没有用。 Maybe you have a parent element with float

答案 1 :(得分:2)

好的,它有效。

我使用这种方法:https://davidwalsh.name/css-page-breaks

在HTML中:

<div className="page-break"></div>

在PHP中:

$pdf = new Pdf([
    'mode' => Pdf::MODE_UTF8,
    'format' => Pdf::FORMAT_A4,
    'orientation' => Pdf::ORIENT_PORTRAIT,
    'destination' => Pdf::DEST_FILE,
    'filename' => $path,
    'content' => $content,
    'cssInline' => '
        @media all{
            .font_next{font-family:DoodlePen}table{border-collapse:collapse;width:100%}td{border:1px solid #000}.page-break {display: none;}
        }
        @media print{
            .page-break{display: block;page-break-before: always;}
        }
    ',
]);
return $pdf->render();