(57)【要約】      （修正有）【課題】紙原稿の読み取りデータ等の画像データからスプレッドシートファイルを作成する処理において、判断者が介在することなく、適切な列の並び方向を動的に判断する。【解決手段】本発明の複合機２０は、画像データのページ毎の画像であるページ画像から当該ページ画像を構成するオブジェクト情報を抽出するオブジェクト抽出部と、オブジェクト情報が特定の条件を満たすかどうかを判定する列方向選択部を備える。そして、列方向選択部は、オブジェクト情報が特定の条件を満たす場合には、ページ画像から生成するスプレッドシートの列の並び方向を第１の方向とし、オブジェクト情報が特定の条件を満たさない場合には、スプレッドシートの列の並び方向を第１の方向と逆向きの第２の方向とする選択処理を行う。【選択図】図６
2018092470.tif 000002
【特許請求の範囲】
【請求項１】
画像データのページ毎の画像であるページ画像から当該ページ画像を構成するオブジェクト情報を抽出する処理を行うオブジェクト抽出部と、
前記オブジェクト抽出部により抽出された前記オブジェクト情報が、特定の条件を満たすかどうかを判定し、前記オブジェクト情報が前記特定の条件を満たす場合には、前記ページ画像から生成するスプレッドシートの列の並び方向を第１の方向とし、前記オブジェクト情報が前記特定の条件を満たさない場合には、前記スプレッドシートの列の並び方向を前記第１の方向と逆向きの第２の方向とする選択処理を行う列方向選択部と、を備える
情報処理装置。
【請求項２】
前記特定の条件は、
前記オブジェクト情報に文字が含まれる場合に、前記文字の記述方向が第１の方向の言語を含む第１の条件と、
前記オブジェクト情報の中に含まれる表データにおいて、前記表データの第１の方向の最上流側の列の項目名に特定の文字列が使用されている第２の条件と、
自装置の位置を示すロケーション設定が、前記文字の記述方向が第１の方向であると推定される特定の設定値に設定されている第３の条件のうち、
少なくとも１つ以上を含む
請求項１に記載の情報処理装置。
【請求項３】
前記列方向選択部は、前記オブジェクト情報が前記特定の条件を満たすか否かを判定した際、前記オブジェクト情報の中に含まれる表データの列の並び方向についての事前の設定情報である列方向設定情報と、前記オブジェクト情報の列の並び方向とが異なる場合には、前記列方向設定情報を、前記列方向選択部が選択した列の並び方向に書き換えると共に、前記列方向設定情報を変更したことを示す変更通知を出力する
請求項１又は２に記載の情報処理装置。
【請求項４】
前記列方向選択部は、予め設定されている行単位、ページ単位、全ページ一括、又は、制御単位を適用しないことの中からいずれを制御単位とするかを示す制御単位設定情報に基づいて、前記列の並び方向の選択処理を行う
請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記オブジェクト抽出部で抽出された前記オブジェクト情報から、前記スプレッドシートを構成する描画データを生成する処理を行うスプレッドシートパーツ生成部、を更に備え、
前記描画データには、少なくともテキスト、表、図形、又は画像のいずれかを含む描画コンテンツデータの他に、前記スプレッドシートの識別情報、行情報、列情報を含む描画コンテンツの描画位置情報が含まれる
請求項１に記載の情報処理装置。
【請求項６】
前記スプレッドシートパーツ生成部は、前記描画データの列に対し、前記列方向選択部が選択した前記列の並び方向に応じた列情報を付与する
請求項５に記載の情報処理装置。
【請求項７】
前記スプレッドシートパーツ生成部は、前記描画データの前後の行もしくはページ間で前記列の並び方向が異なる場合には、該当する前後の行もしくはページを格納するシートを分離し、シートごとに前記列の並び方向に適したデータ構造にすることにより、行単位もしくはページ単位で前記列の並び方向を制御する
請求項５又は６に記載の情報処理装置。
【請求項８】
前記列方向選択部から前記列方向設定情報に関しての変更通知を受け取ると、前記列方向の変更に該当する行又はページを構成する生成済みの描画データが存在するか否かを判定し、該当する描画データが存在する場合には、該当する全ての描画データの列情報を、変更後の列の並び方向に合致した列情報に書き換える処理を行う列情報変更部、を更に備える
請求項３に記載の情報処理装置。
【請求項９】
前記列情報変更部は、該当する描画データが存在するページを構成する全列の列情報の並びを反転させることにより、変更後の列情報を算出する
請求項８に記載の情報処理装置。
【請求項１０】
前記スプレッドシートパーツ生成部により前記画像データに対応する全ての描画データの生成が完了すると、その全ての描画データを結合してスプレッドシートファイルを生成する処理を行う描画データ結合部、を更に備える
請求項５乃至９のいずれかに記載の情報処理装置。
【請求項１１】
前記画像データは、読み取り装置により紙原稿の表面の情報を読み取って生成された画像データである
請求項１乃至１０のいずれかに記載の情報処理装置。
【請求項１２】
画像データのページ毎の画像であるページ画像から当該ページ画像を構成するオブジェクト情報を抽出する処理を行うステップと、
前記オブジェクト情報が特定の条件を満たすかどうかを判定するステップと、
前記オブジェクト情報が前記特定の条件を満たす場合には、前記ページ画像から生成するスプレッドシートの列の並び方向を第１の方向とし、前記オブジェクト情報が前記特定の条件を満たさない場合には、前記スプレッドシートの列の並び方向を前記第１の方向と逆向きの第２の方向とする選択処理を行うステップを
コンピューターに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データのページ毎の画像であるページ画像からスプレッドシートファイルを生成する情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
紙原稿のスキャン処理等により取得したページ画像からスプレッドシート（ワークシートとも呼ばれる）ファイルを生成する場合、スプレッドシートファイル内で使用される言語に応じて、適切な列の並び方向（「左から右」、「右から左」）を適切に切り替える必要がある。スプレッドシートとは、縦横に並んだマス目（セル）で構成される表であり、ワークシートとも呼ばれる。なお、スプレッドシートは、複数のワークシートをまとめたものという意味で用いられることもある。
【０００３】
例えば、日本語や英語等の「左から右」の順で記述する言語の場合、スプレッドシートの列の並び方向は「左から右」が選択される（図２参照）。
また、アラビア語、ヘブライ語、ペルシア語等の「右から左」の順で記述する言語の場合には、スプレッドシートの列の並び方向は「右から左」が選択される（図１参照）。
【０００４】
通常、スプレッドシートファイルを生成する場合には、スプレッドシートの列の並び方向を、「左から右」とすべきか、「右から左」とすべきかを、その内容からファイル作成者自身が判断している。
【０００５】
特許文献１に、各行に文字列が格納された複数行のデータを表示するデバイスに対し、ユーザーが行を選択すると、選択された行の文字列を構成する言語の記述方向（左から右／右から左）に従い、記述方向に沿った方向に、文字列をスクロールする印字装置が開示されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−１１６１０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の印字装置は、データ内の文字列の言語の記述方向を判断し、その記述方向に沿ったスクロール処理を行うことができる。しかし、スキャンデータからスプレッドシートファイルを自動で生成する場合は、上記のように、生成途中に列の並び方向を判断するような判断者が介在しないため、データ内容から動的に列の並び方向を制御することができない。
【０００８】
また、データ内容から動的にスプレッドシートの列の並び方向を判断する場合において、全内容を把握しないと、「左から右」と「右から左」のどちらが適切か判断することが難しい。そのため、スキャンデータからスプレッドシートファイルを自動生成する場合においては、全ての紙原稿をスキャンし、全内容を把握し、列の並び方向を判断した後でないと、スプレッドシートファイルを生成することができない。即ち、原稿スキャン処理と、スプレッドシートファイル生成処理を並行して処理できない。
【０００９】
本発明は、上記の状況を考慮してなされたものであり、紙原稿の読み取りデータ等の画像データからスプレッドシートファイルを生成する処理において、判断者が介在することなく、適切な列の並び方向を動的に判断することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様の情報処理装置は、画像データのページ毎の画像であるページ画像から当該ページ画像を構成するオブジェクト情報を抽出する処理を行うオブジェクト抽出部と、そのオブジェクト抽出部により抽出されたオブジェクト情報が特定の条件を満たすかどうかを判定し、オブジェクト情報が特定の条件を満たす場合には、ページ画像から生成するスプレッドシートの列の並び方向を第１の方向とし、オブジェクト情報が特定の条件を満たさない場合には、スプレッドシートの列の並び方向を第１の方向と逆向きの第２の方向とする選択処理を行う列の並び方向選択部と、を備える。
【００１１】
本発明の一態様のコンピューターに実行させるためのプログラムは、画像データのページ毎の画像であるページ画像から当該ページ画像を構成するオブジェクト情報を抽出する処理を行うステップと、オブジェクト情報が特定の条件を満たすかどうかを判定するステップと、オブジェクト情報が特定の条件を満たす場合には、ページ画像から生成するスプレッドシートの列の並び方向を第１の方向とし、オブジェクト情報が特定の条件を満たさない場合には、スプレッドシートの列の並び方向を第１の方向と逆向きの第２の方向とする選択処理を行うステップを含む。
【発明の効果】
【００１２】
本発明の少なくとも一態様によれば、紙原稿の読み取りデータ等の画像データからスプレッドシートファイルを作成する処理において、判断者が介在することなく、適切な列の並び方向を動的に判断することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】一般的なスプレッドシートの一例（列の並び方向が右から左）を示す説明図である。
【図２】一般的なスプレッドシートの他の例（列の並び方向が左から右）を示す説明図である。
【図３】本発明の一実施形態に係る印刷システムの全体構成例を示す概略図である。
【図４】本発明の一実施形態に係る複合機のハードウェア構成例を示すブロック図である。
【図５】本発明の一実施形態に係るクライアント端末のハードウェア構成例を示すブロック図である。
【図６】本発明の一実施形態に係る複合機の機能構成例を示すブロック図である。
【図７】本発明の一実施形態に係る複合機の全体処理例を示すフローチャートである。
【図８】本発明の一実施形態に係るオブジェクト抽出部の処理例を示すフローチャートである。
【図９】本発明の一実施形態に係る列方向選択部の処理例（その１）を示すフローチャートである。
【図１０】本発明の一実施形態に係る列方向選択部の処理例（その２）を示すフローチャートである。
【図１１】本発明の一実施形態に係るスプレッドシートパーツ生成部の処理例を示すフローチャートである。
【図１２】本発明の一実施形態に係る列情報変更部の処理例を示すフローチャートである。
【図１３】本発明の一実施形態に係る描画データ結合部の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態の例について、添付図面を参照しながら説明する。各図において実質的に同一の機能又は構成を有する構成要素については、同一の符号を付して重複する説明を省略する。
【００１５】
＜１．一実施形態＞
［スプレッドシートの例］
初めに本発明の対象とするスプレッドシートの概要について図１及び図２に例を挙げて説明する。
【００１６】
図１は、一般的なスプレッドシートの一例（列の並び方向が右から左）を示す説明図である。
図１において、矩形状の表示領域であるウィンドウ内にスプレッドシートＳ１が表示されている。スプレッドシートファイルは複数のスプレッドシート（ワークシート）で構成することが可能であり、一つのスプレッドシートは、縦横に並んだマス目（セル）から構成される。以降の説明では、スプレッドシートファイルを構成する一つのスプレッドシート（ワークシート）を単に「シート」と記すことがある。図１では、スプレッドシートＳ１を構成する表Ｔ（枠）は、４つの列と、７つの行を有する。スプレッドシートＳ１は、列の位置を示す列情報Ｃｏｌとして‘Ａ’〜‘Ｄ’を有し、右から左に向かって‘Ａ’〜‘Ｄ’の順に並んでいる。また、スプレッドシートＳ１は、行の位置を示す行情報Ｌとして‘１’〜‘７’を有し、上から下に向かって‘１’〜‘７’の順に並んでいる。行‘１’の各列に、各列の記載内容を端的に示す項目名が記載されている。
【００１７】
このスプレッドシートＳ１において、列情報‘Ａ’の列には、「通し番号」が記載される。 ‘Ａ’の列において、行‘２’と‘３’、行‘４’と‘５’、行‘６’と‘７’がそれぞれ結合しており、結合セルに対して順に‘１’〜‘３’の通し番号が割り振られている。
列情報‘Ｂ’の列には、「実験器具の種類及び説明」が記載される。列‘Ｂ’の行‘２’，‘４’，‘６’のセルＣＲには、「右から左」に記述する言語が記載されている。また、列‘Ｂ’の行‘３’，‘５’，‘７’のセルＣＬには、「左から右」に記述する言語（英語）が記載されている。
列情報‘Ｃ’の列には、列情報‘Ｂ’で用いられた言語と異なる、「右から左」に記述する言語による「実験器具の種類及び説明」が記載される。
列情報‘Ｄ’の列には、「実験器具の画像Ｉｍ１〜Ｉｍ３」が表示されている。
スプレッドシートＳ１の上方には、スプレッドシートＳ１のシート名エリアＮに‘sheet1’と表示されている。
【００１８】
図２は、一般的なスプレッドシートの他の例（列の並び方向が左から右）を示す説明図である。
図２のスプレッドシートＳ２は、スプレッドシートＳ１の列情報Ｃｏｌの並びが反転した例であり、記載された情報の内容は同じである。即ちスプレッドシートＳ２を構成する表Ｔは、４つの列と、７つの行を有し、左から右に向かって‘Ａ’〜‘Ｄ’の順に並んでいる。スプレッドシートＳ２の上方には、スプレッドシートＳ２のシート名エリアＮに‘sheet1_LtoR-Copy’と表示されている。
【００１９】
本実施形態では、紙原稿の読み取りデータ等の画像データからこのようなスプレッドシートファイルを生成する処理において、判断者が介在することなく、適切な列の並び方向を動的に判断する。
【００２０】
［印刷システムの全体構成例］
図３は、本発明の一実施形態に係る印刷システムの全体構成例を示す概略図である。
図３に示す印刷システム１０では、複合機２０（画像形成装置）とクライアント端末４０とがＬＡＮ等のネットワークＮに接続され、ネットワークＮを介して相互に通信可能に構成されている。また、クライアント端末４０には、興味度検出部３０が接続されている。
【００２１】
複合機２０（クライアント端末の一例）は、クライアント端末４０から出力された印刷ジョブをネットワーク２経由で受信し、印刷ジョブの印刷設定に従って用紙に画像を形成して出力（以下「印刷処理」）する。また、複合機２０は、画像読取部２６（後述する図４）により紙原稿の表面の情報を読み取って読み取りデータ（画像データの一例）を生成する（スキャン処理）。複合機２０は、本発明に係る紙原稿の読み取りデータからスプレッドシートファイルを生成する機能を有する。
【００２２】
複合機２０は、少なくともスキャン機能を備えていればよく、スキャナ装置で代替可能である。なお、複合機２０とクライアント端末４０間のデータのやり取りは、ネットワークＮを介さずに、ＵＳＢ（Universal Serial Bus）メモリ等の半導体メモリを介して行われてもよい。
【００２３】
クライアント端末４０（情報処理装置の一例）は、例えば一般的なパーソナルコンピューター（ＰＣ）が用いられる。なお、クライアント端末４０として、タブレット端末やスマートフォン等を用いてもよい。クライアント端末４０は、ＯＳ（Operating System）により制御されている。クライアント端末４０には、文書ファイル等のドキュメントを表示画面に表示するドキュメント閲覧ソフトウェアや、印刷ジョブの生成を行うプリンタードライバーがインストールされている。
【００２４】
本発明は、複合機２０もしくはクライアント端末４０といった情報処理装置単体で構成される。
【００２５】
［複合機のハードウェア構成］
図４は、複合機２０のハードウェア構成例を示すブロック図である。
複合機２０は、全体制御部２１、ＣＰＵ（Central Processing Unit）２２、ＲＡＭ（Random Access Memory）２３、ＲＯＭ（Read Only Memory）２４、ＨＤＤ（Hard Disk Drive）２５を備える。さらに複合機２０は、画像読取部２６、画像形成部２７、操作表示パネル２８、入力Ｉ／Ｆ２９、及び出力Ｉ／Ｆ３０を備える。
【００２６】
全体制御部２１は、演算処理を行うとともに、各モジュールの統括的な制御及びモジュール間のデータの受け渡しを行うＩＣ(Integrated Circuit)である。
【００２７】
ＣＰＵ２２は、全体制御部２１と連携して動作する演算処理装置の例であり、本実施形態に係る各機能を実現するソフトウェアのプログラムコードをＲＯＭ２４又はＨＤＤ２５から読み出して実行する。ＣＰＵ２２に代えて、ＭＰＵ（Micro-Processing Unit）等の演算処理装置でもよい。
【００２８】
ＲＡＭ２３は、ＣＰＵ２２（又は全体制御部２１）のワークエリアとして機能するメモリ（主記憶装置）である。またＲＡＭ２３には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。
【００２９】
ＲＯＭ２４には、ＣＰＵ２２を動作させるためのコンピュータープログラム等が格納されている。
【００３０】
ＨＤＤ２５（記憶部の一例）は、ＲＡＭ２３の補助的な役割を担う記憶装置（補助記憶装置）であり、長時間データを保存することが可能な仕組みを有する不揮発性の記憶手段である。例えばＨＤＤ２５には、後述する列方向設定情報、制御単位設定情報、ロケーション設定情報等が記録される。ＨＤＤ２５に、コンピュータープログラムが格納されてもよい。ＨＤＤ２５に代えて、ＳＳＤ（Solid State Drive）、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等が用いられてもよい。
【００３１】
画像読取部２６は、イメージセンサ等の光学センサで原稿の表面を読み取り（スキャン処理）、読み取ったデータを複合機２０に画像データとして取り込む。読み取りデータは、ＲＡＭ２３に一時的に保持されるかＨＤＤ２５に記録される。
【００３２】
画像形成部２７は、電子写真方式により用紙等の記録媒体に画像を形成する。なお、複合機２０は、電子写真方式以外の方法を用いて、用紙に画像を形成（印刷）する構成でもよい。
【００３３】
操作表示パネル２８は、ユーザーの操作内容に応じた入力信号を生成し、全体制御部２１へ出力する。操作表示パネル２８は、表示パネルに積層されたタッチパネルで構成され、ユーザーによる操作、及び、情報の表示が可能である。
【００３４】
入力Ｉ／Ｆ２９は、クライアント端末４０などの外部入力装置３１とネットワークＮを介して接続してデータ（画像データ等）を入力するための通信インターフェースである。また出力Ｉ／Ｆ３０は、クライアント端末４０などの外部出力装置３２とネットワークＮを介して接続してデータ（スプレッドシートファイル等）を出力するための通信インターフェースである。入力Ｉ／Ｆ２９及び出力Ｉ／Ｆ３０は、例えばＮＩＣ（Network Interface Card）等を用いて一つのデバイスで構成してもよい。
【００３５】
［クライアント端末のハードウェア構成］
図５は、クライアント端末４０のハードウェア構成例を示すブロック図である。
クライアント端末４０は、全体制御部４１、ＣＰＵ４２、ＲＡＭ４３、ＨＤＤ４４、入力Ｉ／Ｆ４５、及び出力Ｉ／Ｆ４６を備える。演算制御に関する基本的な機能は、複合機２０と類似している。
【００３６】
全体制御部４１は、演算処理を行うとともに、各モジュールの統括的な制御及びモジュール間のデータの受け渡しを行うＩＣである。
【００３７】
ＣＰＵ４２は、全体制御部４１と連携して動作する演算処理装置の例であり、本実施形態に係る各機能を実現するソフトウェアのプログラムコードをＨＤＤ４４から読み出して実行する。ＣＰＵ４２に代えて、ＭＰＵ（Micro-Processing Unit）等の演算処理装置でもよい。
【００３８】
ＲＡＭ４３は、ＣＰＵ４２（又は全体制御部４１）のワークエリアとして機能するメモリ（主記憶装置）である。またＲＡＭ４３には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。
【００３９】
ＨＤＤ４４（記憶部の一例）は、ＲＡＭ４３の補助的な役割を担う記憶装置（補助記憶装置）であり、長時間データを保存することが可能な仕組みを有する不揮発性の記憶手段である。ＨＤＤ４４に代えて、ＳＳＤ、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等が用いられてもよい。
【００４０】
入力Ｉ／Ｆ４５は、外部入力装置４７と接続するためのインターフェースである。外部入力装置４７として、マウス、キーボード等（操作部の一例）が接続される。また出力Ｉ／Ｆ４６は、外部出力装置４８と接続するためのインターフェースである。外部出力装置４８として、ネットワークＮを介して複合機２０又はローカル接続した複合機２０、あるいはディスプレイ装置などが接続される。
【００４１】
複合機２０及びクライアント端末４０における制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【００４２】
［複合機の機能構成］
図６は、複合機２０の機能構成例を示すブロック図である。
複合機２０の機能は、オブジェクト抽出部５１、列方向選択部５２、スプレッドシートパーツ生成部５３、列情報変更部５４、及び、描画データ結合部５５の５つの処理部で構成される。ＣＰＵ２２がＲＯＭ２４に格納されたコンピュータープログラムを実行することにより、図４に示す各処理部の機能が実現される。なお、一部の処理部をハードウェアにより実現してもよい。
【００４３】
オブジェクト抽出部５１は、画像読取部２６で紙媒体から読み取った読み取りデータ（画像データ）のページ毎の画像であるページ画像（ｐ１，ｐ２，ｐ３…）から、当該ページ画像を構成するオブジェクト情報（Ｏｂ１〜Ｏｂ９…）を抽出する処理を行う。例えばオブジェクト抽出部５１は、例えば光学文字読取装置（ＯＣＲ：Optical Character Reader）による文字認識処理、及びオブジェクト分離等のオブジェクト抽出処理を行い、ページ画像を構成するオブジェクトとして、テキスト、表、図形、画像などを抽出する。
【００４４】
紙媒体から画像データを生成するためのスキャン処理を行わず、予め作成しておいたイメージデータを入力として、本発明を適用することもできるため、画像読取部２６は必須ではない。
【００４５】
列方向選択部５２は、オブジェクト抽出部５１により抽出されたオブジェクト情報が後述する言語情報を特定するための特定の条件を満たすかどうかを判定する処理を行い、判定結果に基づいて列の並び方向を決定する処理を行う。例えば列方向選択部５２は、オブジェクト情報が特定の条件を満たす場合には、ページ画像から生成するスプレッドシートの列の並び方向を第１の方向（例えば右から左）とし、オブジェクト情報が特定の条件を満たさない場合には、スプレッドシートの列の並び方向を第１の方向と逆向きの第２の方向（例えば左から右）とする選択処理を行う。特定の条件は、下記第１の条件〜第３の条件の１つ以上を含む。ただし、条件はこの３つの例に限定されない。
【００４６】
ａ）第１の条件は、オブジェクト情報に文字が含まれる場合に、文字の記述方向が第１の方向（右から左）の言語（例：アラビア語、ヘブライ語、ペルシア語等）を含むことである。
【００４７】
ｂ）第２の条件は、オブジェクト情報の中に含まれる表データにおいて、表データの第１の方向の最上流側の列（最右列）の項目名に特定の文字列（ナンバリングに関するもの等）が使用されていることである。図１のように文字の記述方向が第１の方向（右から左）である場合、ナンバリングに関する文字列は、最右列（図１の列‘Ａ’）に割り当てられる。ナンバリングに関する文字列とは、例えば英語及び日本語の"No."、"Number"、"項番"、"#"等に相当する文字列であり、通し番号や通し文字等の付与に関する。
【００４８】
文字の記述方向が第１の方向（右から左）の言語、及び、特定の文字列は事前にＨＤＤ２５等に登録しておくものとする。文字の記述方向が第２の方向（左から右）の場合、表データの第２の方向の最上流側の列、即ち最左列の項目名に特定の文字列が表れる。
【００４９】
ｃ）第３の条件は、複合機２の位置を示すロケーション設定が、オブジェクト情報に含まれる文字の記述方向が第１の方向であると推定される特定の設定値（文字の記述方向が右から左の言語（例：アラビア語、ヘブライ語、ペルシア語等）が使用される地域等）に設定されていることである。あるいは特定の設定値の他の例として、言語設定、現在の場所又は国、時刻（タイムゾーン）などがある。
【００５０】
本実施形態では、第１の方向を「右から左」、第２の方向を「左から右」として説明するが、これと反対に第１の方向を「左から右」、第２の方向を「右から左」としてもよい。予め第１の方向及び第２の方向について登録しておく。複合機２０において、列の並び方向の設定は、スプレッドシートを構成する「シート」単位で管理する。クライアント端末４０に本発明の情報処理装置を適用する場合も同様である。
【００５１】
列方向選択部５２による列の並び方向の選択結果は、列方向設定情報として、ＲＡＭ２２３やＨＤＤ２５等に格納しておく。また、列方向選択部５２において列の並び方向を選択する前に、列方向設定情報の初期値として、「左から右」もしくは「右から左」のいずれかの値を、ユーザーが複合機２０の操作表示パネル２８等を用いて事前に設定し、ＲＡＭ２２３やＨＤＤ２５等に格納しておく。
【００５２】
上述した列方向選択部５２による列の並び方向の選択処理は、予め設定されている制御単位設定情報の設定値に基づいて実行される。制御単位設定情報の設定値は、列の並び順（例えば「右から左」）を適用する範囲の設定値であり、設定値として、「行単位」、「ページ単位」、「全ページ一括」、又は、「制御単位を適用しない」がある。この制御単位設定情報は、ユーザーが複合機２０の操作表示パネル２８等を用いて事前に設定し、ＲＡＭ２２３やＨＤＤ２５等に格納しておく。
【００５３】
さらに、列方向選択部５２は、抽出されたオブジェクト情報が上記特定の条件を満たすか否かを判定した際、オブジェクト情報の中に含まれる表データの列の並び方向についての事前の列方向設定情報と、オブジェクト情報の列の並び方向とが異なる場合には、その列方向設定情報を、選択した列の並び方向に書き換える。この処理と並行して、列方向選択部５２は、列方向設定情報を変更したことを示す変更通知を列情報変更部５４へ出力する。
【００５４】
スプレッドシートパーツ生成部５３は、オブジェクト抽出部５１で抽出されたオブジェクト情報（Ｏｂ１〜Ｏｂ９…）から、スプレッドシートを構成する描画データ（Ｄ１〜Ｄ９…）を生成する処理を行う。描画データには、少なくともテキスト、表、図形、又は画像のいずれかを含む描画コンテンツデータの他に、スプレッドシートの識別情報（シート名、番号など）、行情報（行番号等）、列情報（列番号等）を含む描画コンテンツの描画位置情報が含まれる。スプレッドシートパーツ生成部５３は、描画データの列に対し、列方向選択部５２が選択した列の並び方向（右から左、もしくは、左から右）に応じた列情報を付与する。
【００５５】
また、スプレッドシートパーツ生成部５３は、描画データの前後の行もしくはページ間で列の並び方向が異なる場合には、該当する前後の行もしくはページを格納するシートを分離する。そして、シートごとに列の並び方向に適したデータ構造にすることにより、行単位もしくはページ単位で列の並び方向を制御する。
【００５６】
列情報変更部５４は、列方向選択部５２から列方向設定情報に関しての変更通知を受け取ると、列方向の変更に該当する行又はページを構成する生成済みの描画データが存在するか否かを判定する。そして、列情報変更部５４は、該当する生成済みの描画データが存在する場合には、該当する全ての描画データの列情報を、変更後の列の並び方向に合致した列情報に書き換える処理を行う。このとき、列情報変更部５４は、書き換え対象の描画データが存在するページを構成する全列の列情報の並びを反転（左右反転）させることにより、変更後の列情報を算出する。
【００５７】
描画データ結合部５５は、スプレッドシートパーツ生成部５３により入力された画像データに対応する全ての描画データの生成が完了すると、その全ての描画データを結合してスプレッドシートファイルＳを生成する処理を行う。描画データの結合は、生成するスプレッドシートファイルの仕様を満たすようにして行われる。描画データを結合する技術は、周知であるから説明を割愛する。描画データ結合部５５は、生成したスプレッドシートＳをＲＡＭ２３やＨＤＤ２５に保存したり、操作表示パネル２８に表示したり、出力Ｉ／Ｆ３０を介して外部出力装置３２へ出力したりする。
【００５８】
［複合機の全体処理］
図７は、複合機２０の全体処理例を示すフローチャートである。
ＣＰＵ２２がＲＯＭ２４に格納されたコンピュータープログラムを実行することにより、図７（及び図８〜図１３）に示すフローチャートの処理が実行される。
【００５９】
複合機２０のＣＰＵ２２は、オブジェクト抽出部５１によるオブジェクト抽出処理（Ｓ２）、列方向選択部５２による列方向選択処理（Ｓ３）、及びスプレッドシートパーツ生成部５３によるスプレッドシートパーツ生成処理（Ｓ４）／列情報変更部５４による列情報変更処理（Ｓ５）を実施する。ＣＰＵ２２は、全ページ画像の処理が完了するまで、このステップＳ２〜Ｓ５の繰り返し処理を実施し（Ｓ１，Ｓ６）、全ページ画像を構成する全てのスプレッドシートパーツを生成する。
【００６０】
そして、ＣＰＵ２２は、全てのスプレッドシートパーツの生成が完了すると、描画データ結合部５５により、全スプレッドシートパーツから、スプレッドシートファイルＳを生成する。各ステップの処理の詳細については後述する。
【００６１】
［オブジェクト抽出部の処理］
図８は、図７のステップＳ２におけるオブジェクト抽出部５１の処理例を示すフローチャートである。
まずオブジェクト抽出部５１は、画像読取部２６が紙原稿から読み取った読み取りデータ（画像データ）を、画像読取部２６から取得する（Ｓ１１）。そして、オブジェクト抽出部５１は、画像データのページ毎のページ画像に対しオブジェクト抽出処理を行い、ページ画像を構成するテキスト、表、図形、画像などのオブジェクト情報を抽出する（Ｓ１２）。ステップＳ１２の処理が終了したら、本フローチャートの処理を終了する。
【００６２】
［列方向選択部の処理］
図９は、図７のステップＳ３における列方向選択部５２の処理例（その１）を示すフローチャートである。図１０は、図７のステップＳ３における列方向選択部５２の処理例（その２）を示すフローチャートである。
【００６３】
まず列方向選択部５２は、列方向設定情報のデフォルト設定値（左から右、もしくは、右から左）を設定する（Ｓ２１）。
【００６４】
次に、列方向選択部５２は、制御単位設定情報の設定値が「ページ単位」、「行単位」、及び「全ページ一括／適用しない」のいずれであるかを判定する（Ｓ２２）。
【００６５】
ここで、ステップＳ２２の判定処理でページ単位と判定した場合には、同一ページのオブジェクトごとに列の並び方向を制御し（Ｓ２３）、全ページの処理が完了するまで繰り返し処理を実施する（Ｓ４１）。また、ステップＳ２２の判定処理で行単位と判定した場合には、同一行のオブジェクトごとに列の並び方向を制御し（Ｓ２４）、全ページの処理が完了するまで繰り返し処理を実施する（Ｓ４２）。全ページ一括の場合には、全ページ一括で列の並び方向を制御し、また適用しない場合には、いずれの制御単位も適用せずに制御を行う。
【００６６】
ステップＳ２２の判断処理が終了後、列方向選択部５２は、列方向設定情報が「左から右」であるか否かを判定する。（Ｓ２５）。ここでステップＳ２５において列方向設定情報は「左から右」と判定した場合には、オブジェクト情報が特定の条件（本実施形態では「右から左」を特定するための条件）を満たすか否かを判定する（Ｓ２６）。ここで、オブジェクト情報が特定の条件を満たさない場合には（Ｓ２６のＮｏ）、ステップＳ３７の処理に移行する。
【００６７】
一方、ステップＳ２６においてオブジェクト情報が特定の条件を満たすと判定した場合には（Ｓ２６のＹｅｓ）、列の並び方向は「右から左」であり。続いて、列方向選択部５２は、制御単位設定情報を判定する（Ｓ２７）。
【００６８】
ステップＳ２７において制御単位設定情報が行単位であると判定した場合には、列方向選択部５２は、スプレッドシートパーツ生成部５３に新規シートを生成させる制御を行う（Ｓ２８）。スプレッドシートパーツ生成部５３は、描画データの前後の行間で列の並び方向が異なる場合には、該当する前後の行を格納するシートを分離し、シートごとに列の並び方向に適したデータ構造にする。このように、本実施形態のＣＰＵ２２は、行単位で列の並び方向を制御することが可能である。列方向をチェック（どのシートに配置するかを制御）する単位は行になるが、列方向の制御単位自体はシートである。そのため、列方向を変更する際は、新規シートを新たに生成する必要がある。
【００６９】
そして、ステップＳ２７において制御単位設定情報がその他（行単位以外）であると判定した場合、又はステップＳ２８の処理が終了後、列方向選択部５２は、列方向設定情報に「右から左」を設定する（Ｓ２９）。続いて、列方向選択部５２は、スプレッドシートの該当シートの列の並び方向の設定に「右から左」を設定する（Ｓ３０）。
【００７０】
次に、ステップＳ２５において列方向設定情報は「右から左」と判定した場合には、列方向選択部５２は、オブジェクト情報が特定の条件（「右から左」を特定するための条件）を満たすか否かを判定する（Ｓ３１）。ここで、オブジェクト情報が特定の条件を満たす場合には（Ｓ３１のＹｅｓ）、ステップＳ３７の処理に移行する。
【００７１】
一方、ステップＳ３１においてオブジェクト情報が特定の条件を満たさないと判定した場合には（Ｓ３１のＮｏ）、列の並び方向は「左から右」である。続いて、列方向選択部５２は、制御単位設定情報を判定する（Ｓ３２）。
【００７２】
ステップＳ３２において制御単位設定情報が行単位であると判定した場合には、列方向選択部５２は、スプレッドシートパーツ生成部５３に新規シートを生成させる制御を行う（Ｓ３３）。スプレッドシートパーツ生成部５３は、描画データの前後の行間で列の並び方向が異なる場合には、該当する前後の行を格納するシートを分離し、シートごとに列の並び方向に適したデータ構造にする。
【００７３】
そして、ステップＳ３２において制御単位設定情報がその他（行単位以外）であると判定した場合、又はステップＳ３３の処理が終了後、列方向選択部５２は、列方向設定情報に「左から右」を設定する（Ｓ３４）。続いて、列方向選択部５２は、スプレッドシートの該当シートの列の並び方向の設定に「左から右」を設定する（Ｓ３５）。
【００７４】
次に、ステップＳ３０又はステップＳ３５の処理が終了後、列方向選択部５２は、列情報変更部５４に列方向設定情報変更の通知を行う（Ｓ３６）。
【００７５】
上述した一連の処理と並行して、スプレッドシートパーツ生成部５３は、スプレッドシートパーツ生成処理を行う（Ｓ３７）。列方向選択部５２は、ステップＳ３７のスプレッドシートパーツ生成処理と並行しながら、制御単位設定情報を判定する（Ｓ３８）。
【００７６】
ステップＳ３８において制御単位設定情報が行単位である場合には、列方向選択部５２は、同一行のオブジェクトごとに列の並び方向を選択し、全ページの処理が完了するまで繰り返し処理を実施する（Ｓ４２）。
【００７７】
またステップ３８において制御単位設定情報がページ単位である場合には、列方向選択部５２は、該当ページの全オブジェクト処理が完了及び画像データに次ページがあるか否かを判定する（Ｓ３９）。ここで、該当ページの全オブジェクト処理が完了及び画像データに次ページがある場合には（Ｓ３９のＹｅｓ）、列方向選択部５２は、スプレッドシートパーツ生成部５３に新規シートを生成させる制御を行う（Ｓ４０）。スプレッドシートパーツ生成部５３は、描画データの前後のページ間で列の並び方向が異なる場合には、該当する前後のページを格納するシートを分離し、シートごとに列の並び方向に適したデータ構造にする。このように、本実施形態のＣＰＵ２２は、ページ単位で列の並び方向を制御することが可能である。
【００７８】
一方、ステップＳ３９において該当ページの全オブジェクト処理が完了していない又は画像データに次ページがない場合には（Ｓ３９のＮｏ）、列方向選択部５２は、同ページのオブジェクトごとに列の並び方向を選択し、全ページの処理が完了するまで繰り返し処理を実施する（Ｓ４１）。
【００７９】
ステップＳ４２又はＳ４１の処理が終了後、又は、ステップＳ３８において制御単位設定情報が前ページ一括／適用しないと判定した場合には、列方向選択部５２は、本フローチャートの処理を終了する。
【００８０】
このように、列方向選択部５２は、抽出したオブジェクト情報に対し、特定の条件を満たすかどうかを確認し、その確認結果により、生成するスプレッドシートの列の並び方向を決定する。
【００８１】
［スプレッドシートパーツ生成部の処理］
図１１は、図７のステップＳ４におけるスプレッドシートパーツ生成部５３の処理例を示すフローチャートである。
まずスプレッドシートパーツ生成部５３は、列方向選択部５２から、オブジェクト抽出部５１が抽出したオブジェクト情報とともに、列方向設定情報を受け取ると、列方向設定情報を判定する（Ｓ５１）。
【００８２】
ステップＳ５１において列方向設定情報は「右から左」であると判定した場合には、スプレッドシートパーツ生成部５３は、列の並び方向を「右から左」に適した列情報で描画データ（スプレッドシートパーツ）を生成する（Ｓ５２）。
【００８３】
一方、ステップＳ５１において列方向設定情報は「左から右」であると判定した場合には、スプレッドシートパーツ生成部５３は、列の並び方向を「左から右」に適した列情報でスプレッドシートパーツ（描画データ）を生成する（Ｓ５３）。
【００８４】
スプレッドシートパーツ生成部５３は、抽出された全てのオブジェクト情報からスプレッドシートパーツを生成する処理が完了するまでステップＳ５２及びＳ５３の処理を繰り返し、全てのオブジェクト情報からスプレッドシートパーツを生成したら、本フローチャートの処理を終了する。
【００８５】
［列情報変更部の処理］
図１２は、図７のステップＳ５における列情報変更部５４の処理例を示すフローチャートである。
まず列情報変更部５４は、列方向選択部５２からの列方向設定情報変更の通知を受信する（Ｓ６１）。次に、列情報変更部５４は、制御単位設定情報の変更後の設定値の範囲に、該当するスプレッドシートパーツ（描画データ）が存在するか否かを判定する（Ｓ６２）。
【００８６】
ここで該当するスプレッドシートパーツが存在する場合には（Ｓ６２のＹｅｓ）、列情報変更部５４は、該当するスプレッドシートパーツが存在するページを構成する全列の列情報の並びを反転させる（ステップＳ６４）。このステップＳ６４の処理を、制御単位設定情報の変更後の設定値の範囲に該当する全てのスプレッドシートパーツに対する処理が完了するまで、繰り返し行う（Ｓ６３〜Ｓ６５）。
【００８７】
そして、列情報変更部５４は、制御単位設定情報の変更後の設定値の範囲に該当するスプレッドシートパーツが存在しない場合（Ｓ６２のＮｏ）、又は、ステップＳ６３〜Ｓ６５の処理が完了した後、本フローチャートの処理を終了する。
【００８８】
このように、列情報変更部５４は、スプレッドシートを構成するスプレッドシートパーツ（描画データ）が１つ以上生成された後に、列方向選択部５２により列の並び方向が変更された場合には、生成済みのスプレッドシートパーツの列情報を、変更後の列の並び方向に合致した列情報に書き換える。
【００８９】
［描画データ結合部の処理］
図１３は、図７のステップＳ７における描画データ結合部５５の処理例を示すフローチャートである。
まず描画データ結合部５５は、スプレッドシートパーツ生成部５３により入力された画像データに対応するスプレッドシートパーツ（描画データ）が生成されると、それらのスプレッドシートパーツを結合する（Ｓ７２）。そして、描画データ結合部５５は、全てのスプレッドシートパーツについて処理が完了するまで、繰り返し行う（Ｓ７１〜Ｓ７３）。そして、描画データ結合部５５は、ステップＳ７１〜Ｓ７３の処理が完了した後、本フローチャートの処理を終了する。
【００９０】
このように、描画データ結合部５５は、スプレッドシートを構成するスプレッドシートパーツ（描画データ）を結合し、スプレッドシートファイルを生成する。
【００９１】
上述した一実施形態によれば、紙原稿の読み取りデータ等の画像データから抽出したオブジェクト情報の列の並び方向、及び言語情報を特定するための特定の条件に基づいて、画像データに対し、どちらの列の並び方向（「左から右」、「右から左」）でスプレッドシートファイルを生成すべきかを判断する。それにより、判断者が介在しない紙原稿の読み取りからスプレッドシート生成までの自動処理で、適切な列の並び方向を動的に判断することが可能である。即ち、判断者が介在することなく、適切な列の並び方向を動的に判断することが実現できる。
【００９２】
また、本実施形態によれば、生成途中のスプレッドシートファイルに対し、生成処理の途中に、スプレッドシートパーツの列の並び方向の設定変更を可能とする列情報変更部５４を備えることにより、紙原稿の読み取り処理（スキャン処理）と、スプレッドシートファイル生成処理の並行動作を可能とする。つまり、逐次読み取りデータをスプレッドシートに変換していき、列方向設定情報と列の並び方向の判断結果が異なれば、スプレッドシート生成処理と並行して列の並び方向の変更を実施する。それゆえ、読み取り処理開始からスプレッドシートファイルの生成処理完了までの時間を、大幅に短縮することができる。
【００９３】
＜２．その他＞
本発明は上述した各実施形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、その他種々の応用例、変形例を取り得ることは勿論である。
【００９４】
例えば、上述した実施形態例は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態例の構成の一部を他の実施形態例の構成に置き換えることは可能である。また、ある実施形態例の構成に他の実施形態例の構成を加えることも可能である。また、各実施形態例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
【００９５】
また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）をも含むものである。
【符号の説明】
【００９６】
１０…印刷システム、  ２０…複合機、  ２１…全体制御部、  ２２…ＣＰＵ、  ２５…ＨＤＤ、  ２６…画像読取部、  ４０…クライアント端末、  ４１…全体制御部、  ４２…ＣＰＵ、  ５１…オブジェクト抽出部、  ５２…列方向選択部、  ５３…スプレッドシートパーツ生成部、  ５４…列情報変更部、  ５５…描画データ結合部、  ＣＲ…第１の記述方向の行（列の並び方向が右から左）、  ＣＬ…第２の記述方向の行（列の並び方向が左から右）、  Ｓ１…第１のスプレッドシート（列の並び方向が右から左）、  Ｓ２…第２のスプレッドシート（列の並び方向が左から右）、  Ｃｏｌ…列情報、  Ｌ…行情報、  Ｔ…表（枠）
【図１】
2018092470.tif 000003
【図２】
2018092470.tif 000004
【図３】
2018092470.tif 000005
【図４】
2018092470.tif 000006
【図５】
2018092470.tif 000007
【図６】
2018092470.tif 000008
【図７】
2018092470.tif 000009
【図８】
2018092470.tif 000010
【図９】
2018092470.tif 000011
【図１０】
2018092470.tif 000012
【図１１】
2018092470.tif 000013
【図１２】
2018092470.tif 000014
【図１３】
2018092470.tif 000015