Файл PDF имеет большую ширину, чем обычно.
$pagecount = $mpdf->SetSourceFile($pdfurl);
for($x=0;$x<$pagecount;$x++){
$tplId = $mpdf->ImportPage(($x+1));
$mpdf->UseTemplate($tplId);
$mpdf->AddPage();
}
Большинство PDF-файлов отображается хорошо, но при большой ширине отображается только его часть.
0
hulkyuan
14 Мар 2018 в 09:50
2 ответа
Лучший ответ
Спасибо @ Jan. Ваш код не работает у меня идеально, но укажите мне правильное направление.
for($pageNo = 1; $pageNo <= $pageCount ; $pageNo++){
$tplId = $mpdf->ImportPage($pageNo);
$size = $mpdf->GetTemplateSize($tplId);
$w=210;
if($size['w'] > $size['h']){
$w=299;
}
$mpdf->AddPageByArray([
'orientation' => $size['w'] > $size['h'] ? 'L' : 'P'
]);
$mpdf->UseTemplate($tplId,0,0,$w);
}
Но у моего решения возникла проблема: альбомный режим немного уменьшит размер PDF.
0
hulkyuan
15 Мар 2018 в 08:22
В вашем коде есть несколько проблем:
- Вы вызываете UseTemplate () перед добавлением страницы.
- Метод AddPage () добавляет страницу с размером страницы по умолчанию, который был определен в конструкторе.
Итак, вам нужно изменить свой сценарий на:
$pageCount = $mpdf->SetSourceFile($pdfurl);
for($pageNo = 1; $pageNo <= $pageCount ; $pageNo++){
$tplId = $mpdf->ImportPage($pageNo);
$size = $mpdf->GetTemplateSize($pageNo);
$mpdf->AddPageByArray([
'orientation' => $size['w'] > $size['h'] ? 'L' : 'P',
'newformat' => [$size['w'], $size['h']]
]);
$mpdf->UseTemplate($tplId);
}
1
Jan Slabon
14 Мар 2018 в 11:54
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.