私はtcp/ip経由でプリンタデータを受信するサービスを持っています。データが受信されると、データストリームを調べ、そのデータがPostScriptデータかPCLデータかを判断する信頼性の高い効率的な方法がありますか?たとえば、フォーマットを示すためにデータストリームの先頭にある文字がありますか?受信データがPostScriptかPCLかを確認する
答えて
ポストスクリプトデータは、 "%!PS-Adobe-3.0"のように長い読み込み可能な文字列でもかまいませんが、基本的にこれです。
ほとんどのPCLには同様のシグネチャがあります。過去に見たことがあります。
PCLまたはPostScriptの開始前にPJLコマンドを監視する必要があります。最初にPJLコマンドを使用している場合は、PJLコマンドでデータ型が次のように表示されることがよくあります: "@PJL ENTER LANGUAGE = PCLXL" – BBoy
特定の実装でこれが必要な場合がありますが、 '/%!.*/ 'stringはPRLMごとにPostscript言語の要件ではありません。それはDSCの規則の一部です。 –
ENTER LANGUAGEコマンドはどうですか?それは信頼できるのでしょうか? – NYSystemsAnalyst
おそらくファイル内のエスケープ文字の数を数えるだけです。 PCLは彼らの塊を持つでしょう。ポストスクリプトは%記号のゴブを持つでしょう。それは完璧な解決策ではありませんが、それは簡単ではなく、実際にはかなり信頼できると思います。
私が見ることができる「実際の」唯一の方法は、実際にPCLを解析してポストスクリプトを解析して、どちらが動作するかを見ることです。
私は2¢を追加します。
他の人がここで言及したように、プログラムでプログラムを識別する最初の刺しゅうは、最初の2文字を見ることです。 %!
で始まる場合、エスケープ文字(16進数1B
、oct 033
、ascii )で始まる場合、PCLはPCLコマンドで開始される可能性が非常に高いため、ポストスクリプトです。これにより、処理する必要のある文書の99%が解決される可能性があります。それでも知られていない場合は、showpage
文字列を文書で検索できます。 PostScriptの場合は、ページを表示するためのショーページが必要です。あなたが見つけられず、ファイルにエスケープ文字があれば、それはPCLであることがわかります。また、showpageがなくエスケープ文字がない場合、PCL側でエラーが発生する可能性があります。ファイルは有効なPCLであり、プリンタは来るときにそれらを吹き飛ばすことができます。
- 1. 端末がSMSを受信できるか確認する
- 2. Xamarin Forms PCLソケットプラグインがWi-Fiカードからデータを受信していません
- 3. データが角2のコンポーネントで受信されているかどうかを確認する
- 4. メッセージの取得/受信者への確認メッセージの受信者または受信者への確認
- 5. Ghostscriptを使用してPCLをPostScriptに変換する
- 6. メッセージが受信されていることを確認する
- 7. 着信登録データを確認する
- 8. ブロードキャスト受信機がインターネット接続を確認する
- 9. Bashで受信信号名を確認する
- 10. 受信者ビュー - ID確認認証を無効にする
- 11. 受信トレイ内の各メールが返信されるかどうかを確認する - asp.net c#
- 12. angularJSソケットから受信したデータを受信する
- 13. RabbitMqからのメッセージの受信を確認しない
- 14. ユニフォームで受信トレイからSMSを確認または読む
- 15. サーバでのMacアプリストアの受信確認
- 16. swift 3 iTunesサブスクリプション受信確認ライブモード
- 17. ディスプレイがスリープ状態にあるかどうかを確認するか、スリープ通知を受信する
- 18. MailKitで送受信されたデータの量を確認する方法は?
- 19. OutOfMemoryException WebServicesからデータを受信する
- 20. Arduinoからデータを送受信する
- 21. AndroidからPCLにデータが渡されたときにMessagingCenterメッセージが受信されない
- 22. LocalBroadcastManagerブロードキャストが受信されたかどうかを確認する方法はありますか?
- 23. HTMLクライアントがサーバーの応答を受信するかどうかを確認するためのベストプラクティス
- 24. iOS:メールやテキストメッセージの受信者を確認する方法
- 25. git pre受信フックでコミットメッセージを確認する
- 26. TCPソケットで受信インターフェイスを確認する
- 27. MailAppの受信確認を指定する方法
- 28. Redisが1分おきにSIGTERMを受信する理由を確認する
- 29. データが ""であるかどうかを確認する方法
- 30. ICANNから送信されたRecovererドメイン確認メールの受信方法
提出されたPostScriptおよび/またはPCLデータ構造では、印刷クライアントは何らかの形で一貫性がありますか?はいの場合は、ファイルの種類を判別するのが非常に簡単です。いいえ、それはもっと多くの努力を伴う... –
はい、彼らは一貫しています。私は以下の答えの情報の組み合わせを使用して終了しました。まず、PJL ENTER LANGUAGEコマンドを探します。私がそれを見つけたら、私はその価値に基づいて決定を下します。それ以外の場合は、すべてのPostScriptデータがDSC規則に準拠する必要があるため、%!PSを検索します。それでも解決できない場合は、クライアントの大半が使用しているので、PCLにデフォルトするだけです。 – NYSystemsAnalyst