クラウド型 ワークフロー

どこからでも印刷ができる Google Cloud Print

Google Cloud Print はプリンタとインターネットをつなぐ技術です。スマートフォンでもノートパソコンでもどこからでも、自宅や職場のプリンタでの印刷ができるようになります。Google Cloud Print の詳細について、説明します。


以前、「ワークフローの途中で帳票を自動印刷する方法」という投稿がありました。Questetra BPM Suite -> Google Drive -> Wappwolf -> Google Cloud Print と連携する内容でしたが、Questetra BPM Suite -> Google Cloud Print と直接連携する方法について紹介したいと思います。その前に、今回は Google Cloud Print の詳細について、紹介します。

Google Cloud Print はプリンタとインターネットをつなぐ技術です。スマートフォンでもノートパソコンでも、どこからでも、自宅や職場のプリンタでの印刷ができるようになります。例えば、Google Cloud Print を使えば、外出先で撮影した写真を、即座に職場のプリンタで印刷することができます。

以下は Google Cloud Print の概要を表した図です。Google の解説ページの図を拝借しています。

GCP abstract

プリンタを Google Cloud Print に登録する

ユーザは、あらかじめ Google に、使用するプリンタを登録します。プリンタを登録する方法は、プリンタ自体が Google Cloud Print に対応している場合と、そうでない場合とで分かれます。

プリンタがGoogle Cloud Print に対応している場合(図の B、Cloud-ready printer と言うそうです)、直接、プリンタを Google に登録します。実際の登録方法は、プリンタ毎に変わります。

プリンタが Google Cloud Print に対応していない場合(図の A または C)、Google とプリンタを仲介するプリントサーバが必要になります。不思議な話ですが、Google Chrome をプリントサーバとして使用することができます。Google Chrome をプリントサーバとして使用する場合、Google Chrome からプリンタを登録します。詳細はこちらを読んでもらうとして、Chrome の設定メニューから、PC に登録されているプリンタを Google に登録することができます。これによって、Chrome がプリントサーバとなって、Google とのやり取りを仲介できるようになります。(Chrome 以外に、プリントサーバの役割を果たす、専用のソフトウェアも提供されています。詳細はこちら。)

Google にプリンタを登録したとしても、登録したユーザしか使用することができません。しかし登録したプリンタを他のユーザと共有することができます。共有することによって、他のユーザからもプリンタを使用できるようになります。

Google Cloud Print を利用して印刷する

では実際に印刷をする場合にはどのような動きになるでしょうか。スマートフォン上でもPC上でも、印刷を行いたいアプリケーションは、いったん Google に印刷リクエストを送ります。具体的には、あらかじめ取得しておいた OAuth2 のトークンをつけて、HTTP リクエストで、Google Cloud Print の API を呼び出します。その時、印刷したいドキュメントと印刷先のプリンタ、および印刷オプションを、HTTP リクエストに含めます。

Google は印刷リクエストを受け取ると、指示されたプリンタに対して、印刷リクエストを転送します。プリンタが Google Cloud Print に対応している場合は直接プリンタに、そうでない場合はプリントサーバを経由して、プリンタに印刷リクエストを転送します。

Google Chrome の印刷機能を用いて印刷を行う場合も、この動きは同じです。右クリックから「印刷」メニューを選択すると、下のような画面になりますが、「送信先」のところから、Google に登録されているプリンタを選択することができます。「ローカルの送信先」となっている方からプリンタを選択すると、Google Cloud Print を使用しません。通常の Windows や Mac の印刷機能が利用されます。Google Cloud Print のプリンタを選択して印刷すると、いったん Chrome から Google に印刷リクエストが送られます。Google は印刷リクエストを受け取ると、プリンタに直接、またはプリントサーバ経由で、印刷リクエストを転送します。Chrome 印刷機能

Google はどうやってプリンタに印刷リクエストを転送するの?

ここで1つ疑問が出てきます。どのように Google は、プリンタに印刷リクエストを転送するのでしょうか。ほとんどの場合、プリンタは職場や家庭のネットワーク内にあり、Google の側から接続できるところにありません。どうなっているのでしょう?

Google は、以下2つのうちのいずれかの方法で、プリンタに印刷リクエストを転送します。いずれにせよ、プリンタ(またはプリントサーバ)の側から、Google とのコネクションを確立します。

  1. プリンタまたは プリンタサーバから、Google に XMPP で接続します。XMPP はインスタントメッセンジャーのためのプロトコルで、かつては Facebook や Google Talk で利用されていました。Google は印刷リクエストを受け取ると、XMPP を通じてプリンタに印刷リクエストを通知します。プリンタと Google の間で、ずっとチャットをしている、というイメージでとらえれば良いです。
  2. プリンタから Google に、定期的に「印刷する文書はありますか?」という問い合わせを行います。印刷リクエストがあれば、Google はプリンタに、印刷すべき文書を返します。この問い合わせは、HTTP で行われます。

基本的には XMPP を使用し、XMPP を使うことができない場合に、定期的な HTTP での問い合わせを行うようです。Googleに印刷リクエストを送っているのに、手元のプリンタから印刷されるという動きが(少し)気持ちの悪い Google Cloud Print ですが、内部ではこのような動きになっています。

Google Cloud Print

 

さて、Google Cloud Print の説明はこの程度にして、次回は、Questetra BPM Suite から Google Cloud Print を呼び出す方法について、説明したいと思います。基本的な動きは、ここに記載した通りで、あらかじめ取得した OAuth2 のトークンをつけて、HTTP リクエストで Google Cloud Print の API を呼び出します。こうご期待!

あわせて読みたい
15.野望・展望・志 の前の記事 マイナンバー対応方針は、社長が決めよ!
15.野望・展望・志 の次の記事 42才日本人、世界平和を考えてみる
Hatanaka Akihiro の他の記事 Questetra と Cacoo の連携プレー(その3)

アーカイブ

 RSS