可以用ghostscript显示渲染PS文件的进度吗?

Posted

技术标签:

【中文标题】可以用ghostscript显示渲染PS文件的进度吗?【英文标题】:it is possible to show progress of rendering PS file with ghostscript? 【发布时间】:2018-12-07 05:04:54 【问题描述】:

我正在使用 GhostScript.NET for C# 将 PDF 转换为 PostScript(ps2write 设备),我想显示渲染进度 (processor.StartProcessing()),因为大文件需要很长时间

我知道 mswinpr2 显示渲染进度,但 ps2write 没有。

可以用 ps2write 做到这一点吗?

【问题讨论】:

【参考方案1】:

PostScript 程序可以是任意长度,而且确实因为它们是程序,所以完全可以从磁盘读取整个程序,但仍然需要做大量工作才能产生输出。

mswinpr2 设备的所有进度表明的是到目前为止已读取程序的百分比,这是相当可靠的,但不是 100% 准确。

一般来说,ps2weite 设备实际上根本不渲染。它解释输入,创建一系列图形基元,然后用于创建新的 PostScript 程序。

由于无法知道 PostScript 程序何时(或者实际上是否)会达到暂停状态,因此您无法判断进度。

如果输入的是 PostScript 程序,那么您可以一次输入一部分程序,并以读取量/文件大小 * 100 来计算进度。

如果输入的是 PDF 文件,则不能这样做,因为 PDF 解释器需要随机访问整个文件。

总结一下;如果输入是 PostScript,那么您可以计算一种进度,如果输入是 PDF,那么就没有实际的方法来确定进度。您可以做的最好的事情是确定 PDF 文件中的页数并计算到目前为止已处理的页数。

【讨论】:

感谢解释 Ghostscript 可以知道处理了多少页?

以上是关于可以用ghostscript显示渲染PS文件的进度吗?的主要内容,如果未能解决你的问题,请参考以下文章

从PS中创建PDF时,用Ghostscript去除白色背景。

适用于 Windows 的 PDFCreator 和 Ghostscript - 是不是可以监控进度?

Ghostscript将ps与pdf文件合并并添加第一行(标题)

通过 Ghostscript 将 PS 文件转换为 PDF/A,色彩空间问题

ghostscript 将 ps 文件转换为 pcl 丢失托盘设置

使用 ghostscript 将 .ps 转换为 .pcx