JP2008201093A - 電子文書処理装置、電子文書処理方法、及びコンピュータプログラム - Google Patents

電子文書処理装置、電子文書処理方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP2008201093A
JP2008201093A JP2007042434A JP2007042434A JP2008201093A JP 2008201093 A JP2008201093 A JP 2008201093A JP 2007042434 A JP2007042434 A JP 2007042434A JP 2007042434 A JP2007042434 A JP 2007042434A JP 2008201093 A JP2008201093 A JP 2008201093A
Authority
JP
Japan
Prior art keywords
filter
function
program
application program
electronic document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007042434A
Other languages
English (en)
Other versions
JP5142551B2 (ja
Inventor
Shoji Koike
尚司 小池
Katsushi Sunakawa
克志 砂川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2007042434A priority Critical patent/JP5142551B2/ja
Priority to US12/033,634 priority patent/US8024812B2/en
Publication of JP2008201093A publication Critical patent/JP2008201093A/ja
Application granted granted Critical
Publication of JP5142551B2 publication Critical patent/JP5142551B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

【課題】 記憶されている電子文書に対して行う編集や操作を、目的に合わせて適応的に制限できるようにする。
【解決手段】 目的に応じた適切なフィルタ301〜305をMFP100毎に設定しておくようにした。したがって、使用する編集アプリケーションプログラム121〜124の機能に影響されることなく、編集アプリケーションプログラム121〜124の機能を、MFP毎の目的に合わせて、制限することができる。また、一台のMFPに、複数のフィルタをインストールしておき、ユーザの目的に合わせてどのフィルタを使用するかを設定しておくようにした。したがって、編集アプリケーションプログラム121〜124の機能に影響されることなく、編集アプリケーションプログラム121〜124の機能を、ユーザ毎に制限することができる。
【選択図】 図3

Description

本発明は、電子文書処理装置、電子文書処理方法、及びコンピュータプログラムに関し、特に、記憶されている電子文書を処理するために用いて好適なものである。
近年、マルチファンクションプリンタ(MFP)と呼ばれる複合機では、コピーや、ページ記述言語(PDL)で記述された印刷データのプリントを行うだけでなく、電子文書として文書を内部に保存できるものがある。電子文書として保存される文書には、例えば、スキャナで読み込まれた文書や、ホストコンピュータからPDLデータで送信された文書等がある。更に、MFPには、ページ記述言語を解析してページデータを画像部品に分離し、電子文書を画像部品単位で保存することで、後から画像部品単位で電子文書を編集して再利用することが可能なものもある(特許文献1を参照)。
また、MFP内の機能プログラムをユーザがダウンロードして入れ替えられるものもある。MFPの機能を使用するプログラムを開発するためのソフトウェアデベロップメントキット(SDK)が提供されており、メーカ、販売会社及びサードパーティは、このSDKを用いて独自のアプリケーションプログラムを作成できる。ユーザはこれらのアプリケーションプログラムを購入し、MFPにダウンロードすることで、元のMFPでは使えなかった機能を新たに使えたり使い勝手を向上させたりすることができる(特許文献2を参照)
これらの技術を用いることで、MFP内に保存した電子文書を編集及び操作するアプリケーションプログラムを作成することができる。このような機能を持つMFPを使用するユーザは、自分の好みの編集アプリケーションプログラムを購入し、購入した編集アプリケーションプログラムをMFPにダウンロードして使用することになる。
一方、文書や画像の中には、編集して自由に使用してよいものと、著作権の問題から自由に使用すべきでないものとが存在する。したがって、自由に使用すべきでない文書や画像に対しては、編集を行えないように制限をかける必要がある。そこで、ユーザが、画像単位で一つ一つを確認しなくても、編集を行う際に自動的に編集操作の機能が制限され、ユーザが不用意に文書や画像を編集してしまうことを防止する技術が知られている。更に、編集に対する制限のレベルを示す編集機能レベル情報を、各画像に付与することで、より詳細な制御を行う技術も知られている(特許文献3を参照)。
特開平10−208020号公報 特開2003−256216号公報 特開2001−117687号公報
背景技術に挙げた「電子文書を部品単位で編集できるようにした技術」と「機能プログラムをダウンロードして入れ替えられるようにした技術」を用いたMFPでは、ユーザは、自分の好みの編集アプリケーションプログラムを購入して使用することが可能である。そうすると、それまでにインストールされていた編集アプリケーションプログラムの機能によって制限され、自由に編集できなかったことが、新たにインストールされた編集アプリケーションプログラムによって、自由に編集できるようになってしまう可能性がある。もともと自由な環境で自由に編集する目的で使用されている機器であればこのような問題はない。これに対し、同じ部署内で使用されているあるMFP内の文書については、一部だけを編集して再利用させたいが、別のMFP内の文書については、電子記録として保存しているので改竄されないようにしておきたい場合には問題がある。
そこで、背景技術に挙げた「画像単位で編集操作を制限する技術」により、文書夫々若しくは文書内部の部品夫々に、編集機能レベル情報を付与することで、編集制限をかけることが可能ではある。しかしながら、既に大量の文書をMFP内に保存してある場合には、MFP内にある全ての文書若しくは全ての部品に編集制限レベル情報を付与することになり、かなりの作業が必要となってしまう。
更に一つのMFPで、使用するユーザによって、編集できる操作や編集内容の制限を変えることが困難であるといった問題がある。
本発明は、このような問題点に鑑みてなされたものであり、記憶されている電子文書に対して行う編集や操作を、目的に合わせて適応的に制限できるようにすることを目的とする。
本発明の電子文書処理装置は、電子文書を記憶する電子文書記憶手段と、前記電子文書を編集するためのアプリケーションプログラムであって、アプリケーションプラットフォーム上で動作するアプリケーションプログラムを記憶するアプリケーションプログラム記憶手段と、前記アプリケーションプログラムによって実行される機能を制限するためのフィルタプログラムを記憶するフィルタプログラム記憶手段と、前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であるかを判定する機能判定手段と、前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であることが前記判定手段により判定されると、前記フィルタプログラムに基づいて、その機能を制限する機能制限手段とを有することを特徴とする。
本発明の電子文書処理方法は、電子文書を記憶媒体に記憶する電子文書記憶ステップと、前記電子文書を編集するためのアプリケーションプログラムであって、アプリケーションプラットフォーム上で動作するアプリケーションプログラムを記憶媒体に記憶するアプリケーションプログラム記憶ステップと、前記アプリケーションプログラムによって実行される機能を制限するためのフィルタプログラムを記憶媒体に記憶するフィルタプログラム記憶ステップと、前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であるかを機能判定手段により判定する機能判定ステップと、前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であることを示す信号が、前記機能判定手段から入力されると、前記フィルタプログラムに基づいて、その機能を制限する機能制限ステップとを有することを特徴とする。
本発明のコンピュータプログラムは、前記電子文書処理方法の各ステップをコンピュータに実行することを特徴とする。
本発明によれば、アプリケーションプラットフォーム上で動作するアプリケーションプログラムによって実行される機能を制限するためのフィルタプログラムを記憶させておく。そして、アプリケーションプログラムによって実行される機能が、フィルタプログラムで制限される機能である場合に、その機能を、前記フィルタプログラムに基づいて制限する。したがって、記憶されている電子文書に対して行う編集や操作を、目的に合わせて適応的に制限することができる。例えば、記憶されている電子文書に対して行う編集や操作を、機器単位で制限したり、ユーザ単位で制限したりすることが可能になる。
(第1の実施形態)
次に、図面を参照しながら、本発明の第1の実施形態について説明する。
図1は、印刷システムの概略構成の一例を示す図である。
図1において、ユーザ1は、文書をMFP100に保存させるユーザである。ユーザ2は、MFP100に保存されている電子文書1000を編集するユーザである。紙ドキュメント10は、ユーザ1によるユーザインターフェース101の操作に基づいて、MFP100が有するスキャナで読み込まれ、電子文書1000としてMFP100に保存される。また、ユーザ1によるユーザインターフェース101の操作に基づいて、MFP100が有するプリンタによって紙ドキュメント20が印刷される。
PC(Personal Computer)501は、ネットワークを介してMFP100と相互に接続され、PDLで記述された画像データをMFP100に送信する。PC502は、ネットワークを介してMFP100と相互に接続され、MFP100に保存されている電子文書1000を操作する。ユーザ2は、ユーザインターフェース101若しくはPC502を用いることによって、電子文書1000を編集・操作することができる。
図2は、電子文書処理装置の一例であるMFP100に内蔵されるコントローラにおけるハードウェアの概略構成の一例を示す図である。
図2において、コントローラ102は、MFP100全体を制御するためのものである。ネットワーク制御部401は、ネットワークを介して相互に接続されたPC501、502等との通信を制御するためのものである。CPU402は、ハードディスク(HDD)403やROM405に記憶されたプログラムを、RAM404をワークエリアとして用いる等して実行して、コントローラ102を統括制御するためのものである。ROM405及びハードディスク403は、プログラムやデータを記憶する。RAM404は、ワークエリアとして機能したり、データの一時的な記憶領域として機能したりする。
I/O406は、ユーザインターフェース101を制御する。スキャナ制御部407は、スキャナとしての機能を実行するスキャナエンジン420の動作を制御する。プリンタ制御部408は、プリンタとしての機能を実行するプリンタエンジン430の動作を制御する。尚、コントローラ102内の各装置401〜408は、バス410を介して相互に接続されている。
図3は、MFP100に内蔵されるコントローラ102におけるソフトウェアの概略構成の一例を示す図である。尚、図3に示す各ブロック間で信号の送受信を行うことにより、以下に述べる各種の機能が実現される。
図3において、機器内のアプリケーションプログラム群110には、再印刷アプリケーションプログラム(再印刷)111と、外部からアプリケーションプログラムをダウンロードできるアプリケーションフレームワーク120とが含まれている。編集アプリケーションプログラム(アプリA〜D)121〜124は、夫々アプリケーションフレームワーク120上で動作する。本実施形態では、編集アプリケーションプログラム121〜124は、アプリケーションフレームワーク120上で動作する。また、本実施形態では、アプリケーションフレームワーク120を用いてアプリケーションプログラム記憶手段が実現される。
ネットワークモジュール130は、ネットワークを介して相互に接続されたPC502等の機器との通信を司る。ユーザ認証モジュール140は、ユーザインターフェース101から入力した情報に基づいて、アプリケーションプログラム群110を使用するユーザを認証する。また、ユーザ認証モジュール140は、PC502からネットワークモジュール130を介して入力した情報に基づいて、コントローラ102の機能を使用するユーザを認証したりする。
文書管理モジュール150は、電子文書1000を保存するためのものである。電子文書1000には、複数の部品1001〜1005が含まれている。このように本実施形態では、例えば、文書管理モジュール150を用いて電子文書記憶手段が実現される。
プラグイン用フィルタ制御モジュール160は、アプリケーションプログラム群110、若しくはネットワークモジュール130が起動する際に、フィルタ301〜305の何れかをフィルタプラグイン210に接続(設定)する。対ユ―ザフィルタ情報モジュール170は、プラグイン用フィルタ制御モジュール160が、アプリケーションプログラム群110を使用するユーザに対して設定すべきフィルタを、フィルタ301〜305の中から決定するための情報を記憶する。
図3では、一般編集フィルタ301、操作履歴付き一般編集フィルタ302、原本性確保フィルタ(原本性確保フィルタA)303、原本性確保フィルタ(原本性確保フィルタB)304、及び部分編集フィルタ305の何れかが設定される。このように本実施形態では、複数種類のフィルタ301〜305がコントローラ102にインストールされており、コントローラ102は、フィルタ301〜305を複数有している。尚、これら複数のフィルタ301〜305は、プログラムと、後述するマッピングテーブルとを備えている。このように本実施形態では、例えば、フィルタ301〜305を用いてフィルタプログラムが実現される。そして、これらフィルタ301〜305は、コントローラ102に設けられているHDD403等の記憶媒体に記憶されている。よって、本実施形態では、例えば、フィルタ301〜305を記憶するHDD403等の記憶媒体を用いてフィルタプログラム記憶手段が実現される。
文書操作API201は、アプリケーションプログラム群110に対して、文書操作機能を個別に提供するインタフェースである。文書編集API202は、アプリケーションプログラム群110に対して文書編集機能を個別に提供するインタフェースである。このように本実施形態では、例えば、文書操作API201及び文書編集API202を用いて、編集操作機能インタフェースが実現される。フィルタプラグイン210は、フィルタ301〜305の中から、フィルタをプラグインする。
文書操作ライブラリ221は、文書管理モジュール150に記憶されている電子文書を操作する機能を持つ。文書編集ライブラリ222は、文書管理モジュール150に記憶されている電子文書を編集する機能を持つ。このように本実施形態では、例えば、文書操作ライブラリ221及び文書編集ライブラリ222を用いて、編集操作機能ライブラリが実現される。また、文書操作ライブラリ221及び文書編集ライブラリ222にライブラリ化されて記憶されている後述の関数を用いて編集操作手段が実現される。
以上の各ブロック(ソフトウェア)は、ハードディスク403及びROM405の何れかに格納されており、CPU402により呼び出されて実行されることで、MFP100全体の制御が行われる。
具体的に本実施形態では、図3において、Java(登録商標)の仮想機械としてのインタプリタ、サービスマネージャ、及び機器制御クラスライブラリが、コントローラ102のプラットフォームに存在する。
サービスマネージャは、編集アプリケーションプログラム121〜124の追加・削除・起動・停止等、編集アプリケーションプログラム121〜124の実行を管理する。仮想機械としてのインタプリタは、アプリケーションプログラムや、ライブラリのコードを実現するJava(登録商標)のバイトコードを解釈して実行するソフトウェアである。本実施形態では、サービスマネージャが管理するアプリケーションフレームワーク120が、アプリケーションプラットフォームの一例として設けられる。
機器制御クラスライブラリは、Java(登録商標)クラスのネイティブメソッドを実現した機器制御API(Application Program Interface)をライブラリ化したものである。この機器制御クラスライブラリにより、機種に依存している部分をアプリケーションプログラムに対して隠蔽することができる。アプリケーションプログラムが、機器制御APIや機器制御を伴わないAPIを含むJava(登録商標)の層のAPI群を呼び出すことにより、コピー処理、スキャン処理、及び記憶領域に対するドキュメント格納処理が可能になる。図3に示す文書操作API201や文書編集API202は、このJava(登録商標)の層のAPI群に該当する。
尚、プラットフォームの機能としては、アプリケーションプラットフォームの他に、機器制御用のプラットフォームがある。
図4は、一般編集フィルタ301に含まれるマッピングテーブルの内容の一例を示す図である。図5は、操作履歴付き一般編集フィルタ302に含まれるマッピングテーブルの内容の一例を示す図である。図6は、原本性確保フィルタ303に含まれるマッピングテーブルの内容の一例を示す図である。図7は、原本性確保フィルタ304に含まれるマッピングテーブルの内容の一例を示す図である。図8は、部分編集フィルタ305に含まれるマッピングテーブルの内容の一例を示す図である。これらマッピングテーブルは、編集アプリケーションプログラム121〜124から呼び出し指示があった関数を変更するためのルールを記憶したテーブルである。
図9は、編集アプリケーションプログラム(アプリA)121が実行する処理動作の一例を説明するフローチャートである。この編集アプリケーションプログラム121は、一般的な機能を持つアプリケーションプログラムであり、デフォルトで製品に搭載されている。
図9において、編集アプリケーションプログラム121は、ユーザ2が、MFP100のユ―ザインタフェース101を操作して、編集アプリケーションプログラム121を使用した電子文書1000の編集開始を指示するまで待機する(ステップS1)。編集アプリケーションプログラム121を使用した電子文書1000の編集の開始が指示されると、編集アプリケーションプログラム121は、文書操作API201を用いて、編集対象の電子文書1000を開く処理を実行する(ステップS2)。次に、編集アプリケーションプログラム121は、編集対象の電子文書1000がなく、その編集対象の電子文書1000を開けない等のエラーが生じたか否かを判定する(ステップS3)。この判定の結果、エラーが生じた場合、編集アプリケーションプログラム121は、そのことを示すメッセージをユーザインターフェース101等に表示して(ステップS4)、処理を終了する。
一方、エラーが生じていない場合、編集アプリケーションプログラム121は、ユーザインターフェース101から更なる入力があるまで待機する(ステップS5)。ユーザインターフェース101から入力があると、編集アプリケーションプログラム121は、その入力が文書編集に関わるものか、それとも文書操作に関わるものかを判定する(ステップS6)。
この判定の結果、入力が文書編集に関わるものである場合、編集アプリケーションプログラム121は、文書編集API202を用いて文書の編集処理を行った後(ステップS7)、ステップS4へ戻り、次の入力を待つ。
一方、入力が文書操作に関わるものである場合、編集アプリケーションプログラム121は、その入力が処理の終了を指示するものか否かを判定する(ステップS8)。この判定の結果、入力が処理の終了を指示するものである場合、編集アプリケーションプログラム121は、処理が正常に終了したことを示すメッセージをユーザインターフェース101等に表示して(ステップS4)、処理を終了する。
一方、入力が処理の終了を指示するものでない場合、編集アプリケーションプログラム121は、その入力が、文書のセーブ(保存)を指示するものか否かを判定する(ステップS9)。この判定の結果、入力が、文書のセーブを指示するものである場合、編集アプリケーションプログラム121は、その文書のプロパティにおける更新者の名前としてユーザ2の名前を書き込む(ステップS10)。
次に、編集アプリケーションプログラム121は、その文書のプロパティの更新日時に、現在の日時を書き込んで(ステップS11)、その文書をセーブ(保存)し(ステップS12)、ステップS4に戻る。
ステップS9において、入力が、文書のセーブを指示するものでないと判定された場合、編集アプリケーションプログラム121は、その入力が、プロパティの編集を指示するものであるか否かを判定する(ステップS13)。この判定の結果、入力が、プロパティの編集を指示するものである場合、編集アプリケーションプログラム121は、プロパティの編集対象が、作者、更新者、作成日時、及び更新日時の何れかであるか否かを判定する(ステップS14)。この判定の結果、プロパティの編集対象が、作者、更新者、作成日時、及び更新日時の何れかである場合、編集アプリケーションプログラム121は、編集できない旨を示すメッセージをユーザインターフェース101等に表示する(ステップS15)。そして、ステップS4に戻る。
ステップS13において、入力が、プロパティの編集を指示するものでないと判定された場合と、ステップS14において、プロパティの編集対象が、作者、更新者、作成日時、及び更新日時の何れでもないと判定された場合、ステップS16に進む。そして、編集アプリケーションプログラム121は、入力された内容に従って、編集対象の電子文書1000の操作を、文書操作API201を用いて実行して(ステップS16)、ステップS4に戻る。
図10は、編集アプリケーションプログラム(アプリB)122が実行する処理動作の一例を説明するフローチャートである。この編集アプリケーションプログラム122は、指定した部品を探索して別の部品に置換し、更に指定された色に部品の少なくとも一部を着色するアプリケーションプログラムである。この編集アプリケーションプログラム122は、大量のページからなる文書内のロゴ等を一括で変換する等の目的で用いられるものである。
図10において、編集アプリケーションプログラム122は、ユーザ2が、MFP100のユ―ザインタフェース101を操作して、編集アプリケーションプログラム122を使用した電子文書1000の編集開始を指示するまで待機する(ステップS21)。編集アプリケーションプログラム122を使用した電子文書1000の編集の開始が指示されると、編集アプリケーションプログラム121は、文書操作API201を用いて、編集対象の電子文書1000を開く処理を実行する(ステップS22)。
次に、編集アプリケーションプログラム122は、編集対象の電子文書1000がなく、その編集対象の電子文書1000を開けない等のエラーが生じたか否かを判定する(ステップS23)。この判定の結果、エラーが生じた場合、編集アプリケーションプログラム122は、そのことを示すメッセージをユーザインターフェース101等に表示して(ステップS24)、処理を終了する。
一方、エラーが生じていない場合、編集アプリケーションプログラム122は、編集対象の電子文書1000を構成する部品1001〜1005の全てをチェックする。すなわち、編集アプリケーションプログラム122は、文書編集API202を用いて、部品をピックアップする(ステップS25)。次に、編集アプリケーションプログラム122は、部品をピックアップできたか否かを判定することによって、編集対象の電子文書1000を構成する全ての部品1001〜1005について処理を行ったか否かを判定する(ステップS26)。
この判定の結果、部品をピックアップでき、編集対象の電子文書1000を構成する全ての部品1001〜1005について処理を行っていない場合、ステップS27に進む。そして、編集アプリケーションプログラム122は、その部品が置換対象として指定された部品か否かを判定する(ステップS27)。この判定の結果、ピックアップした部品が置換対象として指定された部品である場合、編集アプリケーションプログラム122は、文書編集API202を介して得られる文書編集ライブラリ222の機能を用いて、部品の置換処理を行う(ステップS28)。
次に、編集アプリケーションプログラム122は、文書編集API202を介して得られる文書編集ライブラリ222の機能を用いて、置換処理を行った部品を、指定された色に着色する(ステップS29)。そして、ステップS24に戻り、次の部品に対して同様の処理を繰り返す。
ステップS27において、ピックアップした部品が置換対象として指定された部品でないと判定された場合には、ステップS28、S29を省略して、ステップS24に戻り、次の部品に対して同様の処理を繰り返す。
ステップS26において、編集対象の電子文書1000を構成する全ての部品1001〜1005について処理を行ったと判定された場合、ステップS30に進む。そして、編集アプリケーションプログラム122は、文書操作API201を用いて、編集対象の文書をセーブ(保存)する(ステップS30)。そして、編集アプリケーションプログラム122は、エラーが生じたか否かを判定する(ステップS31)。
この判定の結果、エラーが生じた場合、編集アプリケーションプログラム122は、編集対象の電子文書1000を破棄し(ステップS32)、その旨を示すメッセージをユーザインターフェース101等に表示し(ステップS33)、処理を終了する。
一方、エラーが生じていない場合、編集アプリケーションプログラム122は、正常に編集が終了したと判定して、編集対象の電子文書1000を閉じる(ステップS34)。そして、編集アプリケーションプログラム122は、正しく編集できた旨を示すメッセージをユーザインターフェース101等に表示し(ステップS35)、処理を終了する。
図11は、編集アプリケーションプログラム(アプリC)123が実行する処理動作の一例を説明するフローチャートである。この編集アプリケーションプログラム123は、文書の作者を、指定した名前に書き換えたり、更新日時を、指定した日時に書き換えたりするアプリケーションプログラムであり、主に文書の管理者がメンテナンス等の目的で用いられるものである。
図11において、編集アプリケーションプログラム123は、ユーザ2が、MFP100のユ―ザインタフェース101を操作して、編集アプリケーションプログラム122を使用した電子文書1000の編集開始を指示するまで待機する(ステップS41)。編集アプリケーションプログラム123を使用した電子文書1000の編集の開始が指示されると、編集アプリケーションプログラム121は、文書操作API201を用いて、編集対象の電子文書1000を開く処理を実行する(ステップS42)。
次に、編集アプリケーションプログラム123は、編集対象の電子文書1000がなく、その編集対象の電子文書1000を開けない等のエラーが生じたか否かを判定する(ステップS43)。この判定の結果、エラーが生じた場合、編集アプリケーションプログラム123は、そのことを示すメッセージをユーザインターフェース101等に表示して(ステップS44)、処理を終了する。
一方、エラーが生じていない場合、編集アプリケーションプログラム122は、文書操作API201を用いて、編集対象の電子文書1000のプロパティにある作者の名前を、指定されたものへ書き換える処理を試みる(ステップS45)。更に、編集アプリケーションプログラム123は、文書操作API201を再度用いて、更新日を、指定された日へ書き換える処理を試みる(ステップS46)。
次に、編集アプリケーションプログラム123は、文書操作API201を用いて、編集対象の電子文書1000をセーブ(保存)する(ステップS47)。そして、編集アプリケーションプログラム123は、エラーが生じたか否かを判定する(ステップS48)。この判定の結果、エラーが生じた場合、編集アプリケーションプログラム123は、編集対象の電子文書1000の修正を破棄し(ステップS49)、その旨を示すメッセージをユーザインターフェース101等に表示し(ステップS50)、処理を終了する。
一方、エラーが生じていない場合、編集アプリケーションプログラム123は、正常に編集が終了したと判定して、編集対象の電子文書1000を閉じる(ステップS51)。そして、編集アプリケーションプログラム123は、正しく編集できた旨を示すメッセージをユーザインターフェース101等に表示し(ステップS52)、処理を終了する。
図12は、編集アプリケーションプログラム(アプリD)124が実行する処理動作の一例を説明するフローチャートである。この編集アプリケーションプログラム124は、MFP100が持つ編集操作機能を自由に使用できるオールマイティなアプリケーションプログラムである。
図12において、編集アプリケーションプログラム124は、ユーザ2が、MFP100のユ―ザインタフェース101を操作して、編集アプリケーションプログラム124を使用した電子文書1000の編集開始を指示するまで待機する(ステップS61)。編集アプリケーションプログラム124を使用した電子文書1000の編集の開始が指示されると、編集アプリケーションプログラム121は、文書操作API201を用いて、編集対象の電子文書1000を開く処理を実行する(ステップS62)。
次に、編集アプリケーションプログラム124は、編集対象の文書がなく、その編集対象の文書を開けない等のエラーが生じたか否かを判定する(ステップS63)。この判定の結果、エラーが生じた場合、編集アプリケーションプログラム124は、そのことを示すメッセージをユーザインターフェース101等に表示して(ステップS64)、処理を終了する。
一方、エラーが生じていない場合、編集アプリケーションプログラム124は、ユーザインターフェース101から更なる入力があるまで待機する(ステップS65)。ユーザインターフェース101から入力があると、編集アプリケーションプログラム124は、その入力が文書編集に関わるものか、それとも文書操作に関わるものかを判定する(ステップS66)。
この判定の結果、入力が文書編集に関わるものである場合、編集アプリケーションプログラム124は、文書編集API202を用いて電子文書1000の編集処理を行った後(ステップS67)、ステップS64へ戻り、次の入力を待つ。
一方、入力が文書操作に関わるものである場合、編集アプリケーションプログラム124は、文書操作API201を用いて、電子文書1000を操作する(ステップS68)。次に、編集アプリケーションプログラム124は、エラーが発生したか否かを判定する(ステップS69)。この判定の結果、エラーが発生した場合、編集アプリケーションプログラム124は、その旨を示すメッセージをユーザインターフェース101等に表示して(ステップS64)、処理を終了する。
一方、エラーが発生していない場合、編集アプリケーションプログラム124は、処理が終了したか否かを判定する(ステップS70)この判定の結果、処理が終了していない場合には、ステップS64に戻り、処理を継続する。一方、処理が終了した場合、編集アプリケーションプログラム124は、正常に処理が終了したことを示すメッセージをユーザインターフェース101等に表示して(ステップS64)、処理を終了する。
図13は、プラグイン用フィルタ制御モジュール160が実行する処理動作の一例を説明するフローチャートである。
ユーザ2が、アプリケーションプログラム群110の1つの起動を指示する際、若しくはネットワークを経由して電子文書1000に対する処理を行う際に、ユーザ認証モジュール140は、ユーザの認証処理を行い使用しているユーザを特定する。このように本実施形態では、例えば、ユーザ認証モジュール140が行う処理によって、ユーザ認証手段が実現される。
図13において、プラグイン用フィルタ制御モジュール160は、ユーザ2が使用するアプリケーションプログラム、若しくはネットワークモジュール130を経由して、MFP100を使用しているユーザの認証情報を取得する(ステップS81)。
次に、プラグイン用フィルタ制御モジュール160は、対ユーザフィルタ情報モジュール170に、ステップS81で取得したユーザの認証情報を渡し、そのユーザに対応するフィルタの情報の取得を依頼する(ステップS82)。前述したように、対ユーザフィルタ情報モジュール170には、管理ユーザによって、どのユーザにどのフィルタを用いるかを示す情報が予め入力されている。
次に、プラグイン用フィルタ制御モジュール160は、該当するユーザに対応するフィルタの情報がないかどうかを判定する(ステップS83)。この判定の結果、該当するユーザに対応するフィルタの情報がない場合、プラグイン用フィルタ制御モジュール160は、デフォルトのフィルタを選択してフィルタプラグイン210に接続する(ステップS84)。
一方、該当するユーザに対応するフィルタの情報がある場合、プラグイン用フィルタ制御モジュール160は、MFP100内にその情報に合致するフィルタがインストールされていないかどうかを判定する(ステップS85)。この判定の結果、フィルタの情報に合致するフィルタが、MFP100内にインストールされていない場合、プラグイン用フィルタ制御モジュール160は、デフォルトのフィルタを選択してフィルタプラグイン210に接続する(ステップS84)。
一方、フィルタの情報に合致するフィルタが、MFP100内にインストールされている場合、プラグイン用フィルタ制御モジュール160は、そのフィルタを選択してフィルタプラグイン210に接続し(ステップS86)、処理を終了する。
以上のように本実施形態では、例えば、ステップS84、S86の処理を行うことによってフィルタプログラム選択手段が実現される。
尚、本実施形態では、アプリケーションプログラムと文書編集の処理は、ユーザのセッション毎に独立していることを前提としている。よって、複数のユーザが同時に別のアプリケーションプログラムを使用しても、それぞれに別のフィルタがセットされて処理が行われ、各アプリケーションプログラムの動作に影響はない。
図14は、フィルタプラグイン210が実行する処理動作の一例を説明するフローチャートである。
アプリケーションプログラム群110若しくはネットワークモジュール130から、文書操作API201若しくは文書編集API202が呼ばれたら、フィルタプラグイン210は、APIのどの関数が呼ばれたのかを示す情報を取得する(ステップS101)。
次に、フィルタプラグイン210は、自身に接続されているフィルタが持つマッピングテーブルを見て、呼ばれた関数の前処理の項目に何らかの関数が定義されているか否かを判定する(ステップS102)。この判定の結果、前処理の項目に何らかの関数が定義されている場合、フィルタプラグイン210は、その関数を前処理として実行する(ステップS103)。更に、フィルタプラグイン210は、前処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(前処理)がなされたことをユーザに報知することができる。そして、ステップS104に進む。一方、前処理の項目に関数が定義されていない場合には、ステップS103を省略してステップS104に進む。
そして、フィルタプラグイン210は、自身に接続されているフィルタが持つマッピングテーブルを見て、呼ばれた関数の実処理の項目に何らかの関数が定義されているか否かを判定する(ステップS104)。この判定の結果、実処理の項目に何らかの関数が定義されている場合、フィルタプラブイン210は、その関数を実処理として実行する(ステップS105)。更に、フィルタプラグイン210は、実処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(実処理)がなされたことをユーザに報知することができる。そして、ステップS106に進む。一方、実処理の項目に関数が定義されていない場合には、ステップS105を省略してステップS106に進む。
そして、フィルタプラグイン210は、自身に接続されているフィルタが持つマッピングテーブルを見て、呼ばれた関数の後処理の項目に何らかの関数が定義されているか否かを判定する(ステップS106)。この判定の結果、後処理の項目に何らかの関数が定義されている場合、フィルタプラブイン210は、その関数を後処理として実行する(ステップS107)。更に、フィルタプラグイン210は、後処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(後処理)がなされたことをユーザに報知することができる。そして、処理を終了する。一方、後処理の項目に関数が定義されていない場合には、ステップS107を行わずに処理を終了する。
尚、マッピングテーブルに何も定義されていなければ、図14に示す処理を何も行わないケースもある。
以上のように本実施形態では、例えば、ステップS102、S104、S106の処理を行うことにより、機能判定手段が実現され、ステップS103、S105、S107の処理を行うことにより、機能制限手段が実現される。
仮に、フィルタプラグイン210に一般編集フィルタ301が接続されているとする。そうすると、図4に示したように、前処理の項目には何も定義されていないため、文書操作API201及び文書編集API202の何れの関数が呼ばれても、ステップS103の処理が行われることはない。
これに対し、実処理の項目には、文書操作ライブラリ221と文書編集ライブラリ222とに用意されている関数が定義されているため、文書操作API201及び文書編集API202の何れの関数が呼ばれても、ステップS105で該当する実処理が行われる。
また、後処理の項目には何も定義されていないため、文書操作API201及び文書編集API202の何れの関数が呼ばれても、ステップS107の処理が行われることはない。
仮に、フィルタプラグイン210に履歴付き一般編集フィルタ302が接続されているとする。図5に示したように、前処理の項目には何も定義されていないため、文書操作API201及び文書編集API202の何れの関数が呼ばれても、ステップS103の処理が行われることはない。
これに対し、実処理の項目には、文書操作ライブラリ221と文書編集ライブラリ222とに用意されている関数が定義されているため、文書操作API201及び文書編集API202の何れの関数が呼ばれても、ステップS105で該当する実処理が行われる。
そして、後処理の項目には、文書操作ライブラリ221と文書編集ライブラリ222とにX_Log()という関数が定義されているため、後処理として、このX_Log()が呼ばれ、実行された処理の全ての履歴が記憶領域に保存される。
仮に、フィルタプラグイン210に原本性確保フィルタ303が接続されているとする。図6に示したように、OpenDocument()が呼ばれた際には、前処理で一時的な文書を複製する。そして、実処理では、複製した一時的な文書を開く(オープンする)。そして、後処理では、X_CallBackMessage()という関数が呼ばれ、原本ではなく一時的な文書を複製してオープンしたことをアプリケーションプログラムに対して通知する。
また、SaveDocument()が呼ばれた際には、前処理で、X_CallBackMessage()という関数が呼ばれ、原本ではなく一時的な文書が保存される旨をアプリケーションプログラムに対して通知する。そして、実処理では、X_SaveDocument()という関数が呼ばれ、一時的な文書を保存する。
仮に、フィルタプラグイン210に原本性確保フィルタ304が接続されているとする。図7に示したように、OpenDocument()が呼ばれた際には、前処理で、X_Duplicateという関数が呼ばれ、対象となる文書をバックアップとして別名で複製する。そして、実処理では、X_OpenDocument()という関数が呼ばれ、対象となる文書を開き(オープンし)、以降の処理は、対象となる文書そのものに対して行う。
CloseDocument()が呼ばれた際には、実処理で、X_CloseDocumentという関数が呼ばれ、対象となる文書を閉じる(クローズする)。そして、後処理で、X_CheckModという関数が呼ばれ、対象となる文書が、バックアップと比較して更新されているか否かを判定(チェック)し、更新されていなければ、バックアップアップとして複製された文書を削除する。一方、更新されていれば、バックアップアップとして複製された文書を残す。
仮に、フィルタプラグイン210に部分編集フィルタ305が接続されているとする。図8に示したように、addObject()が呼ばれた際には、前処理で、X_CallBackMessage()という関数が呼ばれ、その呼び出しが無効であることをアプリケーションプログラムに対して通知する。そして、実処理では何も行われない。
deleteObject()が呼ばれた際にも、前処理で、X_CallBackMessage()という関数が呼ばれ、その呼び出しが無効であることをアプリケーションプログラムに対して通知する。そして、実処理では何も行われない。
尚、その他の呼び出しは、操作履歴付き一般編集フィルタ302に含まれるマッピングテーブルと同様である(図5を参照)。
次に、前述した本実施形態のプラグイン用フィルタ制御モジュール160、フィルタプラグイン210、及びフィルタ301〜305によって、実際にどのような効果が得られるのかを説明する。
(第1の適用例)
あるオフィスに2台のMFP_A、MFP_Bが設置されており、各ユーザはどちらにも自由に編集アプリケーションをインストールして使用していた。その後、ある時からMFP_Aに既に保存されている電子文書1000は、改変してはならず、MFP_Bに保存されている電子文書1000は、自由に編集してよいが、どのような使い方をしているかを調査することになったとする。
このようにする場合、MFPの管理ユーザは、MFP_Aに原本性確保フィルタ303のみをデフォルトのフィルタとしてインストールし、MFP_Bに操作履歴付き一般編集フィルタ302のみをデフォルトのフィルタとしてインストールすればよい。
ここで、一般のユーザが、MFP_Aにおいて、文書の作者名と更新日時とを書き換えられる編集アプリケーションプログラム123を間違って実行した場合に、どのような処理が行なわれるかを説明する。
図11のステップS42で、編集対象となる電子文書1000を開こう(オープンしよう)とすると、図14のステップS101で、OpenDocument()という関数が取得される。そして、図6に示した原本性確保フィルタ303のマッピングテーブルにおいて、OpenDocument()の項目には前処理が定義されているため、ステップS103で、文書操作ライブラリ221の機能であるX_Duplicate()が呼び出される。そうすると、文書操作ライブラリ221は、原本から別名の文書を複製する。
そして、OpenDocument()の項目には実処理が定義されているので、ステップS105で、文書操作ライブラリ221の機能であるX_OpenDocument()が呼び出される。そうすると、文書操作ライブラリ221は、複製した別名の文書を開く(オープンする)。
更に、OpenDocument()の項目には後処理が定義されているので、ステップS107で、文書操作ライブラリ221の機能であるX_CallBackMessage()が呼び出される。そうすると、文書操作ライブラリ221は、「編集できません。別文書としてオープンします」といったメッセ―ジを、編集アプリケーションプログラム123を経由して一般のユーザに伝える。
図11に説明を戻し、ステップS43では、エラーが生じていないと判定されるため、ステップS45の処理へ進む。ステップS45に進むと、図6に示したWriteAuthorName()が呼ばれ、複製した別名の文書に対してX_WriteAuthorName()に基づく処理(作者名の書き換え)が実行される。
同様に、ステップS46では、図6に示したWriteModifiedDate()が呼ばれ、複製した別名の文書に対して、X_WriteModifiedDate()に基づく処理(更新日時の書き換え)が行われる。
ステップS47で、SaveDocument()が呼ばれると、前処理で、X_CallBackMessage()が呼ばれ、「別名で保存する」といったメッセージをユーザに伝える。そして、実処理で、X_SaveDocumnt()が呼ばれ、複製した別名の文書を保存する。この処理自体もエラーではないので、ステップS51で、別名の文書を閉じ(クローズし)、ステップS52で、正常に処理が終了したことを示すメッセージを表示する。
以上の説明と対比して、MFP_Bにおいて、文書の作者名と更新日時とを書き換えられる編集アプリケーションプログラム123を実行した場合に、どのような処理が行われるかを説明する。
図11のステップS42で、編集対象となる文書を開こう(オープンしよう)とすると、図14のステップS101でOpenDocument()という関数が取得される。そして、図5に示した原本性確保フィルタ303のマッピングテーブルにおいて、OpenDocument()の項目には前処理が定義されていないため、ステップS103を行わない。そして、OpenDocument()の項目には実処理が定義されているので、ステップS105で、文書操作ライブラリ221の機能であるX_OpenDocument()が読み出される。そうすると、文書操作ライブラリ221は、編集対象となる文書を開く(オープンする)。
更に、OpenDocument()の項目には後処理が定義されているので、ステップS107で、X_Log()が呼び出され、処理内容がログに記憶される。
図11に説明を戻し、ステップS43では、エラーが生じていないと判定されるため、ステップS45の処理へ進む。ステップS45に進むと、図5に示したWriteAuthorName()を呼ばれ、実処理で、編集対象となる文書に対して、X_WriteAuthorName()に基づく処理(作者名の書き換え)が実行される。そして、後処理で、X_Log()が呼ばれ、作者名の書き換えが行われたことがログに記憶される。
同様に、ステップS46では、図5に示したWriteModifiedDate()が呼ばれ、実処理で、編集対象となる文書に対して、X_WriteModifiedDate()に基づく処理(更新日時の書き換え)が行われる。そして、後処理で、X_Log()が呼ばれ、更新日時の書き換えが行われたことがログに記憶される。
ステップS47で、SaveDocument()が呼ばれると、実処理で、X_SaveDocumnt()が呼ばれ、編集対象となる文書を保存し、後処理で、X_Log()が呼ばれ、編集対象となる文書を保存たことがログに記憶される。この処理自体もエラーではないので、ステップS51で編集対象となる文書を閉じ(クローズし)、ステップS52で、正常に処理が終了したことを示すメッセージを表示する。尚、これらの処理についても後処理でX_Log()が呼ばれ、ログに記憶される。
以上のように本実施形態では、目的に応じた適切なフィルタ301〜305をMFP100毎に設定しておくようにした。したがって、使用する編集アプリケーションプログラム121〜124の機能に影響されることなく、編集アプリケーションプログラム121〜124の機能を、MFP毎の目的に合わせて、制限することができる。
(第2の適用例)
あるオフィスに1台のMFP_Cが設置されている。ユーザCは文書全般を管理する立場にあり、場合によっては、MFP_Cに保存してある文書の作者名や更新日時等を編集することがある。ユーザDは、MFP_Cに保存してある文書の一部の色を変更する等して、文書の体裁を変更して印刷する業務を行っているが、まだ不慣れなためミスオペレーションする可能性がある。
このような場合、MFP_Cの管理ユーザは、一般編集フィルタ301と、部分編集フィルタ305とをMFP_Cにインストールさせておく。更に、ユーザCが使用する場合には一般編集フィルタ301を接続することを示す情報と、ユーザDが使用する場合には部分編集フィルタ305を接続することを示す情報とを、対ユーザフィルタ情報モジュール170に設定しておく。
ここで、ユーザDが、MFP_Cにおいて、編集アプリケーションプログラム124を使用して、MFP_Cに保存してある電子文書1000の体裁の変更以外に、部品の消去や追加をしてしまった場合、どのような処理が行なわれるかを説明する。
ユーザDが、MFP_Cの編集アプリケーションプログラム124を使用しようとしてログインすると、コントローラ102は、ユーザ認証モジュール140を使用してユーザの認証処理を行う。
編集アプリケーションプログラム124が起動すると、図13のステップS81で、プラグイン用フィルタ制御モジュール160は、ユーザDの認証情報を、編集アプリケーションプログラム124を経由して取得する。そして、ステップS82で、対ユーザフィルタ情報モジュール170に、ユーザDの認証情報を渡すと、フィルタの情報として部分編集フィルタ305が返ってくる。このフィルタはMFP_Cにインストールされているので、ステップS86に進み、プラグイン用フィルタ制御モジュール160は、部分編集フィルタ305をフィルタプラグイン210に接続する。
その後、図12のステップS62において、ユーザDが、編集アプリケーションプログラム124を使用して、電子文書1000を開く(オープンする)指示を行う。そうすると、図8に示した部分編集フィルタ305内のマッピングテーブルのOpenDocument()が呼ばれる。そうすると、実処理で、X_OpenDocument()が呼ばれ、編集対象となる文書を開く(オープンする)処理が行われる。次に、ユーザDが、この文書内にある部品、例えばロゴの色を変更しようとすると、ステップS67で、文書編集API202のPathFillColor()が呼ばれる。そうすると、実処理で、X_PathFilColor()が呼ばれ、ユーザDは、色を変更することができる。
もし、ユーザDが、ロゴそのものを削除しようとすると、ステップS67で、文書編集API202のdeleteObject()が呼ばれる。そうすると、前処理で、X_CallBackMessage()が呼ばれ、部品の削除ができない旨を示すメッセージが、編集アプリケーションプログラム124を経由して、ユーザDに通知される。この場合、実処理では何も行なわれない。
同様に、もし、ユーザDが、新たなロゴを追加しようとすると、ステップS67で、文書編集API202のaddObject()が呼ばれる。そうすると、前処理で、X_CallBackMessage()が呼ばれ、部品の追加ができない旨を示すメッセージが、編集アプリケーションプログラム124を経由して、ユーザDに通知される。尚、文書の保存(セーブ)と終了処理は、そのまま実行される。
次に、ユーザCが、MFP_Cにおいて、編集アプリケーションプログラム124を使用した場合、どのような処理が行なわれるかを説明する。
ユーザCが、MFP_Cの編集アプリケーションプログラム124を使用しようとしてログインすると、コントローラ102は、ユーザ認証モジュール140を使用してユーザの認証処理を行う。
編集アプリケーションプログラム124が起動すると、図13のステップS81で、プラグイン用フィルタ制御モジュール160は、ユーザCの認証情報を、編集アプリケーションプログラム124を経由して取得する。そして、ステップS82で、対ユーザフィルタ情報モジュール170に、ユーザCの認証情報を渡すと、フィルタの情報として一般編集フィルタ301が返ってくる。このフィルタはMFP_Cにインストールされているので、ステップS86に進み、プラグイン用フィルタ制御モジュール160は、一般編集フィルタ301をフィルタプラグイン210に接続する。
以降、一般編集フィルタ301は、文書編集と、文書操作とをユーザCからの指示に従ってそのまま実行する。
以上のように本実施形態では、一台のMFPに、複数のフィルタをインストールしておき、ユーザの目的に合わせてどのフィルタを使用するかを設定しておくようにした。したがって、編集アプリケーションプログラム121〜124の機能に影響されることなく、編集アプリケーションプログラム121〜124の機能を、ユーザ毎に制限することができる。
尚、本実施形態では、フィルタプラグイン210内に固定の処理ロジックを持ち、フィルタ301〜305がマッピングテーブルを持つことを前提として説明した。しかしながら、フィルタ301〜305内に処理ロジックとマッピングテーブルとの両方を持ち、フィルタ301〜305毎に異なる処理ロジックを持たせるようにしてもよい。
また、本実施形態では、フィルタ301〜305の処理を前処理、実処理、後処理の3段階で実行できる構成にしたが、より少ない段階であっても、より多数に列挙できても構わない。また、一つの処理において、複数の関数を呼び出しせるようにしてもよい。
また、フィルタは、図3に示したものに限定されず、目的に応じた内容のフィルタを、MFP100に対して自在に着脱(インストール(追加)、アンインストール(削除))することができる。
また、地紋を用紙上に形成して処理を実行したことを示すようにしたが、処理を実行したことを示す情報を用紙上に付加するようにしていれば、必ずしも地紋を用紙上に形成する必要はない。
また、編集アプリケーションプログラム121〜124で実行される機能が、フィルタで制限される機能であるかをアプリケーションフレームワーク120(アプリケーションプラットフォーム)において判定してもよい。このようにした場合、アプリケーションフレームワーク120の指示により、フィルタの適用(選択)を行うことになる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。前述した第1の実施形態では、電子文書1000の操作の機能と編集の機能とを公開するためのAPI201、202と、実際の機能を持つライブラリ221、222とを構造的に明確に分け、フィルタ301〜305をその間にプラグインするようにした。MFP100のコントローラ102のプラットフォームを一から構築する場合には、最初からこのように設計すればよいが、実際にはなかなかそういう機会は少ない。そこで、本実施形態では、既に存在するプラットフォームを流用した場合について説明する。このように本実施形態と前述した第1の実施形態とは、コントローラ102が有する機能の一部が異なる。したがって、本実施形態の説明において、前述した第1の実施形態と同一の部分については、図1〜図14に付した符号と同一の符号を付す等して詳細な説明を省略する。
以下、添付図面を参照して第2の発明の好適な実施例を詳細に説明する。
図15は、MFPに内蔵されるコントローラ102におけるソフトウェアの概略構成の一例を示す図である。
フック用フィルタ制御モジュール161は、アプリケーションプログラム群110、若しくはネットワークモジュール130が起動する際に、フィルタ301〜305の何れかをフック制御モジュール232に渡す(設定する)。
文書操作編集機能モジュール230は、各アプリケーションプログラム群110及びネットワークモジュール130から、電子文書1000の操作と編集とが行われる際に利用される。図15では、理解が容易となるように、文書操作編集機能モジュール230が1つのモジュールであるように示しているが、文書操作編集機能モジュール230を、複数のモジュールから構成し、それら複数のモジュールに機能を分散させてもよい。
フック用関数テーブル231は、文書操作編集機能モジュール230が持つ文書操作機能及び文書編集機能のうち、フィルタで制御したい機能のみを、テ―ブル上に宣言したものである。各アプリケーションプログラム群110及びネットワークモジュール130から、文書操作編集機能モジュール230へ行われる操作は、全てこのフック用関数テーブル231にリンクされる。このフック用関数テーブル231は、コントローラ102のHDD403等の記憶媒体に記憶されている。テーブル記憶手段が実現される。よって、本実施形態では、例えば、フック用関数テーブル231を記憶するHDD403等の記憶媒体を用いてテーブル記憶手段が実現される。
フック制御モジュール232は、文書操作編集機能モジュール230へのアクセスに対し、フック用関数テーブル231を用いてフックし、自身に接続されているフィルタに従って機能を実現する。すなわち、フック制御モジュール232は、文書操作編集機能モジュール230へのアクセスに対し、フィルタで制御したい機能を抽出し、抽出した機能を、自身に接続されているフィルタに従って制御する。
図16は、フック用フィルタ制御モジュール161が実行する処理動作の一例を説明するフローチャートである。第1の実施形態で説明したプラグイン用フィルタ制御モジュール160の動作とは、フィルタを接続する先が異なるだけである(図13を参照)。
ユーザ2が、アプリケーションプログラム群110の1つの起動を指示する際、若しくはネットワークを経由して電子文書1000に対する処理を行う際に、ユーザ認証モジュール140は、ユーザの認証処理を行い使用しているユーザを特定する。
図16において、フック用フィルタ制御モジュール161は、ユーザ2が使用するアプリケーションプログラム、若しくはネットワークモジュール130を経由して、MFP100を使用しているユーザの認証情報を取得する(ステップS121)。
次に、フック用フィルタ制御モジュール161は、対ユーザフィルタ情報モジュール170に、ステップS121で取得したユーザの認証情報を渡し、そのユーザに対応するフィルタの情報の取得を依頼する(ステップS122)。
次に、フック用フィルタ制御モジュール161は、該当するユーザに対応するフィルタの情報がないかどうかを判定する(ステップS123)。この判定の結果、該当するユーザに対応するフィルタの情報がない場合、フック用フィルタ制御モジュール161は、デフォルトのフィルタを選択してフック制御モジュール232に接続する(ステップS124)。
一方、該当するユーザに対応するフィルタの情報がある場合、フック用フィルタ制御モジュール161は、MFP100内にその情報に合致するフィルタがインストールされていないかどうかを判定する(ステップS125)。この判定の結果、フィルタの情報に合致するフィルタが、MFP100内にインストールされていない場合、フック用フィルタ制御モジュール161は、デフォルトのフィルタを選択してフック制御モジュール232に接続する(ステップS124)。
一方、フィルタの情報に合致するフィルタが、MFP100内にインストールされている場合、フック用フィルタ制御モジュール161は、そのフィルタを選択してフック制御モジュール232に接続し(ステップS126)、処理を終了する。
図17は、フック制御モジュール232が実行する処理動作の一例を説明するフローチャートである。
アプリケーションプログラム群110若しくはネットワークモジュール130が、文書操作編集機能モジュール230を利用するために、文書操作編集機能モジュール230の関数の呼び出しを行う。そうすると、フック用関数テ―ブル231を介して、その関数がフック制御モジュール232に渡り、処理が開始する。
フック制御モジュール232は、呼ばれた関数を取得する(ステップS141)。
次に、フック制御モジュール232は、呼ばれた関数が、フック用関数テーブル231に、フックする対象として定義されているか否かを判定する(ステップS142)。この判定の結果、呼ばれた関数が、フック用関数テーブル231に、フックする対象として定義されていない場合、フック制御モジュール232は、実際に呼ばれた関数を文書操作編集機能モジュール230に実行させ(ステップS143)、処理を終了する。
一方、呼ばれた関数が、フック用関数テーブル231に、フックする対象として定義されている場合、ステップS144に進む。そして、フック制御モジュール232は、自身に接続されているフィルタが持つマッピングテーブルを見て、呼ばれた関数の前処理の項目に何らかの関数が定義されているか否かを判定する(ステップS144)。
この判定の結果、呼ばれた関数の前処理の項目に何らかの関数が定義されている場合、フック制御モジュール232は、その関数を前処理として文書操作編集機能モジュール230に実行させる(ステップS145)。更に、フック制御モジュール232は、前処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(前処理)がなされたことをユーザに報知することができる。そして、ステップS146に進む。一方、前処理の項目に関数が定義されていない場合には、ステップS145を省略してステップS146に進む。
そして、フック制御モジュール232は、自身に接続されているフィルタが持つマッピングテーブルを見て、呼ばれた関数の実処理の項目に何らかの関数が定義されているか否かを判定する(ステップS146)。この判定の結果、実処理の項目に何らかの関数が定義されている場合、フック制御モジュール232は、その関数を実処理として文書操作編集機能モジュール230に実行させる(ステップS147)。更に、フック制御モジュール232は、実処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(実処理)がなされたことをユーザに報知することができる。そして、ステップS148に進む。一方、実処理の項目に関数が定義されていない場合には、ステップS147を省略してステップS148に進む。
そして、フック制御モジュール232は、自身に接続されているフィルタが持つマッピングテーブルを見て、呼ばれた関数の後処理の項目に何らかの関数が定義されているか否かを判定する(ステップS148)。この判定の結果、後処理の項目に何らかの関数が定義されている場合、フック制御モジュール232は、その関数を後処理として文書操作編集機能モジュール230に実行させる(ステップS149)。更に、フック制御モジュール232は、後処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(後処理)がなされたことをユーザに報知することができる。そして、処理を終了する。一方、後処理の項目に関数が定義されていない場合には、ステップS149を行わずに処理を終了する。
尚、マッピングテーブルに何も定義されていなければ、図17に示す処理を何も行わないケースもある。
以上のように本実施形態では、例えば、文書操作編集機能モジュール230により編集操作手段が実現され、ステップS142、S144〜S149の処理を実行することによりアクセス制御手段が実現される。
また、各フィルタ301〜305がフック接続モジュール232に接続されたときの処理の内容は、第1の実施形態において、各フィルタ301〜305がフィルタプラグインモジュール210に接続された場合と全く同じであるため、説明を省略する。
以上のように本実施形態においても、第1の実施形態と同様に、目的に応じた適切なフィルタをMFP毎に設定しておくようにした。したがって、使用する編集アプリケーションプログラム121〜124の機能に影響されることなく、編集アプリケーションプログラム121〜124の機能を、MFP毎の目的に合わせて、制限することができる。
また、一台のMFPに、複数のフィルタをインストールしておき、ユーザの目的に合わせてどのフィルタを使用するかを設定しておくようにした。したがって、編集アプリケーションプログラム121〜124の機能に影響されることなく、編集アプリケーションプログラム121〜124の機能を、ユーザ毎に制限することができる。
更に、本実施形態では、フック用関数テーブル231を文書操作編集機能から抽出して、関数の呼び出しをフックするようにした。したがって、文書操作編集機能がインタフェース(API)とライブラリとに別れた構造でないコントローラプラットフォームであっても、第1の実施形態と同等の機能を実現することができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。前述した第1の実施形態では、使用するフィルタが決定していると、文書操作API201、文書編集API202の呼び出しに対する文書操作ライブラリ221、文書編集ライブラリ222の呼び出しは一意に決まる。これに対し、本実施形態では、特定のAPIの呼び出しがあった場合には、その後のAPIの呼び出しに対するライブラリへのマッピングが動的に変化できるようにする。このように本実施形態と前述した第1の実施形態とは、コントローラ102が有する機能の一部が異なる。したがって、本実施形態の説明において、前述した第1の実施形態と同一の部分については、図1〜図14に付した符号と同一の符号を付す等して詳細な説明を省略する。
図18は、複数のマッピングテーブルを有するフィルタの構成の一例を概念的に示す図である。
図18において、フィルタ310は、第1の実施形態で説明したフィルタ301〜305に対応するものである。図18では、3つのレベルの(3つの)マッピングテーブル311、312、313がフィルタ310に内蔵されている場合を例に挙げて示している。
図19は、レベル1のマッピングテーブル311の内容の一例を示す図である。図20は、レベル2のマッピングテーブル312の内容の一例を示す図である。図21は、レベル3のマッピングテーブル313の内容の一例を示す図である。
図22は、プラグイン用フィルタ制御モジュールが実行する処理動作の一例を説明するフローチャートである。
図22において、プラグイン用フィルタ制御モジュールは、ユーザ2が使用するアプリケーションプログラム、若しくはネットワークモジュール130を経由して、MFP100を使用しているユーザの認証情報を取得する(ステップS161)。
次に、プラグイン用フィルタ制御モジュールは、対ユーザフィルタ情報モジュール170に、ステップS161で取得したユーザの認証情報を渡し、そのユーザに対応するフィルタの情報の取得を依頼する(ステップS162)。対ユーザフィルタ情報モジュール170には、どのユーザにどのフィルタを用いるかを示す情報と、どのレベルから処理を開始するかを示す情報とが、管理ユーザによって予め入力されている。
次に、プラグイン用フィルタ制御モジュールは、該当するユーザに対応するフィルタの情報がないかどうかを判定する(ステップS163)。この判定の結果、該当するユーザに対応するフィルタの情報がない場合、プラグイン用フィルタ制御モジュールは、デフォルトのフィルタをフィルタプラグインに接続する(ステップS164)。そして、プラグイン用フィルタ制御モジュールは、フィルタプラグインに接続したフィルタのマッピングテーブルの何れを使用するかを示すレベル値として、デフォルトの値(例えば「1」)を、フィルタプラグインに渡し(ステップS165)、処理を終了する。
ステップS163において、該当するユーザに対応するフィルタの情報がある場合、プラグイン用フィルタ制御モジュールは、MFP100内にその情報に合致するフィルタがインストールされていないかどうかを判定する(ステップS166)。この判定の結果、フィルタの情報に合致するフィルタが、MFP100内にインストールされていない場合、前述したステップS164に進み、プラグイン用フィルタ制御モジュールは、デフォルトのフィルタをフィルタプラグインに接続する(ステップS164)。
一方、フィルタの情報に合致するフィルタが、MFP100内にインストールされている場合、プラグイン用フィルタ制御モジュールは、そのフィルタをフィルタプラグインに接続(ステップS167)。更にプラグイン用フィルタ制御モジュールは、ステップS162で、ユーザに対応するフィルタの情報の取得を依頼することにより得られたレベルの値をフィルタプラグインに伝え(ステップS168)、処理を終了する。
図23は、フィルタプラグインが実行する処理動作の一例を説明するフローチャートである。
アプリケ―ション110若しくはネットワークモジュール130から、文書操作API201若しくは文書編集API202が呼ばれたら、フィルタプラグインは、APIのどの関数が呼ばれたのか示す情報を取得する(ステップSS181)。
次に、フィルタプラグインは、自身に接続されているフィルタが持つマッピングテーブルのうち、現在(カレント)のレベル値を示すマッピングテーブルを参照する。そして、フィルタプラグインは、呼ばれた関数の前処理の項目に何らかの関数が、参照したマッピングテーブルに定義されているか否かを判定する(ステップS182)。例えば、現在のレベル値が「1」であれば、フィルタプラグインは、レベル1のマッピングテーブル311を参照する。尚、最初の処理の際には、現在のレベル値がない。このため、フィルタプラグインは、図22のステップS165、S168でプラグイン用フィルタ制御モジュールから渡されたレベル値を現在のレベル値とする。
この判定の結果、前処理の項目に何らかの関数が定義されている場合、フィルタプラグインは、その関数を、現在のレベルの前処理として実行する(ステップS183)。更に、フィルタプラグインは、前処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(前処理)がなされたことをユーザに報知することができる。そして、ステップS184に進む。一方、前処理の項目に関数が定義されていない場合には、ステップS183を省略してステップS184に進む。
そして、フィルタプラグインは、呼ばれた関数の実処理の項目に何らかの関数が、参照したマッピングテーブルに定義されているか否かを判定する(ステップS184)。この判定の結果、実処理の項目に何らかの関数が定義されている場合、フィルタプラグインは、その関数を、現在のレベルの実処理として実行する(ステップS185)。更に、フィルタプラグインは、実処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(実処理)がなされたことをユーザに報知することができる。そして、ステップS186に進む。一方、実処理の項目に関数が定義されていない場合には、ステップS185を省略してステップS186に進む。
そして、フィルタプラグインは、呼ばれた関数の後処理の項目に何らかの関数が、参照したマッピングテーブルに定義されているか否かを判定する(ステップS186)。この判定の結果、後処理の項目に何らかの関数が定義されている場合、フィルタプラグインは、その関数を、現在のレベルの後処理として実行する(ステップS187)。更に、フィルタプラグインは、後処理を実行したことを地紋として用紙上に形成するための情報を生成する。これにより、アプリケーションプログラム121〜124を実行して得られた用紙上に、地紋が形成されるようになり、フィルタによる制御(後処理)がなされたことをユーザに報知することができる。そして、ステップS188に進む。一方、後処理の項目に関数が定義されていない場合には、ステップS187を省略してステップS188に進む。
そして、フィルタプラグインは、呼ばれた関数の切り換えレベルの項目に何らかのレベル値を示す情報が定義されているか否かを判定する(ステップS188)。本実施形態では、レベル値を示す情報として、例えば、レベル値そのものが示されていたり、開始時のレベル値を指定することが示されたりする。この判定の結果、呼ばれた関数の切り換えレベルの項目に何らかのレベル値を示す情報が定義されている場合、フィルタプラグインは、その情報に基づくレベル値を、現在のレベル値として記憶して(ステップS189)、処理を終了する。一方、何も定義されていなければカレントレベルはそのままの値を継続する。呼ばれた関数の切り換えレベルの項目に何らかのレベル値を示す情報が定義されていない場合には、ステップS189を行わずに処理を終了する。
次に、本実施形態の具体的な適用例について説明する。
レベル1で処理が開始されて、OpenDocument()が呼ばれると、図19に示したレベル1のマッピングテーブル311の実処理の項目に定義されているX_OpenDocument()のみが実際に処理される。その後、更新日を書き換えるWriteModifiedDate()が呼ばれると、その実処理の項目に定義されているX_WriteModfiedDate()はそのまま呼ばれる。しかしながら、後処理の項目に定義されているX_CallBackMessage()により「この処理は一度しか実行できません」のようなメッセージが出される。そして、現在のレベルが、「1」から「2」に切り替わる。
このレベル2では、図20のレベル2のマッピングテーブル312に示したように、呼ばれた関数の全ての前処理で、X_Log()が呼ばれてログが記録される。その後、WriteModifiedDate()が呼ばれると、実処理では何も行なわれず、後処理においてX_CallBackMessage()が呼ばれ、「その処理は無効です。以降の処理を全て停止します。」のようなメッセージが出される。そして、現在のレベルが「2」から「3」に切り替わる。
このレベル3では、図21のレベル3のマッピングテーブル313に示したように、CloseDocument()以外の関数が呼ばれた場合には、何れも実処理が行なわれずメッセージの表示のみが行われる。これに対し、CloseDocument()が呼ばれると、X_CloseDocument()が呼ばれ、ドキュメントのクローズ処理が行われる。そして、現在のレベルが「3」から開始時の「1」に戻る。
以上のように本実施形態では、3つのレベルの(3つの)マッピングテーブル311、312、313がフィルタ310に内蔵するようにした。そして、1つのフィルタであっても、ある特定のAPIが呼ばれた場合に、マッピングテーブルを切り換えるようにした。したがって、その後のAPIの呼び出しに対する機能ライブラリ(文書操作ライブラリ221、文書編集ライブラリ222)へのマッピングを動的に変化させられることができる。更に、処理開始時のレベルをユーザ単位で切り換えることで、より制御の柔軟性を高めることができる。
尚、1つのフィルタに含めるマッピングテーブル(レベル)は3つに限定されるものではない。
(本発明の他の実施形態)
前述した本発明の実施形態における電子文書処理装置を構成する各手段、並びに電子文書処理方法の各ステップは、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図9〜図14、図16、図17、図22、23に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接、あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の第1の実施形態を示し、印刷システムの概略構成の一例を示す図である。 本発明の第1の実施形態を示し、MFPに内蔵されるコントローラにおけるハードウェアの概略構成の一例を示す図である。 本発明の第1の実施形態を示し、MFPに内蔵されるコントローラ102におけるソフトウェアの概略構成の一例を示す図である。 本発明の第1の実施形態を示し、一般編集フィルタに含まれるマッピングテーブルの内容の一例を示す図である。 本発明の第1の実施形態を示し、操作履歴付き一般編集フィルタに含まれるマッピングテーブルの内容の一例を示す図である。 本発明の第1の実施形態を示し、原本性確保フィルタに含まれるマッピングテーブルの内容の一例を示す図である。 本発明の第1の実施形態を示し、原本性確保フィルタに含まれるマッピングテーブルの内容の一例を示す図である。 本発明の第1の実施形態を示し、部分編集フィルタに含まれるマッピングテーブルの内容の一例を示す図である。 本発明の第1の実施形態を示し、編集アプリケーションプログラム(アプリA)が実行する処理動作の一例を説明するフローチャートである。 本発明の第1の実施形態を示し、編集アプリケーションプログラム(アプリB)が実行する処理動作の一例を説明するフローチャートである。 本発明の第1の実施形態を示し、編集アプリケーションプログラム(アプリC)が実行する処理動作の一例を説明するフローチャートである。 本発明の第1の実施形態を示し、編集アプリケーションプログラム(アプリD)が実行する処理動作の一例を説明するフローチャートである。 本発明の第1の実施形態を示し、プラグイン用フィルタ制御モジュールが実行する処理動作の一例を説明するフローチャートである。 本発明の第1の実施形態を示し、フィルタプラグインが実行する処理動作の一例を説明するフローチャートである。 本発明の第2の実施形態を示し、MFPに内蔵されるコントローラにおけるソフトウェアの概略構成の一例を示す図である。 本発明の第2の実施形態を示し、フック用フィルタ制御モジュールが実行する処理動作の一例を説明するフローチャートである。 本発明の第2の実施形態を示し、フック制御モジュールが実行する処理動作の一例を説明するフローチャートである。 本発明の第3の実施形態を示し、複数のマッピングテーブルを有するフィルタの構成の一例を概念的に示す図である。 本発明の第3の実施形態を示し、レベル1のマッピングテーブルの内容の一例を示す図である。 本発明の第3の実施形態を示し、レベル2のマッピングテーブルの内容の一例を示す図である。 本発明の第3の実施形態を示し、レベル3のマッピングテーブルの内容の一例を示す図である。 本発明の第3の実施形態を示し、プラグイン用フィルタ制御モジュールが実行する処理動作の一例を説明するフローチャートである。 本発明の第3の実施形態を示し、フィルタプラグインが実行する処理動作の一例を説明するフローチャートである。
符号の説明
1、2 ユーザ
100 MFP
110 アプリケーションプログラム群
120 アプリケーションプラットフォーム
121〜124 編集アプリケーションプログラム
130 ネットワークモジュール
140 ユーザ認証モジュール
150 文書管理モジュール
160 プラグイン用フィルタ制御モジュール
161 フック用フィルタ制御モジュール
170 対ユーザフィルタ情報モジュール
201 文書操作API
202 文書編集API
210 フィルタプラグイン
221 文書操作ライブラリ
222 文書編集ライブラリ
230 文書操作編集機能モジュール
231 フック用関数テーブル
232 フック制御モジュール
301〜305 フィルタ
311〜313 マッピングテーブル
501、502 PC
1000 電子文書
1001〜1005 部品

Claims (17)

  1. 電子文書を記憶する電子文書記憶手段と、
    前記電子文書を編集するためのアプリケーションプログラムであって、アプリケーションプラットフォーム上で動作するアプリケーションプログラムを記憶するアプリケーションプログラム記憶手段と、
    前記アプリケーションプログラムによって実行される機能を制限するためのフィルタプログラムを記憶するフィルタプログラム記憶手段と、
    前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であるかを判定する機能判定手段と、
    前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であることが前記判定手段により判定されると、前記フィルタプログラムに基づいて、その機能を制限する機能制限手段とを有することを特徴とする電子文書処理装置。
  2. 前記アプリケーションプログラムを利用するユーザの認証を行うユーザ認証手段と、
    前記ユーザ認証手段により認証されたユーザに対応するフィルタプログラムを、前記フィルタプログラム記憶手段により記憶されている複数種類のフィルタプログラムの中から選択するフィルタプログラム選択手段とを有し、
    前記機能判定手段は、前記アプリケーションプログラムで実行される機能が、前記フィルタプログラム選択手段により選択されたフィルタプログラムで制限される機能であるか否かを判定することを特徴とする請求項1に記載の電子文書処理装置。
  3. 前記フィルタプログラム記憶手段は、記憶しているフィルタプログラムの削除と、記憶するフィルタプログラムの追加と自在に行うことを特徴とする請求項1又は2に記載の電子文書処理装置。
  4. 前記電子文書の編集及び操作を行う編集操作手段を提供する編集操作機能ライブラリと、
    前記アプリケーションプログラムからの呼び出しに応じて、前記編集操作手段を前記アプリケーションプログラムに対して公開する編集操作機能インタフェースと、
    前記フィルタプログラムに従って、前記編集操作手段を呼び出すフィルタプラグインとを有し、
    前記フィルタプログラムは、前記アプリケーションから呼び出し指示があった前記編集操作手段を変更するためのルールを記憶したマッピングテーブルを有し、
    前記フィルタプラグインは、前記マッピングテーブルを用いて、前記アプリケーションから呼び出し指示があった前記編集操作手段を変更することにより、前記機能判定手段と前記機能制限手段とを実行することを特徴とする請求項1〜3の何れか1項に記載の電子文書処理装置。
  5. 前記フィルタプログラムは、前記マッピングテーブルを複数有し、
    前記フィルタプラグインは、アプリケーションプログラムから呼び出しのあった編集操作手段に応じて、マッピングテーブルを別のマッピングテーブルに切り換えることを特徴とする請求項4に記載の電子文書処理装置。
  6. 前記電子文書の編集及び操作を行う編集操作手段と、
    前記アプリケーションプログラムによる前記編集操作手段へのアクセスを制御するアクセス制御手段とを有し、
    前記アクセス制御手段が、前記機能判定手段と前記機能制限手段とを有することを特徴とする請求項1〜3の何れか1項に記載の電子文書処理装置。
  7. 前記編集操作手段が有する機能のうち、前記フィルタプログラムにより制限される機能を記憶したテーブルを記憶するテーブル記憶手段を有し、
    前記アクセス制御手段は、前記アプリケーションプログラムによる前記編集操作手段へのアクセスを、前記テーブル記憶手段により記憶されたテーブルを用いて制御することを特徴とする請求項6に記載の電子文書処理装置。
  8. 前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であるかを前記アプリケーションプラットフォームにおいて判定し、前記アプリケーションプラットフォームの指示により、前記フィルタプログラムの適用を行うことを特徴とする請求項1〜7の何れか1項に記載の電子文書処理装置。
  9. 電子文書を記憶媒体に記憶する電子文書記憶ステップと、
    前記電子文書を編集するためのアプリケーションプログラムであって、アプリケーションプラットフォーム上で動作するアプリケーションプログラムを記憶媒体に記憶するアプリケーションプログラム記憶ステップと、
    前記アプリケーションプログラムによって実行される機能を制限するためのフィルタプログラムを記憶媒体に記憶するフィルタプログラム記憶ステップと、
    前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であるかを機能判定手段により判定する機能判定ステップと、
    前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であることを示す信号が、前記機能判定手段から入力されると、前記フィルタプログラムに基づいて、その機能を制限する機能制限ステップとを有することを特徴とする電子文書処理方法。
  10. 前記アプリケーションプログラムを利用するユーザの認証を行うユーザ認証ステップと、
    前記ユーザ認証ステップにより認証されたユーザに対応するフィルタプログラムを、前記フィルタプログラム記憶ステップにより記憶されている複数種類のフィルタプログラムの中から選択するフィルタプログラム選択ステップとを有し、
    前記機能判定ステップは、前記アプリケーションプログラムで実行される機能が、前記フィルタプログラム選択ステップにより選択されたフィルタプログラムで制限される機能であるか否かを判定することを特徴とする請求項9に記載の電子文書処理方法。
  11. 前記フィルタプログラム記憶ステップは、記憶しているフィルタプログラムの削除と、記憶するフィルタプログラムの追加と自在に行うことを特徴とする請求項9又は10に記載の電子文書処理方法。
  12. 前記電子文書の編集及び操作を行う編集操作手段を、編集操作機能ライブラリを用いて提供する提供ステップと、
    前記アプリケーションプログラムからの呼び出しに応じて、前記編集操作手段を前記アプリケーションプログラムに対して公開することを、編集操作機能インタフェースを用いて行う公開ステップと、
    前記フィルタプログラムに従って、前記編集操作手段を呼び出すことを、フィルタプラグインにより行う呼び出しステップとを有し、
    前記フィルタプログラムは、前記アプリケーションから呼び出し指示があった前記編集操作手段を変更するためのルールを記憶したマッピングテーブルを有し、
    前記フィルタプラグインは、前記マッピングテーブルを用いて、前記アプリケーションから呼び出し指示があった前記編集操作手段を変更することにより、前記機能判定ステップと前記機能制限ステップとを実行することを特徴とする請求項9〜11の何れか1項に記載の電子文書処理方法。
  13. 前記フィルタプログラムは、前記マッピングテーブルを複数有し、
    前記フィルタプラグインは、アプリケーションプログラムから呼び出しのあった編集操作手段に応じて、マッピングテーブルを別のマッピングテーブルに切り換えることを特徴とする請求項12に記載の電子文書処理方法。
  14. 前記アプリケーションプログラムによる、前記電子文書の編集及び操作を行う編集操作手段へのアクセスを制御するアクセス制御ステップを有し、
    前記アクセス制御ステップが、前記機能判定ステップと前記機能制限ステップとを行うことを特徴とする請求項9〜11の何れか1項に記載の電子文書処理方法。
  15. 前記編集操作手段が有する機能のうち、前記フィルタプログラムにより制限される機能を記憶したテーブルを記憶媒体に記憶するテーブル記憶ステップを有し、
    前記アクセス制御ステップは、前記アプリケーションプログラムによる前記編集操作手段へのアクセスを、前記テーブル記憶ステップにより記憶されたテーブルを用いて制御することを特徴とする請求項14に記載の電子文書処理方法。
  16. 前記アプリケーションプログラムで実行される機能が、前記フィルタプログラムで制限される機能であるかを前記アプリケーションプラットフォームにおいて判定し、前記アプリケーションプラットフォームの指示により、前記フィルタプログラムの適用を行うことを特徴とする請求項9〜15の何れか1項に記載の電子文書処理方法。
  17. 請求項9〜16の何れか1項に記載の電子文書処理方法の各ステップをコンピュータに実行させることを特徴とするコンピュータプログラム。
JP2007042434A 2007-02-22 2007-02-22 電子文書処理装置、電子文書処理方法、及びコンピュータプログラム Expired - Fee Related JP5142551B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007042434A JP5142551B2 (ja) 2007-02-22 2007-02-22 電子文書処理装置、電子文書処理方法、及びコンピュータプログラム
US12/033,634 US8024812B2 (en) 2007-02-22 2008-02-19 Apparatus and method for processing digital document and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007042434A JP5142551B2 (ja) 2007-02-22 2007-02-22 電子文書処理装置、電子文書処理方法、及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2008201093A true JP2008201093A (ja) 2008-09-04
JP5142551B2 JP5142551B2 (ja) 2013-02-13

Family

ID=39717459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007042434A Expired - Fee Related JP5142551B2 (ja) 2007-02-22 2007-02-22 電子文書処理装置、電子文書処理方法、及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US8024812B2 (ja)
JP (1) JP5142551B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502664A (ja) * 2009-09-10 2013-01-24 ファソー.コム カンパニー リミテッド 仮想化技術を利用したデジタル著作権管理装置及び方法
JP2014512584A (ja) * 2011-02-23 2014-05-22 コンチネンタル オートモーティヴ ゲゼルシャフト ミット ベシュレンクテル ハフツング 自動車用制御装置を構成する方法、コンピュータプログラムおよび制御装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9713342B2 (en) * 2004-08-25 2017-07-25 Decopac, Inc. Online decorating system for edible products
US20120036046A1 (en) * 2010-08-09 2012-02-09 Decopac, Inc. Decorating System for Edible Products
JP4975140B2 (ja) * 2010-06-08 2012-07-11 シャープ株式会社 ソフトウェア配布方法、情報処理装置及び情報処理システム
US9907332B2 (en) 2010-08-09 2018-03-06 Decopac, Inc. Decorating system for edible items
US10455096B2 (en) 2010-08-09 2019-10-22 Decopac, Inc. Decorating system for edible products
US10206423B2 (en) 2010-08-09 2019-02-19 Decopac, Inc. Decorating system for edible items
US9743687B2 (en) 2010-08-09 2017-08-29 Decopac, Inc. Decorating system for edible items
US10543671B2 (en) 2010-08-09 2020-01-28 Decopac, Inc. Three-dimensional decorating system for edible items
US10692124B1 (en) 2018-12-07 2020-06-23 Decopac, Inc. Systems and methods for ordering and preparation of customized comestibles

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0237423A (ja) * 1988-07-27 1990-02-07 Nec Corp ソースプログラムの世代管理を伴う編集方式
JP2004102741A (ja) * 2002-09-11 2004-04-02 Hitachi Ltd 制御プログラム配信方法及び装置
JP2005056137A (ja) * 2003-08-04 2005-03-03 Ffc Ltd 機能制限プログラム、インストーラ作成プログラム及びプログラム記録媒体
JP2005222341A (ja) * 2004-02-05 2005-08-18 Trend Micro Inc 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保
JP2006260176A (ja) * 2005-03-17 2006-09-28 Ex's Annex:Kk 機密文書管理方法及び機密文書管理システム
JP2006330946A (ja) * 2005-05-25 2006-12-07 Kyueisha:Kk 機能制限プログラムおよびコンピュータ読み取り可能な記録媒体
JP2007042015A (ja) * 2005-08-05 2007-02-15 Brother Ind Ltd 周辺電子機器制御システム及び機能制限制御プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3090021B2 (ja) * 1996-02-14 2000-09-18 富士ゼロックス株式会社 電子文書管理装置
JPH10208020A (ja) 1997-01-22 1998-08-07 Fuji Xerox Co Ltd 画像処理装置
JP2001117687A (ja) 1999-10-15 2001-04-27 Canon Inc データ処理装置、ネットワークシステム、データ処理方法、及びコンピュータ読み取り可能な記憶媒体
JP4227342B2 (ja) 2002-02-27 2009-02-18 キヤノン株式会社 画像形成装置、画像形成方法、および記憶媒体
JP3805347B2 (ja) * 2004-09-02 2006-08-02 松下電器産業株式会社 制御処理装置及びこれを備えた画像形成装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0237423A (ja) * 1988-07-27 1990-02-07 Nec Corp ソースプログラムの世代管理を伴う編集方式
JP2004102741A (ja) * 2002-09-11 2004-04-02 Hitachi Ltd 制御プログラム配信方法及び装置
JP2005056137A (ja) * 2003-08-04 2005-03-03 Ffc Ltd 機能制限プログラム、インストーラ作成プログラム及びプログラム記録媒体
JP2005222341A (ja) * 2004-02-05 2005-08-18 Trend Micro Inc 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保
JP2006260176A (ja) * 2005-03-17 2006-09-28 Ex's Annex:Kk 機密文書管理方法及び機密文書管理システム
JP2006330946A (ja) * 2005-05-25 2006-12-07 Kyueisha:Kk 機能制限プログラムおよびコンピュータ読み取り可能な記録媒体
JP2007042015A (ja) * 2005-08-05 2007-02-15 Brother Ind Ltd 周辺電子機器制御システム及び機能制限制御プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502664A (ja) * 2009-09-10 2013-01-24 ファソー.コム カンパニー リミテッド 仮想化技術を利用したデジタル著作権管理装置及び方法
US8955150B2 (en) 2009-09-10 2015-02-10 Fasoo.Com Co. Ltd. Apparatus and method for managing digital rights using virtualization technique
JP2014512584A (ja) * 2011-02-23 2014-05-22 コンチネンタル オートモーティヴ ゲゼルシャフト ミット ベシュレンクテル ハフツング 自動車用制御装置を構成する方法、コンピュータプログラムおよび制御装置

Also Published As

Publication number Publication date
JP5142551B2 (ja) 2013-02-13
US20080209509A1 (en) 2008-08-28
US8024812B2 (en) 2011-09-20

Similar Documents

Publication Publication Date Title
JP5142551B2 (ja) 電子文書処理装置、電子文書処理方法、及びコンピュータプログラム
US8089653B2 (en) Document processing apparatus, method and program for variable printing with document file dividing
JP4299478B2 (ja) メニュー制御方法、抑制方法、記録媒体、およびプログラム
JP4251645B2 (ja) 情報処理方法及び装置
JP5233582B2 (ja) 情報処理装置、情報処理方法、及び機能拡張プログラム
JP5239423B2 (ja) 情報処理装置,情報処理方法,プログラム,および記録媒体
JP2010224830A (ja) 情報処理装置、印刷装置、情報処理方法及び印刷方法
JP2009064105A (ja) 電子情報処理プログラム及び電子情報処理システム
JP5132375B2 (ja) ショートカットテンプレートを用いた文書操作を可能とする文書管理システム及び方法
JP3774684B2 (ja) 情報処理装置および情報処理装置のプリンタ設定方法およびプログラムおよび記録媒体
JP2008311941A (ja) 情報処理装置及び情報処理方法
JP2004287841A (ja) プリンタ情報設定方法、サーバ及びプログラム
JP2006003998A (ja) 文書処理装置及び文書処理方法、文書処理プログラム
JP2009211713A (ja) ユーザインタフェース制御装置および方法
JP2007288410A (ja) 情報処理装置、データ処理方法、記憶媒体、プログラム
JP2020184192A (ja) 情報処理装置、情報処理方法及びプログラム
JP2009271681A (ja) 文書処理装置及びその制御方法
EP1404110B1 (en) Method, apparatus and program for data management
JP4109965B2 (ja) 情報処理装置およびその制御方法、ならびにプログラム
JP2005108107A (ja) 文書処理方法及び文書処理装置
JP2010186269A (ja) 文書処理装置、文書処理方法、及びプログラム
JP2006195562A (ja) 印刷システム、方法、及びコンピュータプログラム
JP4630824B2 (ja) 文書処理装置、文書処理方法、及びコンピュータプログラム
JP2017004332A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2006072560A (ja) データ管理装置およびデータ管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121113

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121120

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5142551

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees