一个文档中的页面大小不同

时间:2019-01-08 14:43:45

标签: php pdf dompdf

我使用DOMPDF来创建PDF文档。效果很好,但是文档有4页,大小均为A4。

例如:

Page 1 = Intro
Page 2 = Big table with alot of information
Page 3 = Outro
Page 4 = Logo

对于第1,3和4页,A4尺寸合适。对于第二页,我想将页面大小更改为A3。

我希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

Dompdf尚不支持此类功能。为了实现这样的目标,您需要使用Dompdf分别渲染每个片段,然后使用外部libmergepdf(或some other method)库将它们组合起来。

当然,这假设您可以轻松地将文档拆分为单独的HTML文件。

一些(伪ish)代码:

<?php
use Dompdf\Dompdf;
use iio\libmergepdf\Merger;
use iio\libmergepdf\Pages;

$dompdf = new Dompdf();
$dompdf->loadHtml("a4section.html");
$dompdf->setPaper("a4");
$dompdf->render();
file_put_contents('a4section.pdf', $dompdf->output());
unset($dompdf);

$dompdf = new Dompdf();
$dompdf->loadHtml("a3section.html");
$dompdf->setPaper("a3");
$dompdf->render();
file_put_contents('a3section.pdf', $dompdf->output());

$merger = new Merger;
$merger->addIterator(['a4section.pdf', 'a4section.pdf']);
$createdPdf = $merger->merge();
?>

对于使用单个HTML文档的此类功能有相关的增强要求,但没有实施时间表。参见https://github.com/dompdf/dompdf/issues/498