Различные размеры страниц в одном документе - PullRequest
0 голосов
/ 08 января 2019

Я использую DOMPDF для создания PDF документа. Работает хорошо, но документ имеет 4 страницы, все формата А4.

Например:

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

Для страниц 1,3 и 4 хорош формат А4. Для страницы 2 я хочу изменить размер страницы на A3.

Я надеюсь, что кто-нибудь может мне помочь.

1 Ответ

0 голосов
/ 16 февраля 2019

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

...