【问题标题】:How to improve Ghostscript performance on scaling operation?如何提高 Ghostscript 在缩放操作上的性能?
【发布时间】:2019-11-27 09:30:26
【问题描述】:

对于我参与的项目,我需要调整和翻译 PDF 的内容 我正在使用 Ghostscript 来实现这个目标。 问题是速度随着页数的增加而降低: 对于 2 页的 PDF,调整大小操作持续 0.6 秒,而对于 100 页的 PDF,经过的时间为 10 秒。 如何提高 Ghostscript 的性能?

我在cpdf之前用过,速度很快,但没有保留超链接和其他元数据。

   \"/usr/bin/gs\" -q -dNOPAUSE  -dBATCH -sDEVICE=pdfwrite -dSAFER -dAutoFilterColorImages=false  -dPrinted=false -dCompatibilityLevel=1.7 -dPDFSETTINGS=/default -dSubsetFonts=true -dEmbedAllFonts=true -dDEVICEWIDTHPOINTS=**PDF_WIDTH** -dDEVICEHEIGHTPOINTS=**PDF_HEIGHT** -sOutputFile=**OUTPUT_PDF** -c \"80000000 setvmthreshold\" -c \"<</BeginPage{**SCALE_FACTOR** **SCALE_FACTOR** scale **TRANSLATE_X** **TRANSLATE_Y**}>> setpagedevice\" -f **INPUT_PDF**

【问题讨论】:

    标签: ubuntu pdf pdf-generation ghostscript


    【解决方案1】:

    首先,如果没有看到导致您出现问题的文件类型的示例,任何人都无法提出建议。您提出这个问题的原因可能有很多。

    最一般的解释是:

    在创建PDF文件的过程中,pdfwrite设备在内存中维护着相当数量的数据,将大量的中间数据写入磁盘上的少量临时文件中。

    由于各种原因,设备需要在这些临时文件中来回查找(尤其是检查可以作为单个对象发出的重复条目)。随着文件大小的增加,寻道时间会减少。

    此外,内存中保存着多种元数据,出于各种原因,这些元数据也需要检查。其中一些以复杂的结构保存,随着元素(页面、表单、图案、xobjects、色彩空间、字体等)数量的增加,遍历这些需要更多时间。随着数量的增加,即使是简单的数据对象也需要时间来检查。

    简而言之,你无能为力,随着元素数量的增加,性能或多或少呈线性下降。

    由于您提到了一个“项目”,请注意 Ghostscript 是根据 AGPL v3 提供的,您可能需要在继续之前检查您的使用是否符合该许可的条款。

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 2016-11-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多