php - 一个文档中的不同页面大小
问题描述
我使用 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。
我希望有人可以帮助我。
解决方案
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
推荐阅读
- forms - JS window.onload 没有加载我的函数
- android-studio - ANDROID_SDK_ROOT=undefined(推荐设置)同时使用 Cordova for Android 设备构建离子应用程序
- python - 运行我的代码时出现“keyerror:0”
- flutter - 如何在颤动中单击时制作包含网格项目的下拉菜单
- ios - 这是糟糕的编程风格吗?
- c# - 用于 Unity 的 Visual Studio Code 智能感知不起作用
- javascript - 如何从 mongodb 中的文档数组中提取嵌套文档?
- ansible - 在 Ansible 任务中动态输出 YAML 列表
- excel - 是否有简单的“hello world”示例 Office 365 Excel 加载项指南?
- r - R:如何识别按ID分组的变量的特定值的第一次出现