問題タブ [ipp-protocol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - リモートIPP/CUPSサーバーまたはプリンターに印刷する最も簡単な方法(Pythonで)は何ですか?
Postscript ファイルがあり、それを IPP 対応デバイス (または CUPS サーバー) で印刷したいと考えています。それを行うために回避できる最小限のコードと依存関係は何ですか。
LPR または libcups を使用すると、クロスプラットフォームの依存関係が多くなります。したがって、私の最初のアプローチは、「拡張 HTTP のみ」であるため、IPP (カップと多くの最新のプリンターで使用されるプロトコル) の最小限のサブセットを実装することでした。しかし、残念なことに、IPP クライアントは数行よりもはるかに多くのコードであり、これまでのところ、印刷のみを目的とし、プリントサーバーを管理しないことを目的とした IPP クライアントの実装は見つかりませんでした。
私は Python での解決策を好みますが、他の動的言語での解決策にも満足しています。
java - Javaで特定のプリンター(IPP URI)に印刷する
Javaで特定のIPPプリンターに印刷する方法はありますか?私が見つけたすべてのサンプルコードとチュートリアルは、次のようなものを使用して、特定のタイプのドキュメントを印刷する方法に焦点を当てています。
このスニペットは、ドキュメントを印刷できる最初に見つかったプリンターに印刷するだけです。私の場合、URIでプリンターを検索したいのですが、PrintServiceLookup
これをサポートしていないようです。PrintServiceAttributeSet
の代わりにPrintRequestAttributeSet
、を使用して属性を追加しようとしましたPrinterURI
が、プリンターが返されません。ルックアップサービスは、そのURIを持つプリンターを探すのではなく、宛先URIを変更できるプリンターを探しているのではないかと思います。
PrintService
最後の手段として、によって返されるすべてのを列挙することを考えましlookupPrintServices
たが、URIはどの属性にも含まれていません。プリンター名はありますが、URIが必要です。
背景として、私のWebアプリは、現在のユーザーに基づいて、特定のプリンターにバーコードを印刷する必要があります。各ユーザーは、CUPSサーバー上のプリンターを指すプリンターURIに関連付けられています。私が持っている情報はプリンターURIだけであり、プリンター名をURIまたはURIのサブストリングと一致するように制限することはできません。
編集:少し明確にするために、データをレンダリングする必要はありません。blobを特定のプリンターにコピーするだけです。私が理解できない部分は、IPPURIによってプリンターを識別する方法です。
python - CUPS 印刷ジョブに関するメタデータを保存するためのオプションは?
単純化されたインターフェイスを CUPS の上に置く印刷システムを書いています。ユーザーがジョブを 1 つのキューにドロップすると、システムはそれらをさまざまな方法 (統計、ページ クォータなど) で処理し、複数のプリンターのいずれかにジョブをディスパッチするための Web インターフェイスをユーザーに提供します。
複数のユーザー キオスク、管理ステーションなどが存在する可能性があるため、同時アクセスを処理できるものにジョブ メタデータを保存する必要があります。(データ構造を「再入可能」と呼べますか?) 私が想像できるいくつかのオプションは次のとおりです。
- MySQL データベース: 非常にやり過ぎですが、確かに安定しており、サポートされています
- 同時アクセスを手動で処理するメタデータ ファイル: 完全に私のニーズに合わせて調整されていますが、MySQL のアトミック性のサブセットを再実装する必要があり、おそらく不十分です。
- 提供されたスレッドセーフな cupsipp.h API を使用して、CUPS 制御ファイルに書き込みます。
最後のオプションが最も魅力的に聞こえますが、落とし穴があります。私はこれを Python で書いていますが、pycups も pkipplib も制御ファイルを変更する方法がないようです。
編集: pkipplib は新しい IPP 要求を生成できることを明確にする必要がありますが、既存の制御ファイルを変更する方法はありません。つまり、新しいジョブとして送信して更新を行う必要があります。
誰でも良いアイデアがありますか?アドバイスをいただければ幸いです。
packet - IPP パケットから印刷ジョブのペイロードを抽出する簡単な方法
IPP パケットから印刷ジョブのペイロードを抽出するために使用できる既存のツールまたはショートカットはありますか (wireshark ユーティリティを介してキャプチャされます)?
今書いてください、私は手動でバイトごとにパケットを検査/分析していますが、これは特にいくつかのパケット交換にまたがるリクエスト (HTTP Continue) では耐え難いものです。
ありがとう
java - PrinterUri属性はJavaPrintServiceによって無視されますか?
印刷ジョブを特定のプリンターに送信するために、次のコードを使用しています。
Strangley、9つのルックアップ結果(=その特定のホストで使用可能なすべてのプリンター)を取得しますが、最初の結果のみが私が探しているものです。PrintService JavaDocsとWebで検索しましたが、問題については何も見つかりませんでした。
PrintServiceLookupは、私の要求に一致するプリンターのみを返すことを期待されていませんか?(この場合-1台のプリンター)
前もって感謝します!
java - JPS(java print service)を使用して特定のプリンターでドキュメントを印刷します
特定のプリンター (標準の Alone プログラム) からドキュメントを印刷したい。
入力:IPアドレス、プリンター名(Jdk1.6使用)
以下のURLをたどりました
Java で特定のプリンター (IPP URI) に出力する
しかし、jdk1.6 にはIppPrintServiceクラスが見つかりませんでした。
jdk1.6を使用してこれを実装する方法を教えてください。
java - HTTPでipp(インターネット印刷プロトコル)を使用してAndroidでファイルを印刷するには?
Androidアプリケーションからファイルを印刷したいのですが、Googleで検索した後、HTTPでIPP(インターネット印刷プロトコル)を使用する必要があるという有用な情報が見つかりました。そして、私はippを初めて使用しますが、HTTPで作業しました。誰でも同じことを手伝ってもらえますか?役に立つ情報やリンクを教えてもらえますか? 前もって感謝します ?
c - IPP プリンターで FindNextPrinterChangeNotification を使用すると失敗する
ネイティブ C アプリケーションのFindNextPrinterChangeNotification
関数を使用すると、ローカルプリンターを使用するときに期待どおりに動作します。
つまり、印刷時に、FindNextPrinterChangeNotification
関数は印刷中のプリンター ジョブのハンドルをローカル プリンターに正しく返します。
ただし、IPP プリンター(つまり、インターネット印刷プロトコルを介して接続するプリンター) に印刷する場合、FindNextPrinterChangeNotification
関数呼び出しは失敗し、GetLastError()
が返されますERROR_INVALID_HANDLE
。
他の人は、これまでのところ解決策がなく、同じ問題を抱えているようです。
だから私の質問は:
IPP プリンターで (新しいジョブを手動でポーリングするのではなく) プリンター ジョブ通知を正常に使用する方法/使用するかどうかを認識していますか?
(テストにはMicrosoft の PrintMon ツールを使用しています)
c - ドキュメントをIPPプリンターに印刷した実際のユーザーを取得する
現在、マップされたIPPプリンターへの印刷ジョブを開始したユーザーの名前をプログラムで取得しようとしています。
JOB_INFO_2
構造体のメンバーに、ローカルで印刷ジョブを開始したユーザーではなくpUserName
、IPPプリンターへの接続に使用されているユーザーの名前が含まれているという事実に苦労しています。
説明する:
両方を見ると、MicrosoftのPrintMonツールとプリンタキューはどちらも同じように表示されます。
と
別のユーザーが印刷ジョブを開始しましたが、所有者であるユーザーとして「uwe_keim」が表示されます。
これは、IPPプリンターでの認証に使用されているユーザーの接続クレデンシャルに由来するようです。
印刷ジョブを開始した実際のユーザーを取得する機会があるかどうかについて、私は本当にわかりません(マルチユーザー端末環境で実行されるアプリにはこれが必要です)。
だから私の質問を要約すると:
印刷ジョブを開始したユーザーの名前を取得するにはどうすればよいですか?(印刷ジョブを所有するユーザーの名前とは対照的)
javascript - ブラウザから ipp 印刷ジョブを送信することはできますか?
ajaxを使用してブラウザからIPP Printリクエストを送信できますか?
次のようになると思います。
唯一の問題は、私が得ることです:
とにかくこれを回避する方法はありますか?それとも、これは単に不可能ですか?