(57)【要約】【課題】スプレッドシートの印刷において、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果を得る。【解決手段】スプレッドシートの印刷を制御する印刷制御装置（印刷制御プログラム）は、スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出し、第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、第１領域以外の第２領域は、スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、ワークシート内の第１領域及び第２領域を描画した印刷用データを生成して出力する。【選択図】図８
2019008569.tif 000002
【特許請求の範囲】
【請求項１】
スプレッドシートの印刷を制御する印刷制御装置であって、
前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出する領域抽出部と、
前記第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、前記第１領域以外の第２領域は、前記スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、前記ワークシート内の前記第１領域及び前記第２領域を描画した印刷用データを生成して出力する描画処理部と、を備える、
ことを特徴とする印刷制御装置。
【請求項２】
前記領域抽出部は、前記ワークシートの中から、表若しくは指定領域を含む行又は列を前記第１領域として抽出する、
ことを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記領域抽出部は、データが存在するセルが連続する領域、枠線が付加されたセルが連続する領域、色が付加された領域、他のセルから参照されるセルを含む領域の中から選択される少なくとも１つの領域を前記表として抽出する、
ことを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記描画処理部は、前記第１領域の各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に初期調整する、
ことを特徴とする請求項１乃至３のいずれか一に記載の印刷制御装置。
【請求項５】
前記描画処理部は、前記第１領域の各列のセル幅を合算した総セル幅及び／又は各行のセル高さを合算した総セル高さを算出し、前記総セル幅及び／又は前記総セル高さと、前記ワークシートの全印刷ページの総ページ印字幅及び／又は総ページ印字高さと、の比較結果に基づいて、前記第１領域のセル幅及び／又はセル高さを調整する、
ことを特徴とする請求項１乃至４のいずれか一に記載の印刷制御装置。
【請求項６】
前記描画処理部は、前記総セル幅が前記総ページ印字幅よりも大きい場合、前記総セル幅が前記総ページ印字幅以下となるように、前記第１領域の所定の列のセル幅を狭め、狭めたセル幅ではテキストが収まらないセルが生じる場合は、当該セルを含む行のセル高さを大きくする、
ことを特徴とする請求項５に記載の印刷制御装置。
【請求項７】
前記描画処理部は、前記総セル高さが前記総ページ印字高さよりも大きい場合、前記総セル高さが前記総ページ印字高さ以下となるように、前記第１領域の所定の行のセル高さを小さくし、小さくしたセル高さではテキストが収まらないセルが生じる場合は、当該セルを含む列のセル幅を広げる、
ことを特徴とする請求項５に記載の印刷制御装置。
【請求項８】
前記描画処理部は、前記ワークシートから複数の前記第１領域を抽出した場合は、前記第１領域毎に、セル幅及び／又はセル高さを調整する、
ことを特徴とする請求項４乃至７のいずれか一に記載の印刷制御装置。
【請求項９】
前記テキストの幅及び／又は高さは、印刷時の幅及び／又は高さである、
ことを特徴とする請求項１乃至８のいずれか一に記載の印刷制御装置。
【請求項１０】
前記印刷制御装置は、印刷エンジンを備え、
前記描画処理部は、生成した前記印刷用データを前記印刷エンジンに出力して印刷を指示する、
ことを特徴とする請求項１乃至９のいずれか一に記載の印刷制御装置。
【請求項１１】
前記印刷制御装置は、表示部を備え、
前記描画処理部は、生成した前記印刷用データを前記表示部に出力して印刷プレビュー画面の表示を指示する、
ことを特徴とする請求項１乃至９のいずれか一に記載の印刷制御装置。
【請求項１２】
スプレッドシートの印刷を制御する装置で動作する印刷制御プログラムであって、
前記装置に、
前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出する領域抽出処理、
前記第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、前記第１領域以外の第２領域は、前記スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、前記ワークシート内の前記第１領域及び前記第２領域を描画した印刷用データを生成して出力する描画処理、を実行させる、
ことを特徴とする印刷制御プログラム。
【請求項１３】
前記領域抽出処理では、前記ワークシートの中から、表若しくは指定領域を含む行又は列を前記第１領域として抽出する、
ことを特徴とする請求項１２に記載の印刷制御プログラム。
【請求項１４】
前記領域抽出処理では、データが存在するセルが連続する領域、枠線が付加されたセルが連続する領域、色が付加された領域、他のセルから参照されるセルを含む領域の中から選択される少なくとも１つの領域を前記表として抽出する、
ことを特徴とする請求項１３に記載の印刷制御プログラム。
【請求項１５】
前記描画処理では、前記第１領域の各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に初期調整する、
ことを特徴とする請求項１２乃至１４のいずれか一に記載の印刷制御プログラム。
【請求項１６】
前記描画処理では、前記第１領域の各列のセル幅を合算した総セル幅及び／又は各行のセル高さを合算した総セル高さを算出し、前記総セル幅及び／又は前記総セル高さと、前記ワークシートの全印刷ページの総ページ印字幅及び／又は総ページ印字高さと、の比較結果に基づいて、前記第１領域のセル幅及び／又はセル高さを調整する、
ことを特徴とする請求項１２乃至１５のいずれか一に記載の印刷制御プログラム。
【請求項１７】
前記描画処理では、前記総セル幅が前記総ページ印字幅よりも大きい場合、前記総セル幅が前記総ページ印字幅以下となるように、前記第１領域の所定の列のセル幅を狭め、狭めたセル幅ではテキストが収まらないセルが生じる場合は、当該セルを含む行のセル高さを大きくする、
ことを特徴とする請求項１６に記載の印刷制御プログラム。
【請求項１８】
前記描画処理では、前記総セル高さが前記総ページ印字高さよりも大きい場合、前記総セル高さが前記総ページ印字高さ以下となるように、前記第１領域の所定の行のセル高さを小さくし、小さくしたセル高さではテキストが収まらないセルが生じる場合は、当該セルを含む列のセル幅を広げる、
ことを特徴とする請求項１６に記載の印刷制御プログラム。
【請求項１９】
前記描画処理では、前記ワークシートから複数の前記第１領域を抽出した場合は、前記第１領域毎に、セル幅及び／又はセル高さを調整する、
ことを特徴とする請求項１５乃至１８のいずれか一に記載の印刷制御プログラム。
【請求項２０】
前記テキストの幅及び／又は高さは、印刷時の幅及び／又は高さである、
ことを特徴とする請求項１２乃至１９のいずれか一に記載の印刷制御プログラム。
【請求項２１】
スプレッドシートの印刷を制御する印刷制御装置を含むシステムにおける印刷制御方法であって、
前記印刷制御装置は、
前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出する領域抽出処理と、
前記第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、前記第１領域以外の第２領域は、前記スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、前記ワークシート内の前記第１領域及び前記第２領域を描画した印刷用データを生成して出力する描画処理と、を実行する、
ことを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御プログラム及び印刷制御方法に関し、特に、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム及び当該印刷制御装置を含むシステムにおける印刷制御方法に関する。
【背景技術】
【０００２】
文書作成や表計算などの処理が可能なオフィススイート・アプリケーションは、オフィスワーク、教育、家庭など、あらゆる場面で一般的に使用されている。オフィススイート・アプリケーションの内の代表的な表計算アプリケーションとして、Microsoft（登録商標、以下省略）のExcel（登録商標、以下省略）が挙げられる。また、Apache OpenOfficeなど、同様の機能を有するアプリケーションも複数流通しており、これらの表計算アプリケーションはスプレッドシート（Spreadsheet）と呼ばれる。
【０００３】
上記MicrosoftのExcelのようなスプレッドシートを用いて、ワークシート内のセルに文字や数字などセルデータを入力して表を作成する事が日常的に行われているが、表の印刷において、ユーザの編集ミスやフォントの代替などにより、セル内のデータ長が変化することがあり、セルデータがセル内に収まりきらず、セル内の文字や数字が切れて印刷されるといった不具合が生じる場合がある。
【０００４】
この問題に対して、例えば、下記特許文献１には、表の各列について、各列に属するセルに出力されるデータの最大データ長を設定する最大セル幅設定手段と、該最大セル幅設定手段により設定された各列毎の最大データ長を参照して、表出力する各列のセル幅を自動的に調整する出力制御手段と、を有する表出力装置が開示されている。
【０００５】
また、上記不具合を解決する技術ではないが、表示に必要な幅や高さの極端に異なるデータを同じセル列またはセル行に体裁よく適切に表示させるために印刷レイアウトを変更する技術として、例えば、下記特許文献２には、縦及び横の枠線によってセルに区画されたワークシートの前記セルに対応してデータを取得するデータ取得手段と、前記データ取得手段により取得した前記データに基づいて表計算処理を行う表計算手段と、前記ワークシートを表示すると共に、表示したワークシートのセル内に前記データ取得手段で取得したデータ又は前記表計算手段で表計算処理後のデータを表示するワークシート表示手段と、前記枠線の位置を設定する枠線位置設定手段と、前記ワークシートを、隣接する複数の前記セルどうしにより形成されるセル群に区分する区分設定手段と、を具備し、前記枠線位置設定手段は、前記区分設定手段により区分された複数の区分に亘る前記枠線を、異なる区分に対して異なる位置に設定可能にする表計算処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０５−１３４８２６号公報
【特許文献２】特開２０００−２３５６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１の技術では、印刷範囲内の各列に対して、常に最大セル幅が割り当てられるため、全てのセルデータが欠落することなく、確実に表を描画することができる。しかしながら、Excelのような自由度の高いアプリケーションの場合、ワークシートには、特許文献１に記載されているような単一の表だけでなく、その他の様々なコンテンツ（例えば、複数の表、説明文やグラフ等）が配置されることが多い。そして、その中には、セル幅を無視し、セル幅を大幅に超えるデータ長の文字列を配置することがある。そのため、このようなワークシートに対して特許文献１の技術を適用した場合、セル幅が大幅に変更され、印刷レイアウトや印刷ページ数が大きく変化してしまう。
【０００８】
また、特許文献２では、ワークシートから表計算に関与するセルを含む連続した行、もしくは、列の領域（表データ領域）を抽出し、抽出した複数の領域を並べて表示するとともに、表示した別々の領域の枠線（罫線）を繋ぐような補間線を表示するようにしており、この方法でも印刷レイアウトが大きく変化してしまう。
【０００９】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、スプレッドシートの印刷において、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果を得ることができる印刷制御装置、印刷制御プログラム及び印刷制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置であって、前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出する領域抽出部と、前記第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、前記第１領域以外の第２領域は、前記スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、前記ワークシート内の前記第１領域及び前記第２領域を描画した印刷用データを生成して出力する描画処理部と、を備えることを特徴とする。
【００１１】
本発明の一側面は、スプレッドシートの印刷を制御する装置で動作する印刷制御プログラムであって、前記装置に、前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出する領域抽出処理、前記第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、前記第１領域以外の第２領域は、前記スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、前記ワークシート内の前記第１領域及び前記第２領域を描画した印刷用データを生成して出力する描画処理、を実行させることを特徴とする。
【００１２】
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置を含むシステムにおける印刷制御方法であって、前記印刷制御装置は、前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出する領域抽出処理と、前記第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、前記第１領域以外の第２領域は、前記スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、前記ワークシート内の前記第１領域及び前記第２領域を描画した印刷用データを生成して出力する描画処理と、を実行することを特徴とする。
【発明の効果】
【００１３】
本発明の印刷制御装置、印刷制御プログラム及び印刷制御方法によれば、スプレッドシートの印刷において、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果を得ることができる。
【００１４】
その理由は、スプレッドシートの印刷を制御する印刷制御装置（印刷制御プログラム）は、スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキスト幅に応じてセル幅及び／又はセル高さを調整する第１領域を抽出し、第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、第１領域以外の第２領域は、スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、ワークシート内の第１領域及び第２領域を描画した印刷用データを生成して出力するからである。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施例に係るシステムの構成を示す模式図である。
【図２】本発明の一実施例に係るシステムの構成を示す模式図である。
【図３】本発明の一実施例に係るクライアント装置の構成を示すブロック図である。
【図４】本発明の一実施例に係る印刷装置の構成を示すブロック図である。
【図５】本発明の一実施例に係る印刷装置の処理（全体処理）を示すフローチャート図である。
【図６】本発明の一実施例に係る印刷装置の処理（第１領域抽出処理）を示すフローチャート図である。
【図７】本発明の一実施例に係る印刷装置の処理（第１領域抽出処理）を示すフローチャート図である。
【図８】本発明の一実施例に係る印刷装置の処理（描画処理）を示すフローチャート図である。
【図９】本発明の一実施例に係るスプレッドシート（表が１ページ内に収まる場合）の一例である。
【図１０】図９のスプレッドシートの第１領域及び第２領域の分類例である。
【図１１】本発明の一実施例に係るスプレッドシート（表がページを跨ぐ場合）の一例である。
【図１２】図１１のスプレッドシートの第１領域及び第２領域の分類例である。
【図１３】本発明の一実施例に係るスプレッドシートの第１領域におけるセル幅／高さを説明する図である。
【図１４】本発明の一実施例に係るスプレッドシートの第１領域の第１のセル幅情報及びセル高さ情報を示すテーブルである。
【図１５】印刷用紙におけるページ印字幅／ページ印字高さを説明する図である。
【図１６】本発明の一実施例に係るスプレッドシートの第２領域におけるセル幅／高さを説明する図である。
【図１７】スプレッドシートの表を印刷する場合の問題点を説明する図である。
【発明を実施するための形態】
【００１６】
背景技術で示したように、Excelのようなスプレッドシートを用いて、シート内のセルにセルデータを入力して表を作成する事が日常的に行われているが、表の印刷において、ユーザの編集ミスやフォントの代替などにより、セル内のデータ長が変化することがあり、セルデータがセル内に収まりきらずにセル内の文字や数字が切れて印刷されるといった不具合が生じる場合がある。
【００１７】
この問題に対して、特許文献１では、印刷範囲内の各列に対して最大セル幅を割り当てているが、ワークシートには複数の表、説明文やグラフ等の様々なコンテンツが配置されることが多く、例えば、図１７（ａ）に示すように、セル幅を無視してセル幅を大幅に超えるデータ長の文字列を配置することがある。そのため、このようなワークシートに対して、特許文献１の技術を適用した場合、図１７（ｂ）に示すように、セル幅が大幅に変更され、印刷レイアウトや印刷ページ数が大きく変化するという問題が生じる。また、特許文献２では、ワークシートから表計算に関与するセルを含む連続した行／列の領域を抽出し、抽出した複数の領域を並べて表示しており、この方法でも印刷レイアウトが大きく変化してしまう。
【００１８】
そこで、本発明の一実施の形態では、セルのサイズ（幅や高さ）をワークシート全体に対して一律に調整するのではなく、一部の領域に対して適用可能にすることにより、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果が得られるようにする。
【００１９】
具体的には、スプレッドシートの印刷を制御する印刷制御装置では、スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキスト幅に応じてセル幅及び／又はセル高さを調整する第１領域を抽出し、第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、第１領域以外の第２領域は、スプレッドシートで指定された第２のセル幅及び／又はセル高さで描画処理を行い、ワークシート内の第１領域及び第２領域を描画した印刷用データを生成して出力するようにする。
【実施例】
【００２０】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る印刷制御装置、印刷制御プログラム及び印刷制御方法について、図１乃至図１６を参照して説明する。図１及び図２は、本実施例のシステムの構成を示す模式図であり、図３及び図４は、各々、クライアント端末、印刷装置の構成を示すブロック図である。また、図５乃至図８は、本実施例の印刷装置の処理を示すフローチャート図であり、図９乃至図１２は、本実施例のスプレッドシートの一例である。また、図１３は、本実施例のスプレッドシートの第１領域におけるセル幅／高さを説明する図であり、図１４は、スプレッドシートの第１領域の第１のセル幅情報及びセル高さ情報を示すテーブルである。また、図１５は、印刷用紙におけるページ印字幅／ページ印字高さを説明する図であり、図１６は、本実施例のスプレッドシートの第２領域におけるセル幅／高さを説明する図である。
【００２１】
図１に示すように、本実施例のシステム１０は、クライアント装置２０と印刷装置３０などで構成される。これらはイーサネット（登録商標）、トークンリング、ＦＤＤＩ（Fiber-Distributed Data Interface）等の規格により定められるＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等の通信ネットワーク５０を介して接続されている。
【００２２】
なお、図１では、システム１０をクライアント装置２０と印刷装置３０とで構成したが、図２に示すように、印刷装置３０を制御するコントローラ４０を配置してもよく、その場合、印刷装置３０とコントローラ４０とはＰＣＩ（Peripheral Component Interconnect）接続などの専用線で接続してもよい。また、予め記憶したスプレッドシートのデータに基づいて印刷を行う場合は、クライアント装置２０を省略してもよいし、印刷を行わない場合は、印刷装置３０を省略してもよい。以下、図１のシステム１０を前提にして、各装置について説明する。
【００２３】
［クライアント装置］
クライアント装置２０は、パーソナルコンピュータなどのコンピュータ装置、スマートフォンやタブレットなどの携帯端末などであり、スプレッドシートのデータを作成して印刷装置３０に送信する。このクライアント装置２０は、図３（ａ）に示すように、制御部２１、記憶部２５、ネットワークＩ／Ｆ部２６、表示部２７、操作部２８などで構成される。
【００２４】
制御部２１は、ＣＰＵ（Central Processing Unit）２２と、ＲＯＭ（Read Only Memory）２３やＲＡＭ（Random Access Memory）２４などのメモリとで構成され、ＣＰＵ２２は、ＲＯＭ２３や記憶部２５に記憶した制御プログラムをＲＡＭ２４に展開して実行することにより、クライアント装置２０全体の動作を制御する。また、図３（ｂ）に示すように、上記制御部２１（ＣＰＵ２２）により、ＯＳ（Operating System）２１ａ、アプリケーション２１ｂ、ダイレクトプリントユーティリティ２１ｃなどが実行される。
【００２５】
ＯＳ２１ａは、Windows（登録商標）やMac OS（登録商標）、Android（登録商標）などであり、クライアント装置２０でアプリケーション２１ｂやダイレクトプリントユーティリティ２１ｃなどを動作可能にする。
【００２６】
アプリケーション２１ｂは、MicrosoftのExcelなどの表計算アプリケーション（スプレッドシート）であり、ワークシート内に、文字、表、図形などのコンテンツが配置されたデータを作成する。このスプレッドシートのデータには、ページ数、ページサイズ（ページ印字幅、ページ印字高さ）、コンテンツ情報（サイズ、描画位置等）などを規定する印刷設定情報が含まれる。
【００２７】
ダイレクトプリントユーティリティ２１ｃは、所定のフォルダ（例えば、記憶部２５内のフォルダ）を監視し、スプレッドシートのデータが所定のフォルダに保存されたら、印刷装置３０に当該データを送信してダイレクトプリントを指示する。
【００２８】
記憶部２５は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成され、ＣＰＵ２２が各部を制御するためのプログラム、スプレッドシートのデータなどを保存する。
【００２９】
ネットワークＩ／Ｆ部２６は、ＮＩＣ（Network Interface Card）やモデムなどで構成され、クライアント装置２０を通信ネットワーク５０に接続し、印刷装置３０にスプレッドシートのデータを送信可能にする。
【００３０】
表示部２７は、液晶表示装置（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（electroluminescence）表示装置などで構成され、アプリケーション２１ｂの画面や必要に応じて印刷プレビュー画面などを表示する。
【００３１】
操作部２８は、マウスやキーボードなどで構成され、アプリケーション２１ｂを用いたスプレッドシートのデータの作成、ダイレクトプリントの指示などの操作を可能にする。
【００３２】
なお、図３（ｂ）では、ダイレクトプリントユーティリティ２１ｃを用いて印刷指示を行う構成としたが、プリンタドライバを用いて印刷を指示することもできる。その場合は、制御部２１により、プリンタドライバが実行され、プリンタドライバは、アプリケーション２１ｂによって作成されたスプレッドシートのデータを、ＰＪＬ（Printer Job Language）やＰＳ（PostScript）、ＰＣＬ（Printer Control Language）等のページ記述言語で記述されたＰＤＬ（Page Description Language）の印刷ジョブに変換して印刷装置３０に送信する。
【００３３】
［印刷装置］
印刷装置３０は、クライアント装置２０から受信したスプレッドシートのデータに基づいて、印刷を実行する。この印刷装置３０は、図４（ａ）に示すように、制御部３１、記憶部３５、ネットワークＩ／Ｆ部３６、表示操作部３７、印刷処理部３８などで構成される。
【００３４】
制御部３１は、ＣＰＵ３２と、ＲＯＭ３３やＲＡＭ３４などのメモリとで構成され、ＣＰＵ３２は、ＲＯＭ３３や記憶部３５に記憶した制御プログラムをＲＡＭ３４に展開して実行することにより、印刷装置３０全体の動作を制御する。また、図４（ｂ）に示すように、制御部３１は、領域抽出部３１ａ、描画処理部３１ｂなどとして機能する。
【００３５】
領域抽出部３１ａは、クライアント装置２０からスプレッドシートのデータを取得して解析し、ページ数、ページサイズ（ページ印字幅、ページ印字高さ）、コンテンツ情報（サイズ、描画位置等）などを規定する印刷設定情報を取得する。そして、印刷対象のワークシートの中から、セル内のテキストの幅及び／又は高さ（テキストの幅又は高さの少なくとも一方）に応じてセル幅及び／又はセル高さ（セル幅又はセル高さの少なくとも一方）を調整する第１領域を抽出（表若しくはユーザに指定された領域を含む行又は列を第１領域として抽出）し、他の領域を第２領域として抽出する。なお、テキストの幅及び／又は高さは、印刷時の幅及び／又は高さである。また、表を抽出する方法は特に限定されないが、例えば、文字や数字などのデータが存在するセルが連続する領域、枠線が付加されたセルが連続する領域、色が付加された領域、他のセルから引用されるセルを含む領域などを表として抽出することができる。
【００３６】
描画処理部３１ｂは、ＲＩＰ（Raster Image Processor）部として機能し、スプレッドシートのデータをラスタライズして印刷用データを生成し、生成した印刷用データを印刷処理部３８に出力して印刷を指示したり、表示操作部３７に出力して印刷プレビュー画面の表示を指示したりする。具体的には、第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、第２領域は、スプレッドシートで指定された第２のセル幅及び／又はセル高さで描画処理を行い、ワークシート内の第１領域及び第２領域を描画した印刷用データを生成して印刷処理部３８に出力して印刷を指示したり、表示操作部３７に出力して印刷プレビュー画面の表示を指示したりする。
【００３７】
上記第１領域に関して、各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に調整する初期調整を行った後、第１領域の各列のセル幅を合算した総セル幅及び各行のセル高さを合算した総セル高さを算出し、総セル幅及び／又は総セル高さと、ワークシートの全印刷ページの総ページ印字幅及び／又は総ページ印字高さと、を比較（幅又は高さの少なくとも一方を比較）し、その比較結果に基づいて、第１領域のセル幅及び／又はセル高さを調整する。例えば、総セル幅が総ページ印字幅よりも大きい場合、総セル幅が総ページ印字幅以下となるように、第１領域の所定の列のセル幅を狭め、狭めたセル幅ではテキストが収まらないセルが生じる場合は、当該セルを含む行のセル高さを大きくする。また、総セル高さが総ページ印字高さよりも大きい場合、総セル高さが総ページ印字高さ以下となるように、第１領域の所定の行のセル高さを小さくし、小さくしたセル高さではテキストが収まらないセルが生じる場合は、当該セルを含む列のセル幅を広げる。その際、領域抽出部３１ａがワークシートから複数の第１領域を抽出した場合は、第１領域毎に上述した調整を行う。
【００３８】
なお、上記領域抽出部３１ａ、描画処理部３１ｂはハードウェアとして構成してもよいし、制御部３１を領域抽出部３１ａ、描画処理部３１ｂとして機能させる印刷制御プログラムとして構成し、当該印刷制御プログラムをＣＰＵ３２に実行させるようにしてもよい。
【００３９】
記憶部３５は、ＨＤＤやＳＳＤなどで構成され、ＣＰＵ３２が各部を制御するためのプログラム、クライアント装置２０から受信したスプレッドシートのデータ、描画処理部３１ｂが生成した印刷用データ、第１領域のセル幅情報やセル高さ情報を記述したテーブルなどを保存する。
【００４０】
ネットワークＩ／Ｆ部３６は、ＮＩＣやモデムなどで構成され、印刷装置３０を通信ネットワーク５０に接続し、クライアント装置２０からスプレッドシートのデータを受信可能にする。
【００４１】
表示操作部３７は、表示部上に透明電極が格子状に配置された感圧式の操作部（タッチセンサ）を設けたタッチパネルなどであり、印刷処理に関する各種画面（必要に応じて、印刷プレビュー画面）を表示し、印刷に関する各種操作を可能にする。なお、ここでは表示部と操作部とが一体的に構成される表示操作部３７を設けているが、表示部と操作部とは別々の装置としてもよい。
【００４２】
印刷処理部３８は、給紙部から供給される用紙に印刷用データに基づく印刷画像を形成して排紙部に出力する印刷エンジンである。この印刷処理部３８は、例えば、印刷画像に基づいてレーザ光を照射して露光する露光部と、感光体ドラムと現像部と帯電部と感光体クリーニング部と１次転写ローラとを備え、ＣＭＹＫの各色のトナー像を形成する画像形成部と、ローラによって回転され、画像形成部で形成されたトナー像を用紙に搬送する中間転写体として機能する中間ベルトと、中間ベルト上に形成されたトナー像を用紙に転写する２次転写ローラと、用紙に転写されたトナー像を定着させる定着部などで構成される。
【００４３】
なお、図１乃至図４は、本実施例のシステム１０の一例であり、各装置の構成や制御は適宜変更可能である。
【００４４】
例えば、上記では、印刷装置３０が印刷制御を行う（印刷装置３０を印刷制御装置として動作させる）場合について記載したが、図２に示すように、コントローラ４０が印刷装置３０とは別に配置される（コントローラ４０を印刷制御装置として動作させる）場合は、コントローラ４０の制御部を領域抽出部、描画処理部として機能させる（ＣＰＵに印刷制御プログラムを実行させる）ようにしてもよい。また、クライアント装置２０を印刷制御装置として動作させる場合は、クライアント装置２０の制御部２１を領域抽出部、描画処理部として機能させる（ＣＰＵ２２に印刷制御プログラムを実行させる）ようにしてもよい。
【００４５】
以下、本実施例の印刷装置３０の動作について具体的に説明する。ＣＰＵ３２は、ＲＯＭ３３又は記憶部３５に記憶した印刷制御プログラムをＲＡＭ３４に展開して実行することにより、図５乃至図８のフローチャート図に示す各ステップの処理を実行する。
【００４６】
［全体処理］
図５に示すように、印刷装置３０の制御部３１（領域抽出部３１ａ）は、セル内のテキストの幅及び／又は高さに応じてセル幅及び／又はセル高さを調整する第１領域を抽出する第１領域抽出処理を実行し（Ｓ１０１）、制御部３１（描画処理部３１ｂ）は、第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、第１領域以外の第２領域は、スプレッドシートで指定されたセル幅及び／又はセル高さで描画処理を行い、ワークシート内の第１領域及び第２領域を描画した印刷用データを生成して出力する描画処理を実行する（Ｓ１０２）。
【００４７】
上記の第１領域抽出処理は、外部（ユーザ）から指定される指定領域に基づいて抽出するケースと、スプレッドシートのデータの中から、表コンテンツを抽出し、表コンテンツに基づいて抽出するケースの２つが存在する。以下、各々のケースについて説明する。
【００４８】
［第１領域抽出処理（指定領域から抽出する場合）］
図６に示すように、制御部３１（領域抽出部３１ａ）は、スプレッドシートのデータを受信したら（Ｓ２０１）、外部（ユーザ）による、領域の指定があるかを判断する（Ｓ２０２）。領域の指定がある場合は（Ｓ２０２のＹｅｓ）、指定領域を含む行又は列を第１領域として抽出する（Ｓ２０３）。
【００４９】
例えば、図９に示すように、ユーザにより、領域（ハッチングで示す領域）が指定された場合、図１０に示すように、その指定領域を含む行又は列（図では指定領域を含む行）を第１領域として抽出し、その他の領域を第２領域として抽出する。また、図１１に示すように、指定領域が複数ページに跨っている場合も、図１２に示すように、その指定領域を含む行又は列（図では指定領域を含む行）を第１領域として抽出し、その他の領域を第２領域として抽出する。
【００５０】
［第１領域抽出処理（表コンテンツから抽出する場合）］
図７に示すように、制御部３１（領域抽出部３１ａ）は、スプレッドシートのデータを受信したら（Ｓ３０１）、データを解析して表コンテンツを抽出し（Ｓ３０２）、表コンテンツがある場合は（Ｓ３０２のＹｅｓ）、その表コンテンツを含む行又は列を第１領域として抽出する（Ｓ３０３）。そして、Ｓ３０２、Ｓ３０３の処理をデータの解析処理が完了するまで繰り返し実行する。
【００５１】
例えば、図９に示すように、ｎ（ｎは２以上の正数）×ｍ（ｍは２以上の正数）からなる一群のセルにデータが存在し、行方向及び／又は列方向のデータが同じ種類のデータ（文字データ又は数字データ）で構成されている場合は、このデータが存在するセルが連続する領域を表として抽出する。また、複数のセルに枠線が付加されている場合は、枠線が付加されたセルが連続する領域を表として抽出する。また、複数のセルに色が付加されている場合は、色が付加された領域を表として抽出する。また、セルが他のセルから参照されている場合も、他のセルから引用されるセルを含む領域を表として抽出する。そして、図１０に示すように、例えば、色を付加した部分（図ではハッチングで色を表現している。）を表として抽出した場合、表を含む行又は列（図では表を含む行）を第１領域として抽出し、その他の領域を第２領域として抽出する。また、図１１に示すように、表が複数ページに跨っている場合も、図１２に示すように、表を含む行又は列（図では表を含む行）を第１領域として抽出し、その他の領域を第２領域として抽出する。
【００５２】
［描画処理］
図８に示すように、制御部３１（描画処理部３１ｂ）は、スプレッドシートの描画対象領域が、図６又は図７のフローチャート図に従って抽出された第１領域であるかを判断する（Ｓ４０１）。
【００５３】
描画対象領域が第１領域の場合は（Ｓ４０１のＹｅｓ）、制御部３１（描画処理部３１ｂ）は、予め定めたルールに従って初期調整した第１のセル幅及び／又は高さ情報を取得する（Ｓ４０２）。この第１のセル幅及び／又は高さの初期調整の手法は特に限定されないが、例えば、第１領域の各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に調整するなどして初期調整することができる。図１３は、図１０の表に対して、第１のセル幅／高さを初期調整した例を示しており、Ｂ列の最大データ長は「グランフロント梅田店」の文字列であるため、その最大データ長に合わせてＢ列のセル幅を調整（広く）する。また、Ｈ列の最大データ長は「備考」の文字列であるため、その最大データ長に合わせてＨ列のセル幅を調整（狭く）する。なお、このステップは省略可能であり、スプレッドシートで指定された第１のセル幅／高さに対して以下の調整を行っても良い。
【００５４】
次に、制御部３１（描画処理部３１ｂ）は、総セル幅及び／又は総セル高さを算出する（Ｓ４０３）。図１３に示すように、第１領域の各セルの幅を加算した値が総セル幅となり、第１領域の各セルの高さを加算した値が総セル高さとなる。図１４は、第１のセル幅情報及び第１のセル高さ情報を記載したテーブルであり、このテーブルを初期調整時に作成しておくことにより、総セル幅及び／又は総セル高さを算出することができる。
【００５５】
次に、制御部３１（描画処理部３１ｂ）は、総ページ印字幅及び／又は総ページ印字高さを算出する（Ｓ４０４）。図１５は、１ページのページ印字幅／ページ印字高さを示しており、第１領域の抽出元である表若しくは指定領域を含む全印刷ページ（例えば、図９の場合は１ページ、図１１の場合は２ページ）のページ印字幅／ページ印字高さを合算して総ページ印字幅及び／又は総ページ印字高さを算出する。
【００５６】
次に、制御部３１（描画処理部３１ｂ）は、総セル幅及び／又は総セル高さが、総ページ印字幅及び／又は総ページ印字高さよりも大きいかを判断する（Ｓ４０５）。総セル幅及び／又は総セル高さが、総ページ印字幅及び／又は総ページ印字高さよりも大きい場合は（Ｓ４０５のＹｅｓ）、ページレイアウト（印刷ページ数）が変化することを抑止するために、総セル幅及び／又は総セル高さが、総ページ印字幅及び／又は総ページ印字高さ以下となるように、第１のセル幅（高さ）を調整し（Ｓ４０６）、更に、文字欠損が生じないように、第１のセル高さ（幅）を調整する（Ｓ４０７）。
【００５７】
すなわち、セル幅を狭くすることにより、セル内のテキストがセル内に収まらなくなり、描画時に文字欠損が生じる可能性があるため、セル幅を狭くした場合には、併せてセル高さの調整を行い（セル高さを大きくし）、セル幅を狭くすることで幅方向に収まりきれなくなった文字列を、セル内で改行することによって描画できるようにする。また、セル高さを小さくすることにより、セル内に複数行で描画されていたテキストがセル内に収まらなくなり、描画時に文字欠損が生じる可能性があるため、セル高さを小さくした場合には、併せてセル幅の調整を行い（セル幅を広くし）、セル高さを小さくすることで高さ方向に収まりきれなくなった文字列を、セル内で改行せずに描画できるようにする。
【００５８】
その後、制御部３１（描画処理部３１ｂ）は、第１のセル幅及び／又は高さ情報を用いて印刷用データを生成する（Ｓ４０８）。
【００５９】
一方、Ｓ４０１で描画対象領域が第１領域でない（第２領域の）場合は（Ｓ４０１のＮｏ）、制御部３１（描画処理部３１ｂ）は、スプレッドシートの印刷設定情報で指定されたセル幅及び／又は高さ情報を用いて印刷用データを生成する（Ｓ４０９）。例えば、図１６に示すように、第２領域に関しては、図１０の印刷レイアウトのままで印刷用データを生成する。
【００６０】
そして、Ｓ４０１〜Ｓ４０９の処理を、スプレッドシートの全印刷ページの全領域の描画が完了するまで、繰り返し実行し、その後、制御部３１（描画処理部３１ｂ）は、生成した印刷用データを印刷処理部３８に出力して印刷を指示したり、表示操作部３７に出力して印刷プレビュー画面の表示を指示したりする。
【００６１】
なお、上記フローでは、Ｓ４０１で描画対象領域が第１領域でない（第２領域の）場合、スプレッドシートで指定されたセル幅及びセル高さ情報を用いて印刷用データを生成したが、描画に影響がなければ、第２領域を描画する際も、第１のセル幅／高さ情報を用いても良い。
【００６２】
以上説明したように、スプレッドシートの印刷を制御する印刷制御装置では、スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキスト幅に応じてセル幅及び／又はセル高さを調整する第１領域を抽出し、第１領域は、予め定めたルールに従ってセル幅及び／又はセル高さを調整して描画処理を行い、第１領域以外の第２領域は、スプレッドシートで指定された第２のセル幅及び／又はセル高さで描画処理を行い、ワークシート内の第１領域及び第２領域を描画した印刷用データを生成して出力することにより、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果を得ることができる。
【００６３】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【００６４】
例えば、上記実施例では、印刷装置３０が印刷制御を行う場合を示したが、クライアント装置２０が上述した印刷制御を行うようにしてもよい。その場合は、クライアント装置２０の制御部２１（ダイレクトプリントユーティリティ２１ｃ又はプリンタドライバ）に、領域抽出部及び描画処理部の機能を持たせ、描画処理部は、第１領域については第１のセル幅及び／又は高さ情報を用いて印刷用データ（印刷画像又は表示画像）を生成し、第２領域についてはスプレッドシートで指定されたセル幅及び／又は高さ情報を用いて印刷用データ（印刷画像又は表示画像）を生成し、生成した印刷画像を印刷装置３０に出力して印刷を指示したり、生成した表示画像を表示部２７に出力して印刷プレビュー画面の表示を指示したりすることができる。
【００６５】
また、上記実施例では、描画対象領域が第１領域の場合に、初期調整したセル幅及び／又はセル長を取得した後に、総セル幅及び／又は総セル高さが総ページ印字幅及び／又は総ページ印字高さよりも大きいかを判断したが、スプレッドシートで指定されたセル幅及び／又はセル長に基づいて、総セル幅及び／又は総セル高さが総ページ印字幅及び／又は総ページ印字高さよりも大きいかを判断してもよい。
【００６６】
また、上記実施例では、スプレッドシートとしてMicrosoftのExcelを例示したが、任意の表計算アプリケーションに対して、本発明の印刷制御方法を同様に適用することができる。
【産業上の利用可能性】
【００６７】
本発明は、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム、当該印刷制御プログラムを記録した記録媒体及び当該印刷制御装置を含むシステムにおける印刷制御方法に利用可能である。
【符号の説明】
【００６８】
１０  システム
２０  クライアント装置
２１  制御部
２１ａ  ＯＳ
２１ｂ  アプリケーション
２１ｃ  ダイレクトプリントユーティリティ
２２  ＣＰＵ
２３  ＲＯＭ
２４  ＲＡＭ
２５  記憶部
２６  ネットワークＩ／Ｆ部
２７  表示部
２８  操作部
３０  印刷装置
３１  制御部
３１ａ  領域抽出部
３１ｂ  描画処理部
３２  ＣＰＵ
３３  ＲＯＭ
３４  ＲＡＭ
３５  記憶部
３６  ネットワークＩ／Ｆ部
３７  表示操作部
３８  印刷処理部
４０  コントローラ
５０  通信ネットワーク
【図１】
2019008569.tif 000003
【図２】
2019008569.tif 000004
【図３】
2019008569.tif 000005
【図４】
2019008569.tif 000006
【図５】
2019008569.tif 000007
【図６】
2019008569.tif 000008
【図７】
2019008569.tif 000009
【図８】
2019008569.tif 000010
【図９】
2019008569.tif 000011
【図１０】
2019008569.tif 000012
【図１１】
2019008569.tif 000013
【図１２】
2019008569.tif 000014
【図１３】
2019008569.tif 000015
【図１４】
2019008569.tif 000016
【図１５】
2019008569.tif 000017
【図１６】
2019008569.tif 000018
【図１７】
2019008569.tif 000019