首页 > 解决方案 > 一个文档中的不同页面大小

问题描述

我使用 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 尺寸很好。对于第 2 页,我想将页面大小更改为 A3。

我希望有人可以帮助我。

标签: phppdfdompdf

解决方案


Dompdf 还不支持这种类型的功能。要实现这样的目标,您需要使用 Dompdf 分别渲染每个段,然后使用外部库(例如libmergepdf其他方法)将它们组合起来。

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

一些(伪)代码:

<?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


推荐阅读