(57)【要約】【課題】複数フォーマットに対応したＰＤＬ変換のプロセスを簡略化する。【解決手段】情報処理装置の印刷システムに対してプリンタの印刷機能を提供する印刷プラグイン２１５として動作可能なプログラムは、アプリケーションから共有機能により印刷対象の第１のデータを受け取り、当該受け取った第１のデータを所定のファイル形式に変換させるための指示を印刷システムに対して行い、印刷システムにおいて指示に基づき第１のデータから変換された所定のファイル形式の第２のデータを印刷システムから受け取り、当該受け取った所定のファイル形式の前記第２のデータを用いて、プリンタで印刷するための印刷処理を実行するように情報処理装置のプロセッサを機能させる。【選択図】図９
2020047295.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の印刷システムに対してプリンタの印刷機能を提供するプラグインとして動作可能なプログラムであって、
アプリケーションから共有機能により印刷対象の第１のデータを受け取り、
当該受け取った第１のデータを所定のファイル形式に変換させるための指示を、前記印刷システムに対して行い、
前記印刷システムにおいて前記指示に基づき前記第１のデータから変換された前記所定のファイル形式の第２のデータを、前記印刷システムから受け取り、
当該受け取った前記所定のファイル形式の前記第２のデータを用いて、前記プリンタで印刷するための印刷処理を実行するように、
前記情報処理装置のプロセッサを機能させるためのプログラム。
【請求項２】
前記プログラムは、さらに、
前記アプリケーションから前記共有機能により受け取った前記第１のデータが第１のファイル形式である場合は、前記第１のデータを用いて、前記プリンタで印刷するための印刷処理を実行し、
前記アプリケーションから前記共有機能により受け取った前記第１のデータが第２のファイル形式である場合に、前記第１のデータを前記所定のファイル形式に変換させるための前記指示を、前記印刷システムに対して行って、前記印刷システムにおいて前記指示に基づき前記第１のデータから変換された前記所定のファイル形式の第２のデータを、前記印刷システムから受け取り、かつ、前記印刷システムから受け取った前記所定のファイル形式の前記第２のデータを用いて、前記プリンタで印刷するための印刷処理を実行するように、
前記情報処理装置のプロセッサを機能させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記プログラムは、さらに、
前記アプリケーションから前記共有機能により受け取った前記第１のデータが第１のファイル形式である場合は、前記第１のデータを用いて、前記プリンタで印刷するための印刷処理を実行し、
前記アプリケーションから前記共有機能により受け取った前記第１のデータが第２のファイル形式である場合に、前記第１のデータを前記所定のファイル形式に変換させるための前記指示を、前記印刷システムに対して行って、前記印刷システムにおいて前記指示に基づき前記第１のデータから変換された前記所定のファイル形式の第２のデータを、前記印刷システムから受け取り、かつ、前記印刷システムから受け取った前記所定のファイル形式の前記第２のデータを用いて、前記プリンタで印刷するための印刷処理を実行し、
さらに、前記アプリケーションから前記共有機能により受け取った前記第１のデータが第３のファイル形式である場合は、前記第３のファイル形式のデータを処理可能な印刷アプリケーションに、共有機能により前記第１のデータを渡すように、
前記情報処理装置のプロセッサを機能させることを特徴とする請求項２に記載のプログラム。
【請求項４】
前記第１のファイル形式は、ＰＤＦ形式であることを特徴とする請求項２または３に記載のプログラム。
【請求項５】
前記印刷システムにより変換される前記第２のデータのファイル形式は、ＰＤＦ形式であることを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項６】
前記プリンタで印刷するための印刷処理は、前記プリンタで印刷可能なＰＤＬデータを生成する処理であることを特徴とする請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記プログラムは、
前記共有機能により受け取った前記第１のデータが前記第３のファイル形式であり、かつ、前記印刷アプリケーションが前記情報処理装置にインストールされている場合に、共有機能により前記印刷アプリケーションに前記第１のデータを渡し、
さらに、前記共有機能により受け取った前記第１のデータが前記第３のファイル形式であり、かつ、前記印刷アプリケーションがインストールされていない場合は、前記印刷アプリケーションのインストールをユーザに促す画面を表示するように、
前記情報処理装置のプロセッサを機能させることを特徴とする請求項３に記載のプログラム。
【請求項８】
前記プログラムは、ネットワーク上で前記プリンタを探索する機能を更に有することを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記プログラムは、さらに、
前記情報処理装置のＯＳにより前記プログラムが印刷プラグインとして有効に設定されているか無効に設定されているか判断し、
前記印刷プラグインが無効に設定されていると判断した場合は、前記印刷プラグインを有効にするか否か選択する画面を表示するように、
前記情報処理装置のプロセッサを機能させることを特徴とする請求項１に記載のプログラム。
【請求項１０】
前記共有機能は、Ａｎｄｒｏｉｄ（商標）のＯＳにより提供されるＩｎｔｅｎｔの機能である、ことを特徴とする請求項１乃至９のいずれか１項に記載のプログラム。
【請求項１１】
情報処理装置の印刷システムに対してプリンタの印刷機能を提供するプラグインとして動作可能なプログラムがインストールされた前記情報処理装置であって、
前記情報処理装置のプロセッサは、前記プログラムを実行することにより、
アプリケーションから共有機能により印刷対象の第１のデータを受け取る第１受信手段と、
当該受け取った第１のデータを所定のファイル形式に変換させるための指示を、前記印刷システムに対して行う指示手段と、
前記印刷システムにおいて前記指示に基づき前記第１のデータから変換された前記所定のファイル形式の第２のデータを、前記印刷システムから受け取る第２受信手段と、
当該受け取った前記所定のファイル形式の前記第２のデータを用いて、前記プリンタで印刷するための印刷処理を実行する印刷処理手段、
として機能することを特徴とする情報処理装置。
【請求項１２】
情報処理装置の印刷システムに対してプリンタの印刷機能を提供するプラグインとして動作可能なプログラムを、前記情報処理装置のプロセッサが実行することによって、前記情報処理装置を制御するための制御方法であって、
前記プログラムを実行したプロセッサが、アプリケーションから共有機能により印刷対象の第１のデータを受け取る工程と、
前記プログラムを実行したプロセッサが、当該受け取った第１のデータを所定のファイル形式に変換させるための指示を、前記印刷システムに対して行う工程と、
前記プログラムを実行したプロセッサが、前記印刷システムにおいて前記指示に基づき前記第１のデータから変換された前記所定のファイル形式の第２のデータを、前記印刷システムから受け取る工程と
前記プログラムを実行したプロセッサが、当該受け取った前記所定のファイル形式の前記第２のデータを用いて、前記プリンタで印刷するための印刷処理を実行する工程と、
を含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置及び制御方法に関する。
【背景技術】
【０００２】
モバイルＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）において、印刷データをプリンタに送信する技術がある。例えば、Ａｎｄｒｏｉｄ（登録商標）といったモバイル端末に搭載されるＯＳには、各アプリケーション（以下、アプリと称する）に共通の印刷機能を提供する「印刷システム」がある。印刷システムには、「印刷プラグイン」といわれる各プリンタベンダーが各自の印刷処理装置に適応させるための依存処理をプラグイン形式でアドインできる仕組みがある。例えば、Ｃａｎｏｎ  Ｐｒｉｎｔ  Ｓｅｒｖｉｃｅ（登録商標）は、Ａｎｄｒｏｉｄの「印刷プラグイン」として提供されており、Ｇｏｏｇｌｅ  Ｐｌａｙ（登録商標）からダウンロードしてインストールすることができる。
【０００３】
ユーザがアプリから印刷を行う手段としては、印刷システムを使用する方法と、Ｉｎｔｅｎｔという仕組みを使う方法がある。Ｉｎｔｅｎｔとは、Ａｎｄｒｏｉｄ上でアプリから他のアプリ対してファイルを渡す（共有する）ことができるアプリ関連の仕組みのことである。ユーザはアプリが印刷システムに対応していない場合でも、Ｉｎｔｅｎｔで印刷アプリを指定することで印刷を行うことができる。特許文献１は、印刷データを生成する印刷アプリが、データ出力元のアプリからＩｎｔｅｎｔで受け渡されたデータがテキストデータであるかＵＲＬを含むかなどに応じて印刷データを生成する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−４８６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では印刷アプリにおいて印刷データを生成しなければならず、印刷アプリが対応しているファイルフォーマットからしか印刷データに変換できない。また、印刷アプリをインストールしていない場合には特許文献１の印刷方法を使うことができない。そこで、アプリが印刷システムに対応しておらず、かつ、Ｉｎｔｅｎｔで利用できる印刷アプリがない場合でも、画像、ＨＴＭＬ、ＰＤＦ、Ｏｆｆｉｃｅファイル等幅広いファイルフォーマットを印刷データであるＰＤＬに変換し、印刷することが求められる。
【０００６】
本発明は、複数フォーマットに対応したＰＤＬ変換のプロセスを簡略化することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のプログラムは、情報処理装置の印刷システムに対してプリンタの印刷機能を提供するプラグインとして動作可能なプログラムであって、アプリケーションから共有機能により印刷対象の第１のデータを受け取り、当該受け取った第１のデータを所定のファイル形式に変換させるための指示を、前記印刷システムに対して行い、前記印刷システムにおいて前記指示に基づき前記第１のデータから変換された前記所定のファイル形式の第２のデータを、前記印刷システムから受け取り、当該受け取った前記所定のファイル形式の前記第２のデータを用いて、前記プリンタで印刷するための印刷処理を実行するように、前記情報処理装置のプロセッサを機能させる。
【発明の効果】
【０００８】
本発明によれば、複数フォーマットに対応したＰＤＬ変換のプロセスを簡略化することができる。
【図面の簡単な説明】
【０００９】
【図１】印刷システムの全体構成図である。
【図２】情報処理端末、プリンタのハードウェア構成図である。
【図３】情報処理端末、プリンタのソフトウェア構成図である。
【図４】Ｉｎｔｅｎｔフィルタの一例を示す図である。
【図５】印刷パスとその他の印刷パスを示した遷移図である。
【図６】情報処理端末のアプリケーションのＵＩ画面を示す図である。
【図７】情報処理端末の印刷システムのＵＩ画面を示す図である。
【図８】情報処理端末からＩｎｔｅｎｔを使う際のＵＩ画面を示す図である。
【図９】印刷プラグインの処理を示すフローチャートである。
【図１０】実施例１におけるＵＩ画面である。
【図１１】実施例２における印刷プラグインの処理を示すフローチャートである。
【図１２】実施例３における印刷プラグインの処理を示すフローチャートである。
【図１３】実施例４における印刷プラグインの処理を示すフローチャートである。
【図１４】情報処理端末の印刷プラグインが無効の場合のＵＩ画面を示す図である。
【図１５】印刷プラグインの処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
（実施例１）
まず、本実施例におけるシステムの全体構成について説明する。
図１は、本実施例におけるハードウェアの全体構成の一例を示したものである。本システムは、情報処理端末１１０とプリンタＡ１２０とが、ネットワーク１００で接続されている。このとき、情報処理端末およびプリンタはネットワーク上に複数台あってもよい。
ネットワーク１００は標準的なネットワーク接続であり、インターネット、イントラネットのどちらの形態であってもよい。接続方法は、情報処理端末１１０とプリンタＡ１２０が互いにネットワークに接続されていればどのような接続形態でも構わない。例えば、Ｗｉ−Ｆｉルータを介してネットワークを形成する方法や、Ｗｉ−Ｆｉダイレクトで情報処理端末１１０とプリンタＡ１２０を直接接続する方法などがある。
【００１１】
次に、本実施例における情報処理端末１１０及びプリンタＡ１２０の構成を、図２を用いて説明する。
情報処理端末１１０は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）やスマートフォンなど通常のモバイル端末であり、小型端末用のオペレーティングシステムや、通話、データ通信を制御するプログラムが動作している情報処理装置である。情報処理端末１１０は、ネットワークコントローラ１１４を使用して無線通信または有線での通信が可能である。情報処理端末１１０におけるハードウェアの各構成要素は、システムバス１１９に接続されている。
【００１２】
ＲＯＭ１１２は、不揮発性の記憶装置であり、情報処理端末１１０におけるＯＳや、通話、データ通信を制御するアプリ、情報処理端末１１０の再起動後も保持しておく必要のある各種動作モード設定、稼働ログなどが記憶される。ＲＯＭ１１２に格納されたデータ通信を制御するアプリとしては、ＭａｉｌソフトやＷｅｂブラウザなどが挙げられる。これらのＲＯＭ１１２に記憶された情報は、ＣＰＵ１１１で処理される。また、ＣＰＵ１１１がＲＯＭ１１２に記憶されているプログラムに基づき処理を実行することによって、図３に示されるような情報処理端末１１０のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
ＲＡＭ１１３は、プログラムを実行するためのワークメモリエリアである。また、印刷時にアプリが生成する画像情報などを一時記憶するためのメモリでもある。
【００１３】
ネットワークコントローラ１１４はネットワーク通信を制御するためのものであり、通信にＷｉ−Ｆｉ、Ｗｉ−Ｆｉダイレクト、公衆回線３Ｇ／４Ｇ、有線ＬＡＮ接続などが使用される。
表示制御部１１５は、情報処理端末１１０のディスプレイ１１７にて出力する情報の制御を行っている。入力制御部１１６は、情報処理端末１１０の入力部１１８においてボタンやタッチパネルなどを介してユーザが指示した情報を制御している。情報処理端末１１０のアプリは、表示制御部１１５、入力制御部１１６を利用して、ネットワーク通信情報や情報処理端末１１０のさまざまな情報をユーザに提供する。
【００１４】
プリンタＡ１２０は、画像処理装置の一例である。ネットワークＩ／Ｆ１２１は、ネットワーク１００を介して情報処理端末１１０との接続に使用される。プリンタＡ１２０はネットワークＩ／Ｆ１２１を介して情報処理端末１１０との通信処理が可能となっており、プリンタＡ１２０内の情報を情報処理端末１１０に通知可能に構成されている。
ＣＰＵ１２２は、ＲＯＭ１２４に記憶された制御プログラムに基づいてシステムバス１２６に接続されるプリンタエンジン１２５に出力情報としての画像信号を出力する。さらにＣＰＵ１２２は、ＲＯＭ１２４に記憶されたアプリプログラム等に基づいて処理を実行する。ＲＡＭ１２３は、ＣＰＵ１２２の主メモリ、ワークエリア等として機能する。なお、ＲＡＭ１２３は、制御プログラムの実行、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。ＲＯＭ１２４には、ＣＰＵ１２２の制御プログラムや上記出力情報を生成する際に使用するフォントデータ、プリンタＡ１２０上で利用される情報等が記憶される。
プリンタエンジン１２５は、出力情報としての画像信号を出力する。システムバス１２６は、各デバイスを接続する。
【００１５】
図３は、本実施例における情報処理端末１１０及びプリンタＡ１２０のソフトウェア構成を説明するブロック図である。
まず、情報処理端末１１０のソフトウェア構成について説明する。なお、情報処理端末１１０を構成する各モジュールはそれぞれＲＯＭ１１２に保存されたファイルとして存在するプログラムモジュールである。そして、実行時にＯＳやそのモジュールを利用するモジュールによってＲＡＭ１１３にロードされ実行される。また、本実施例に記載されている処理は、ＲＯＭ１１２に記憶されているアプリ、及び各モジュール（ソフトウェア）のプログラムを、必要に応じてＲＡＭ１１３に読み出してＣＰＵ１１１により実行することによって実現される。
【００１６】
印刷システム２１０は、Ａｐｐ  Ａ２１１などの各アプリに共通の印刷インターフェースを提供する。アプリは印刷システムで定義されたインターフェースを実装することにより、Ｐｌｕｇｉｎ  Ｄ２１４や印刷プラグイン２１５などが提供する印刷機能を実行することができる。このとき印刷システムはＰｌｕｇｉｎ  Ｄ２１４や印刷プラグイン２１５などの印刷プラグインに印刷や探索の命令を行う。
Ａｐｐ  Ａ２１１、Ａｐｐ  Ｂ２１２、Ａｐｐ  Ｃ２１３は情報処理端末１１０のＯＳ上で動作する一般的なアプリであり、Ｗｅｂブラウザ、ＰＤＦビューワー、Ｏｆｆｉｃｅビューワー、写真アプリ、メールアプリ等のアプリがある。Ａｐｐ  Ａ２１１、Ａｐｐ  Ｂ２１２は印刷システム２１０で定義された印刷インターフェースを実装しており、各印刷プラグインを使って印刷機能を利用できる。また、Ａｐｐ  Ｂ２１２、Ａｐｐ  Ｃ２１３はＩｎｔｅｎｔで他のアプリとデータを受け渡す（共有する）ことができる。Ｉｎｔｅｎｔは、アプリケーションと他のアプリケーションの間でデータの共有（受け渡し）を行うための共有機能である。例えば、Ａｐｐ  Ｂが写真アプリである場合は、Ｉｎｔｅｎｔにより他のアプリと写真データの受け渡しをすることができる。
【００１７】
Ｐｌｕｇｉｎ  Ｄ２１４、印刷プラグイン２１５は印刷プラグインであり、印刷システムに対して印刷および探索等の機能を提供するためのサービスとして存在する。印刷プラグインは、各プリンタベンダーが各自の印刷処理装置に適応させるための依存処理をプラグイン形式でアドインできる仕組みである。Ｐｌｕｇｉｎ  Ｄ２１４や印刷プラグイン２１５が印刷システム２１０に提供する機能は、ネットワーク上のプリンタ探索機能、印刷機能、印刷設定機能、ステータス通知機能などがあり、印刷プラグインは複数インストールされている場合もある。
【００１８】
印刷プラグイン２１５はアプリとしても動作し、他のアプリとＩｎｔｅｎｔによる情報の共有をすることができる。印刷プラグイン２１５は本実施例において、一時的にアプリとして振る舞い、印刷アプリから印刷データを一時的に受け取り、印刷システムを起動して印刷データを渡す処理を行う。その後、印刷プラグイン２１５は、印刷システムからＰＤＦに変換された印刷データを受け取り、ドライバーとして振る舞い印刷を実行する。印刷プラグイン２１５は、印刷ジョブ生成モジュール２１６からネットワークモジュール２１９までの各種モジュールと、マニフェストファイル２２０を備える。
【００１９】
印刷ジョブ生成モジュール２１６は、印刷システム２１０からＰＤＦ形式のデータをうけて、ＲＯＭ１１２およびＲＡＭ１１３の情報からプリンタＡ１２０で印刷可能なＰＤＬデータを生成する。ＰＤＬデータは、プリンタＡ１２０で印刷を行えるファイル形式の一例である。ＵＩ表示用モジュール２１７は、印刷プラグイン２１５固有の設定画面を表示させるものである。例えばＥＵＬＡを表示する画面や、拡張設定を行う画面、ダイアログを表示する機能を持つ。通信監理モジュール２１８は、印刷プラグイン２１５とプリンタＡ１２０の通信を制御するモジュールであり、プリンタの能力取得や状態取得、プリンタ探索、印刷ジョブ生成モジュール２１６で生成したＰＤＬデータの送信を管理する。ネットワークモジュール２１９は、印刷プラグイン２１５とプリンタＡ１２０などのプリンタを接続するモジュールであり、ＨＴＴＰ、ＳＮＭＰ等のプロトコルを使用して外部の機器と通信する機能を提供する。
【００２０】
マニフェストファイル２２０（共有ファイル）は印刷プラグインが保持する静的ファイルであり、そのなかにはＩｎｔｅｎｔフィルタと呼ばれる宣言がある。ＩｎｔｅｎｔフィルタとはＩｎｔｅｎｔを使ってアプリとデータを共有する際に、どのファイルフォーマットをサポートするかを宣言するためのものである。
図４はＩｎｔｅｎｔフィルタの一例であり、ＸＭＬで記載されている。Ｉｎｔｅｎｔフィルタ４０１は、印刷プラグイン２１５内に保持されている。また、本実施例においてはＩｎｔｅｎｔフィルタには、印刷システム２１０が処理可能なファイルフォーマットを記載している。ファイルフォーマットの一例としては、ＰＤＦファイル、ＨＴＭＬファイル、画像ファイルがある。この処理可能なファイルフォーマットの記載により、Ａｐｐ  Ｂ２１２等のアプリがファイル形式を指定してＩｎｔｅｎｔによるデータ共有を行った場合に、図８のアプリ選択画面８０１に示されるように印刷プラグイン２１５が連携の候補として挙がる。図８の詳細については後述する。
【００２１】
印刷アプリ２２１はＡｎｄｒｏｉｄ上で単独で動作する印刷用アプリケーションであり、Ａｐｐ  Ｂ２１２、Ａｐｐ  Ｃ２１３からＩｎｔｅｎｔの指示を受けて印刷を行うことができる。印刷アプリ２２１はサポートするファイルフォーマットからＰＤＬへの変換処理をすべて自アプリ内で行う。例えばスライドや帳票のオフィスファイル、画像、Ｗｅｂページなどを印刷可能である。
【００２２】
次に、プリンタＡ１２０のソフトウェア構成について説明する。
ネットワークモジュール２００は、プリンタＡ１２０と情報処理端末１１０間の通信を行うモジュールであり、ＨＴＴＰ、ＳＮＭＰ等のプロトコルを使用して外部の機器と通信する機能を提供する。
印刷処理モジュール２０１は、印刷を実行するためにＰＤＬから画像データを生成してプリンタエンジン１２５に描画データを送るためのモジュールである。
【００２３】
次に、アプリから印刷する手順について図５を用いて説明する。図５は、アプリから印刷を行う方法を示した遷移図である。アプリから印刷する基本の方法には２種類あり、図５（Ａ）に示す印刷システムを使用する方法と、図５（Ｂ）に示すＩｎｔｅｎｔを使用して印刷アプリを呼び出す方法とがある。印刷システムを使用する場合は、図６に示されるように、アプリのメニューボタン６０１を選択し、表示されるメニューの中で印刷ボタン６０３を選択する。一方、Ｉｎｔｅｎｔを使用して印刷アプリを呼び出す場合は、表示されるメニューの中で共有ボタン６０２を選択する。図６は、Ａｐｐ  Ａ２１１等のアプリから印刷を行う場合のＵＩの一例である。
【００２４】
まず、印刷システムを使用する図５（Ａ）の方法について説明する。図５（Ａ）のように、アプリから印刷システムを呼び出して印刷を行う場合は、メニューボタン６０１を押下して表示されるメニューから印刷ボタン６０３を押下して、図７に示すような印刷システムの印刷設定画面を呼び出して印刷を行う。図７は、印刷システムの印刷設定ＵＩの一例である。図７のプリンタ表示領域７０１に表示されているプリンタは、ネットワーク上で印刷プラグイン２１５により探索されたプリンタである。なお、複数のプリンタが利用可能であるときはプリンタの切り替えが可能である。また、設定ボタン７０２に示すボタン等から標準的な印刷設定を変更することができる。印刷ボタン７０３をタップすると、印刷システム２１０から印刷プラグイン２１５に対して印刷命令が送られる。
印刷ボタン７０３が押下されると、図５（Ａ）の遷移に従って印刷処理が行われる。まず、Ａｐｐ  Ｂ２１２は、印刷システム２１０に対して印刷システムが処理可能なファイルを渡して印刷指示を行う。印刷システムは、印刷システムの印刷設定ＵＩを表示し、また、Ａｐｐ  Ｂから受け取った印刷データをＰＤＦデータに変換する。そして、印刷システムは、印刷プラグイン２１５に印刷命令とＰＤＦデータを送る。ＰＤＦデータを受け取った印刷プラグインは、ＰＤＦデータをＰＤＬデータに変換する。そして、プリンタにＰＤＬデータを送信し、印刷処理を実行させる。印刷プラグインは、印刷処理のステータスを印刷システムに返却し、印刷システムはその結果をＵＩに反映させる。
【００２５】
次に、Ｉｎｔｅｎｔを使用して印刷アプリを呼び出す図５（Ｂ）の方法について説明する。図５（Ｂ）のように、アプリからＩｎｔｅｎｔを使用して印刷アプリを呼び出す場合は、図６のメニューから共有ボタン６０２を押下して、図８に示すようなアプリ選択画面８０１を表示させ、印刷アプリを選択させて印刷を行う。
図８は、アプリからＩｎｔｅｎｔを使って印刷する場合に、アプリケーションを選択する画面である。アプリにおいてＩｎｔｅｎｔを行う際にファイルフォーマットを指定した場合、指定したファイルフォーマットを共有できるアプリが、アプリ選択画面８０１に表示される。例えば、指定したファイルフォーマットがＰＤＦであった場合、印刷プラグイン２１５であるアプリのＩｎｔｅｎｔフィルタ４０１に処理可能なファイルフォーマットとしてＰＤＦが記載されている。そのため、印刷プラグイン２１５であるアプリもアプリ選択画面８０１に表示される。
アプリ選択画面８０１において印刷アプリ２２１が選択されたとすると、図５（Ｂ）の遷移に従って印刷処理が行われる。まず、Ａｐｐ  Ｂ２１２は印刷アプリ２２１にＩｎｔｅｎｔを使って印刷データを渡す（共有する）。印刷アプリ２２１は、受け取った印刷データをプリンタが解釈できるＰＤＬに変換してプリンタＡ１２０に送信し、印刷処理を実行させる。このとき、印刷アプリ２２１がＰＤＬに変換できるデータは、印刷アプリ２２１がサポートするファイルフォーマットに限られる。
【００２６】
アプリのメニューから直接印刷システムが利用できる場合は、図５（Ａ）の方法を選択すればよいが、アプリが印刷システムに対応していない場合はＩｎｔｅｎｔを利用する図５（Ｂ）の方法で印刷を行うことになる。しかし、情報処理端末に印刷アプリをダウンロードしていない場合には図５（Ｂ）の方法で印刷を行うこともできない。したがって、アプリが印刷システムに対応しておらず、さらに、Ｉｎｔｅｎｔで利用できる印刷アプリをインストールしていない場合はいずれの方法でも印刷を行うことはできない。そこで、アプリが印刷システムに対応していない場合でも印刷システムを利用して印刷を行う本実施例の印刷方法について、図５（Ｃ）及び図９を用いて説明する。
【００２７】
図５（Ｃ）は、本実施例におけるアプリと印刷プラグイン２１５、印刷システム２１０の処理の遷移を示した図である。
ステップＳ５０１では、Ａｐｐ  Ｂ２１２からＩｎｔｅｎｔの指示を受け、印刷プラグイン２１５が起動する。また、起動した印刷プラグイン２１５は、Ａｐｐ  Ｂ２１２から印刷データを受け取り、Ａｐｐ  Ｂ２１２と印刷データを共有する。このとき図９に示すフローが開始される。
ステップＳ５０２では、印刷プラグイン２１５が印刷システム２１０に印刷指示を行い、印刷システム２１０を起動して、印刷データを渡す。印刷データを受け取った印刷システム２１０は、印刷データをＰＤＦに変換する。詳細は図９を用いて後述する。
ステップＳ５０３では、印刷システム２１０がＰＤＦを印刷プラグイン２１５に渡して印刷の指示を送る。ＰＤＦを受け取った印刷プラグイン２１５は、ＰＤＦをＰＤＬに変換する。そして、印刷プラグイン２１５は、プリンタＡ１２０にＰＤＬと印刷の指示を送り、印刷が実行される。
ステップＳ５０４では、印刷プラグイン２１５から印刷システム２１０に対して印刷ステータスが送られ、ステップＳ５０５で印刷システム２１０は印刷結果に関するＵＩを更新する。
【００２８】
次にＳ５０１、Ｓ５０２の詳細について説明する。図９は、印刷プラグイン及び印刷システムの処理を示すフローチャートである。図９のフローチャートは、情報処理端末１１０上で実行される。図９の処理は、Ｓ５０１において、Ａｐｐ  Ｂ２１２等のアプリからＩｎｔｅｎｔによって印刷プラグイン２１５が呼び出され、起動することによって開始される。
ステップＳ９０１では、印刷プラグイン２１５が印刷データを一時的にアプリ領域（ＲＯＭ１１２またはＲＡＭ１１３）に保存しておく。印刷データは、印刷プラグイン２１５がアプリからＩｎｔｅｎｔを経由してＡｐｐ  Ｂ２１２等のアプリから受け取った（受信した）、画像データ、ＰＤＦデータ、ＨＴＭＬデータ等のデータである。このとき、印刷プラグイン２１５のマニフェストファイル２２０には印刷システムで変換処理が可能なファイルフォーマットのみを記載しているため、印刷システムで処理できないデータを受け取ることはない。
【００２９】
ステップＳ９０２では、印刷プラグイン２１５がアプリからＩｎｔｅｎｔで受け取った印刷データのファイルのファイル形式を判定する。ファイル形式がテキスト形式の場合は、ステップＳ９０３において印刷プラグイン２１５内でプレーンテキストにＨＴＭＬ用のタグを付加し、ＨＴＭＬ形式への変換を行い、Ｓ９０４に進む。ファイル形式がＰＤＦ形式の場合はＳ９０５に進む。ファイル形式が画像やＨＴＭＬファイル等、テキスト形式もしくはＰＤＦ形式以外の場合は、Ｓ９０４に進む。
【００３０】
ステップＳ９０４で、印刷プラグイン２１５は印刷データを印刷システムＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）に渡して（送信して）、ＰＤＦへの変換と印刷を指示する。印刷データと変換指示を受けた印刷システムは、印刷データをＰＤＦ（ＰＤＦデータ）に変換する。この処理により、印刷システムが印刷データをＰＤＦに変換させるため、印刷プラグイン２１５はＰＤＦファイルのみをＰＤＬに変換すれば良いという利点がある。
Ｓ９０５では、印刷システム２１０は、図７に示すような印刷システムのＵＩを表示する。このとき、印刷システム２１０の起動時にデフォルトで選択されているプリンタを指定することができない場合がある。例えば、ユーザはアプリから印刷プラグイン２１５をＩｎｔｅｎｔで起動したにもかかわらず、印刷システムが起動するとデフォルトのプリンタがＰｌｕｇｉｎ  Ｄ２１４になっていることもあり得る。このような誤解をユーザに与えないために、印刷プラグイン２１５はＵＩ表示用モジュール２１７を使って図１０のような画面を表示してから印刷システムを起動し、ユーザへ注意を促すことも考えられる。なお、Ｓ５０２において、印刷プラグイン２１５から印刷指示と印刷データを受け取った印刷システム２１０は、Ｓ９０４及びＳ９０５の処理を同時に行ってもよいし、順序を逆にして行ってもよい。その後、ユーザは起動した印刷システムのＵＩ画面から印刷プラグイン２１５を使用して、プリンタの探索、印刷設定の変更、印刷を行うことができる。
【００３１】
本実施例では、アプリとして動作する印刷プラグイン２１５がビューワーアプリからＩｎｔｅｎｔで印刷データを受け取った際に能動的に印刷システムを起動して印刷データを渡すことで、印刷システム２１０が印刷データをＰＤＦに変換する。印刷プラグイン２１５はＰＤＦファイルのみをＰＤＬに変換すればよい。以上の処理により、ビューワーアプリが印刷システムに対応しておらず、さらに、ビューワーアプリから使用できる印刷アプリがない場合でも、印刷を行うことが可能となる。
【００３２】
（実施例２）
実施例１では、印刷システム２１０がＰＤＦに変換することができるファイルフォーマットをあらかじめ印刷プラグイン２１５のマニフェストファイル２２０に記載していた。そして、印刷プラグインがアプリからＩｎｔｅｎｔを受け取った後で能動的に印刷システムを起動し、印刷システムにファイルを変換させるという処理を行った。この処理を行うと、印刷プラグイン２１５は、印刷システム２１０が変換処理できるファイルだけしかＩｎｔｅｎｔで受け取ることができない。しかし、Ｉｎｔｅｎｔを使って共有可能であるにもかかわらず、印刷システムでは変換処理できないファイルフォーマットは数多く存在する。例えばスライドや帳票等のオフィスファイルがある。
また、印刷アプリ２２１では印刷システムで変換処理できないデータを変換することができる場合が多い。しかし、印刷プラグイン２１５の方が印刷アプリ２２１と比べて圧倒的に認知度が高いため、印刷プラグイン２１５は情報処理端末１１０にインストールされているが、印刷アプリ２２１はインストールされていないという状況のユーザは多い。これは、例えばＡｎｄｒｏｉｄ  ＯＳの場合、印刷メニューから印刷プラグインのインストールができるページに容易にジャンプできるのに対し、印刷アプリはユーザが自分でＧｏｏｇｌｅ  Ｐｌａｙから探さなければならないなどの理由が考えられる。
実施例２では、印刷システム２１０で処理することができないファイルフォーマットに対して、Ｉｎｔｅｎｔで印刷プラグイン２１５が呼ばれた場合に印刷を可能にする。なお、実施例２に記載されている処理は、ＲＯＭ１１２に記憶されているアプリケーション、及び各モジュール（ソフトウェア）のプログラムを、必要に応じてＲＡＭ１１３に読み出してＣＰＵ１１１により実行することによって実現される。
【００３３】
実施例２のシステム構成は実施例１と同じであるが、マニフェストファイル２２０（共有ファイル）の記載が異なる。実施例１ではマニフェストファイル２２０のＩｎｔｅｎｔフィルタ４０１に印刷システムがサポートしているファイル形式を記載していたが、実施例２では印刷アプリ２２１がＩｎｔｅｎｔでサポートしているファイル形式と同等のものを記載する。なお、実施例２においては、印刷システムがサポートしているファイル形式は、印刷アプリ２２１がＩｎｔｅｎｔでサポートしているファイル形式に含まれている。すなわち、印刷アプリ２２１がＩｎｔｅｎｔでサポートしているファイル形式を記載すれば、印刷アプリと印刷システムのいずれかがファイル形式を記載していることになる。これは、印刷システムに対して、一般に印刷アプリの方がサポートしているファイル形式の種類が多いため、より多くのＩｎｔｅｎｔの指示を印刷プラグイン２１５で受け取ることができるという効果がある。
【００３４】
実施例２における印刷処理の流れを、図１１を用いて説明する。図１１は、実施例２における印刷プラグインの処理を示すフローチャートである。図１１のフローチャートは、情報処理端末１１０上で実行され、Ａｐｐ  Ｂ２１２等のアプリからＩｎｔｅｎｔによって印刷プラグイン２１５が呼ばれた際の印刷プラグイン２１５の処理を示している。
ステップＳ１１０１は、実施例１のステップＳ９０１と同様である。
ステップＳ１１０２で、受け取ったファイルフォーマットが印刷システムで変換することができるファイルフォーマットであるか否かを判断する。印刷システムで変換可能なファイルフォーマットは、印刷システムの仕様で決定されている。受け取ったファイルフォーマットが印刷システムで変換することができるファイルフォーマットである場合はステップＳ１１１６に、変換できないファイルフォーマットである場合はステップＳ１１０３に進む。
【００３５】
ステップＳ１１０３で、印刷アプリ２２１が情報処理端末１１０に既にインストールされているかどうかを判断する（アプリ判断）。印刷アプリが既にインストール済みかどうかは、例えばＯＳから取得することができるインストール済アプリのアプリＩＤ一覧から、印刷アプリ２２１のアプリＩＤを検索することで判定可能である。印刷アプリがインストールされていないと判断された場合はステップＳ１１０４に進み、既にインストールされていると判断された場合はステップＳ１１０５に進む。
ステップＳ１１０４では、印刷アプリ２２１のインストールを誘導する。例えば、リンク機能によりＧｏｏｇｌｅ  Ｐｌａｙ上の、印刷アプリ２２１を公開しているページを表示したり、アプリ配信サーバへ接続したりすることが考えられる。
ステップＳ１１０５で、印刷プラグイン２１５は印刷アプリ２２１をＩｎｔｅｎｔによって起動する。Ｉｎｔｅｎｔによって起動する際は、ステップＳ１１０１で一時的にコピーしている印刷データを印刷アプリに渡す処理を行う。印刷データを受け取った印刷アプリは、印刷データをＰＤＬデータに変換し、印刷処理を行う。また、カスタムＵＲＬスキームを使用して、印刷アプリ２２１を指定したり、画面を指定したりしてファイルを送ることが考えられる。
また、ステップＳ１１０５を行う処理フローの遷移は図５（Ｄ）に示すものであり、アプリから印刷プラグイン２１５がＩｎｔｅｎｔによる印刷データ共有の指示を受け、印刷プラグインは印刷アプリ２２１をＩｎｔｅｎｔで呼び出すという処理を行う。
【００３６】
ステップＳ１１０６からステップＳ１００９までは、実施例１のステップＳ９０２からステップＳ９０５までと同様の処理を行う。
以上の処理により、印刷システムで処理することができないファイルフォーマットの場合は、印刷アプリを使用することでユーザに印刷させることができ、印刷アプリがインストールされていない場合は、印刷アプリのインストールを促すことができる。
【００３７】
（実施例３）
実施例２では、印刷システム２１０が変換処理できないファイルの場合は印刷アプリ２２１にデータを渡して印刷処理を行わせたが、印刷プラグイン２１５が印刷アプリ２２１と同等の変換および印刷機能を保持していることが考えられる。その場合は、印刷プラグイン２１５が印刷システムで変換処理できないファイルを受け取った場合、印刷プラグイン内でＵＩ画面を表示して印刷までの処理を行う。そのためには、マニフェストファイル２２０（共有ファイル）のＩｎｔｅｎｔフィルタに、印刷システム２１０が変換処理できるファイルフォーマットの他に、印刷プラグイン２１５が自ら変換処理できるファイルのフォーマットも記載しておく。なお、実施例３に記載されている処理は、ＲＯＭ１１２に記憶されているアプリケーション、及び各モジュール（ソフトウェア）のプログラムを、必要に応じてＲＡＭ１１３に読み出してＣＰＵ１１１により実行することによって実現される。
【００３８】
実施例３における印刷処理の流れを、図１２を用いて説明する。図１２は、実施例３における印刷プラグインの処理を示すフローチャートである。図１２のフローチャートは、情報処理端末１１０上で実行され、Ａｐｐ  Ｂ２１２等のアプリからＩｎｔｅｎｔによって印刷プラグイン２１５が呼ばれた際の印刷プラグイン２１５の処理を示している。
ステップＳ１２０１は、実施例１のステップＳ９０１と同様の処理である。
ステップＳ１２０２では、受け取ったファイルのファイルフォーマットが印刷システムで処理可能かどうかを判断する。印刷システムで処理ができない場合はステップＳ１２０３に進み、印刷システムで処理可能な場合はステップＳ１２０５に進む。
ステップＳ１２０３では、ステップＳ１２０１でコピーしたデータを印刷プラグインで処理して印刷するために、プリンタの探索画面、印刷設定画面、等のＵＩを表示させる。プリンタ探索では通信監理モジュール２１８からＳＮＭＰをブロードキャストして、応答するネットワーク上のプリンタを探索する。
ステップＳ１２０４では印刷プラグイン２１５内で印刷処理を行う。例えばＳ１２０１でコピーしたデータを、印刷ジョブ生成モジュール２１６を使ってプリンタＡ１２０で解釈可能なＰＤＬに変換し、プリンタＡ１２０に対して送信する。
【００３９】
ステップＳ１２０５からステップＳ１２０８の処理は、実施例１のステップＳ９０２からステップＳ９０５の処理と同様である。
以上の処理により、印刷プラグインが印刷システムで変換処理できないファイルをＩｎｔｅｎｔによって受け取った場合、印刷プラグイン内で変換処理を行い、プリンタの探索、印刷までを行うことができる。
【００４０】
（実施例４）
Ａｎｄｒｏｉｄでは、印刷システム２１０に対してデフォルトで選択されているプリンタを指定することはできないが、印刷システム２１０に対してプリンタを指定して起動する機能が実装される可能性がある。そのような場合、以降に示すフローを実施する。なお、本実施例に記載されている処理は、ＲＯＭ１１２に記憶されているアプリケーション、及び各モジュール（ソフトウェア）のプログラムを、必要に応じてＲＡＭ１１３に読み出してＣＰＵ１１１により実行することによって実現される。
【００４１】
まず、印刷プラグイン２１５で行われる処理を説明する。図１３は、実施例４における印刷プラグインの処理を示すフローチャートである。図１３のフローチャートは、情報処理端末１１０上で実行され、Ａｐｐ  Ｂ２１２等のアプリからＩｎｔｅｎｔによって印刷プラグイン２１５が呼ばれた際の印刷プラグイン２１５の処理を示している。
ステップＳ１３０１からステップＳ１３０４までは実施例１のステップＳ９０１からステップＳ９０４と同様である。
【００４２】
ステップＳ１３０５では、印刷システムに対してデフォルト（既定）で選択されているプリンタを指定可能かどうか判断する。判断方法としては、ＡｎｄｒｏｉｄのＡＰＩレベルによって判断する方法、Ａｎｄｒｏｉｄの印刷関連のＡＰＩから判断する方法などが考えられる。デフォルトでプリンタを指定可能な場合はステップＳ１３０６に進み、指定できない場合はステップＳ１３０８に進む。
ステップＳ１３０６では、印刷プラグイン２１５内で前回印刷に使用されたプリンタ識別子を取得する。印刷プラグイン２１５および印刷システム２１０内では、プリンタを一意に識別できるプリンタＩＤというパラメータを管理しており、例えばプリンタのＭａｃアドレスやＭａｃアドレスと接頭語、接尾語の組み合わせにより表現される。ステップＳ１３０６では、印刷プラグイン２１５内で印刷終了時に保存しているプリンタＩＤを取得する処理を行う。
ステップＳ１３０７では、印刷システムに対してステップＳ１３０６で取得したプリンタＩＤおよびプリンタの情報と、ステップＳ１３０１でコピーした印刷ファイルと併せて印刷システムに渡し、印刷システムを起動する。ステップＳ１３０６及びステップＳ１３０７によって、前回印刷に使用されたプリンタがデフォルトのプリンタに指定される。
【００４３】
ステップＳ１３０８は、印刷システム２１０に対してデフォルトのプリンタを指定することができない場合であり、図１０に示すようにデフォルトで選択されているプリンタが他プラグインのものである可能性があることをユーザに伝える。
ステップＳ１３０９では、実施例１のステップＳ９０５と同様に印刷システムを起動する。
【００４４】
次に、印刷システム２１０側の処理について説明する。この処理はステップＳ１３０７において、印刷プラグイン２１５が印刷システム２１０に対してデフォルトで選択されているプリンタを指定して起動を行った後の処理である。
ステップＳ１３１０で、印刷システムは印刷プラグイン２１５からプリンタの識別子であるプリンタＩＤおよびプリンタの情報を受け取る。
ステップＳ１３１１で、プリンタＩＤおよびプリンタの情報に従い、受け取ったプリンタの情報をデフォルトのプリンタとして表示する。
ステップＳ１３１１で、印刷システムは標準の印刷処理を行う。
以上の処理により、印刷システムに対してデフォルト選択されているプリンタを印刷プラグインが指定できる場合に、プリンタを指定して印刷システムを起動することができる。
【００４５】
（実施例５）
実施例１では、印刷プラグインがアプリからＩｎｔｅｎｔを受け取った後で能動的に印刷システムを起動し、印刷システムにファイルを変換させるという処理を行った。
このとき、ユーザによって印刷プラグイン２１５が無効に設定されていた場合は、プリンタの探索を行うことができず、ユーザ操作によって図７の画面に遷移した際に、印刷プラグイン２１５がサポートするプリンタを表示することができない。具体的には、例えばＡｎｄｒｏｉｄ  ＯＳの場合は、印刷プラグイン２１５の有効または無効を切り替える画面がＯＳの標準設定に用意されていてユーザがいつでも変更可能である。一方で、印刷プラグイン２１５の有効または無効にかかわらずにユーザは図８の共有画面において印刷プラグイン２１５を選択できる。ここで、印刷プラグイン２１５が無効の場合は、印刷プラグイン２１５は図７の画面に遷移した際に探索処理を行うことができず、印刷プラグイン２１５がサポートするプリンタを表示することができない。
【００４６】
そのような場合、図１４に示すダイアログを表示可能な図１５に示すフローを実施する。なお、本実施例に記載されている処理は、ＲＯＭ１１２に記憶されているアプリケーション、及び各モジュール（ソフトウェア）のプログラムを、必要に応じてＲＡＭ１１３に読み出してＣＰＵ１１１により実行することによって実現される。
実施例５における印刷処理の流れを、図１５を用いて説明する。図１５は、実施例５における印刷プラグイン２１５の処理を示すフローチャートである。図１５のフローチャートは、情報処理端末１１０上で実行され、Ａｐｐ  Ｂ２１２等のアプリからＩｎｔｅｎｔによって印刷プラグイン２１５が呼ばれた際の印刷プラグイン２１５の処理を示している。
【００４７】
ステップＳ１５０１は、実施例１のステップＳ９０１と同様である。
ステップＳ１５０２では、印刷プラグイン２１５が有効状態か無効状態かを判断する。無効状態であった場合は、ステップＳ１５０３に遷移する。
ステップＳ１５０３では、図１４に示すダイアログを表示し、ユーザが印刷プラグインを有効にする選択をしたか、無効のままにする選択をしたかを判断する。図１４は、情報処理端末に表示されるＵＩの一例であり、印刷プラグイン２１５を有効にするか否かの選択画面をユーザに示している。ユーザが印刷プラグイン２１５を有効にするためにＯＫボタン１４０２を押下した際は、ステップＳ１５０４に遷移する。ユーザがキャンセルボタン１４０１を押下した際は、ステップＳ１５０５に遷移する。
【００４８】
ステップＳ１５０４では、印刷プラグイン２１５はＯＳが提供する印刷プラグイン２１５の設定画面（ｏｎ／ｏｆｆ画面）を表示させる。この設定画面で、ユーザは印刷プラグインを無効から有効に切り替えることができる。印刷プラグインを有効に設定した後、ユーザはＡｐｐ  Ｂ２１２から再び印刷を行うことで、ステップＳ１５０２において印刷プラグインが有効になっていると判定された場合の処理を行うことができる。
【００４９】
ステップＳ１５０３においてユーザがキャンセルボタンを押下し、印刷プラグイン２１５が無効のままステップＳ１５０５に進んだ場合でも、ステップＳ１５０６からステップＳ１５０８の処理は行える。ステップＳ１５０５からステップＳ１５０８までは、実施例１のステップＳ９０２からステップＳ９０５までと同様の処理を行う。しかし、印刷プラグイン２１５によるプリンタの探索が行えない状態なので、ステップＳ１５０８において表示する図７の印刷設定画面のＵＩ表示において印刷プラグインがサポートするプリンタが表示されない。
以上の処理により、ユーザがＩｎｔｅｎｔを使って印刷プラグイン２１５を起動した際に、印刷プラグイン２１５が無効状態だった場合は、印刷プラグイン２１５の有効または無効を切り替えることができる設定画面へユーザを誘導させることができる。
【００５０】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００５１】
以上、本発明の好ましい実施例について説明したが、本発明は、これらの実施例に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2020047295.tif 000003
【図２】
2020047295.tif 000004
【図３】
2020047295.tif 000005
【図４】
2020047295.tif 000006
【図５】
2020047295.tif 000007
【図６】
2020047295.tif 000008
【図７】
2020047295.tif 000009
【図８】
2020047295.tif 000010
【図９】
2020047295.tif 000011
【図１０】
2020047295.tif 000012
【図１１】
2020047295.tif 000013
【図１２】
2020047295.tif 000014
【図１３】
2020047295.tif 000015
【図１４】
2020047295.tif 000016
【図１５】
2020047295.tif 000017