Я создаю PDF для сайта наших клиентов. PDF-файл разбит на страницы для печати формата А4. В конце мне нужно вставить несколько существующих PDF-файлов.
Использование библиотеки FPDI работает нормально, за исключением случаев, когда вставленный PDF шире, чем ширина A4, он не масштабируется.
В документации я нашел 2 примера того, как это сделать, но ни один из них не дает:
Первый пример
$varPageId = $objPDF->ImportPage($intPageNumber);
$varTemplateSize = $objPDF->getTemplatesize($varPageId);
$objPDF->AddPage(
$varTemplateSize['orientation']
, $varTemplateSize
);
$objPDF->useImportedPage($varPageId);
Второй пример
$varPageId = $objPDF->ImportPage($intPageNumber);
$objPDF->AddPage();
$objPDF->useTemplate(
$varPageId
, ['adjustpageSize' => true]
);
Кто-нибудь знает, как я могу убедиться, что вставленный PDF-файл будет перемасштабирован и все содержимое будет отображаться в новом отредактированном PDF-файле?
Заранее спасибо!
Работает как положено. Вот реальный пример с использованием следующего кода:
<?php
require_once 'vendor/autoload.php';
$pdf = new \setasign\Fpdi\TcpdfFpdi();
$pageCount = $pdf->setSourceFile('p.pdf');
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
$pageId = $pdf->importPage($pageNo);
$s = $pdf->getTemplatesize($pageId);
$pdf->AddPage($s['orientation'], $s);
$pdf->useImportedPage($pageId);
}
$pdf->Output();
Других решений пока нет …