IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】画像形成装置、制御方法、プログラム
(51)【国際特許分類】
   G09C 5/00 20060101AFI20240716BHJP
   B41J 21/00 20060101ALI20240716BHJP
   B41J 29/00 20060101ALI20240716BHJP
   B41J 29/38 20060101ALI20240716BHJP
   G06F 3/12 20060101ALI20240716BHJP
   G06F 21/64 20130101ALI20240716BHJP
   H04N 1/00 20060101ALI20240716BHJP
【FI】
G09C5/00
B41J21/00 A
B41J29/00 Z
B41J29/38 201
G06F3/12 302
G06F3/12 323
G06F3/12 329
G06F3/12 338
G06F3/12 342
G06F3/12 385
G06F21/64
H04N1/00 127Z
【請求項の数】 10
(21)【出願番号】P 2020180572
(22)【出願日】2020-10-28
(65)【公開番号】P2022071544
(43)【公開日】2022-05-16
【審査請求日】2023-10-23
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】長谷川 極
【審査官】青木 重徳
(56)【参考文献】
【文献】中国特許出願公開第111240607(CN,A)
【文献】特開2016-149741(JP,A)
【文献】特表2019-511758(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 5/00
B41J 21/00
B41J 29/00
B41J 29/38
G06F 3/12
G06F 21/64
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する文書情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する画像形成装置であって、
前記管理サービスに格納された文書を印刷する際に、前記文書の文書情報から埋め込み画像を生成する生成手段と、
前記埋め込み画像を前記文書に埋め込む際の埋込設定を取得する取得手段と、
前記埋込設定を基に前記埋め込み画像を前記文書に埋め込み印刷をすることで、前記文書情報が記録された印刷物を出力する印刷手段と、
前記印刷物が出力されることに併せて前記ブロックチェーンサービスに前記文書情報を登録する登録手段と、を有し、
前記埋込設定には、前記文書に複数の埋め込み画像を埋め込む設定が含まれており、前記印刷手段は、複数の埋め込み画像が埋め込まれた印刷物を印刷するが、前記登録手段は、複数の埋め込み画像が埋め込まれた印刷物が出力されることに併せて前記文書情報を登録する際は前記文書情報が重複して登録されることがないよう前記文書情報を前記ブロックチェーンサービスに登録することを特徴とする画像形成装置。
【請求項2】
前記画像形成装置に置かれた前記印刷物をスキャンし、前記印刷物に含まれる埋め込み画像を解読し、前記印刷物に記録された前記文書情報を取得して、前記ブロックチェーンサービスに前記文書情報が登録されているかを確認し、前記印刷物が正規な印刷物であるか否かを検証する検証手段を有し、
前記検証手段は、前記印刷物をスキャンして得られた画像から複数の埋め込み画像を検出するが、その中から少なくとも1つのバーコードを解読した時点で前記ブロックチェーンサービスに前記文書情報が登録されているかを確認することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記文書を印刷する際に前記ブロックチェーンサービスに前記文書情報を登録するための指示をユーザから受け付けた場合に、前記文書情報を前記ブロックチェーンサービスに登録するとともに、前記印刷手段は、前記埋込設定を基に前記埋め込み画像を前記文書に埋め込み印刷をすることを特徴とする請求項1または2に記載の画像形成装置。
【請求項4】
前記埋込設定は、埋込設定画面を介してユーザの指示を受けて決定される、もしくは、前記画像形成装置に予め設定されているデバイス設定、および/または前記ブロックチェーンサービスに対応するプログラムが保持するブロックチェーン設定、および/または前記ブロックチェーンサービスが保持するサービス設定を基に決定されることを特徴とする請求項1乃至3の何れか1項に記載の画像形成装置。
【請求項5】
前記画像形成装置に予め設定されているデバイス設定、および/または前記ブロックチェーンサービスに対応するプログラムが保持するブロックチェーン設定、および/または前記ブロックチェーンサービスが保持するサービス設定を基に、決定された埋込数の埋め込み画像を印刷の対象となる前記文書に埋込が可能な位置に埋め込めるか否かを判断する第1の判断手段をさらに有し、
前記第1の判断手段の判断の結果、埋め込めない場合はエラー処理を実行することを特徴とする請求項1乃至4の何れか1項に記載の画像形成装置。
【請求項6】
前記埋込設定が決定された後、前記文書に埋め込まれる埋め込み画像の位置が位置の条件を満たすか否かを判断する第2の判断手段をさらに有し、
前記第2の判断手段の判断の結果、満たさない場合は警告処理を実行することを特徴とする請求項5に記載の画像形成装置。
【請求項7】
前記ブロックチェーン設定には、セキュリティポリシーの設定に応じた埋込設定の設定が少なくとも含まれていることを特徴とする請求項4乃至6の何れか1項に記載の画像形成装置。
【請求項8】
前記画像形成装置は、前記文書の印刷と印刷物のスキャンが可能なプリンタであることを特徴とする請求項1乃至7の何れか1項に記載の画像形成装置。
【請求項9】
ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する文書情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する画像形成装置の制御方法であって、
前記管理サービスに格納された文書を印刷する際に、前記文書の文書情報から埋め込み画像を生成する生成ステップと、
前記埋め込み画像を前記文書に埋め込む際の埋込設定を取得する取得ステップと、
前記埋込設定を基に前記埋め込み画像を前記文書に埋め込み印刷をすることで、前記文書情報が記録された印刷物を出力する印刷ステップと、
前記印刷物が出力されることに併せて前記ブロックチェーンサービスに前記文書情報を登録する登録ステップと、を含み、
前記埋込設定には、前記文書に複数の埋め込み画像を埋め込む設定が含まれており、前記印刷ステップでは、複数の埋め込み画像が埋め込まれた印刷物を印刷するが、前記登録ステップでは、複数の埋め込み画像が埋め込まれた印刷物が出力されることに併せて前記文書情報を登録する際は前記文書情報が重複して登録されることがないよう前記文書情報を前記ブロックチェーンサービスに登録することを特徴とする制御方法。
【請求項10】
ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する文書情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する画像形成装置のプログラムであって、
前記管理サービスに格納された文書を印刷させる際に、前記文書の文書情報から埋め込み画像を生成させる生成ステップと、
前記埋め込み画像を前記文書に埋め込む際の埋込設定を取得させる取得ステップと、
前記埋込設定を基に前記埋め込み画像を前記文書に埋め込ませ印刷をさせることで、前記文書情報が記録された印刷物を出力させる印刷ステップと、
前記印刷物が出力されることに併せて前記ブロックチェーンサービスに前記文書情報を登録させる登録ステップと、を含み、
前記埋込設定には、前記文書に複数の埋め込み画像を埋め込む設定が含まれており、前記印刷ステップでは、複数の埋め込み画像が埋め込まれた印刷物を印刷させるが、前記登録ステップでは、複数の埋め込み画像が埋め込まれた印刷物が出力されることに併せて前記文書情報を登録させる際は前記文書情報が重複して登録されることがないよう前記文書情報を前記ブロックチェーンサービスに登録させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンを使用した電子データの記録改ざんに対応する画像形成装置、制御方法、プログラムに関する。
【背景技術】
【0002】
電子ファイルの改ざんを防止するために、ブロックチェーンを利用することで電子ファイルの内容変更に信頼性を担保することが知られている(特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-128823号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
スキャナおよびプリンタを備えた画像形成装置がスキャンまたは印刷を行う際に電子ファイルが関係する。そう言った電子ファイルの情報をブロックチェーンサービスに登録するケースが考えられるが、画像形成装置がどのようにブロックチェーンサービスと連携するかについて考えられていなかった。
【0005】
本願発明は、ブロックチェーンサービスと連携する画像形成装置を用意し、印刷物をスキャンした際に印刷物に記録されたブロックチェーンサービスに登録した情報が読み取れなくなる可能性を低減させることを目的とする。
【課題を解決するための手段】
【0006】
本願発明の一実施形態に係る画像形成装置は、ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する文書情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する画像形成装置であって、前記管理サービスに格納された文書を印刷する際に、前記文書の文書情報から埋め込み画像を生成する生成手段と、前記埋め込み画像を前記文書に埋め込む際の埋込設定を取得する取得手段と、前記埋込設定を基に前記埋め込み画像を前記文書に埋め込み印刷をすることで、前記文書情報が記録された印刷物を出力する印刷手段と、前記印刷物が出力されることに併せて前記ブロックチェーンサービスに前記文書情報を登録する登録手段と、を有し、前記埋込設定には、前記文書に複数の埋め込み画像を埋め込む設定が含まれており、前記印刷手段は、複数の埋め込み画像が埋め込まれた印刷物を印刷するが、前記登録手段は、複数の埋め込み画像が埋め込まれた印刷物が出力されることに併せて前記文書情報を登録する際は前記文書情報が重複して登録されることがないよう前記文書情報を前記ブロックチェーンサービスに登録することを特徴とする。
【発明の効果】
【0007】
ブロックチェーンサービスと連携する画像形成装置を用意し、印刷物をスキャンした際に印刷物に記録されたブロックチェーンサービスに登録した情報が読み取れなくなる可能性を低減させることが可能になる。
【図面の簡単な説明】
【0008】
図1】システムの構成を示す図である。
図2】画像形成装置のハードウェア構成を示す図である。
図3】PCおよび文書管理装置のハードウェア構成を示す図である。
図4】画像形成装置のソフトウェア構成を示す図である。
図5】文書管理装置のソフトウェア構成を示す図である。
図6】ブロックチェーン装置のデータ構成を示す図である。
図7】認証画面の画面例である。
図8】リモート認証画面の画面例である。
図9】機能選択画面の画面例である。
図10A】アプリケーションAの文書印刷画面の画面例である。
図10B】アプリケーションAの文書印刷画面の画面例である。
図11】アプリケーションAのエラー警告画面の画面例である。
図12】アプリケーションAの文書検証画面の画面例である。
図13A】文書を画像形成装置で印刷する処理を示すフローチャート。
図13B】文書を画像形成装置で印刷する処理を示すフローチャート。
図13C】文書を画像形成装置で印刷する処理を示すフローチャート。
図13D】文書を画像形成装置で印刷する処理を示すフローチャート。
図13E】文書を画像形成装置で印刷する処理を示すフローチャート。
図13F】文書を画像形成装置で印刷する処理を示すフローチャート。
図14】文書を検証する処理を示すフローチャート。
図15】ブロックチェーン装置へのトランザクション処理を示すフローチャート。
【発明を実施するための形態】
【0009】
画像形成装置とブロックチェーンサービスの連携において、印刷物に関する情報をブロックチェーンサービスに登録する方法が挙げられる。具体的には、印刷物毎に一意性を示せる情報をブロックチェーンサービスに登録しておき、後に、ブロックチェーンサービスに情報の登録有無を問い合わせるようにするための文書情報、即ち問い合わせ情報を印刷物に埋め込む方法である。印刷物毎に一意性を示せる情報と問い合わせ情報は、別々に管理して関連付けて扱うか、あるいは、1対1の関係であるなら同一のものとして扱っても良い。
【0010】
しかしながら、問い合わせ情報(あるいは印刷物毎に一意性を示せる情報)を印刷物に埋め込む場合、画像形成装置が印刷物に埋め込まれた情報を読み込めなくなるケースが出てくる。例えば、印刷物自体が破損、汚れ、劣化などの理由で、埋め込んだ情報が欠損してしまうケースがある。あるいは、読み取りの際にノイズが乗ってしまって、埋め込んだ情報が欠損してしまうケースもある。さらに他の例として、印刷物に埋め込む情報を極小ドットの不可視な情報として扱う場合もあり、あるメーカーの画像形成装置で埋め込まれた情報を、他のメーカーの画像形成装置でも同じ情報として確実に読み取れる保証ができないことがある。これらの結果、印刷物に埋め込まれた情報を読み取れなくなってしまうと、印刷物に関する情報がブロックチェーンサービスに登録されているかを検索できなくなってしまう。
【0011】
以下、これら種々の問題を解決する本発明を実施するための形態について図面を用いて説明する。図1は、画像形成装置101と関連するシステムの全体図である。画像形成装置101、PC102、文書管理装置103がLAN100に接続されイントラネット内に存在し、インターネット110を介して、ブロックチェーン装置111と通信を行う。PC102はウェブブラウザを利用した画像形成装置101の管理やプリンタドライバを利用した画像形成装置101からの印刷に利用される。
【0012】
ブロックチェーン装置111は画像形成装置101やPC102で生成された文書情報をブロック単位にまとめて管理する装置であり文書の正当性を保障するためのブロックチェーンサービスを提供する装置である。文書管理装置103は画像形成装置101やPC102で生成された電子文書を保存する装置であり文書管理サービスを提供する。ブロックチェーン装置111および文書管理装置103が提供するサービスはクラウドサービスとして提供されてもよく、その場合、複数のコンピューターを仮想化することで1つの装置としサービスを提供する形態でも良い。
【0013】
図2は、画像形成装置101のハードウェア構成を示すブロック図である。Central Processing UnitであるCPU201を含む制御部200は、画像形成装置101全体の動作を制御する。CPU201は、Read Only MemoryであるROM202に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御を行う。Randam Access MemoryであるRAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。Hard Disc DriveであるHDD204は、画像データや各種プログラム、あるいは後述する各種データを記憶する。画像形成装置101は情報処理装置としてのハードウェア構成を有しているが、これに加え以下のハードウェア構成をさらに有する。
【0014】
操作部I/F205は、操作部209と制御部200とを接続する。プリンタI/F206は、プリンタ210と制御部200とを接続する。プリンタ210で印刷すべき画像データはプリンタI/F206を介して制御部200から転送され、プリンタ210において記録媒体上に印刷される。スキャナI/F207は、スキャナ211と制御部200とを接続する。スキャナ211は、原稿上の画像を読み取って画像データを生成し、スキャナI/F207を介して制御部200に入力する。
【0015】
ネットワークI/F208は、制御部200(画像形成装置101)をLAN100に接続する。ネットワークI/F208は、LAN100上の外部装置に画像データや情報を送信したり、LAN100上の外部装置から各種情報を受信したりする。
【0016】
図3は、PC102、および文書管理装置103のコンピューターのハードウェア構成を表すブロック図である。CPU302は装置全体の制御を行う。CPU302はHDD305に格納されているアプリケーションプログラムやOS等を実行し、RAM303にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ROM304は記憶部であり、内部には、基本I/Oプログラム等の各種データを記憶する。RAM303は一時記憶部であり、CPU302の主メモリ、ワークエリア等として機能する。HDD305は外部記憶部の一つであり、大容量メモリとして機能し、オフィスアプリケーションやWebブラウザー等のアプリケーションプログラム、OS、関連プログラム等を格納している。
【0017】
ディスプレイ306は表示手段であり、指示入力部であるキーボード/マウス307から入力したコマンド等を表示したりするものである。インターフェース308は外部装置I/Fであり、プリンタ、USB機器、周辺機器を接続する。システムバス301は、装置内におけるデータの流れを司るものである。ネットワークインターフェースカード(以降NIC)309は、LAN100を介して外部装置とのデータのやり取りを行う。
【0018】
なお、情報処理装置の構成はその一例であり、図2および図3の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM304、RAM303、HDD305などで変更することも可能である。本実施例中で特に明記しない場合は、各種処理はROM304等に記憶されているプログラムをRAM303等にロードし、CPU302で実行することによって実現されるものとする。
【0019】
図4は、画像形成装置101において本発明に関連するソフトウェア構成について示したブロック図である。特に断りのない限り、各処理部はROM202に記憶された制御プログラムをCPU201が実行することにより実現されるソフトウェア機能である。ローカルUI制御部400は、操作部I/F205を介して操作部209を制御する機能を提供する。ローカルUI制御部400はユーザが操作部209で操作した内容をユーザ認証処理部402やアプリケーションに通知する。ローカルUI制御部400は機能選択画面900を操作部209に表示する。機能選択画面900の例を図9(A)に示す。ローカルUI制御部400はユーザ認証処理部402やアプリケーションからの画面表示依頼を受けて、操作部209へ画面を表示するための制御を行う。ユーザ認証処理部402、アプリケーションA404はローカルUI制御部400を介して操作部209に画面を表示する。
【0020】
リモートUI制御部401は、ネットワークI/F208を介してPC102上のウェブブラザに対してウェブページを提供する。リモートUI制御部401はユーザがウェブブラウザで操作した内容をユーザ認証処理部402やアプリケーションに通知する。リモートUI制御部401は機能選択画面910をPC102上のウェブブラザに表示する。機能選択画面910の例を図9(B)に示す。リモートUI制御部401はユーザ認証処理部402やアプリケーションからの依頼を受けて、ウェブブラウザに対してウェブページを表示するための制御を行う。ユーザ認証処理部402、アプリケーションA404、アプリケーションB405はリモートUI制御部401を介してウェブブラウザに対してウェブページを表示させる。
【0021】
ユーザ認証処理部402は、画像形成装置101を利用するユーザを認証するための機能を提供する。そのため、ユーザ認証処理部402は認証画面700(画面例を図7に示す)を操作部209に表示する。ユーザ認証処理部402は認証画面700を介して、ユーザからユーザ名とパスワードの入力と言った認証情報を受信し、ユーザ情報DB403内に保持しているユーザ情報と比較することでユーザ認証を行う。
【0022】
ユーザ情報DB403は、画像形成装置101を利用するユーザに関する情報であるユーザ情報を保持する機能を提供する。ユーザ情報DB403は、HDD204内に構築され、格納される情報はHDD204に記憶される。ユーザ情報DB403に格納している情報の例を表1に示す。
【0023】
【表1】
【0024】
表1のユーザ情報テーブルは、「ユーザ名」と「パスワード」、「ロール」から構成されており、認証情報とロールは対応付けられている。「ユーザ名」はユーザを一意に識別するための名称である。「パスワード」はユーザ認証で利用するパスワードであり、ユーザ毎に任意の値を設定することができる。「ロール」は画像形成装置101のユーザに付与する画像形成装置101の利用権限を指し、本実施例ではAdministrator、General User、Guest Userの3つが存在する。
【0025】
Administratorは画像形成装置101の管理者ユーザに割り当てるロールであり、General Userは画像形成装置101を利用する一般的なユーザに割り当てるロールである。Guest Userは利用できる機能を制限したいユーザに割り当てるロールであり、ユーザがユーザ情報DB403にユーザ名およびパスワードなどの認証情報を登録せずに機能を利用する場合に割り当てられるロールである。
【0026】
アプリケーションA404は、スキャンした文書を電子文書に変換し、ブロックチェーンアプリケーション406を介してブロックチェーン装置111に文書の情報を、文書管理装置103に文書を登録する機能を提供する。アプリケーションA404は、登録された文書を受信しプリンタI/F206を介して印刷する機能を提供する。なお、本実施例では、印刷物の一例として文書として示すが、文書以外の印刷物も同様に扱うことができる。アプリケーションA404はスキャナI/F207を介してスキャナ211を制御したり、ネットワークI/F208を介してLAN100へデータを送信したりすることで、外部装置へスキャンデータの送信を行う。アプリケーションA404はローカルUI制御部400およびリモートUI制御部401へ画面情報を提供する。
【0027】
アプリケーションA404はローカルUI制御部400を介して操作部209に表示された画面への入力を受け付け、それに応じて処理を行う。アプリケーションA404は印刷画面1000、検証画面1200を操作部209に表示する。埋込設定画面である印刷画面1000の例を図10Aに、検証画面1200の例を図12(A)に示す。
【0028】
また、アプリケーションA404はリモートUI制御部401を介してPC102上のウェブブラザからの入力を受け付け、それに応じて処理を行う。アプリケーションA404は印刷画面1050、検証画面1210をPC102上のウェブブラザに表示する。印刷画面1050の例を図10Bに、検証画面1210の例を図12(B)に示す。
【0029】
なお、文書の印刷、検証と言った機能を1つのアプリケーションに備える例を説明するが、それらの機能を複数のアプリケーションに分担させても良い。例えば、文書の登録を行うスキャンアプリケーションと、印刷を行う印刷アプリケーションのように分ける形態が考えられる。
【0030】
アプリケーションB405は、アプリケーションA404と同様にスキャンした文書を電子文書に変換し、ブロックチェーンアプリケーション406を介してブロックチェーン装置111に文書情報を、文書管理装置103に文書を登録する機能を提供する。アプリケーションB405はリモートUI制御部401へ画面情報を提供する。アプリケーションA404はローカルUI制御部400とリモートUI制御部401を介してローカルUIとリモートUIの両方からの入出力に対応するが、アプリケーションB405はリモートUIからだけの入出力に対応する点が異なる。なお、アプリケーションA404およびアプリケーションB405はブロックチェーン装置111とは直接通信することはない。
【0031】
ブロックチェーンアプリケーション406は、ブロックチェーン連携するためのアプリケーションであり、アプリケーションA404やアプリケーションB405からの指示を受け、ブロックチェーン装置111に文書情報を登録、そして検証する機能を提供する。ブロックチェーンアプリケーション406がブロックチェーン装置111に登録するトランザクション601とブロックのデータ構造の例を図6に示すが詳細は後述する。
【0032】
ブロックチェーンアプリケーション406は、アプリーションからブロックチェーン装置111に対する指示を受けた際にクレデンシャル情報管理部410からクレデンシャル情報も受け取る。ブロックチェーンアプリケーション406は、受け取ったクレデンシャル情報の検証を行って、検証が成功した場合だけ、ブロックチェーン装置111に対して処理を実行する。
【0033】
クレデンシャル情報A408は、アプリケーションA404がブロックチェーン装置111を利用する正規のアプリケーションであることを保証するためのクレデンシャル情報である。クレデンシャル情報A408は正しい処理を行っていることが検証されたアプリケーションに対して発行され、アプリケーションはクレデンシャル情報が組み込まれた状態で画像形成装置101に搭載される。クレデンシャル情報B409は、アプリケーションB405がブロックチェーン装置111を利用する正規のアプリケーションであることを保証するためのクレデンシャル情報である。クレデンシャル情報A408と同様に画像形成装置101に搭載される。
【0034】
クレデンシャル情報C407は、画像形成装置101がブロックチェーン装置111を利用する正規の装置であることを保証するためのクレデンシャル情報である。クレデンシャル情報C407は、例えば本システムを運営する団体が装置のメーカーごとに発行してもよい。クレデンシャル情報C407は画像形成装置101のファームウェア内に組み込んだ状態で出荷してもよいし、出荷後に画像形成装置101へインストールしてもよい。なお、クレデンシャル情報はデジタル証明書や秘密鍵と公開鍵の鍵ペアでもよいし、予め定められたデータ値でもよく、クレデンシャル情報の実態に制限はない。クレデンシャル情報はアプリケーションごとに異なる実態であってもよい。
【0035】
クレデンシャル情報管理部410は、画像形成装置101内のクレデンシャル情報を管理する機能を提供する。本実施例ではクレデンシャル情報管理部410は、ブロックチェーンアプリケーション406からの指示を受けて、ブロックチェーンアプリケーション406にクレデンシャル情報C407を渡す。なお、本実施例ではPC102が画像形成装置101を経由することでブロックチェーン装置111と連携するが、クレデンシャル情報管理部410はクレデンシャル情報C407をPC102に提供しないように構成している。PC102のユーザはリモートUIを介してログインすることで、画像形成装置101が確認したロールに基づいてブロックチェーンアプリケーション406の利用が許可されるので、PC102は事前にブロックチェーン装置111との信頼関係を結ばずとも良い。
【0036】
アプリケーションA404やアプリケーションB405は、ブロックチェーンサービスに登録有無を問い合わる際に必要となる問い合わせ情報に対応する埋め込み画像を文書に埋め込んだ状態で印刷することができる。ここで、アプリケーションA404やアプリケーションB405は、埋め込み画像を文書に埋め込む際に関連する設定を、デバイス設定420、ブロックチェーン設定421から取得することができる。そして、スキャン時に文書に埋め込まれた埋め込み画像から問い合わせ情報を読み取り、ブロックチェーンサービスに問い合わせを行うことによって、文書のブロックチェーンサービス登録有無を判断することができる。
【0037】
問い合わせ情報は、図6で後述するトランザクション601を識別できる情報であれば良く、本実施例では、文書を一意に識別できるハッシュ値(文書ハッシュ値)として例示する。この文書ハッシュ値は、図6で後述する文書ハッシュ値602のことを示す。また、本実施例では、アプリケーションA404やアプリケーションB405は、1つの文書(あるいは1ページの文書や、1枚の文書)に同じ問い合わせ情報を複数の箇所に埋め込んで印刷できる。以降では、文書に関する問い合わせ情報を文書ハッシュ値、埋め込んだ箇所数を埋込数として説明する。
【0038】
デバイス設定420は、画像形成装置101に関するデバイス設定を保持する機能を提供する。デバイス設定420は、HDD204内に構築され、格納される情報はHDD204に記憶される。デバイス設定420に格納しているブロックチェーン機能に関する情報の例を表2に示す。
【0039】
【表2】
【0040】
表2のデバイス設定管理テーブルは、「埋込数(下限)」、「埋込数(上限)」、「埋込位置の固定設定」、「埋込位置の条件」、「埋込位置のユーザ指定」、「埋込位置の隣接や偏り」で構成されている。「埋込数(下限)」は文書に問い合わせ情報を埋め込む際に最低限埋め込まなければならない必要数である。ここではデバイス設定として、文書に問い合わせ情報を埋め込んで印刷する際に3箇所以上埋め込んで印刷しなければならないことを示している。同様に「埋込数(上限)」は文書に問い合わせ情報を埋め込むことのできる最大数である。ここではデバイス設定として、文書に問い合わせ情報を埋め込んで印刷する際に10箇所まで埋め込んで印刷することができることを示している。「埋込数(下限)」や「埋込数(上限)」は、他の設定例として、可能な限り最小数を指定する「Min」、可能な限り最大数を指定する「Max」としても良い。
【0041】
「埋込位置の固定設定」は、問い合わせ情報を埋め込む際の指定の位置を示している。埋込位置の固定設定としてワイルドカード*が指定されている場合は、埋込位置に関して特に限定がないものとする。他の設定項目でも特に指定がない場合は*のような表現を用いても良く、あるいは、「指定なし」「設定なし」など、その他の表記方法で設定されていても良い。埋込位置を指定する場合、埋め込む際の位置座標や、「四隅のいずれか」など位置を示す表記で設定されるようにする。逆に、固定位置での設定を許可しない場合は「固定設定を許可しない」といった表記で設定されるようにする。「埋込位置の条件」は、問い合わせ情報を埋め込む位置の条件である。文書の空き領域にのみ印字する場合は「空き領域のみ」「空白部分のみ」などと制約を示す情報を設定する。逆に、文書データを上書きして印字する設定にする場合は、「上書き許可」や「上書き印字」などといった制約を示す情報を設定する。ここでは、*が設定されているため、デバイス設定としては埋込位置の制約条件がないことを示している。
【0042】
なお、デバイス設定は*が設定されている例を示したが、後述する他の設定管理が*になっている可能性があり、全ての設定を加味した結果、最終的な設定が*になり埋め込み設定が確定しない可能性もあるのでデバイス設定には*を採用しない形態も考えられる。すなわち、表2の*は何らかの設定値が入ることになる。もしくは全ての管理設定が*になった場合に備えて、別途デフォルト値を採用する形態も考えられる。
【0043】
「埋込位置のユーザ指定」は、問い合わせ情報の埋込位置を、印刷を指示したユーザが任意の位置に設定することを許可するか否かの設定である。「可」の場合は、印刷指示したユーザによる埋込位置の指定や変更を許可することになり、「不可」の場合は許可しないことになる。ここでは「可」が設定されているため、デバイス設定としてはユーザによる埋込位置の指定や変更を許可することを示している。「埋込位置の隣接や偏り」は、問い合わせ情報の埋込位置が隣接してしまった場合や、特定の位置に偏ってしまった場合の印刷処理を許容するか否かの設定である。「可」の場合は印刷を許容し、「不可」の場合は印刷を許容しない。
【0044】
埋込位置の隣接や偏りが発生しているかの判断には、埋込位置の座標や、もしくはエリア区分けし、埋込位置がどのエリアに属しているかの情報から算出すれば良い。埋込位置の座標やエリアが、端に偏っている場合や、あるいは、近い横軸座標や近い縦軸座標に偏っている場合、特定の座標に近い位置に偏っている場合に、設定した埋込位置に偏りがあると判断できる。また、隣接や偏りが発生してしまった際に、印刷時のユーザに許容するか否かの判断を委ねる場合は「警告表示」のように設定できても良い。警告画面の例は、後述の図11の埋込位置警告画面1120にて説明する。なお、ここでは、デバイス設定管理テーブルとして、本実施例におけるブロックチェーン機能に関する設定項目について例示したが、ネットワーク設定、電力設定、音量設定といった一般的なデバイス設定を含んでいても良い。デバイス設定420は画像形成装置101が持つブロックチェーン機能に関する設定であるが、表2に示す同様の設定をブロックチェーン装置111が持っていても良い。また、ブロックチェーン装置111が表2に示す設定を持つ場合、ブロックチェーンアプリケーション406を介してブロックチェーン装置111の設定を取得できても良い。
【0045】
ブロックチェーン設定421は、表2に示したデバイス設定だけでなく、ユーザの印刷時の状況に応じた設定をする際に、アプリケーションA404やアプリケーションB405が利用する管理テーブルを保持する。ブロックチェーン設定421は、HDD204内に構築され、格納される情報はHDD204に記憶される。ブロックチェーン設定421に格納している情報の例を表3に示す。
【0046】
【表3】
【0047】
表3のブロックチェーン設定管理テーブルは、印刷時の状態に応じた各設定項目の設定値を示す。設定項目となる、「埋込数(下限)」「埋込数(上限)」「埋込位置の固定設定」「埋込位置の条件」「埋込位置のユーザ指定」は、表2で示した設定項目と同様の項目である。ここでは、印刷時の状態を示す項目として、「セキュリティポリシー」、「ロール」、「文書レベル」、「部署」、「UC・WF」を例示している。
【0048】
「セキュリティポリシー」は、ユーザ組織の情報セキュリティ対策のための運用規定の状態を示し、セキュリティポリシーの状態に合わせて設定されるべき項目と設定値が示されている。ここでは「セキュリティポリシー」として設定される項目の例として「埋込数を強制的に複数にする」「埋込数を最大限にする」「埋込位置のセキュリティを強化する」「埋込による文書データの上書きを許可しない」という設定を示している。
【0049】
「ロール」は、印刷指示を行ったユーザのロール状態を示し、ロールに合わせて設定されるべき項目と設定値が示されている。ここでは、Administratorの設定値として、「(文書レベル設定の上書きを許可)」という指定がされている。これは、この直後に出てくる文書レベルの状態に合わせた設定を、Administratorのユーザであれば上書きすることができる旨を示している。逆に、GuestUserの設定値である「(設定不可)」は上書きできない旨を示している。このように、状態に応じた設定間で優劣を持たせる場合は、優先順位を持たせるような設定がされていても良い。また、ここではユーザの権限レベルという観点でAdministrator、GeneralUser、GuestUserのロールを例示したが、「BCロール」と言った他のロールなどを設けても良い。
【0050】
「文書レベル」は、印刷する文書の重要度の状態を示し、文書の重要度に合わせて設定されるべき項目と設定値が示されている。ここでは、文書レベルの例として「重要度(高)」「重要度(中)」「重要度(低)」として示している。この例の他に、文書の機密レベルや、文書名、文書の種類、文書のページ数、文書の公開範囲など、文書を指定もしくはカテゴライズできるような他の文書属性であっても良い。
【0051】
「部署」は、印刷指示を行ったユーザが所属する部門に合わせて設定されるべき項目と設定値が示されている。ここでは部署の例として、「経営部門」「その他部門」の場合を示しているが、他の部門情報や「部署」以外の他のユーザ属性情報を指定しても良い。またここでは設定値に「「文書 重要度(高)」と同じ」や「「文書 重要度(低)」と同じ」といった設定がされているが、このように他の状態と関連付けた設定がされていても良い。
【0052】
「UC・WF」は文書を印刷する際のユースケースやワークフローの属性を示すものであり、UCやWFの状態に合わせて設定されるべき項目と設定値が示されている。例えばアプリケーションA404が提供する機能単位などで記載して良く、ここでは「トラストプリント」、「黒塗り印刷(公文書印刷)」、「プリント(通常)」といった機能を示している。他の例として、アプリケーション名や、ワークフロー名など、印刷時のフローに関連する情報であっても良い。このように表3では、印刷時のさまざまな状態に応じた各設定項目が示されているが、例示した以外の他の状態を指定できるようにしても良い。また、ここでは、表2の管理テーブルと、表3の管理テーブルを分けて例示しているが、デバイス設定として1つの管理テーブルとする構成や、ブロックチェーン設定として1つの管理テーブルとする構成としても良い。
【0053】
図5は、文書管理装置103において、本発明に関連するソフトウェア構成について示したブロック図である。文書管理装置103で管理する電子文書は、ファイル保持部501に保存する文書ファイルと、文書情報保持部502に保存する文書を表す情報とで構成される。文書情報保持部502に格納するデータは、表4の文書情報テーブルに記載した情報である。
【0054】
【表4】
【0055】
表4の文書情報テーブルは、「ID」と「文書名」、「登録日時」、「ファイルパス」から構成される。「ID」は、電子文書を一意に管理するための識別情報である。「文書名」は電子文書をユーザが識別するために付与する名称である。この文書名は複数の電子文書で重複してもよい。「登録日時」は、電子文書を文書管理装置103に保存した日時である。「ファイルパス」はファイル保持部501に格納された文書ファイルを保存している位置を表す。本実施例ではファイルシステム上のパスとして示しているが、保存場所を一意に表す情報であればパスでなくても良い。
【0056】
これらは、本実施例を説明するために必要な最低限の項目で構成しているが、文書を分類するための情報などを合わせて保持しても良い。電子文書処理部503は、ファイル保持部501と文書情報保持部502へアクセスを行い、電子文書の登録や取得、リストの取得といった処理を制御するための機能を有する。この電子文書処理部503での処理は、画像形成装置101やPC102など文書管理装置103の外部からの電子文書に関する入出力処理の要求を受け付けた電子文書送受信部504から起動されることにより実行される。
【0057】
図6は、ブロックチェーン装置111に保持するトランザクション601とそのトランザクションを複数格納したブロックのデータ構造について示したブロック図である。ブロックチェーン装置111は、ブロックチェーンと呼ばれる方式でデータを管理する装置である。このブロックチェーンは、情報をトランザクションという単位で取り扱い、そのトランザクションを複数まとめたブロックという単位で管理する。
【0058】
個々のブロックはその前後のブロックとの関連が定義されることで、各ブロックが数珠繋ぎの状態を保つように構成される。また、ブロックチェーンはノードと呼ばれる複数のコンピューターで管理されており、それぞれのノードがすべて等しいブロックデータの管理を行う構造となる。このため、ブロックデータの改ざんを行う場合には構成されている複数のノードに対して更新を行わなければならず、対改ざん性の強いデータ管理方法として知られている。なお、ブロックチェーン装置111と記載はしたが、上述の通り複数のコンピューターで構成されている装置であって、それらによってブロックチェーンサービスが提供される。
【0059】
本実施例では、画像形成装置101での文書処理時にブロックチェーン装置111に文書ハッシュ値を含めたトランザクションを送信し、ブロック管理することで、文書の正しい状態を保持する。これにより、印刷物がある時点においては確かに存在していたことを確認でき、さらに、文書管理装置103内の電子文書に対する改ざんが行われていないかを確認できるようになる。ここでは各トランザクションを識別する情報の一例として文書ハッシュ値を用いるが、通し番号を付与したIDや、タイムスタンプなど、他の情報を基にした識別情報を用いても良い。
【0060】
文書管理装置103への電子文書の登録や出力の処理を表すトランザクション601には、以下の6情報を含む。文書ハッシュ値602は、対象の文書を一意に表すために算出されたハッシュ値である。対象の文書である印刷文書の文書ハッシュ値は、例えば、画像形成装置101のクレデンシャル情報C407と、印刷時のタイムスタンプを基に算出することができる。また対象の文書として印刷文書の他に電子文書を含んでも良い。電子文書の場合、文書ハッシュ値602は文書ファイル全体から算出されるものであり、電子文書自体に変更が入る事で算出されるハッシュ値が変わるものとなる。ただし、これ以外の算出方法を制限するものではない。
【0061】
登録デバイス識別情報604は、文書登録を行った画像形成装置101を識別する情報であり、本実施例ではクレデンシャル情報C407のハッシュ値を格納する。文書登録日時605は、文書を登録した時点を表す情報であり、本実施例では表4の登録日時の値を格納する。
【0062】
文書登録者606は、文書登録を行ったユーザを表す情報であり、本実施例では画像形成装置101へログインしたユーザのユーザ名のハッシュ値を格納する。ここで、画像形成装置101を利用するために既に登録されているユーザ名などの情報をブロックチェーン装置111に登録する情報としてそのまま利用できるため、システムの管理者の管理業務負荷を少なくすることが可能となる。元文書ハッシュ値607は、文書間の関連を表す情報である。これは、文書管理装置103に格納されている電子文書を元に印刷を行った場合や、印刷物を元にスキャンして電子データ保存などを行った場合に、元となる文書と紐付けを行うために使用する。
【0063】
続けて、トランザクション601を保持するブロックの構造についてブロック611を用いて説明する。これは一般的なブロックチェーン構造を模式化したものである。ブロック611には、複数のトランザクション601(a)~601(c)と、それらのトランザクション601から算出するブロックのハッシュ値612を保持する。
【0064】
本実施例ではブロック内に含むトランザクション601の数は3つとしたがトランザクション数を制限するものではない。また、ブロック間を連結するための前ブロックのハッシュ値613を保持する。本実施例においては、ブロック614のブロックのハッシュ値を前ブロックのハッシュ値613に格納し、ブロックが関連を持っていることを表している。本実施例では前ブロックのハッシュ値としたが、後ブロックのハッシュ値を管理する、もしくは前ブロックと後ブロックの両方のハッシュ値を管理する形態であっても良い。
【0065】
図7は、認証画面の画面例である。図7(A)の認証画面700はユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。ユーザ名入力フィールド701は画像形成装置101のユーザがユーザ名を入力するためのフィールドである。パスワード入力フィールド702は画像形成装置101のユーザがパスワードを入力するためのフィールドである。ログインボタン703はユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名入力フィールド701とパスワード入力フィールド702に入力された値を元にユーザ認証を行う。
【0066】
図7(B)の認証画面(ゲストログイン)710はゲストログインを設けた認証画面の画面例であり、ユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。以下、認証画面700との違いのみ説明する。ゲストログインボタン711はゲストユーザとしてユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名とパスワードによる認証は行わず、ログインを許可する。ゲストログインボタン711を押下してログインしたユーザは、ユーザ名がGuestでロールがGuest Userとなる。なお、本実施例では詳細の説明は省くが、ユーザ認証処理部402の設定で認証画面700と認証画面(ゲストログイン)710のどちらの画面を表示するかを切り替えてもよい。
【0067】
図8はリモート認証画面の画面例である。図8(A)のリモート認証画面800はユーザがPC102上のウェブブラウザから画像形成装置101の機能を利用するために、ユーザ認証を行うための画面である。ユーザ名入力フィールド801は画像形成装置101のユーザがユーザ名を入力するためのフィールドである。パスワード入力フィールド802は画像形成装置101のユーザがパスワードを入力するためのフィールドである。ログイン803はユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名入力フィールド801とパスワード入力フィールド802に入力された値を元にユーザ認証を行う。
【0068】
図8(B)のリモート認証画面(ゲストログイン)810はユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。以下、リモート認証画面800との違いのみ説明する。 ゲストログインボタン811はゲストユーザとしてユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名とパスワードによる認証は行わず、ログインを許可する。ゲストログインボタン811を押下してログインしたユーザは、ユーザ名がGuestでロールがGuest Userとなり、表2のロール情報テーブルの権限に従って利用できる機能が制限される。なお、本実施例では詳細の説明は省くが、ユーザ認証処理部402の設定でリモート認証画面800とリモート認証画面(ゲストログイン)810のどちらの画面を表示するかを切り替えてもよい。
【0069】
図9はローカルUI制御部400およびリモートUI制御部401が表示する機能を選択する画面の画面例である。図9に示す機能を選択する画面は画像形成装置101に搭載されている機能の一覧である。画像形成装置101のユーザはこの画面に表示されているボタンを押下することで、画像形成装置101に搭載されている各機能を利用することができる。
【0070】
図9(A)の機能選択画面900は、認証画面700または認証画面(ゲストログイン)710でログインした直後にローカルUI制御部400によって操作部209に表示される画面である。機能選択ボタン901は画像形成装置101の各機能を利用するためのボタンである。
【0071】
コピーボタンはコピー機能を利用する画面を、送信ボタンはスキャンした文書をPC102に送信する機能を利用する画面を、保存ボタンはスキャンした電子文書をHDD204に保存する機能を利用する画面を表示するためのボタンである。本実施例ではそれぞれのボタンが押下された後に表示する画面の説明は省略するが、いずれも従来通りである。
【0072】
文書印刷ボタンが押下された場合は印刷画面1000を表示する。トラストプリントは印刷する文書をすべてブロックチェーンサービスに登録する機能である。このように特定のユースケースやワークフローに特化したボタンを用意しても良い。トラストプリントボタンが押下された場合は、ブロックチェーン機能を有効にした状態で印刷画面1000を表示する。文書検証ボタンが押下された場合は、検証画面1200を表示する。
【0073】
ログアウトボタン902は、ログイン中に表示されるログアウト処理を実行するためのボタンである。このボタンが押下されるとログアウト処理が実行され、その後、認証画面700または認証画面(ゲストログイン)710が表示される。
【0074】
図9(B)の機能選択画面910はリモート認証画面800またはリモート認証画面(ゲストログイン)810でログインした直後にリモートUI制御部401によってPC102上のウェブブラウザに表示する画面の例である。
【0075】
機能選択ボタン911はそれぞれの機能を利用するためのボタンである。機能選択画面900と同様に保存ボタンが押下された後に表示する画面の説明は省略する。文書印刷ボタンが押下された場合は、印刷画面1050を表示する。トラストプリントボタンが押下された場合は、ブロックチェーン機能を有効にした状態で印刷画面1050を表示する。文書検証ボタンが押下された場合は、検証画面1210を表示する。なお、ファンクションの選択はこの形態に限られず、例えば、アプリケーションA404を機能選択画面900に表示し、アプリケーションA404が選択された後に印刷や検証などの機能を選択させる形態であっても良い。
【0076】
図10はアプリケーションA404が表示する文書の印刷画面の画面例である。図10Aの印刷画面1000は、文書管理装置103で管理されている文書を印刷する機能を提供するため画面である。文書選択リスト1001は、保存または印刷する文書を選択するためのリストであり、アプリケーションA404は文書管理装置103で管理されている文書を文書選択リスト1001に表示する。プリント開始ボタン1002は、文書選択リスト1001で選択した文書の印刷を実行するボタンである。キャンセルボタン1003は、印刷画面を閉じて機能選択画面900に戻るボタンである。BC登録選択ボタン1004は、印刷する文書をブロックチェーン登録し、問い合わせ情報を文書に埋め込むかをユーザに選択させるボタンである。
【0077】
BC登録選択ボタン1004で「する」が選択されている場合は、BC機能設定画面1010を表示する。印刷設定選択ボタン1005は、印刷する文書の仕上げ設定をユーザに選択させるボタンであり、ここではカラー選択、用紙選択を例示している。なお、ログインするユーザや印刷する文書に応じてBC登録選択ボタン1004を表示しない方法も考えられるが、その場合は文書ハッシュ値を登録することを強制する、もしくは登録しない、の何れかの方法で処理を行うことになる。
【0078】
BC機能設定画面1010は、埋込数の設定や埋込位置の確認を行う機能を提供するための画面である。埋込数設定エリア1011は、ユーザからの埋込数設定を受け付けるための入力エリアである。入力可能範囲1012には、埋込数設定エリアに入力することのできる値域を表示する。ここで表示する値域は埋込数(下限)から埋込数(上限)までとなる。また埋込数設定エリア1011や入力可能範囲1012には、デフォルト値として、例えば埋込数(下限)を設定するなど、値域の範囲内で埋込数のデフォルト値を決定する旨を表示しても良い。埋込位置プレビュー1013は、問い合わせ情報を埋め込む位置を表示する。複数ページの文書を印刷する場合、ページ分のプレビューを行う。戻るボダン1014は、BC機能設定画面を閉じて、印刷画面1000に戻るボタンである。OKボタン1015は、印刷を開始するボタンである。埋込位置設定ボタン1016は、埋込位置の設定画面1020を表示するボタンである。
【0079】
埋込位置の設定画面1020は、込位置の設定を行う機能を提供するための画面である。埋込位置設定エリア1021は、ユーザからの埋込位置設定を受け付けるためのエリアである。ユーザが指定可能な位置を制限して表示しても良い。複数ページの文書を印刷する場合、ページ分の選択が行える。戻るボタン1022は、埋込位置の設定画面1020を閉じて、BC機能設定画面1010を表示するためのボタンである。なお、ユーザに埋込位置を知らせたくない場合は、埋込位置プレビュー1013や、埋込位置設定ボタン1016を表示しなくても良い。
【0080】
図10Bの印刷画面1050は、文書管理装置103で管理されている文書を印刷する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。BC登録機能設定1060は、埋込数の設定や埋込位置の確認を行う機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。埋込位置の設定画面1070は、埋込位置の設定を行う機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
【0081】
図11はアプリケーションA404が表示するエラー処理で表示されるエラー画面と警告処理で表示される警告画面の画面例である。図11(A)の埋込数エラー画面1100は、埋込数の条件を満たせない時に表示するエラー画面である。キャンセルボタン1101は、印刷処理をキャンセルし、機能選択画面900に戻るボタンである。印刷設定へボタン1102は、印刷画面1000へ戻るボタンである。BC機能設定へボタン1103は、BC機能設定画面1010へ戻るボタンである。図11(B)の埋込位置エラー画面1110は、埋込位置の条件を満たせない時に表示するエラー画面である。図11(C)の埋込位置警告画面1120は、埋込位置に偏りがあった時に表示する警告画面である。OKボタン1121は、警告画面を閉じ、処理を進めるボタンである。
【0082】
図12はアプリケーションA404が表示する文書を検証するための画面の画面例である。図12(A)の検証画面1200はスキャンした文書または画像形成装置101に保存されている文書を、ブロックチェーン装置111を利用して正式な文書であることを検証する機能を提供するための画面である。
【0083】
文書選択設定1201は検証の対象となる文書をスキャンした紙文書または画像形成装置101に保存されている文書から選択する設定である。文書選択リスト1202は検証対象となる文書を選択するためのリストであり、HDD204に保存されている文書の一覧である。検証するボタン1203は、文書選択設定1201でスキャンが選択されていた場合は文書のスキャンを実行し、その後、ブロックチェーン装置111を利用して文書の検証を実行するボタンである。検証するボタン1203は、文書選択設定1201で保存文書が選択されていた場合は文書選択リスト1202で選択されている文書の検証を行う。図12(B)の検証画面1210はHDD204に保存されている文書を、ブロックチェーン装置111を利用して正式な文書であることを検証する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
【0084】
図13は、文書管理装置103に保存されている電子文書を画像形成装置101から印刷処理を行うフローチャートである。ここでは、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。
【0085】
図13Aは、認証画面700でログインボタン703が押下されたことにより起動され、まずユーザ認証処理部402がCPU201において実行される。本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS1501では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1502では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1503へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1517へ進む。
【0086】
ステップS1503では、ログイン処理として現在ログインしているユーザとしてステップS1501で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって印刷ボタンが押下され、それ以降の処理はアプリケーションA404がCPU201において実行される。処理を引き継いだアプリケーションA404は印刷画面1000を操作部209に表示する。
【0087】
ステップS1504では、アプリケーションA404は図10に示した印刷画面1000を操作部I/F205を経由して操作部209に表示し、プリント開始ボタン1002が押下されるまで待ち、押下された場合はステップS1505に進む。ステップS1505では、印刷画面1000の文書選択リスト1001で選択された電子文書を文書管理装置103から取得する。取得した電子文書の文書情報はRAM203に、文書ファイルはHDD204に一時的に保存する。
【0088】
ステップS1506では、BC登録選択ボタン1004で「する」を選択されているか否かを判定する。選択されている場合は、ステップS1507に進む。選択されていない場合にはステップS1518に進む。ステップS1518では、HDD204に保存した文書データを画像形成装置101のプリンタI/F206を経由して、プリンタ210から印刷処理を行う。
【0089】
ステップS1507では、HDD204に保存した文書データからハッシュ値を算出する。そしてステップS1508に進む。ステップS1507までの処理はアプリケーションA404が行う処理であったが、ステップS1508は、ブロックチェーンアプリケーション406が行う処理となる。ステップS1508で、ブロックチェーンアプリケーション406は、ステップS1507でアプリケーションA404によって算出されたハッシュ値がブロックチェーン登録されているかを検証する。この検証処理は後述の図15で説明する。
【0090】
アプリケーションA404は、ブロックチェーンアプリケーション406を呼び出す際に、処理種別として文書検証と、ステップS1507において算出/取得した文書ハッシュ値と、クレデンシャル情報A408とを渡す。ステップS1509からは再びアプリケーションA404が実行する処理となる。ステップS1509で、アプリケーションA404は、ステップS1508のブロックチェーンアプリケーション406によるハッシュ値の検証が成功したかどうかを判定する。ステップS1507で算出したハッシュ値がブロックチェーンサービスに登録されている場合は、検証が成功となりステップS1510に進む。検証が成功しなかった場合はステップS1511に進む。ステップS1510で、ステップS1509で算出したハッシュ値を、元文書のハッシュ値として記憶する。
【0091】
ステップS1511では、印刷文書に設定するためのハッシュ値を算出する。ここで算出するハッシュ値が文書情報であり、文書ハッシュ値602として扱うことになる。このハッシュ値の算出には、画像形成装置101のクレデンシャル情報C407と本ステップ処理時点の画像形成装置内の日時情報を使用して計算する。印刷文書が複数ページである場合は、ページ単位にハッシュ値の計算を行うことも可能であり、その場合、各ページのページ数の情報を、ハッシュ値を算出する際の情報として扱う。なお本実施例では、画像形成装置101が問い合わせ情報、すなわち文書ハッシュ値602を生成する構成を例示したが、ブロックチェーン装置111や文書管理装置103など他の情報処理装置に生成を依頼して、生成された値を取得する構成としても良い。もしくは画像形成装置101や文書管理装置103などの情報処理装置が文書ハッシュ値602を算出するが、算出したハッシュ値が登録可能かを先にブロックチェーン装置111に問い合わせ、登録可能であった場合にそのハッシュ値を利用する構成でも良い。
【0092】
ステップS1512で、ハッシュ計算していないページがあるか否かを判定し、計算を行っていないページがあればステップS1511へ進み、なければステップS1513へ進む。なお、本実施例では、複数ページの文書の場合、ページ単位で異なるハッシュ値を設ける構成をとっているが、文書単位や複数ページで1つのハッシュ値を設ける構成としても良い。ステップS1513で、印刷文書への埋込設定処理を行う。この埋込設定は後述の図13Bで説明する。なお、本実施例はページ単位で文書情報を算出しているのでページ毎に異なるハッシュ値にはなっているため、それぞれの情報がブロックチェーンサービスに登録される。
【0093】
ステップS1514では、ハッシュ値を設定した文書ファイルを画像形成装置101のプリンタI/F206を経由して、プリンタ210から印刷処理を行う。そして、ステップS1516で、印刷処理が正常に終了したか否かを判定する。正常終了した場合はステップS1516へ処理を進め、正常終了しなかった場合はステップS1517へ処理を進める。S1515までの処理はアプリケーションA404が行う処理であったが、S1516は、ブロックチェーンアプリケーション406が行う処理となる。S1516で、ブロックチェーンアプリケーション406が印刷処理の情報をブロックチェーン装置111に登録する。印刷文書が複数ページの場合はページ数分登録処理を行う。この登録処理は後述の図15で説明する。ここでは、登録するためのトランザクション601へ指定する値について説明する。
【0094】
文書ハッシュ値602にはステップS1511で算出した印刷文書のハッシュ値を指定する。登録デバイス識別情報604には印刷を行った画像形成装置101のクレデンシャル情報C407のハッシュ値を指定する。文書登録日時605にはステップS1511でハッシュ値を算出した際の日時情報を指定する。文書登録者606は、印刷を行った画像形成装置101へログインしているユーザ名のハッシュ値を指定する。元文書ハッシュ値607には、ステップS1510で記憶した元文書を示す文書ハッシュ値602を指定する。元文書を示す文書ハッシュ値602を記憶していない場合は何も指定しない。
【0095】
ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。ステップS1517では、本処理フローチャートにおいて印刷を許可できない場合のエラー表示を行う。これについては画面上にエラーダイアログ(不図示)を表示する。
【0096】
また、印刷物には複数の埋め込み画像が含まれる場合があるが、全ての埋め込み画像に対応する文書情報を登録するわけではない。複数の埋め込み画像の生成元となる文書情報は全て同じ情報であり、ブロックチェーンサービスに登録する情報は1つで十分である。よって、本願発明では、ブロックチェーンサービスに文書情報を登録する際は文書情報が重複して登録されることがないように文書情報を登録するものとする。
【0097】
このように、印刷文書を一意にできる文書ハッシュ値を生成し、そのハッシュ値を問い合わせ情報である文書情報として印刷文書に埋め込んで印刷することができる。そして印刷が正常に成功した場合に、印刷に併せて印刷物に記録した文書ハッシュ値をブロックチェーンサービスに登録することができる。
【0098】
図13B図13Fは、画像形成装置101のアプリケーションA404が印刷文書への埋め込み設定処理を行うフローチャートである。図13Bのフローチャートは、アプリケーションA404が印刷時に印刷文書のハッシュ値を算出したあとに起動され、アプリケーションA404がCPU201において実行される。
【0099】
ステップS1801で、埋込数の設定処理を行う。この埋込数の設定処理は後述の図13Cで説明する。ステップS1802で、埋込位置の設定処理を行う。この埋込位置の設定処理は後述の図13Fで説明する。埋込位置の設定処理が終わるとステップS1803に進む
ステップS1803で、ユーザから再設定指示があったか否かを判定する。埋込数の設定や、埋込位置の設定において埋込数エラー画面1100や、埋込位置エラー画面1110を表示した際に、BC機能設定へボタン1103が選択された場合は、ユーザからの再設定指示があったと判定し、ステップS1801に進む。ユーザからの再設定指示がない場合はステップS1804に進む。
【0100】
ステップS1804で、ユーザからの印刷処理のキャンセル指示があったかを判定する。埋込数エラー画面1100や、埋込位置エラー画面1110を表示した際に、キャンセルボタン1101や印刷設定へボタン1102が選択された場合は、ユーザからの印刷処理のキャンセル指示があったと判定し、ステップS1805に進む。ユーザからのキャンセル指示がなかった場合は、ステップS1806に進む。ステップS1805で、印刷処理をキャンセルし、埋込数エラー画面1100や、埋込位置エラー画面1110において、ユーザから印刷設定へボタン1102が選択されていた場合は、再度、アプリケーションA404の印刷画面1000を呼び出す。
【0101】
ステップS1806では、ステップS1511で算出したハッシュ値を、ステップS1802で設定された埋込位置に従って、文書の印刷用データ内に埋め込む。この埋込処理はページ単位で行う。また、このハッシュ値は、後述でスキャンした際に読み取れる形式(例えばバーコード)に変換して埋め込む情報であり、ブロックチェーンサービスに登録有無を確認する際の問い合わせ情報になる。ここで埋め込むハッシュ値は、ユーザが視認することのできる可視情報としても、視認することのできない不可視情報としても良く、紙に埋め込むことができる埋め込み画像であればどのような形態でも良い。ユーザにブロックチェーン登録済みである旨を明示的に示したい場合は可視情報として埋め込むのが良く、例として、2次元バーコードを用いれば良い。あるいは、問い合わせ情報を埋め込むことで文書の見栄えを阻害したくない場合は、問い合わせ情報を不可視な情報として埋め込むのが良い。例として、ユーザからは視認でないような極小ドットのトナーやインクをパターン化して印字することで、問い合わせ情報を不可視情報として文書に埋め込むことができる。これ以外の埋め込み画像であっても、印刷物に問い合わせ情報、即ち文書情報が記録されるのであれば、どのような形態の埋め込み画像であっても良い。理想的には、どのメーカーの画像形成装置であっても紙に記録された文書情報を取得できるような埋め込み画像の形態が望まれる。
【0102】
ステップS1807で、ステップS1801において設定された埋込数分、印刷文書へのハッシュ値設定が終わってない場合はステップS1806に進む。ステップS1807も、ステップS1806と同様にページ単位での判断処理となる。埋込数分のハッシュ値設定が完了した場合はステップS1808に進む。ステップS1808で、印刷文書が複数ページの場合、すべてのページに対して、ハッシュ値設定が完了したかを判定する。ハッシュ値設定を行っていないページがある場合、ステップS1806に進み、すべてのページのハッシュ値設定が完了した場合には、本フローチャートの印刷文書への埋込設定の処理が終了する。このように、埋込数の設定、埋込位置の設定を行った上で、印刷文書のページごとに、必要な埋込数分だけ問い合わせ情報を埋め込むことができる。
【0103】
図13Cのフローチャートは、アプリケーションA404が埋込数の設定処理を行う際に起動され、アプリケーションA404がCPU201において実行される。ステップS1901で、ブロックチェーン装置111から、ブロックチェーンサービスのサービス設定値を取得する。取得する設定項目は表2に示すブロックチェーン機能に関する設定項目と同じである。ステップS1902で、表2に示すデバイス設定におけるブロックチェーン機能に関する設定値を取得する。そして、ステップS1903で、本フローチャート実行時の状態に合わせたブロックチェーン機能に関する設定値を表3に示す管理テーブルから取得する。管理テーブルからの設定取得に関しては、後述の図13Dで説明する。ステップS1904で、ブロックチェーンサービスの設定、デバイス設定、実行時の状態に合わせた管理テーブルの設定のいずれかに設定値があった場合は、ステップS1905に進み、なかった場合はステップS1909に進む。
【0104】
ステップS1905で、同じ設定項目に対して、“*”などを除き、競合する設定値が設定されていたかを判定する。同じ設定項目に対して競合する設定があった場合はステップS1906に進み、なかった場合はステップS1907に進む。ステップS1906で、設定が競合する項目が、「埋込数(下限)」の設定であった場合は、各設定値の中から最大値のものを選択し、競合する項目が「埋込数(上限)」の設定であった場合は、各設定値の中から最小値のものを選択し決定する。設定が競合する項目が、「埋込位置のユーザ指定」の設定であった場合は、「不可」のものが1つでもあれば不可を選択し決定する。競合する項目が「埋込位置の隣接や偏り」の設定であった場合は、「不可」のものが1つでもあれば「不可」を選択し決定する。「不可」のものが1つものなく、「警告表示」のものが1つでもあれば「警告表示」を選択し決定する。なお、競合する項目が一つのみでその他の項目は競合しなかった場合は通常通り取得した設定値で決定することになる。
【0105】
ここでは、設定値に対する優先順位による選択を行っているが、選択基準はこれに限定しなくても良く、表3の状態夫々に優先度を設定し、優先度が高い設定を採用する方法が考えられる。例えば、“セキュリティポリシーの設定は最優先にする“を1番目の優先度にし、埋め込み数を強制的に複数にするセキュリティポリシーが設定されている場合、埋込数(下限)は”3“に設定される。また、ブロックチェーンサービスに設定されている埋込に関する設定を取得し、表3の条件と組み合わせて使用する方法も考えられる。
【0106】
ステップS1907は、設定があった設定項目を設定値として選択し決定する。ステップS1908で、設定の中に、埋込数(下限)もしくは埋込数(上限)の設定があり、かつ、埋込数(下限)が埋込数(上限)を超えているかを判定する。超えていた場合はステップS1911に進み、超えていない場合はステップS1909に進む。
【0107】
ステップS1909で、印刷文書に対して埋め込むことのできる最大数である埋め込み可能数の算出を行う。算出処理については後述の図13Eで説明する。ステップS1910で、埋込数(下限)の設定があり、その設定値が、ステップS1909で算出した埋込可能数を超えているかを判定する。埋込数(下限)の設定がなかった場合は1を設定して判定を行う。埋込数(下限)が埋込可能数を超えていた場合はステップS1911に進み、超えていない場合はステップS1912に進む。ステップS1911で、埋込数エラー画面1100を表示し、本フローチャートの実行を終了する。ステップS1912で、埋込数(上限)の設定値が埋込可能数を超えているかを判定する。埋込数(上限)の設定がない場合や、埋込数(上限)の設定値が埋込可能数を超えていた場合は、ステップS1913に進み、超えていない場合はステップS1914に進む。ステップS1913で、埋込数(上限)の設定値を、ステップS1909で算出した埋込可能数に上書きする。ステップS1909~S1913までの処理は印刷文書のページ単位で行う。
【0108】
ステップS1914で、埋込可能数を算出していないページがあればステップS1909に進み、全ページ分の埋込可能数の算出が完了していれば、ステップS1915に進む。ステップS1915で、BC機能設定画面1010を表示する。ここで、入力可能範囲1012の値域は埋込数(下限)と埋込数(上限)として表示する。埋込数設定エリア1011にユーザから埋込数の設定指示があり、OKボタン1015が押下された場合は、ステップS1916に進む。埋込数設定エリア1011に設定指示がない状態、もしくは、デフォルトの表示から変更がない状態で、OKボタン1015が押下された場合はステップS1917に進む。ステップS1916で、ユーザから指示された埋込数の設定を埋込数として決定する。ステップS1917では、BC機能設定画面1010の、埋込数設定エリア1011や入力可能範囲1012に表示したデフォルト値を埋込数として決定する。ステップS1916、ステップS1917で埋込数の設定が完了したら、本フローチャートは終了する。
【0109】
このように、ブロックチェーンサービス、デバイス設定、印刷処理の状態に応じた管理テーブルから設定を取得することで、埋込数や埋込位置に関する設定を取得し、埋込数を決定することができる。そして、設定された埋込数(下限)から埋込数(上限)に範囲を制限した上で、ユーザからの埋込数の設定指示も受け付けることができる。さらに埋込数(下限)で設定された数だけ埋め込みを行い場合など、設定条件を満たせない場合に埋込数エラー画面を表示し、ユーザにエラー通知することができる。
【0110】
なお、ユーザの設定により埋込数と埋込位置を決定するステップS1915を設けたが、例えば、S1904で確認した設定の情報の何れか1つ、またはS1913までのステップにより決定した埋込数と埋込位置をそのまま設定値として用いても良い。上述した通り、埋込数には上限と下限があるが、その場合はデバイス設定もしくはブロックチェーンサービスの指示により何れか1つを採用すれば良い。ここでポイントなのは、ユーザ設定を必要とせずに埋め込みに関する設定は行えるということである。
【0111】
図13Dのフローチャートは、アプリケーションA404が埋込数決定時の実行状態に合わせた設定をブロックチェーン設定421から取得する際に起動される。ブロックチェーン設定421から取得する設定は表3に示した管理テーブルである。アプリケーションA404はCPU201において実行される。ステップS2001は、セキュリティポリシーの設定が1つ以上あるかを判定する。あった場合はステップS2002に進み、なかった場合はステップS2003に進む。ステップS2002で、セキュリティポリシーに応じたブロックチェーン機能の設定値を取得する。例えば、セキュリティポリシーとして「埋込数を強制的に複数にする」が有効になっていた場合は、表3に示す管理テーブルから、埋込数(下限)として“3”、他の設定項目値として“*”を設定値として取得する。「埋込位置のセキュリティを強化する」が有効になっていた場合は、埋込位置の固定設定として“固定位置を許可しない”、埋込位置のユーザ指定設定として“不可”、他の設定項目として“*”といった設定値を取得する。設定を取得したらステップS2003に進む。
【0112】
ステップS2003で、ステップS1503においてログインしたユーザにロールがあるかを判定する。ロールがあった場合はステップS2004に進み、なかった場合はステップS2005に進む。ステップS2004で、ユーザロールに応じたブロックチェーン機能の設定値を取得する。設定を取得したらステップS2005に進む。
【0113】
ステップS2005で、S1503においてログインしたユーザに所属部署の設定があるかを判定する。所属部署の設定があった場合はステップS2006に進み、なかった場合はステップS2007に進む。ステップS2006で、ユーザの所属部署に応じたブロックチェーン機能の設定値を取得する。設定を取得したらステップS2007に進む。ステップS2007で、印刷する文書に文書レベルに関する設定があるかを判定する。文書レベルの設定があった場合はステップS2008に進み、なかった場合はステップS2009に進む。ステップS2008で、文書レベルに応じたブロックチェーン機能の設定値を取得する。設定を取得したらステップS2009に進む。
【0114】
ステップS2009で、特定のUCやWF実行による印刷処理か否かを判定する。特定のUCやWF実行による印刷処理であった場合はステップS2010に進む。ステップS2010で、特定のUCやWF実行による印刷処理に応じたブロックチェーン機能の設定値を取得する。表3に示すような管理テーブルの各状態にあった設定項目を取得したら、本フローチャートを終了する。このように管理テーブルから状態に応じた設定値を取得することで、印刷処理を実行した時の状態に応じた設定値を取得することができるようになる。
【0115】
図13Eのフローチャートは、アプリケーションA404が埋込可能数を算出する際に起動され、アプリケーションA404がCPU201において実行される。ステップS2101で、問い合わせ情報として文書ハッシュ値を1箇所埋め込む場合に必要な印字領域を算出する。算出した後、ステップS2102に進む。
【0116】
ステップS2102で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、固定位置の設定があったかを判定する。設定があった場合はステップS2103に進み、なかった場合はステップS2106に進む。ステップS2103で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、埋込位置の条件として空き領域のみの設定があるかを判定する。設定があった場合はステップS2104に進み、なかった場合はステップS2105に進む。ステップS2104では、固定位置で設定された埋込位置の数を埋込可能数として設定する。ステップS2105では、固定位置で設定された埋込位置のうち、ステップS2101において算出された必要印字領域の分だけ、空き領域がある位置の数を埋込可能数として設定する。
【0117】
ステップS2106で、文書の印刷用データをエリアごとに区分けして分割する。分割の方法としては、例えばステップS2101で算出した印字領域のサイズとして分割する方法や、あるいは、あらかじめ印刷時の用紙サイズごとにあらかじめ分割する大きさを定義しておき、その定義に従って分割する方法を取れば良い。ステップS2107で、埋込位置に影響するような印刷設定があるかどうかを判定する。例えばステープル設定や穴あけ設定、綴じ代エリアの設定、など印刷後の仕上げ処理により問い合わせ情報の破損に起因するような印刷設定が設定されているかを判定する。設定がある場合ステップS2108に進み、ない場合ステップS2109に進む。
【0118】
ステップS2108で、印刷設定が影響するエリアを、ステップS2106において分割したエリアから除外する。ステップS2109で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、埋込位置の条件として空き領域のみの設定があるかを判定する。設定があった場合はステップS2110に進み、なかった場合はステップS2111に進む。ステップS2110では、ステップS2106、ステップS2108で算出したエリアのうち、ステップS2101において算出された必要印字領域の分だけ、空き領域があるエリアの数を埋込可能数として設定する。ステップS2111では、ステップS2106、ステップS2108において算出したエリアの数を、埋込可能数として設定する。埋込可能数の設定が完了すると、本フローチャートを終了する。
【0119】
このように、埋め込み画像量や埋込方法によって問い合わせ情報を1箇所埋め込むのに必要な印字領域は変動するため、ステップS2101にて必要な印字領域を算出する。そして、埋込位置に関する設定や印刷設定、また印刷する文書の空き領域に応じて、埋込可能数を算出することができる。
【0120】
図13Fのフローチャートは、アプリケーションA404が埋込位置を設定する際に起動され、アプリケーションA404がCPU201において実行される。ステップS2201で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、埋込位置の条件として空き領域のみの設定があるかを判定する。設定があった場合はステップS2209に進み、なかった場合はステップS2202に進む。
【0121】
ステップS2202で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、固定位置の設定があったかを判定する。設定があった場合はステップS2211に進み、なかった場合はステップS2203に進む。
【0122】
ステップS2203で、文書の印刷用データをエリアごとに区分けして分割する。ステップS2204で、埋込位置に影響するような印刷設定があるかどうかを判定する。印刷位置に影響するような設定があるか否かの判断は、ステップS2107と同様に行う。設定がある場合ステップS2205に進み、ない場合ステップS2206に進む。ステップS2205で、ステップS2203において分割したエリアのうち、印刷設定が影響するエリアを除外する。そしてステップS2206で、ステップS2203、ステップS2205において算出したエリアから互いに隣接しないエリアを選択した場合に、ステップS1801において設定した埋込数がその互いに隣接しないエリア数を超えているかを判定する。超えていた場合ステップS2207に進み、超えていない場合ステップS2208に進む。
【0123】
ステップS2207では、ステップS1801で設定した埋込数の数だけ、ステップS2203、ステップS2205で算出したエリアから埋込位置を決定する。埋込位置の決定には、埋め込む位置の座標を記憶する方法や、エリアから選択する場合はエリア識別番号などで記憶しても良い。ステップS2207で決定する埋込位置には隣接したものが含まれる状態となる。ステップS2208では、ステップS1801で設定した埋込数の数だけ、ステップS2203、ステップS2205で算出したエリアから、互いに隣接しないエリアを埋込位置に決定する。
【0124】
ステップS2209で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、固定位置の設定があったかを判定する。設定があった場合はステップS2110に進み、なかった場合はステップS2213に進む。ステップS2210で、設定された固定位置に空き領域があるか否かを判定する。空き領域が十分にあった場合ステップS2211に進み、空き領域がない場合ステップS2212に進む。ステップS2211で、設定されている固定位置で埋込位置を決定する。ステップS2212で、埋込位置エラー画面1110を表示する。
【0125】
ステップS2213で、文書の印刷用データをエリアごとに区分けして分割する。ステップS2214で、埋込位置に影響するような印刷設定があるかどうかを判定する。印刷位置に影響するような設定があるか否かの判断は、ステップS2107と同様に行う。設定がある場合ステップS2215に進み、ない場合ステップS2216に進む。ステップS2215で、ステップS2213において分割したエリアのうち、印刷設定が影響するエリアを除外する。そしてステップS2216で、ステップS2213、ステップS2215において算出したエリアのうち、空き領域が十分にあるエリアを選択し、隣接し合う空き領域エリアを1つのグループにまとめる。ここで隣接しない空き領域エリアがあった場合はそのエリア同士は別々のグループとなる。
【0126】
ステップS2217で、ステップS1801において設定した埋込数が、空き領域グループ数を超えているかを判定する。超えていた場合はステップS2219に進み、超えていない場合はステップS2218に進む。ステップS2218で、ステップS2216で算出したグループの中から、各グループで多くて1箇所になるように埋込位置を決定する。ステップS2219で、ステップS1801において設定した埋込数が互いに隣接しない空き領域エリア数を超えているかを判定する。互いに隣接しない空き領域エリア数の算出は、ステップS2213、ステップS2215において算出したエリアから互いに隣接しない空き領域が十分にあるエリアを選択し、その選択した数とする。超えていた場合ステップS2220に進み、超えていない場合ステップS2221に進む。ステップS2220では、ステップS1801で設定した埋込数の数だけ、ステップS2213、ステップS2215で算出したエリアのうち空き領域が十分にあるエリアから、埋込位置を決定する。ステップS2220で決定する埋込位置には隣接したものが含まれる状態となる。
【0127】
ステップS2221では、ステップS1801で設定した埋込数の数だけ、ステップS2213、ステップS2215で算出したエリアのうち空き領域が十分にあるエリアから、互いに隣接しないエリアを埋込位置に決定する。埋込位置が決定した後、もしくは、ステップS2212で埋込位置エラー画面1110を表示した後、ステップS2230に進む。
【0128】
ステップS2230で、埋込位置の設定エラーが発生したかを判定する。ステップS2212の処理を行った場合、埋込位置の設定エラーが発生していると判定し、本フローチャートを終了する。もしくは、設定した埋込位置に偏りがあり、かつ、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、埋込位置の隣接や偏りを許可しない設定になっていた場合も設定エラーが発生したと判断する。その際は埋込位置エラー画面1110を表示し、本フローチャートを終了する。
【0129】
ここで、設定した埋込位置の座標やエリアが、端に偏っている場合や、あるいは、近い横軸座標や近い縦軸座標に偏っている場合、特定の座標に近い位置に偏っている場合に、設定した埋込位置に偏りがあると判断する。設定エラーが発生していなかった場合、ステップS2231に処理を進める。ステップS2231で、設定した埋込位置に隣接や偏りがあり、かつ、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、埋込位置の隣接や偏りがある場合に警告表示する設定になっているかを判断する。設定した埋込位置に隣接や偏りがあるか否かの判断は、ステップS2230と同様である。設定した埋込位置に偏りがあり、かつ、警告表示する設定であった場合はステップS2232に進み、それ以外の場合はステップS2233に進む。ステップS2232で、埋込位置警告画面1120を表示しユーザに隣接や偏りがあった旨を警告する。
【0130】
ステップS2233で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、固定位置設定による制限や、埋込位置のユーザ指定が可能かを判定する。固定位置をユーザが変更可能な状態であった場合はステップS2234に進み、ユーザ指定できない設定になっていた場合は本フローチャートを終了する。ステップS2234で、ステップS1901、ステップS1902、ステップS1903で取得した設定値において、埋込位置の条件として空き領域のみの設定があるかを判定する。設定があった場合はステップS2236に進み、なかった場合はステップS2235に進む。ステップS2235で、埋込位置設定ボタン1016を表示し、埋込位置設定ボタン1016がユーザにより押下された場合は、ユーザが指定可能な位置を制限せずに埋込位置の設定画面1020を表示する。ここで、埋込位置に影響するような印刷設定がある場合はその位置を埋込位置設定エリア1021に表示しても良い。
【0131】
ステップS2236で、ステップS2213、ステップS2215で算出したエリアのうち、まだ選択していない空き領域が十分にあるエリアがあるかを判定する。選択していない空き領域が十分にあるエリアがある場合はステップS2237に進み、なかった場合は本フローチャートを終了する。ステップS2237で、埋込位置設定ボタン1016を表示し、埋込位置設定ボタン1016がユーザにより押下された場合は、まだ選択していない空き領域が十分にあるエリアを、ユーザが指定可能な位置として制限した状態で、埋込位置の設定画面1020を表示する。そしてステップS2238に進む。ステップS2238で、ユーザからの埋込位置の設定指示があったかを判定する。設定指示があった場合はステップS2239に進み、なかった場合は本フローチャートを終了する。ステップS2239で、埋込位置をユーザが設定指示した位置に変更して決定する。埋込位置の設定が完了すると、本フローチャートを終了する。
【0132】
このようにブロックチェーンサービス、デバイス設定、印刷処理の状態に応じた管理テーブルの設定に応じた埋込位置を設定できるようになる。さらに埋込位置に影響するような印刷設定があった場合は、影響を受けないような位置に埋込位置を決定することができる。また、隣接しないエリアを埋込位置に決定することで、偏った位置を避けるように埋込位置を設定することができる。また、もし偏った位置にしか埋込位置を設定できない場合でもユーザに警告画面を表示し、警告通知することができる。同様に、埋込位置を設定できない状況になった場合でも、エラー画面を表示し、ユーザにエラー通知をすることができる。ユーザが埋込位置を設定できる状況であった場合は、ユーザに埋込位置の設定画面1020を表示し、ユーザからの設定指示を受け付けることもできる。
【0133】
図14は、ユーザが指定した文書ファイル、もしくは印刷された紙文書を画像形成装置101から検証処理を行うフローチャートである。本フローチャートは、図7に示した画像形成装置101の認証画面700でログインボタン703もしくは、ゲストログインボタン711が押下されたことにより起動され、まずユーザ認証処理部402がCPU201において実行される。本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。
【0134】
ステップS1601では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1602では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したとみなし、ステップS1603へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1614へ進む。
【0135】
ステップS1603では、ログイン処理として現在ログインしているユーザとしてステップS1601で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって文書検証ボタンが押下され、それ以降の処理はアプリケーションA404がCPU201において実行される。処理を引き継いだアプリケーションA404は検証画面1200を操作部209に表示する。
【0136】
ステップS1604では、アプリケーションA404は図12に示した検証画面1200を操作部I/F205を経由して操作部209に表示し、検証するボタン1203が押下されるまで待ち、押下された場合はステップS1605に進む。ステップS1605では、文書選択設定1201でユーザに選択された対象文書が紙データかどうかを判定する。紙データの場合にはステップS1606へ進み、電子データである場合にはステップS1615へ進む。
【0137】
ステップS1606では、画像形成装置101にセットされた紙文書をスキャンする。スキャンは、スキャナI/F207を通じてスキャナ211で紙文書を読み込み、画像データを生成する。この画像データには、複数の埋め込み画像が埋め込まれた文書を基に印刷された印刷物をスキャンした場合、複数の埋め込み画像が含まれているので、画像形成装置101は複数の埋め込み画像を検出することになる。本フローチャートの以降の処理ではコードの例としてバーコードを挙げる。
【0138】
ステップS1607では、スキャナ211によって画像化されたデータを電子化し、電子データとして一時的にHDD204に保存する。この一時的なデータについては、本フローチャート終了時に削除する。ステップS1608では、ステップS1607でHDD204に保存した電子データからバーコードを読み込み、そのバーコードを解読して元の文書に埋め込まれたハッシュ値を取得する。このハッシュ値は、後のステップ1610で利用する文書ハッシュ値となる。また、このハッシュ値の取得は、前述の図13で説明した印刷フローチャートのステップS1806で埋め込んだ方法に合わせたハッシュ値を取得する処理を行う。ステップS1609では、ステップS1608のバーコード解読処理に成功したかどうかを判定する。バーコードを認識できない場合や、解読できない場合は、コードからのハッシュ取得に失敗したと判断し、ステップS1612へ進み、ハッシュ値取得に成功した場合はステップS1610に進む。
【0139】
ステップS1610ではブロックチェーン装置111に記録されているトランザクション情報を使用した文書検証処理を行う。この文書検証処理は後述の図15で説明する。その際には、処理種別として文書検証と、ステップS1608において取得した文書ハッシュ値と、クレデンシャル情報A408とを渡す。依頼した処理結果の応答を受け取ったら、ステップS1611で検証結果を判定する。検証が失敗した場合にはステップS1612に進み、成功した場合にはステップS1613に進む。
【0140】
ステップS1612では、S1608でまだ読み込んでいないバーコードがあるか否かを判定する。読み込んでいないバーコードがある場合はステップS1608へ進む、全てのバーコードを読み込み済み、もしくは、読み込み可能なバーコードがもうない場合はステップS1614へ進む。ステップS1615では、ユーザに選択されたHDD204内の電子データを特定し、その電子データのハッシュ値を算出する。このハッシュ値はこの後のステップS1616で利用する文書ハッシュ値となる。
【0141】
ステップS1616ではブロックチェーン装置111に記録されているトランザクション情報を使用した文書検証処理を行う。この文書検証処理は後述の図15で説明する。その際には、処理種別として文書検証と、ステップS1615において取得した文書ハッシュ値と、クレデンシャル情報A408とを渡す。依頼した処理結果の応答を受け取ったら、ステップS1617で検証結果を判定する。検証が成功した場合にはステップS1613に進み、失敗した場合にはステップS1614に進む。
【0142】
ステップS1613では、検証が成功した等のメッセージを表示する標準ダイアログ(不図示)を表示する。ステップS1614では、検証が失敗したもしくは検証不可能である旨のメッセージを表示する標準ダイアログ(不図示)を表示する。ステップS1613、もしくはステップS1614でそれぞれのメッセージ表示後、ユーザがダイアログを閉じる指示を行ったら本フローチャートを終了する。
【0143】
このように、ステップS1608~ステップS1612を行うことで、埋め込み画像が紙文書に複数含まれる場合に、コードの読み込み/コード解析によるハッシュ取得/ハッシュ値検証を、繰り返し行うことができるようになる。そして、ステップS1611により、紙文書に含まれるコードが一つでも、ハッシュ値検証に成功した場合に、紙文書の検証処理に成功したと判断することができる。これにより、紙文書に読み取ることのできないコードや、ブロックチェーンサービスでは無効なコードが含まれていたとしても、紙文書に含まれる他のコードを読み込み、ブロックチェーンサービスに登録されているか検証を行うことができる。
【0144】
ここでは紙文書に含まれるコードごとに、ステップS1609~ステップS1612の処理を行う例を示しているが、複数のコードをまとめて読み込み、解析し、ハッシュ値を取得しても良い。また、ブロックチェーンサービスで無効なコードが紙文書に含まれていた場合、コードを読み込んで、解析し、取得するハッシュ値が複数種類となることもある。その場合は取得した複数のハッシュ値の検証を、個々もしくはまとめてブロックチェーンサービスで行うようにして、1つでも検証に成功した際にステップS1613の処理を行えば良い。
【0145】
図15は、画像形成装置101のブロックチェーンアプリケーション406でブロックチェーン装置111へのトランザクション処理を行うフローチャートである。本フローチャートは、図13から図14までのアプリケーションA404の処理中にブロックチェーンアプリケーション406として起動され、実行される。
【0146】
本フローチャート起動時には、アプリケーションA404から、ブロックチェーン装置111への処理種別と、処理種別ごとに必要な情報が渡される。処理種別ごとに必要な情報は、トランザクション登録時にはトランザクション601、文書検証時には検証が必要な文書ハッシュ値602である。
【0147】
ステップS1701では、ブロックチェーンアプリケーション406はクレデンシャル情報C407とクレデンシャル情報A408をブロックチェーン装置111に渡して、正しいクレデンシャル情報であることを確認する。ここで、クレデンシャル情報C407はブロックチェーンアプリケーション406の起動時にクレデンシャル情報管理部410から取得したものを、クレデンシャル情報A408はアプリケーションA404から取得したものを用いる。
【0148】
ステップS1702では、ステップS1701で確認したクレデンシャル情報が正しいものであるかどうかを判定する。正しいか否かの判定は、クレデンシャル情報がデジタル証明書の場合は証明書の検証を行って検証が成功した場合に、正しいクレデンシャル情報であると判断する。また、予め定められたデータ値の場合は値が一致する場合に、正しいクレデンシャル情報であると判断する。正しいクレデンシャルであった場合にはブロックチェーン装置111へのアクセスが可能な状況であるため、ステップS1703に進み、正しいクレデンシャルでなかった場合にはステップS1704に進む。ステップS1703では、ブロックチェーンアプリケーション406が受信した処理種別を判定する。トランザクション登録であればステップS1705へ、文書検証であればステップS1713へ進む。
【0149】
ステップS1704では、本処理フローチャートにおいてブロックチェーン装置111へのアクセス権限を満たしていない旨のエラー情報を生成する。ステップS1705では、処理起動時に受け取ったトランザクション情報がそろっているかどうかを確認する。また、文書ハッシュ値602についてはブロックチェーン装置111内に登録されていない事を、元文書ハッシュ値607についてはブロックチェーン装置111内に登録されている事を、ブロックチェーン装置111を検索することで確認する。情報がそろっていない、もしくはハッシュ値が正しい状態ではない場合には、トランザクション情報は不正なものとなる。このチェック結果をステップS1706で判定し、トランザクション情報が正当であればステップS1707へ、不正な情報であればステップS1709のエラー処理へ進む。
【0150】
ステップS1707では、ブロックチェーン装置111に対してチェック済みのトランザクション601の登録を依頼する。本ステップではブロックチェーン装置111から登録処理の結果として成功/失敗を受け取る。ステップS1708では、そのブロックチェーン装置111からの処理結果を判定し、失敗の場合にはステップS1709のエラー処理へ進み、成功であれば結果通知S1719へ進む。ステップS1709では、本処理フローチャートにおいてトランザクション登録ができない旨のエラー情報を生成する。
【0151】
ステップS1713では、処理起動時に受け取ったハッシュ値を文書ハッシュ値として保持するトランザクションをブロックチェーン装置111から検索し取得する。検索結果はステップS1714で判定し、トランザクションデータを取得できなかた場合には、正当なハッシュ値としてステップS1715へ進み、取得できなかった場合には、不正なハッシュ値としてステップS1718のエラー処理へ進む。
【0152】
ステップS1715では、ステップS1713で取得したトランザクションに元文書ハッシュ値を持っているかどうかを判定する。元文書ハッシュ値を持っていない場合には、ステップS1707で確認したハッシュ値が一番先頭の文書であるため検証処理は終了となり、ステップS1719へ進む。元文書ハッシュ値を持っている場合、その元文書の存在を確認する必要があるため、ステップS1716へ進む。
【0153】
ステップS1716では、処理種別として文書検証を、処理に必要な情報として元文書ハッシュ値を指定し、本図15のフローチャートを再帰実行する。この実行結果はステップS1717で判定し、元文書まで含めた検証が成功した場合には、ステップS1719へ進む。検証が失敗した場合には、ステップS1718のエラー処理へ進む。ステップS1718では、本処理フローチャートにおいて文書検証に失敗した旨のエラー情報を生成する。
【0154】
ステップS1719では、それぞれの処理種別ごとの処理成功時の情報として、トランザクション登録の場合には登録完了ステータスを、文書検証の場合には検証成功ステータスを呼び出し元となる処理に通知する。トランザクション取得の場合には取得したトランザクション情報を、またエラー処理が行われている場合にはエラー情報を呼び出し元となる処理に通知する。
【0155】
以上、本実施例により、画像形成装置101が適正にブロックチェーンサービスを利用することができ、さらに印刷物に複数の問い合わせ情報を埋め込むことができるようになる。
【0156】
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0157】
400 ローカルUI制御部
401 リモートUI制御部
402 ユーザ認証処理部
403 ユーザ情報
404 アプリケーションA
405 アプリケーションB
406 ブロックチェーンアプリケーション
407 クレデンシャル情報C
408 クレデンシャル情報A
409 クレデンシャル情報B
410 クレデンシャル情報管理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11
図12
図13A
図13B
図13C
図13D
図13E
図13F
図14
図15