2017-02-25 8 views

답변

2

RIP (Raster Image Processor)를 통해 작업을 전달하는 것보다 쉬운 방법은 없습니다. Linux 및 Unix에서 인쇄 작업은 PostScript 파일로 전달됩니다. PostScript는 실제로 완벽하게 구현 된 Turing 완전한 프로그래밍 언어입니다. 즉, Halting Problem이 적용됩니다.

그래서 유일한 옵션은 PostScript RIP (래스터 이미지 프로세서)를 통과 시켜서 얼마나 많은 페이지가 나오는지 확인하는 것입니다. 시간 초과를 추가하는 것을 잊지 마십시오.

Ghostscript는 그런 RIP이며 null 페이지 출력 장치를 제공합니다. 이는 주로 페이지 계산에 적합합니다. 첫 번째 명령이 사용자 입력을 기다리지 않습니다하는 방식으로 에게 고스트를 호출 timeout 명령을 사용하여 다음 명령 줄

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

를 사용하여, 하나에 전체 파일을 처리하지 않습니다 알려진 안전하지 않은 기능과 생산 래스터 출력 없음. 이 파이프를 grep으로 연결하면 진단 출력의 라인이 gs이고 Page으로 시작합니다. 하나의 라인이 각 페이지에 대해 생성됩니다. 마지막으로 일치하는 총 줄 수를 계산하려면 wc을 통해 파이프됩니다. 120 초 후에 gs이 끝나지 않으면 중단됩니다.

여전히 악의적 인 포스트 스크립트 파일 (-dSAFER 포함)의 영향을 받기 쉽습니다.