ユニバーサル プリントのトラブルシューティング - 印刷ジョブのステージについて
この条項では、印刷ジョブがユニバーサル プリントのさまざまなコンポーネントを通過する方法と、その状態が更新される方法の概要について説明します。
ユーザーが (クライアントから) 印刷する
ユーザーがユニバーサル プリントプリンターを選択し、必要な印刷オプションを選択し、[印刷] ボタンをクリックします。 ユーザーは、次のいずれかのソースから印刷できます (クライアントと言うこともあります)。
- Windows OS (PC、Windows 365、Azure Virtual Desktopなど) から
- OneDrive for BusinessなどのWebブラウザー アプリケーションから、ブラウザー内のExcel。
- 他のベンダーによるアプリケーション、またはMicrosoft Graph APIを使用して開発された基幹業務 (LOB)アプリケーション。
- その他のクライアント (Macなど)。
Windows OS
Windows OSのエクスペリエンスの例を見てみましょう。
ユーザーがWindowsで印刷すると、次の手順が実行されます。
- アプリケーションでは、Windows標準印刷ダイアログ (メモ帳 など) または独自の印刷ダイアログ (Microsoft Office アプリ、Adobe Acrobatなど) のいずれかを使用できます。 どちらのダイアログでも、Windowsで実行されている Windows印刷スプーラーに印刷ジョブが送信されます。 ユニバーサル プリントの場合、各プリンターは組み込みのユニバーサル プリントクラス ドライバーを使用します。 スプーラーは、このドライバーを使用してジョブをさらに処理します。
- プリンターが1つに関連付けられているし、デバイスにインストールされている場合、Windows印刷スプーラーは、必要に応じて印刷サポート アプリケーション (PSA) を呼び出すことができます。 PSAは通常、プリンター OEM によって公開され、プリンター モデルに関連付けられます。 PSAは自動的に Windowsにインストールされ、プリンターにリンクされる場合があります。
- Windows 刷スプーラーは、印刷ジョブ (メタデータとペイロード) をユニバーサル プリントサービスにアップロードします。 このジョブは、HTTPS 経由でインターネット印刷プロトコル (IPP) を使用して送信されます。 指定されたプリンターに使用されるポートの名前は IPP-GUIDです。
クラウドでの印刷ジョブ
クライアントがユニバーサル プリントサービスに印刷ジョブを送信すると、次のアクションが実行されます。
- 印刷ジョブを検証します。 これにより、印刷ジョブの属性が、プリンターによって報告された属性と一致します。 検証に失敗したジョブは拒否され、エラーがクライアントに返されます。 正常に検証されたジョブはクラウド キューに格納され、プリンターの印刷ジョブのユニバーサル プリント ポータルで使用できます。 この段階では、 ジョブの状態は次の
Pending
またはPaused
のいずれかになります。- プリンターで
Paused
セキュリティで保護されたリリースが有効になっていて、ジョブが待機している場合、またはサードパーティのクラウド アプリケーションによってトリガーされるタスクがある場合、ジョブが状態になっている可能性があります。 - プリンターにセキュリティで保護されたリリースがない場合、またはサードパーティのタスクがない場合は、
Pending
状態に直接移動します。 それ以外の場合は、ジョブが解放された後、またはタスクが完了としてマークされた後にのみ、状態がPaused
からPending
に変化します。
- プリンターで
- ジョブの
Pending
場合、ユニバーサル プリントは、クラウド キューで待機している印刷ジョブが少なくとも1つあることを対応するプリンターに通知します。 一部のプリンター (およびユニバーサル プリント コネクタ) はリアルタイムでこれらの通知をリッスンしますが、他のプリンターは定期的に (たとえば、30 秒ごとに) このような通知をポーリングする場合があります。
プリンターでの印刷ジョブ
- プリンターが通知を受け取ると、すぐに印刷ジョブを処理するか、待機するかを決定できます (たとえば、プリンターが既に別の印刷ジョブの印刷中の場合など)。
- プリンターは、すべての印刷ジョブのリストを最初に要求することによって、ジョブの処理を
Pending
開始します。 プリンターは、これらのジョブを1つずつ処理するか、複数のジョブを並列で処理するかを決定できます。 - ジョブ・プリンターが処理を開始する場合は、最初にジョブを確認することによってジョブを要求します。 これにより、ジョブが特定のプリンターによる処理のためにロックされ、印刷ジョブの状態が
Processing
に変わることがユニバーサル プリントに 通知されます。 - プリンターは、印刷ジョブのメタデータとペイロードをダウンロードします。
- プリンターは、印刷ペイロードを処理して印刷します。
- 注: 場合によっては、プリンターはジョブを確認するが、ジョブを一時的に保留にすることがあります。 この間、プリンターはジョブの状態をユニバーサル プリントで
Processing-Stopped
に更新することがあります。
- 注: 場合によっては、プリンターはジョブを確認するが、ジョブを一時的に保留にすることがあります。 この間、プリンターはジョブの状態をユニバーサル プリントで
- プリンターは、ジョブを次のいずれかの「最終」状態に更新します。
Completed
: ジョブが正常に印刷されたとき。Aborted
: プリンターが何らかの問題に当たり、ジョブを印刷できなかった場合Canceled
: プリンターにディスプレイ コンソールがある場合、ユーザーには保留中の印刷ジョブの一覧が表示されます。 彼らは、1つまたはすべてを選択し、Canceled
として作る。
ユニバーサル プリント コネクタによる印刷ジョブの処理
ユニバーサル プリント コネクタ経由で登録されたプリンターの場合、コネクタは一般的なプリンターと同じ手順を実行します。 ただし、ユニバーサル プリントサービスから実際のプリンターにジョブを中継します。
コネクタのフローの違いを次に示します。
- ユニバーサル プリントサービスは、プリンターではなく
Pending
ジョブについてコネクタに通知します。 - ユニバーサル プリントコネクタは、印刷ジョブ データを確認してダウンロードします。 ジョブを取得した後、コネクタは Windows 印刷 API を呼び出して、コネクタ上の Windows スプーラーにジョブを送信します。 Windows スプーラーは、プリンター ドライバーを利用してジョブをレンダリングし、ジョブがプリンターに送信されます。
- 印刷ジョブの状態を更新する場合:
- プリンターは、印刷ジョブの状態をコネクタの Windowsスプーラーに送信します。
- コネクタは、Windowsスプーラーからジョブの状態をポーリングします。
- ジョブの状態が更新されると、ユニバーサル プリントサービスで同じ状態が更新されます。
Note
特定のプリンターに複数 のPending
ジョブがある場合、コネクタはこれらのジョブを順次 (1つずつ) 処理します。 処理中のジョブは次のようにProcessing
に表示されます。一方、同じプリンター上のそれ以降の印刷ジョブは待機中であり、次のようにPending
状態になります。 (同じコネクタ上の) 異なるプリンター間のジョブは、並列で処理されます。