【发布时间】:2019-02-05 09:21:05
【问题描述】:
我正在使用 mPDF 和 Ghostscript 作为大型应用程序的一部分,其工作流程如下:
- PDF 由第三方软件上传
- 检测到文件并将其转换为 PDF 1.4(通过 GhostScript 包装器:https://github.com/xthiago/pdf-version-converter)
- 根据转换后的文件生成一个新的 PDF 文件
在本地环境 (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);
【问题讨论】:
-
@jww 感谢您的澄清,但由于我认为问题在于 mPDF PHP 库以及如何根据操作系统对其进行配置,那么这可能是问题所在。
-
@jww 你是对的,我会编辑我的问题。谢谢
标签: php linux macos ghostscript mpdf