次の方法で共有


ユニバーサル プリントのトラブルシューティング - 印刷ジョブのステージについて

この条項では、印刷ジョブがユニバーサル プリントのさまざまなコンポーネントを通過する方法と、その状態が更新される方法の概要について説明します。

ユーザーが (クライアントから) 印刷する

ユーザーがユニバーサル プリントプリンターを選択し、必要な印刷オプションを選択し、[印刷] ボタンをクリックします。 ユーザーは、次のいずれかのソースから印刷できます (クライアントと言うこともあります)。

  • Windows OS (PC、Windows 365、Azure Virtual Desktopなど) から
  • OneDrive for BusinessなどのWebブラウザー アプリケーションから、ブラウザー内のExcel。
  • 他のベンダーによるアプリケーション、またはMicrosoft Graph APIを使用して開発された基幹業務 (LOB)アプリケーション。
  • その他のクライアント (Macなど)。

Windows OS

Windows OSのエクスペリエンスの例を見てみましょう。

ユーザーがWindowsで印刷すると、次の手順が実行されます。

  1. アプリケーションでは、Windows標準印刷ダイアログ (メモ帳 など) または独自の印刷ダイアログ (Microsoft Office アプリ、Adobe Acrobatなど) のいずれかを使用できます。 どちらのダイアログでも、Windowsで実行されている Windows印刷スプーラーに印刷ジョブが送信されます。 ユニバーサル プリントの場合、各プリンターは組み込みのユニバーサル プリントクラス ドライバーを使用します。 スプーラーは、このドライバーを使用してジョブをさらに処理します。
    • プリンターが1つに関連付けられているし、デバイスにインストールされている場合、Windows印刷スプーラーは、必要に応じて印刷サポート アプリケーション (PSA) を呼び出すことができます。 PSAは通常、プリンター OEM によって公開され、プリンター モデルに関連付けられます。 PSAは自動的に Windowsにインストールされ、プリンターにリンクされる場合があります。
  2. Windows 刷スプーラーは、印刷ジョブ (メタデータとペイロード) をユニバーサル プリントサービスにアップロードします。 このジョブは、HTTPS 経由でインターネット印刷プロトコル (IPP) を使用して送信されます。 指定されたプリンターに使用されるポートの名前は IPP-GUIDです。

クライアントがユニバーサル プリントサービスに印刷ジョブを送信すると、次のアクションが実行されます。

  1. 印刷ジョブを検証します。 これにより、印刷ジョブの属性が、プリンターによって報告された属性と一致します。 検証に失敗したジョブは拒否され、エラーがクライアントに返されます。 正常に検証されたジョブはクラウド キューに格納され、プリンターの印刷ジョブのユニバーサル プリント ポータルで使用できます。 この段階では、 ジョブの状態は次のPendingまたはPausedのいずれかになります。
    • プリンターでPausedセキュリティで保護されたリリースが有効になっていて、ジョブが待機している場合、またはサードパーティのクラウド アプリケーションによってトリガーされるタスクがある場合、ジョブが状態になっている可能性があります。
    • プリンターにセキュリティで保護されたリリースがない場合、またはサードパーティのタスクがない場合は、Pending状態に直接移動します。 それ以外の場合は、ジョブが解放された後、またはタスクが完了としてマークされた後にのみ、状態がPausedからPendingに変化します。
  2. ジョブのPending場合、ユニバーサル プリントは、クラウド キューで待機している印刷ジョブが少なくとも1つあることを対応するプリンターに通知します。 一部のプリンター (およびユニバーサル プリント コネクタ) はリアルタイムでこれらの通知をリッスンしますが、他のプリンターは定期的に (たとえば、30 秒ごとに) このような通知をポーリングする場合があります。
  1. プリンターが通知を受け取ると、すぐに印刷ジョブを処理するか、待機するかを決定できます (たとえば、プリンターが既に別の印刷ジョブの印刷中の場合など)。
  2. プリンターは、すべての印刷ジョブのリストを最初に要求することによって、ジョブの処理をPending開始します。 プリンターは、これらのジョブを1つずつ処理するか、複数のジョブを並列で処理するかを決定できます。
  3. ジョブ・プリンターが処理を開始する場合は、最初にジョブを確認することによってジョブを要求します。 これにより、ジョブが特定のプリンターによる処理のためにロックされ、印刷ジョブの状態がProcessingに変わることがユニバーサル プリントに 通知されます。
  4. プリンターは、印刷ジョブのメタデータとペイロードをダウンロードします。
  5. プリンターは、印刷ペイロードを処理して印刷します。
    • 注: 場合によっては、プリンターはジョブを確認するが、ジョブを一時的に保留にすることがあります。 この間、プリンターはジョブの状態をユニバーサル プリントでProcessing-Stoppedに更新することがあります。
  6. プリンターは、ジョブを次のいずれかの「最終」状態に更新します。
    • Completed: ジョブが正常に印刷されたとき。
    • Aborted: プリンターが何らかの問題に当たり、ジョブを印刷できなかった場合
    • Canceled: プリンターにディスプレイ コンソールがある場合、ユーザーには保留中の印刷ジョブの一覧が表示されます。 彼らは、1つまたはすべてを選択し、Canceledとして作る。

ユニバーサル プリント コネクタ経由で登録されたプリンターの場合、コネクタは一般的なプリンターと同じ手順を実行します。 ただし、ユニバーサル プリントサービスから実際のプリンターにジョブを中継します。

コネクタのフローの違いを次に示します。

  • ユニバーサル プリントサービスは、プリンターではなくPending ジョブについてコネクタに通知します。
  • ユニバーサル プリントコネクタは、印刷ジョブ データを確認してダウンロードします。 ジョブを取得した後、コネクタは Windows 印刷 API を呼び出して、コネクタ上の Windows スプーラーにジョブを送信します。 Windows スプーラーは、プリンター ドライバーを利用してジョブをレンダリングし、ジョブがプリンターに送信されます。
  • 印刷ジョブの状態を更新する場合:
    • プリンターは、印刷ジョブの状態をコネクタの Windowsスプーラーに送信します。
    • コネクタは、Windowsスプーラーからジョブの状態をポーリングします。
    • ジョブの状態が更新されると、ユニバーサル プリントサービスで同じ状態が更新されます。

Note

特定のプリンターに複数 のPendingジョブがある場合、コネクタはこれらのジョブを順次 (1つずつ) 処理します。 処理中のジョブは次のようにProcessingに表示されます。一方、同じプリンター上のそれ以降の印刷ジョブは待機中であり、次のようにPending状態になります。 (同じコネクタ上の) 異なるプリンター間のジョブは、並列で処理されます。