我将mPDF和Ghostscript用作大型应用程序的一部分,其中is工作流是这样的:
在本地环境(MacOS)中,由于上传的文件是1.6版,因此转换后的文件大小几乎是原始文件的一半,新创建的文件大小也一样,但是在生产服务器(Ubuntu)中,甚至如果转换后的文件大小与本地文件大小相同,则新文件的大小是原来的10倍:(例如48MB与480MB)
这种差异可能是什么情况?
使用的代码如下:
$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);
答案 0 :(得分:0)
最后不是mPDF,而是Ghostscript。
稍有不同的版本(9.22与9.23)在此命令下会产生10倍大的文件
r_object_id codes
... 1,2,3,4,5
... 7,6,3,4,5
... 1,5,4,2,3