문제

내 앱에서 PostScript에 데이터를 저장하면 Ghostview에서 문제없이 볼 수있는 PostScript 파일이 발생하지만 인쇄하려고하면 프린터가 유효하지 않은 것처럼 보이기 때문에 인쇄 할 수 없습니다.

실제로 프린터로 보내지 않고 Postscript 파일에서 오류를 유효성있게 찾아서 찾을 수있는 방법이 있습니까? 선호하는 Java API/Library는 선호되지만 동일한 프로그램도 괜찮을 것입니다.


#1 편집 : 아니오 나는 그것이 유효하지 않은 이유를 모르고, 반드시 유효하지 않은 경우에도 반드시 고스트 뷰 밖에서 그것을 검증하거나 인쇄 할 수 없을 때 무슨 일이 일어나고 있는지 알아낼 수 있기를 원합니다.


대답 : PS2PS 트릭을 사용하여 PostScript가 수행하는 출력을보고 차이점을 확인할 수있었습니다. 차이점은 Postscript에서 이미지의 너비 또는 높이에 대해 소수점 숫자를 가질 수 없다는 것이 아니라 오히려 정수만을 가질 수 있다는 것입니다. 그래서 나는 여전히 검증 방법을 찾지 못했지만이 방법은 내 문제에 충분했습니다. 감사.

도움이 되었습니까?

해결책

Ghostview에서 볼 수 있다면 Ghostscript가 그것을 구문 분석 할 수 있음을 의미합니다.

따라서 파일을 인쇄 (실제로 유효성을 검사하지 않기 위해)를 사용해 볼 수있는 한 가지 트릭은 GhostScript의 PostScript 출력 모드를 사용하는 것입니다 (래퍼가 호출되는 래퍼가 있습니다. ps2ps 주로 추가하는 것입니다 -sDEVICE=pswrite; 도 있습니다 ps2ps2 사용하는 -sDEVICE=ps2write).

다른 팁

실제로 렌더링 된 페이지 이미지를 보지 않고 GhostScript를 사용하여 Postscript 파일을 검증해야 할 때마다 "NullPage"장치를 사용합니다.

gswin32c ^
   -sDEVICE=nullpage ^
   -dNOPAUSE ^
   -dBATCH ^
   c:/path/to/file/to/be/validated.pdf-or-ps ^
   1>validated.stdout ^
   2>validated.stderr

문제가 발생하면 0이 아닌 %errorlevel% 세트 validated.stderr 로그 파일에는 렌더링 중에 고스트 스크립트가 뱉어 져 모든 메시지가 포함됩니다.

왜 유효하지 않은지 아십니까?

내 제안은 그것을 고스트 스크립트/Ghostvoiew에 공급하는 것이었지만 고스트 뷰가 볼 수 있으면 적어도 일부 통역사는 그것이 유효한 PostScript라고 생각하는 것 같습니다.

따라서 프린터에 특정한 것일 수 있습니다. Ghostscript가 허용하는 PS의 무언가에 대해 까다 롭거나 프린터 (파일 시스템)에 존재하지 않는 것에 액세스하거나 메모리 한계를 초과하거나 ... 또는 ...

요점은 그것이 잘못된 PS 프로그램이 아닐 수도 있고,이를 확인하는 라이브러리/API가 도움이되지 않을 수 있다는 것입니다.

편집 : 인쇄가 있습니까? 다른 제조업체 (또는 Postscript 통역사의 공급 업체)에서 프린터를 사용해 보셨습니까? Ghostview는 경고 나 오류를 제공/로그에 제공합니까?

문서는 어디에서 (응용 프로그램) 어디에서 시작합니까?

문서의 다른 인스턴스를 생성 할 수 있습니까? (예 : 정말 간단/빈 사람이 오류가 발생하는지 확인하십시오)

프린터에 사용되는 특정 통역사에 대한 액세스 권한을 제공하는 API가 없다면 나는 당신을 생각합니다. ~이다 다른 PS 인터프리터 (GhostScript)에 대해 확인합니다.

전 세계에 PS 클론이 많지 않기 때문에 다른 비 GS 기반에 접근하는 것은 아마도 쉽지 않을 것입니다.

edit2 :이 링크 (기존 정보가있는 경우)는 오류에 대한 프린터에서 자세한 내용을 얻는 방법에 대한 정보를 제공합니다. http://www.quite.com/ps/errors.htm

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top