2017-02-25 67 views

回答

2

短傳工作通過RIP(光柵圖像處理器)有沒有簡單的方法來做到這一點的。在Linux和Unix世界中,打印作業作爲PostScript文件傳遞。 PostScript實際上是一種完全成熟的圖靈完整編程語言。這意味着Halting Problem適用於他們。

所以,唯一的選擇是通過在PostScript RIP(光柵圖像處理器),通過它,看看有多少頁面打印出來的它;不要忘記添加一些超時。

Ghostscript的是這樣的RIP,它提供了一個nullpage輸出設備,它是計數的網頁大多不錯。使用下面的命令行

timeout 120s gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=nullpage <file> \ 
| egrep '^Page' \ 
| wc -l 

第一命令使用timeout命令調用Ghostscript的的方式,其不等待用戶輸入,處理在一個整個文件,禁用已知不安全的特徵和產生沒有光柵輸出。此管拉入的grep尋找的gs診斷輸出開始Page線;爲每個頁面生成一條這樣的行。最後,通過wc傳送來計算匹配的總行數。如果gs在120秒後未完成,則會中止。

注意,這仍然容易受到惡意的PostScript文件(即使-dSAFER)。