6

アプリで Postscript にデータを保存すると、GhostView で問題なく表示できる Postscript ファイルが生成されますが、印刷しようとすると、無効なように見えるため、プリンターで印刷できません。

実際にプリンターに送信せずに Postscript ファイルのエラーを検証/検出する方法はありますか? ある種のJava API /ライブラリが望ましいですが、同じことを行うプログラムでも問題ありません。


編集#1:いいえ、なぜ無効なのか、また必ずしも無効なのかはわかりませんが、ゴーストビューの外で検証したり、印刷できないときに何が起こっているのかを理解したりしたいと考えています。


回答: ps2ps トリックを使用して、Postscript の出力を確認し、違いを確認することができました。違いは、Postscript 内の画像の幅または高さに 10 進数を使用できず、整数のみを使用できることです。だから私はまだ検証する方法を見つけられませんでしたが、この方法は私の問題には十分でした. ありがとう。

4

3 に答える 3

8

レンダリングされたページ画像を実際に見ることなく、Ghostscript を使用して PostScript ファイルを検証する必要がある場合は常に、「nullpage」デバイスを使用します。

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

問題が発生した場合、ゼロ以外の%errorlevel%セットが存在し、validated.stderrログファイルにはレンダリング中に Ghostscript が吐き出したすべてのメッセージが含まれます。

于 2010-06-05T17:18:26.527 に答える
4

なぜ無効なのか知っていますか?

私の提案はそれを Ghostscript/Ghostvoiew にフィードすることでしたが、Ghostview がそれを表示できることを考えると、少なくとも一部のインタープリターはそれが有効な Postscript であると考えているようです。

したがって、それはプリンターに固有のものである可能性があります-Ghostscriptが許可するPSの何かについてうるさいか、プリンターに存在しないもの(おそらくファイルシステム)にアクセスしているか、メモリの制限を超えています...

ポイントは、それが誤った PS プログラムではない可能性があるため、それを検証するためのライブラリ/API が役に立たない可能性があるということです

編集:印刷されますか?別のメーカー (または Postscript インタープリターのベンダー) のプリンターを試しましたか? Ghostview は警告やエラーを表示/記録しますか?

ドキュメントはどこ (どのアプリケーション) から作成されたものですか?

ドキュメントの他のインスタンスを生成できますか? (たとえば、エラーが発生するかどうかを確認するための非常に単純な/空のもの)

プリンターで使用されている特定のインタープリターへのアクセスを提供する API がない限り、別の PS インタープリター (Ghostscript) に対して検証している思います。

世界にはそれほど多くの PS クローンが存在しないため、別の非 GS ベースのクローンにアクセスすることはおそらく容易ではありません。

Edit2: このリンク (かなり古い情報である場合) は、プリンターからエラーの詳細を取得する方法についての情報を提供します: http://www.quite.com/ps/errors.htm

于 2008-11-03T08:45:16.187 に答える
3

Ghostview で表示できる場合は、ghostscript で解析できることを意味します。

したがって、ファイルを印刷する (ただし実際には検証しない) ために使用できるトリックの 1 つは、ghostscript の postscript 出力モードを使用することです (ps2ps主に を追加するラッパーが呼び出され、を使用する-sDEVICE=pswriteものもあります)。ps2ps2-sDEVICE=ps2write

于 2008-11-03T09:05:33.307 に答える