포스트스크립트 문서를 인쇄하기 위해 다음 Ghostscript 명령을 사용하고 있습니다.
C:\Program Files\gs\gs9.14\bin>gswin64c.exe -sDEVICE=mswinpr2 testprinter.ps
이 명령은 프린터를 변경하고, 인쇄 범위 및 매수를 지정하고 확인 및 취소 버튼을 사용할 수 있는 인쇄 대화 상자를 엽니다.
그러나 내 요구 사항은 Ghostscript가 인쇄 대화 상자를 억제하고 자동으로 인쇄하도록 하는 것입니다.
자동으로 인쇄할 수 있는 명령 스위치가 있습니까? 따라서 명령을 실행하면 프린터가 이를 인쇄할 수 있습니다.
Google이나 인터넷에서 사용할 수 있는 기타 다양한 Ghostscript 문서로부터 어떤 정보도 얻을 수 없었습니다. 그래서 친절하고 지식이 풍부한 분들에게 확인해 보고 싶습니다.슈퍼유저지역 사회.
답변1
에서 추출됨고스트스크립트 문서, MS Windows 프린터
-sOutputFile에 Windows 프린터 이름이 지정되지 않은 경우 Ghostscript는 표준 인쇄 설정 대화 상자를 사용하여 Windows 프린터를 묻는 메시지를 표시합니다. ...
예를 들어 Windows 프린터 이름이 "%printer%printer_name" 형식을 사용하여 -sOutputFile에 지정된 경우
gs ... -sOutputFile="%printer%Apple LaserWriter II NT"
그런 다음 Ghostscript는 메시지를 표시하지 않고 Windows 프린터를 열려고 시도합니다(물론 프린터가 FILE:에 연결된 경우는 제외).
최종 프로세스의 작동 방식에 따라 -dBATCH
및 -dNOPAUSE
스위치 도 필요할 수 있습니다.
노트: %printer%
는 Ghostscript의 리터럴이지만 구문은 변수 읽기 작업으로 cmd
간주되는 파서 와 충돌합니다.%printer%
배치 파일 내에서 백분율 기호를 두 배로 늘려( %%printer%%
) 이스케이프할 수 있지만 명령줄 모드에서는 따옴표로 묶인 문자열 안에 있는 경우 백분율 기호를 이스케이프할 수 있는 방법이 없습니다(문서에 표시된 대로 공백을 처리하는 데 필요함). 인수).
명령줄 모드에는 두 가지 대안이 있습니다:
- 환경 변수가 존재하지 않는지 확인하십시오
printer
(존재하지 않는 경우 읽기 작업이 실행되지 않고%printer%
최종 실행된 명령에 리터럴이 유지됩니다). - 읽기 작업이 실행될 때 결과 명령이 정확하도록 일부 환경 변수를 정의합니다.
몇 가지 명령줄 예:
rem ensure the variable does not exist
set "printer="
gs ... -sOutputFile="%printer%Apple LaserWriter II NT"
rem store the full literal
set p=%^printer%
gs ... -sOutputFile="%p%Apple LaserWriter II NT"
rem store the percent sign
set "p=%"
gs ... -sOutputFile="%p%printer%p%Apple LaserWriter II NT"