如何从 postscript 文件(由 Opera 生成)确定页数?

Joe*_*Joe 2 opera bash printing postscript

我不知道后记语言。

我有一个用 bash 编写的双面打印仿真系统。它先打印奇数页,然后打印偶数页。它需要知道是否有奇数页数,以便它可以弹出最后一个没有相应偶数面的奇数页。它还使用页数进行报告。

我不知道如何正确执行此操作,因此我编写了查看结尾的代码,如有必要,还会查看 postscript 文件的开头,搜索“%%Pages:”,然后是页数。这几乎适用于除 Opera 浏览器打印的文件之外的所有内容。

任何人都可以提出另一种获取此信息的方法吗?

Postscript 文件往往相当大,有很多非人类可读的内容,所以我还没有花很多时间来介绍 Opera 中的那些。

TIA

当前代码位于:

http://sourceforge.net/projects/duplexpr/

function ps_page_ct
Run Code Online (Sandbox Code Playgroud)

mou*_*iel 5

不幸的是,没有简单的方法可以在原始 Postscript 文件中查找页面。这就是%%Pages创建约定(Adobe Document Structuring Conventions)的原因。

发出页面的命令是showpage。在简单的情况下,你只需要计算它们。

但是这个命令可以嵌入到函数体中,然后你需要一个 Postscript 解析器。


Kur*_*fle 5

以下 Ghostscript 命令将可靠地计算 PostScript 文件中的页数——但它可能相当慢,因为它需要完全解释(运行)文件,正如@afrazier 已经在评论中所述:

gs \
 -o /dev/null \
 -sDEVICE=bbox \
  input.ps 2>&1 \
| grep HiResBoundingBox \
| wc -l
Run Code Online (Sandbox Code Playgroud)