Python 我如何判断命令行将打印多少页?

Python 我如何判断命令行将打印多少页?,python,printing,lpr,Python,Printing,Lpr,我目前正在使用lpr从命令行打印。 我也在使用python后端 我能看到一个特定文件要打印/已经打印多少页吗 除了通过RIP(光栅图像处理器)传递作业外,没有简单的方法来完成。在Linux和Unix世界中,打印作业作为PostScript文件传递。PostScript实际上是一种成熟的图灵完整编程语言。也就是说,这一原则适用于他们 因此,唯一的选择是将其通过PostScript RIP(光栅图像处理器)并查看有多少页面从中出来;不要忘记添加一些超时 Ghostscript就是这样一个RIP,它提

我目前正在使用lpr从命令行打印。 我也在使用python后端


我能看到一个特定文件要打印/已经打印多少页吗

除了通过RIP(光栅图像处理器)传递作业外,没有简单的方法来完成。在Linux和Unix世界中,打印作业作为PostScript文件传递。PostScript实际上是一种成熟的图灵完整编程语言。也就是说,这一原则适用于他们

因此,唯一的选择是将其通过PostScript RIP(光栅图像处理器)并查看有多少页面从中出来;不要忘记添加一些超时

Ghostscript就是这样一个RIP,它提供了一个空页输出设备,它主要用于计算页面。使用以下命令行

timeout 120s gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=nullpage <file> \
| egrep '^Page' \
| wc -l
timeout 120s gs-dNOPAUSE-dBATCH-dSAFER-sDEVICE=nullpage\
|egrep“^Page”\
|wc-l
第一个命令使用
timeout
命令调用Ghostscript,它不等待用户输入,一次处理整个文件,禁用已知的不安全功能,并且不生成光栅输出。这条管道进入grep,在
gs
的诊断输出中查找从
Page
开始的行;每一页产生一行这样的内容。最后,通过
wc
来计算匹配的总行数。如果
gs
在120秒后未完成,则会中止

请注意,这仍然容易受到恶意PostScript文件的影响(即使使用
-dSAFER