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

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

▶ 株式会社リコーの特許一覧

特許7073945情報処理装置、情報処理システム、情報処理方法、及びプログラム
<>
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図1
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図2
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図3
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図4
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図5
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図6
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図7
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図8
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図9
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図10
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図11
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図12
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図13
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図14
  • 特許-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-16
(45)【発行日】2022-05-24
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06F 3/12 20060101AFI20220517BHJP
【FI】
G06F3/12 344
G06F3/12 304
【請求項の数】 9
(21)【出願番号】P 2018123116
(22)【出願日】2018-06-28
(65)【公開番号】P2020004092
(43)【公開日】2020-01-09
【審査請求日】2021-02-08
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】峰岸 洋一
【審査官】松浦 かおり
(56)【参考文献】
【文献】特開2000-187570(JP,A)
【文献】特開2013-037388(JP,A)
【文献】特開2002-041257(JP,A)
【文献】特開2003-044472(JP,A)
【文献】特開2016-157327(JP,A)
【文献】特開2007-148638(JP,A)
【文献】特開2013-237190(JP,A)
【文献】特開2016-043553(JP,A)
【文献】特開2004-038296(JP,A)
【文献】特開2011-108171(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/09- 3/12
B41J 29/00-29/70
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
ユーザが利用する情報処理装置であって、
前記情報処理装置を利用しているユーザに関連付けて設定されている、前記情報処理装置によって表示装置に表示される言語に関する設定情報を取得する設定情報取得手段と、
前記情報処理装置のオペレーティングシステムに、前記設定情報取得手段による処理を前記ユーザの権限で実行させる権限偽装手段と、
前記言語とコードページとの対応関係を記憶した記憶手段から前記対応関係を取得する対応関係取得手段と、
取得した前記設定情報と前記対応関係とに基づいて、変換後の文字コードを決定する決定手段と、
外部装置に出力するデータの文字コードを、前記決定手段が決定した変換後の文字コードに変換する変換手段と、
を有する、情報処理装置。
【請求項2】
前記設定情報は、前記情報処理装置のオペレーティングシステムにおいて前記ユーザに関連付けて設定されている、前記情報処理装置が表示装置に表示させる言語である表示言語の情報、又は前記情報処理装置が表示装置に表示させる日付の形式の情報である、請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置のオペレーティングシステムにおけるシステムロケールの設定が所定の文字コードであるかを判定する判定手段をさらに有し、
前記判定手段により前記システムロケールの設定が所定の文字コードに設定されていると判定された場合に、前記変換手段は、前記所定の文字コードを、前記決定手段が決定した変換後の文字コードに変換する、請求項1又は2に記載の情報処理装置。
【請求項4】
前記所定の文字コードはUTF-8を含む、請求項3に記載の情報処理装置。
【請求項5】
前記記憶手段は、前記コードページの既定値をさらに記憶し、
前記決定手段は、取得した前記設定情報と前記対応関係とに基づいて前記変換後の文字コードを決定できない場合、前記変換後の文字コードを前記コードページの既定値に対応する文字コードに決定する、請求項1乃至のいずれか一項に記載の情報処理装置。
【請求項6】
前記外部装置は、複数の文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を出力する画像形成装置である、請求項1乃至のいずれか一項に記載の情報処理装置。
【請求項7】
ユーザが利用する情報処理装置と、前記情報処理装置から出力されるデータに基づいて文字を出力する画像形成装置とを含む情報処理システムであって、
前記情報処理装置は、
前記情報処理装置を利用しているユーザに関連付けて設定されている、前記情報処理装置によって表示装置に表示される言語に関する設定情報を取得する設定情報取得手段と、
前記情報処理装置のオペレーティングシステムに、前記設定情報取得手段による処理を前記ユーザの権限で実行させる権限偽装手段と、
前記言語とコードページとの対応関係を記憶した記憶手段から前記対応関係を取得する対応関係取得手段と、
取得した前記設定情報と前記対応関係とに基づいて、変換後の文字コードを決定する決定手段と、
外部装置に出力するデータの文字コードを、前記決定手段が決定した変換後の文字コードに変換する変換手段と、
を有する、情報処理システム。
【請求項8】
ユーザが利用する情報処理装置が、
前記情報処理装置を利用しているユーザに関連付けて設定されている、前記情報処理装置によって表示装置に表示される言語に関する設定情報を取得する処理と、
前記言語とコードページとの対応関係を記憶した記憶手段から前記対応関係を取得する処理と、
取得した前記設定情報と前記対応関係とに基づいて、変換後の文字コードを決定する処理と、
外部装置に出力するデータの文字コードを、前記決定するステップで決定した変換後の文字コードに変換する処理と、
を実行し、
前記情報処理装置のオペレーティングシステムに、前記設定情報を取得する処理を前記ユーザの権限で実行させる、情報処理方法。
【請求項9】
請求項8に記載の情報処理方法を情報処理装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
印刷を実行する画像形成装置と、印刷を制御するプリンタドライバを実行する情報処理装置とを含む情報処理システムにおいて、画像形成装置は、プリンタドライバから出力された文字コードの設定に基づいて、文字の取り扱いを変更する。
【0003】
また、ホストコンピュータが、プリンタが有するコードページにおいて省略されたフォントデータを示す設定データを記憶し、この設定データに基づいて変換後の文字コードをプリンタが利用できるか否かを判定する技術が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示された技術により、情報処理装置(ホストコンピュータ)側のプリンタドライバが、画像形成装置(プリンタ)側で対応していない文字コードを送信することによる文字化けを防止することができる。
【0005】
しかし、特許文献1に開示された技術では、情報処理装置側のプリンタドライバが、画像形成装置が扱える文字コードを知っていることが前提となっている。従って、この方法では、情報処理装置側のプリンタドライバが、出力先の画像形成装置を特定できずに画像形成装置が扱える文字コードが判らない場合には、適切な文字コードを選択することができずに、画像形成装置側で文字化けが発生する場合がある。
【0006】
本発明の実施の形態は、上記の問題点に鑑みてなされたものであって、情報処理装置が、出力先の画像形成装置を特定できずに画像形成装置が扱える文字コードが判らない場合であっても、画像形成装置側で文字化けが発生することを低減させる。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、ユーザが利用する情報処理装置であって、前記情報処理装置を利用しているユーザに関連付けて設定されている、前記情報処理装置によって表示装置に表示される言語に関する設定情報を取得する設定情報取得手段と、前記情報処理装置のオペレーティングシステムに、前記設定情報取得手段による処理を前記ユーザの権限で実行させる権限偽装手段と、前記言語とコードページとの対応関係を記憶した記憶手段から前記対応関係を取得する対応関係取得手段と、取得した前記設定情報と前記対応関係とに基づいて、変換後の文字コードを決定する決定手段と、外部装置に出力するデータの文字コードを、前記決定手段が決定した変換後の文字コードに変換する変換手段と、を有する。
【発明の効果】
【0008】
本発明の一実施形態によれば、情報処理装置が、出力先の画像形成装置を特定できずに画像形成装置が扱える文字コードが判らない場合であっても、画像形成装置側で文字化けが発生することを低減させることができる。
【図面の簡単な説明】
【0009】
図1】一実施形態に係る情報処理システムのシステム構成の例を示す図である。
図2】一実施形態に係る情報処理装置のハードウェア構成の例を示す図である。
図3】一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
図4】第1の実施形態に係る情報処理装置の機能構成の例を示す図である。
図5】第1の実施形態に係る変換テーブルの一例のイメージを示す図である。
図6】第1の実施形態に係る形式に関する設定情報について説明するための図である。
図7】第1実施形態に係る情報処理装置の処理の例を示すシーケンス図(1)である。
図8】第1実施形態に係る情報処理装置の処理の例を示すシーケンス図(2)である。
図9】第2の実施形態に係る情報処理装置の機能構成の例を示す図である。
図10】第2の実施形態に係る設定情報の取得処理の例を示すシーケンス図である。
図11】第3の実施形態に係る情報処理装置の機能構成の例を示す図である。
図12】第3の実施形態に係る描画部の処理の例を示すフローチャートである。
図13】第3の実施形態に係るUTF-8に設定されていない場合の処理の例を示すシーケンス図である。
図14】一実施形態に係る画像形成装置の表示画面の一例を示す図である。
図15】一実施形態に係るシステムロケールの設定画面の一例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本発明の実施の形態について、添付の図面を参照して説明する。
【0011】
<システム構成>
図1は、一実施形態に係る情報処理システムのシステム構成の例を示す図である。図1(a)の例では、情報処理システム100は、ユーザが利用する情報処理装置101と、情報処理装置101から出力される出力データに基づいて文字を出力(例えば、印刷、表示等)する画像形成装置102とが、通信路103を介して通信可能に接続されている。
【0012】
ここで、通信路103は、例えば、USB(Universal Serial Bus)等の有線ケーブルであっても良いし、近距離無線通信や無線LAN(Local Area Network)等の無線通信であっても良い。
【0013】
情報処理装置101は、ユーザが利用するパーソナルコンピュータ等のコンピュータであり、画像形成装置102による印刷を制御するプログラムであるプリンタドライバを実行している。
【0014】
画像形成装置102は、例えば、スキャン機能、コピー機能、印刷機能、ファクシミリ機能等を一つの筐体に搭載したMFP(Multifunction Peripheral/Printer/Product)や、プリンタ、ファクシミリ等の画像形成機能を有する電子機器である。
【0015】
画像形成装置102は、複数の文字コードセットに対応するフォントデータを記憶部に記憶しており、情報処理装置101のプリンタドライバから出力される文字コードの設定に応じて、記憶部に記憶したフォントデータを使用して文字の印刷、表示等を行う。
【0016】
画像形成装置102が、情報処理装置101からの制御に応じて、操作パネル等に表示させる表示画面の一例を図14に示す。図14の例では、表示画面1400には、情報処理装置101から出力されるユーザ名1401と文書名1402とを含むジョブ履歴が表示されている。
【0017】
例えば、このような表示画面1400において、画像形成装置102が、情報処理装置101のプリンタドライバから出力される文字コードに対応していない場合、ユーザ名1401、文書名1402等の文字が、文字化けしてしまう場合がある。
【0018】
例えば、図15に示すような、OS(Operating System)のシステムロケールの設定画面1500において、「ワールドワイド言語サポートでUnicode UTF-8を使用」のチェックボックス1501が選択されると、OSからの文字情報が全てUTF-8になる。従って、例えば、画像形成装置102がUTF-8の文字コードに対応していない場合、文字化けが発生してしまう。
【0019】
なお、このような問題は、ジョブ履歴の表示に限られず、例えば、画像形成装置102の機能を用いたヘッダ、フッタでの文字送信、ログ情報の送信、印刷データの印刷等でも発生し得る。
【0020】
特許文献1に開示された技術では、ホストコンピュータが、プリンタが有するコードページにおいて省略されたフォントデータを示す設定データを予め記憶しておき、この設定データに基づいて変換後の文字コードをプリンタが利用できるか否かを判定していた。また、ホストコンピュータは、変換後の文字コードをプリンタが利用できないと判定した場合、別の文字コードに変換することにより、プリンタにおける文字化けを防止していた。
【0021】
しかし、この技術では、情報処理装置101側が、画像形成装置102側で扱える文字コードを知っていることが前提となっており、情報処理装置101が、画像形成装置102側で扱える文字コードが判らない場合には、適用することができないという問題がある。
【0022】
例えば、情報処理装置101に、複数の機種で利用可能なプリンタドライバがインストールされており、画像形成装置102との双方向通信が禁止されている場合には、情報処理装置101は、画像形成装置102が扱える文字コードを特定することは困難である。
【0023】
そこで、本実施形態に係るプリンタドライバは、画像形成装置102の情報が判らない(情報を取得できない)環境であっても、画像形成装置102で文字化けが発生することを低減することができるように、例えば、次のような構成を有している。
【0024】
例えば、本実施形態に係るプリンタドライバは、表示言語とコードページとの対応関係を記憶した変換テーブルを有しており、OSから取得したユーザの表示言語の設定と変換テーブルとを用いて、変換後の文字コードを決定する。
【0025】
この変換テーブルには、例えば、表示言語「日本語」に対応する識別子と、日本語の文字コード「Shift-JIS」に対応するコードページの識別子(以下、単に「コードページ」と呼ぶ)との対応関係を含む複数言語の対応関係が記憶されている。
【0026】
また、プリンタドライバは、OSから取得したユーザの表示言語の設定が「日本語」である場合、変換テーブルを用いて、表示言語「日本語」に対応するコードページを取得する。さらに、プリンタドライバは、取得したコードページを用いて、OSで利用されている文字コード(例えば、ユニコード、UTF-8等)を、表示言語「日本語」に対応する文字コード「Shift-JIS」に変換する。
【0027】
一般的に、情報処理装置101のユーザの表示言語が日本語である場合、ユーザが利用している画像形成装置102は、日本語に対応する文字コード「Shift-JIS」に対応していると考えられる。従って、本実施形態によれば、情報処理装置101が、出力先の画像形成装置102を特定できずに画像形成装置102が扱える文字コードが判らない場合であっても、画像形成装置102側で文字化けが発生することを低減させることができる。
【0028】
なお、「表示言語」は、情報処理装置101を利用しているユーザに関連付けて設定されている、情報処理装置101によって表示装置に表示される言語に関する設定情報の一例である。
【0029】
また、図1(a)に示す情報処理システム100のシステム構成は一例である。情報処理装置101は、図1(b)に示すように、1つ以上の画像形成装置102a、102b、・・・とネットワーク104を介して接続されているものであっても良い。
【0030】
<ハードウェア構成>
(情報処理装置のハードウェア構成)
図2は、一実施形態に係る情報処理装置のハードウェア構成の例を示す図である。情報処理装置101は、例えば、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、ストレージ装置204、ネットワークI/F(Interface)205、入力装置206、表示装置207、外部接続I/F208、及びバス209等を有する。
【0031】
CPU201は、ROM203やストレージ装置204等に格納されたプログラムやデータをRAM202上に読み出し、処理を実行することで、情報処理装置101の各機能を実現する演算装置である。RAM202は、CPU201のワークエリア等として用いられる揮発性のメモリである。ROM203は、電源を切ってもプログラムやデータを保持する不揮発性のメモリである。
【0032】
ストレージ装置204は、例えば、HDD(Hard Disk Drive)や、SSD(Solid State Drive)等の大容量の記憶デバイスであり、OS、アプリケーションプログラム(以下、アプリケーションと呼ぶ)、各種のデータ等を記憶する。ネットワークI/F205は、情報処理装置101をネットワーク104等に接続するための通信インタフェースである。
【0033】
入力装置206は、例えば、マウス等のポインティングデバイスや、キーボード等の入力デバイスであり、情報処理装置101に各操作信号を入力するために用いられる。表示装置207はディスプレイ等の表示デバイスであり、情報処理装置101による処理結果等を表示する。
【0034】
外部接続I/F208は、情報処理装置101に外部装置を接続するためのインタフェースである。外部装置には、例えば、画像形成装置102、記憶媒体等が含まれる。バス209は、上記の各構成要素に接続され、アドレス信号、データ信号、及び各種制御信号等を伝送する。
【0035】
(画像形成装置のハードウェア構成)
図3は、一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。画像形成装置102は、例えば、コントローラ310、操作パネル320、通信I/F330、プロッタ340、スキャナ350、及びファクスコントロールユニット(以下、FCUと呼ぶ)360等を有する。
【0036】
コントローラ310は、コンピュータの構成を有しており、例えば、CPU311、RAM312、ROM313、NVRAM(Non-Volatile RAM)314、及びHDD315等を含む。
【0037】
ROM313は、各種プログラムやデータを格納している不揮発性の記憶装置である。RAM312は、プログラムやデータを一時保持する揮発性の記憶装置である。NVRAM314は、例えば設定情報等を格納する書き込み可能な不揮発性の記憶装置である。HDD315は、各種プログラムやデータを格納している大容量の記憶装置である。
【0038】
CPU311は、ROM313、NVRAM314、HDD315等からプログラムやデータ、設定情報等をRAM312上に読み出し、処理を実行することで、画像形成装置102の全体を制御して、各機能を実現する演算装置である。
【0039】
操作パネル320は、ユーザからの入力を受付する入力部と、表示を行う表示部とを備えている。通信I/F330は、画像形成装置102をネットワーク104に接続するための通信インタフェースである。
【0040】
プロッタ340は、印刷データを印刷する印刷装置である。スキャナ350は、原稿等を読み取る読取装置である。FCU360は、ファクスデータの送受信等を行う。
【0041】
[第1の実施形態]
続いて、第1の実施形態に係る情報処理装置101、及び情報処理システム100の機能構成について説明する。
【0042】
<機能構成>
図4は、第1の実施形態に係る情報処理装置の機能構成の例を示す図である。なお、本実施形態では、画像形成装置102は、従来の画像形成装置102をそのまま利用可能なので、ここでは、画像形成装置102の機能構成の説明を省略する。
【0043】
(情報処理装置の機能構成)
情報処理装置101は、例えば、図2に示すCPU201でアプリケーション410、OS420、及びプリンタドライバ430等のプログラムを実行している。
【0044】
アプリケーション410は、例えば、文書作成、表計算、プレゼンテーション等を行うオフィスアプリケーションや、ウェブブラウザ、メーラ等の各種のアプリケーションプログラムである。アプリケーション410は、OS420、及びプリンタドライバ430を利用して、例えば、作成した文書ファイル等を画像形成装置102に印刷させることができる。
【0045】
OS420は、情報処理装置101を制御するオペレーティングシステムである。ここでは、OS420が、Windows(登録商標)OSであるものとして、以下の説明を行うが、本発明の範囲を限定するものではない。本発明は、WindowsOSと同様の特徴を有する他のOSにも適用することができる。
【0046】
プリンタドライバ430は、画像形成装置102による印刷を制御するプログラムである。情報処理装置101は、例えば、図2のCPU201でプリンタドライバ430を実行することにより、UI部431、描画部432等を実現している。
【0047】
UI部431は、印刷の設定を行うための印刷設定画面を表示し、ユーザによって設定された印刷設定情報を受け付ける。UI部431が受け付けた印刷設定情報は、例えば、OS420を介して、DEVMODE構造体やPrintTicket等を用いて、描画部432に伝えられる。
【0048】
描画部432は、アプリケーション410からOS420を介して送られてくる出力対象となるデータを、画像形成装置102で出力可能な出力データに変換する。描画部432は、例えば、描画制御部401、設定情報取得部402、対応関係取得部403、文字コード決定部404、文字コード変換部405、出力データ生成部406、及び送信部407等を含む。
【0049】
また、描画部432は、一例として、図5に示すような表示言語-コードページ変換テーブル(以下、単に「変換テーブル」と呼ぶ)408を有している。別の一例として、変換テーブル408は、描画部432の外部に記憶されていても良いし、プリンタドライバ430の外部に記憶されていても良い。例えば、プリンタドライバ430が、Version4プリンタドライバ(以下、「V4プリンタドライバ」と呼ぶ)である場合、変換テーブル408は、DriverPropertyBag等に記憶されていても良い。
【0050】
図5は、第1の実施形態に係る変換テーブルの一例のイメージを示す図である。変換テーブル408には、表示言語501と、コードページ502との対応関係が記憶されている。
【0051】
表示言語501には、例えば、WindowsOSのAPI(Application Programming Interface)であるGetUserDefaultUILanguage関数等によって取得される、ユーザの表示言語を示す言語ID(LANGID)が含まれる。
【0052】
例えば、図5に示すように、言語ID「0x411」は「日本語」を示し、言語ID「0x412」は「韓国語」を示す。なお、変換テーブル408の表示言語501には、言語IDのみが記憶されているものであっても良い。
【0053】
コードページ(Code Page Identifiers)は、文字コードに対応する識別子である。例えば、コードページ「932」は、文字コード「Shift-JIS」を示し、コードページ「949」は、文字コード「Unified Hangul Code」を示す。
【0054】
また、一般的に、画像形成装置102よりも情報処理装置101の方が多くの言語に対応している場合が多いので、図5に示す「中国語(簡体)」のように、複数の言語IDに対して、1つのコードページ502が割り当てられていても良い。
【0055】
好ましくは、変換テーブル408には、言語IDに対応するコードページがない場合に選択されるデフォルトのコードページ(コードページの既定値)504が記憶されている。
【0056】
ここで、図4に戻り、描画部432の機能構成の説明を続ける。
【0057】
描画制御部401は、アプリケーション410からOS420を介して送られてくる出力対象データや印刷設定情報を受付し、描画部432による処理の少なくとも一部を制御する。
【0058】
設定情報取得部(設定情報取得手段)402は、ユーザが利用している言語に関する設定情報を取得する。例えば、設定情報取得部402は、前述したGetUserDefaultUILanguage関数を利用して、ユーザの表示言語を示す言語IDを取得する。なお、ユーザの表示言語を示す言語IDは、ユーザが利用している表示言語に関する設定情報の一例である。
【0059】
別の一例として、WindowsOSのAPIであるGetUserDefaultLangID関数を用いて、ユーザの既定言語を示す言語IDを取得するものであっても良い。これにより、例えば、図6に示すような、OS420の地域の設定画面601における「形式」602で設定された言語の言語IDを取得することができる。なお、地域の設定画面601における「形式」602で設定された言語の言語IDは、情報処理装置101を利用しているユーザに関連付けて記憶されている、情報処理装置101が表示装置207に表示させる日付の形式の情報の一例である。
【0060】
なお、プリンタドライバ430がV4プリンタドライバである場合、描画部432は、第2の実施形態で説明する偽装処理を行った上で、ユーザが利用している言語に関する設定情報を取得する。
【0061】
第1の実施形態では、プリンタドライバ430が、WindowsOSにおけるVersion3プリンタドライバ(以下、V3プリンタドライバ)であるものとして、以下の説明を行う。
【0062】
対応関係取得部(対応関係取得手段)403は、例えば、図5に示すような変換テーブル408に記憶された表示言語501とコードページ502との対応関係を取得する。なお、変換テーブル408は、表示言語のコードページとの対応関係を記憶した記憶手段の一例である。
【0063】
文字コード決定部(決定手段)404は、設定情報取得部402が取得した言語ID(設定情報の一例)と、対応関係取得部403が取得した対応関係とに基づいて、後述する文字コード変換部405が変換する変換後の文字コードを決定する。
【0064】
例えば、設定情報取得部402が取得した言語IDが「0x411」(16進数の「411」)である場合、文字コード決定部404は、図5に示す変換テーブル408から、言語ID「0x411」に対応するコードページ「932」を取得する。前述したように、コードページ「932」は、文字コード「Shift-JIS」に対応しているので、文字コード決定部404は、変換後の文字コードを「Shift-JIS」に決定することができる。
【0065】
文字コード変換部(変換手段)405は、画像形成装置102に出力するデータの文字コードを、文字コード決定部404が決定した変換後の文字コードに変換する。例えば、文字コード変換部405は、WindowsOSのAPIであるWideCharToMultiBite関数に、文字コード決定部404が取得したコードページ「932」を指定して、文字コードを変換する。これにより、例えば、WindowsOSの標準の文字コード(例えば、UTF-16、UTF-8等)を、文字コード決定部404が決定した変換後の文字コード(例えば、「Shift-JIS」)に変換することができる。
【0066】
出力データ生成部406は、文字コード変換部405が変換した変換後の文字列を用いて、画像形成装置102が出力可能な出力データ(例えば、印刷データ、テキストデータ等)を生成する。
【0067】
送信部407は、出力データ生成部406が生成した出力データを、OS420が提供するスプーラ440を介して、画像形成装置102に送信する。なお、画像形成装置102に送信される出力データには、例えば、変換後の文字コードを指定する情報と、画像形成装置102が出力可能な印刷データや、テキストデータ等が含まれる。
【0068】
一方、出力データを受信した画像形成装置102は、送信部407から受信した出力データに含まれる変換後の文字コードに従って、変換後の文字コードで作成された印刷データを印刷する、或いは変換後の文字コードで作成されたテキストデータを表示する。
【0069】
<処理の流れ>
続いて、第1の実施形態に係る情報処理方法の処理の流れについて説明する。
【0070】
(情報処理装置の処理1)
図7は、第1の実施形態に係る情報処理装置の処理の例を示すシーケンス図である。
【0071】
ステップS701において、描画制御部401が、アプリケーション410から、OS420を介して送られてくる出力対象データを受け付けると、ステップS702以降の処理が実行される。このとき、OS420経由で受け付ける出力データの文字コードは、例えば、UTF-16(ユニコード)になっている。
【0072】
ステップS702において、描画制御部401は、出力対象データを受け付けると、設定情報取得部402に対して、ユーザが利用している言語に関する設定情報の取得を要求する。
【0073】
なお、ユーザが利用している言語に関する設定情報は、例えば、前述したGetUserDefaultUILanguage関数で取得するユーザの表示言語を表す言語IDである。或いは、ユーザが利用している言語に関する設定情報は、前述したGetUserDefaultLangID関数で取得するユーザの既定言語を示す言語IDであっても良い。
【0074】
ステップS703において、設定情報取得部402は、例えば、前述したGetUserDefaultUILanguage関数を用いて、ユーザの表示言語の設定情報(言語ID)を取得する。例えば、日本語環境で、GetUserDefaultUILanguage関数を実行すると、言語ID「0x411」が取得される。
【0075】
ステップS704において、設定情報取得部402は、ユーザの表示言語の設定情報(言語ID)を、描画制御部401に通知する。
【0076】
ステップS705において、描画制御部401は、出力対象データを、設定情報取得部402から通知されたユーザの表示言語の設定情報(言語ID)と共に、出力データ生成部406に通知する。
【0077】
ステップS706において、出力データ生成部406は、受付したユーザの表示言語の設定情報(言語ID)を文字コード決定部404に通知する。
【0078】
ステップS707において、文字コード決定部404は、対応関係取得部403に、例えば、図5に示すような変換テーブル408に記憶された、表示言語501とコードページ502との対応関係の取得を要求する。
【0079】
ステップS708において、対応関係取得部403は、例えば、図5に示すような変換テーブル408を読出する。
【0080】
ステップS709において、対応関係取得部403は、例えば、図5に示すような変換テーブル408に記憶された、言語IDとコードページ502との対応関係を文字コード決定部404に通知する。或いは、対応関係取得部403は、取得した変換テーブル408を、そのまま文字コード決定部404に通知するものであっても良い。
【0081】
ステップS710において、文字コード決定部404は、ステップS706で受付したユーザの表示言語の設定情報(例えば、言語ID「0x411」)と、図5に示すような、言語IDとコードページ502との対応関係に基づいて、変換後の文字コードを決定する。
【0082】
例えば、設定情報取得部402が取得した言語IDが「0x411」である場合、文字コード決定部404は、図5に示すような、言語IDとコードページ502との対応関係から、言語ID「0x411」に対応するコードページ「932」を取得する。また、前述したように、コードページ「932」は、文字コード「Shift-JIS」に対応しているので、文字コード決定部404は、変換後の文字コードを「Shift-JIS」に決定することができる。
【0083】
ステップS711において、文字コード決定部404は、決定した変換後の文字コード、又は変換後の文字コードに対応するコードページを、出力データ生成部406に通知する。なお、文字コードとコードページは対応しているので、文字コードからコードページに、或いはコードページから文字コードに、相互に変換することができる。
【0084】
ステップS712において、出力データ生成部406は、変換する文字列(出力対象データに含まれる文字列)と、変換後の文字コードに対応するコードページ(例えば、コードページ「932」)を、文字コード変換部405に通知する。
【0085】
ステップS713において、文字コード変換部405は、前述したWideCharToMultiBite関数と指定されたコードページを用いて、文字列の文字コード(例えば、ユニコード)を変換後の文字コード(例えば、Shift-JIS)に変換する。
【0086】
ステップS714において、文字コード変換部405は、文字コードを変換した変換後の文字列を出力データ生成部406に通知する。
【0087】
ステップS715において、出力データ生成部406は、文字コード変換部405が変換した変換後の文字列を用いて、画像形成装置102が出力可能な出力データ(例えば、印刷データ、テキストデータ等)を生成する。
【0088】
ステップS716において、出力データ生成部406は、生成した出力データを、変換後の文字コードと共に、送信部407に通知する。
【0089】
ステップS717において、送信部407は、出力データ生成部406から通知された出力データ、及び変換後の文字コードを、OS420が提供するスプーラ440を介して、画像形成装置102に送信する。
【0090】
(情報処理装置の処理2)
図7に示す処理は一例である。例えば、図7のステップS706~S711の処理は、描画制御部401の制御により実行されるものであっても良い。
【0091】
図7は、第1の実施形態に係る情報処理装置の処理の例を示すシーケンス図(2)である。なお、図8のステップS701~S704に示す処理は、図7のステップS701~S704の処理と同様なので、ここでは、説明を省略する。また、図8に示す各処理の基本的な処理内容は、図6に示す各処理の処理内容と同様なので、ここでは、同様の処理に対する詳細な説明は省略する。
【0092】
ステップS801において、描画制御部401は、文字コード決定部404に、変換後の文字コードの決定を要求する決定要求を通知する。この決定要求には、設定情報取得部402が取得した、ユーザの表示言語の設定情報(言語ID)が含まれる。
【0093】
ステップS802において、文字コード決定部404は、対応関係取得部403に、例えば、図5に示すような変換テーブル408に記憶された、表示言語501とコードページ502との対応関係の取得を要求する。
【0094】
ステップS803において、対応関係取得部403は、例えば、図5に示すような変換テーブル408を読出する。
【0095】
ステップS804において、対応関係取得部403は、例えば、図5に示すような変換テーブル408に記憶された、言語IDとコードページ502との対応関係を文字コード決定部404に通知する。或いは、対応関係取得部403は、取得した変換テーブル408を、描画制御部401に通知するものであっても良い。
【0096】
ステップS805において、文字コード決定部404は、ステップS801で受付したユーザの表示言語の設定情報と、図5に示すような、言語IDとコードページ502との対応関係に基づいて、変換後の文字コードを決定する。
【0097】
ステップS806において、文字コード決定部404は、決定した変換後の文字コード、又は変換後の文字コードに対応するコードページを、描画制御部401に通知する。
【0098】
ステップS807において、描画制御部401は、出力データ生成部406に、出力データの生成を要求する生成要求を通知する。この生成要求には、例えば、ステップS701で受付した出力対象データと、ステップS805で決定された変換後の文字コードに対応するコードページとが含まれる。
【0099】
ステップS808において、出力データ生成部406は、変換する文字列と、変換後の文字コードに対応するコードページとを、文字コード変換部405に通知する。
【0100】
ステップS809において、文字コード変換部405は、前述したWideCharToMultiBite関数と指定されたコードページを用いて、文字列の文字コードを変換後の文字コードに変換する。
【0101】
ステップS810において、文字コード変換部405は、文字コードを変換した変換後の文字列を出力データ生成部406に通知する。
【0102】
ステップS811において、出力データ生成部406は、文字コード変換部405が変換した変換後の文字列を用いて、画像形成装置102が出力可能な出力データを生成する。
【0103】
ステップS812において、出力データ生成部406は、生成した出力データを、変換後の文字コードと共に、送信部407に通知する。
【0104】
ステップS813において、送信部407は、出力データ生成部406から通知された出力データ、及び変換後の文字コードを、OS420が提供するスプーラ440を介して、画像形成装置102に送信する。
【0105】
上記の各処理により、情報処理装置101のプリンタドライバ430は、画像形成装置102が扱える文字列が判らない場合であっても、ユーザの表示言語に対応する文字コードに文字コードを変更して送信することができる。
【0106】
従って、本実施形態によれば、情報処理装置101が、出力先の画像形成装置102を特定できずに画像形成装置102が扱える文字コードが判らない場合であっても、画像形成装置102側で文字化けが発生することを低減させることができる。
【0107】
[第2の実施形態]
前述したように、プリンタドライバ430がV4プリンタドライバである場合、プリンタドライバ430の描画部432は、システムの権限で動作するため、第2の実施形態で説明する偽装処理を行った上で、ユーザが利用している言語に関する設定情報を取得する。
【0108】
第2の実施形態では、プリンタドライバ430がV4プリンタドライバである場合の処理の例について説明する。
【0109】
<機能構成>
図9は、第2の実施形態に係る情報処理装置の機能構成の例を示す図である。図9に示すように、第2の実施形態に係る描画部432は、図4に示す第1の実施形態に係る描画部432の機能構成に加えて、権限偽装部901を有する。
【0110】
権限偽装部(権限偽装手段)901は、OS420に、設定情報取得部402による処理を、出力対象データに対応するユーザの権限で実行させる権限の偽装(impersonate)を行う。
【0111】
V4プリンタドライバでは、描画部432がシステムの権限で動作する。しかし、システムの権限では、GetUserDefaultUILanguage関数を利用しても、出力対象データに対応するユーザが利用している言語に関する設定情報(例えば、言語ID)を取得することができない。
【0112】
そこで、権限偽装部901は、例えば、出力対象データに対応するユーザのユーザトークンを取得する。また、権限偽装部901は、取得したユーザトークンを用いて、WindowsOSのAPIであるInpersonateLoggedOnUser関数を呼出し、ユーザの権限に偽装(impersonate)する。この後に、GetUserDefaultUILanguage関数を実行することにより、印刷対象データに対応するユーザが利用している言語に関する設定情報を取得することができるようになる。
【0113】
また、権限偽装部901は、設定情報取得部402が、ユーザが利用している言語に関する設定情報を取得した後、WindowsOSのAPIであるRevertToSelf関数を実行して、偽装を終了させる。
【0114】
なお、出力対象データに対応するユーザのユーザトークンは、例えば、WindowsOSのAPIであるIPrintPipelinePropertyBag::GetProperty関数でXPS_FP_USER_TOKENを指定することにより、取得する。
【0115】
上記以外の情報処理装置101の機能構成は、図4に示す第1の実施形態に係る情報処理装置101の機能構成と同様で良い。
【0116】
<処理の流れ>
(設定情報の取得処理)
図10は、第2の実施形態に係る設定情報の取得処理の例を示すシーケンス図である。この処理は、図7に示す情報処理装置の処理に、権限偽装部901による処理内容を追加したものである。従って、ここでは、権限偽装部901以外の処理内容に対する詳細な説明は省略する。
【0117】
ステップS1001において、描画制御部401が、アプリケーション410から、OS420を介して送られてくる出力対象データを受け付けると、ステップS1002以降の処理が実行される。
【0118】
ステップS1002において、描画制御部401は、出力対象データを受け付けると、設定情報取得部402に対して、ユーザが利用している言語に関する設定情報の取得を要求する。
【0119】
ステップS1003において、設定情報取得部402は、権限偽装部901に権限の偽装を要求する。
【0120】
ステップS1004において、権限偽装部901は、システムの権限で動作している描画部432の権限を、出力対象データに対応するユーザの権限に偽装する。
【0121】
例えば、権限偽装部901は、前述したIPrintPipelinePropertyBag::GetProperty関数でXPS_FP_USER_TOKENを指定することにより、出力対象データに対応するユーザのユーザトークンを取得する。
【0122】
また、権限偽装部901は、取得したユーザトークンを用いて、前述したInpersonateLoggedOnUser関数を呼出し、ユーザの権限に偽装(impersonate)する。
【0123】
ステップS1005において、権限偽装部901は、権限の偽装が完了したことを設定情報取得部402に通知する。
【0124】
ステップS1006において、設定情報取得部402は、例えば、第1の実施形態と同様に、GetUserDefaultUILanguage関数を用いて、ユーザの表示言語の設定情報(言語ID)を取得する。
【0125】
ステップS1007において、設定情報取得部402は、権限偽装部901に権限の偽装の解除を要求する。
【0126】
ステップS1008において、権限偽装部901は、例えば、前述したRevertToSelf関数を実行して、偽装を解除(終了)させる。また、ステップS1009において、権限偽装部901は、偽装の解除が完了したことを設定情報取得部402に通知する。
【0127】
ステップS1010において、設定情報取得部402は、ユーザの表示言語の設定情報(言語ID)を、描画制御部401に通知する。
【0128】
ステップS1011において、描画制御部401は、出力対象データを、設定情報取得部402から通知されたユーザの表示言語の設定情報(言語ID)と共に、出力データ生成部406に通知する。
【0129】
ステップS1012において、出力データ生成部406は、対応関係取得部403、文字コード決定部404、文字コード変換部405、及び送信部407等を用いて、図7のステップS706~S717に示す出力データの生成、送信処理を実行する。
【0130】
上記の処理により、情報処理装置101は、プリンタドライバ430がV4プリンタドライバである場合であっても、第1の実施形態と同様の処理を実行することができるようになる。
【0131】
[第3の実施形態]
前述したように、図14に示すような、OS420のシステムロケールの設定画面1500において、「ワールドワイド言語サポートでUnicode UTF-8を使用」のチェックボックス1501が選択されると、OSからの文字情報が全てUTF-8になる。従って、例えば、画像形成装置102がUTF-8の文字コードに対応していない場合、文字化けが発生してしまうという問題がある。
【0132】
そこで、第3の実施形態では、描画部432が、OS420からシステムロケールの設定を取得し、UTF-8(所定の文字コード)になっているときに、第1、2の実施形態で説明した処理を実行する場合の例について説明する。
【0133】
ここでは、情報処理装置101の機能構成が、図4に示す第1の実施形態に係る情報処理装置101の機能構成を有しているものとして、以下の説明を行うが、第3の実施形態は、第2の実施形態にも適用することができる。
【0134】
<機能構成>
図11は、第3の実施形態に係る情報処理装置の機能構成の例を示す図である。図11に示すように、第3の実施形態に係る描画部432は、例えば、図9に示す第2の実施形態に係る描画部432(又は図4に示す第1の実施形態に係る描画部432)の機能構成に加えて、判定部1101を有している。
【0135】
判定部(判定手段)1101は、情報処理装置101のOS420におけるシステムロケールの設定が所定の文字コードに設定されているかを判定する。例えば、判定部1101は、OS420から、図15に示すようなシステムロケールの設定画面1500において、「ワールドワイド言語サポートでUnicode UTF-8を使用」のチェックボックス1501が選択されているか否かを判定する。
【0136】
また、第3の実施形態では、判定部1101によってOS420のシステムロケールの設定が所定の文字コード(例えば、UTF-8)に設定されている場合に、第1の実施形態(又は第2の実施形態)に示す文字化けを低減させる処理を実行する。
【0137】
<処理の流れ>
(描画部の処理)
図12は、第3の実施形態に係る情報処理装置の処理の例を示すフローチャートである。この処理は、第3の実施形態に係る描画部432が、例えば、アプリケーション410から、OS420を介して出力対象データを受付したときに実行する処理の例を示している。
【0138】
ステップS1201において、描画制御部401が出力対象データを受付すると、判定部1101は、OS420から、例えば、図15に示すようなシステムロケールの設定を取得する。
【0139】
ステップS1202において、判定部1101は、取得したシステムロケールの設定が、UTF-8に設定されているか否かを判定する。
【0140】
取得したシステムロケールの設定がUTF-8に設定されていない場合、判定部1101は、処理をステップS1203に移行させる。一方、取得したシステムロケールの設定がUTF-8に設定されている場合、判定部1101は、処理をステップS1204に移行させる。
【0141】
ステップS1202からステップS1203に移行すると、描画制御部401は、OS420から、現在有効になっているコードページ(コードページの識別子)を取得する。例えば、描画制御部401は、WindowsOSのAPIであるGetACP関数を実行することにより、現在有効になっているコードページを取得することができる。
【0142】
一方、ステップS1202からステップS1204に移行すると、描画制御部401は、例えば、図7のステップS702~S704の処理を実行して、ユーザの表示言語の設定情報(例えば、言語ID)を取得する。
【0143】
ステップ1205において、出力データ生成部406は、文字コード決定部404を用いて、例えば、図7のステップS706~S711の処理を実行して、変換後の文字コードに対応するコードページ(又は、変換後の文字コード)を取得する。
【0144】
ステップS1206において、文字コード変換部405は、ステップS1203、又はステップS1205で取得したコードページを用いて、図7のステップS713の処理を実行し、出力対象データに含まれる文字列の文字コードを変換する。
【0145】
ステップS1207において、出力データ生成部406、及び送信部407は、図7のステップS715~717の処理を実行することにより、出力データを生成し、OS420が提供するスプーラ440を介して画像形成装置102に送信する。
【0146】
(UTF-8に設定されていない場合の処理)
図13は、第3の実施形態に係るUTF-8に設定されていない場合の処理の例を示すシーケンス図である。
【0147】
図12に示す処理のステップS1202において、UTF-8に設定されていると判定された場合、情報処理装置101は、例えば、図7のステップS702~S717に示す処理を実行する。
【0148】
一方、図12に示す処理のステップS1202において、UTF-8に設定されていないと判定された場合、情報処理装置101は、例えば、図13のステップS1311~S1318に示す処理を実行する。
【0149】
ステップS1301において、描画制御部401が、アプリケーション410から、OS420を介して送られてくる出力対象データを受け付けると、ステップS1302の処理が実行される。
【0150】
ステップS1302において、判定部1101は、システムロケールの設定が、UTF-8に設定されているかを確認する。なお、この処理は、図12のステップS1201、S1202の処理に対応している。
【0151】
ここで、システムロケールの設定が、UTF-8に設定されていない場合、ステップS1311~S1318の処理が実行される。
【0152】
ステップS1311において、描画制御部401は、例えば、前述したGetACP関数を実行することにより、OS420から、現在有効になっているコードページを取得する。これにより、例えば、OS420が日本語環境で実行されている場合、日本語に対応するコードページの識別子である「932」が取得される。
【0153】
ステップS1312において、描画制御部401は、出力対象データを、ステップS1311で取得したコードページと共に、出力データ生成部406に通知する。
【0154】
ステップS1313において、出力データ生成部406は、変換する文字列(出力対象データに含まれる文字列)と、ステップS1311で取得したコードページ(例えば、コードページ「932」)を、文字コード変換部405に通知する。
【0155】
ステップS1314において、文字コード変換部405は、前述したWideCharToMultiBite関数と指定されたコードページを用いて、文字列の文字コード(例えば、ユニコード)を変換後の文字コード(例えば、Shift-JIS)に変換する。
【0156】
ステップS1315において、文字コード変換部405は、文字コードを変換した変換後の文字列を出力データ生成部406に通知する。
【0157】
ステップS1316において、出力データ生成部406は、文字コード変換部405が変換した変換後の文字列を用いて、画像形成装置102が出力可能な出力データを生成する。
【0158】
ステップS1317において、出力データ生成部406は、生成した出力データを、変換後の文字コードと共に、送信部407に通知する。
【0159】
ステップS1318において、送信部407は、出力データ生成部406から通知された出力データ、及び変換後の文字コードを、OS420が提供するスプーラ440を介して、画像形成装置102に送信する。
【0160】
上記の処理により、OS420のシステムロケールの設定がUTF-8に設定されている場合に、第1の実施形態(又は第2の実施形態)に示す文字化けを低減させる処理を選択的に実行することができるようになる。これにより、OS420のシステムロケールの設定がUTF-8に設定されていない場合には、プリンタドライバ430に、従来と同様の処理を実行させて互換性を保つことができる。
【0161】
以上、本発明の各実施形態によれば、情報処理装置101が、出力先の画像形成装置102を特定できずに画像形成装置102が扱える文字コードが判らない場合であっても、画像形成装置側で文字化けが発生することを低減させることができるようになる。
【符号の説明】
【0162】
100 情報処理システム
101 情報処理装置
402 設定情報取得部(設定情報取得手段)
403 対応関係取得部(対応関係取得手段)
404 文字コード決定部(決定手段)
405 文字コード変換部(変換手段)
408 変換テーブル(記憶手段)
901 権限偽装部(権限偽装手段)
1101 判定部(判定手段)
【先行技術文献】
【特許文献】
【0163】
【文献】特開2012-216106号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15