【问题标题】:MPDF different file sizes per operating system每个操作系统的 MPDF 文件大小不同
【发布时间】:2019-02-05 09:21:05
【问题描述】:

我正在使用 mPDF 和 Ghostscript 作为大型应用程序的一部分,其工作流程如下:

  1. PDF 由第三方软件上传
  2. 检测到文件并将其转换为 PDF 1.4(通过 GhostScript 包装器:https://github.com/xthiago/pdf-version-converter
  3. 根据转换后的文件生成一个新的 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


【解决方案1】:

终于不是 mPDF,而是 Ghostscript。

稍有不同的版本(9.22 与 9.23)在此命令下会产生 10 倍大的文件

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE  -dBATCH -dColorConversionStrategy=/LeaveColorUnchanged -dEncodeColorImages=false -dEncodeGrayImages=false -dEncodeMonoImages=false -dDownsampleMonoImages=false -dDownsampleGrayImages=false -dDownsampleColorImages=false -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode

【讨论】:

  • 你是说9.22更大还是更小?我怀疑任何人都可以在没有看到原始文件的情况下提供帮助。
  • @KenS 9.22 版无论原始文件如何都会产生 10 倍大的文件
  • 那么在这种情况下,请使用 9.23 :-) 如果没有看到原始文件,我仍然无法真正发表评论,无法判断是什么原因导致旧版本生成更大的文件。跨度>
猜你喜欢
  • 2013-12-05
  • 2018-10-21
  • 2020-01-16
  • 1970-01-01
  • 2011-06-21
  • 2013-07-29
  • 2015-07-17
  • 2014-05-23
相关资源
最近更新 更多