Я использую mPDF и Ghostscript как часть более крупного приложения, где рабочий процесс выглядит так:
- PDF загружается сторонним программным обеспечением
- Файл обнаружен и преобразован в PDF 1.4 (с помощью оболочки GhostScript: https://github.com/xthiago/pdf-version-converter)
- На основе преобразованного файла создается новый файл PDF
В локальной среде env (MacOS), поскольку загруженные файлы имеют версию 1.6, преобразованный файл имеет более или менее половину исходного размера, и то же самое относится к вновь созданному файлу, но на рабочем сервере (Ubuntu), даже если конвертированный имеет тот же размер, что и его локальный эквивалент, новый имеет в 10 раз больший размер: (например, 48 МБ против 480 МБ)
В чем может быть причина такой разницы?
Используемый код выглядит так:
$mPdf = new \Mpdf\Mpdf(array(
'dpi' => 300
));
$mPdf -> SetImportUse();
$pageCount = $mPdf -> SetSourceFile($productFileToCopy);
for ($i = 1; $i <= $pageCount; $i++) {
$importPage = $mPdf -> ImportPage($i);
$wh = $mPdf -> getTemplateSize($importPage);
$orientation = $wh['w'] > $wh['h'] ? 'L' : 'P';
$mPdf -> AddPageByArray(array(
'orientation' => $orientation,
'sheet-size' => array(
$orientation === 'L' ? $wh['h'] : $wh['w'],
$orientation === 'L' ? $wh['w'] : $wh['h'],
),
'margin-left' => 0,
'margin-right' => 0,
'margin-top' => 0,
'margin-bottom' => 0,
'margin-header' => 0,
'margin-footer' => 0,
));
$mPdf -> UseTemplate($importPage);
}
$mPdf -> Output($productFileFinal);