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

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

▶ コニカミノルタ株式会社の特許一覧

特許7009793印刷制御装置、印刷制御プログラム及び印刷制御方法
<>
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図1
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図2
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図3
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図4
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図5
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図6
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図7
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図8
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図9
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図10
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図11
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図12
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図13
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図14
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図15
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図16
  • 特許-印刷制御装置、印刷制御プログラム及び印刷制御方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-17
(45)【発行日】2022-01-26
(54)【発明の名称】印刷制御装置、印刷制御プログラム及び印刷制御方法
(51)【国際特許分類】
   G06F 40/18 20200101AFI20220119BHJP
   G06F 40/106 20200101ALI20220119BHJP
【FI】
G06F40/18
G06F40/106
【請求項の数】 19
(21)【出願番号】P 2017123943
(22)【出願日】2017-06-26
(65)【公開番号】P2019008569
(43)【公開日】2019-01-17
【審査請求日】2020-06-15
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】110000671
【氏名又は名称】八田国際特許業務法人
(72)【発明者】
【氏名】青山 泰史
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2011-037097(JP,A)
【文献】特開平06-223072(JP,A)
【文献】特開2013-065164(JP,A)
【文献】特開2017-037486(JP,A)
【文献】特開平06-019892(JP,A)
【文献】特開平08-180046(JP,A)
【文献】特表2013-530446(JP,A)
【文献】特開2012-060368(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-186
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
スプレッドシートの印刷を制御する印刷制御装置であって、
前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び/又は高さに応じてセル幅及び/又はセル高さを調整する第1領域を抽出する領域抽出部と、
前記第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、前記第1領域以外の第2領域は、前記スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、前記ワークシート内の前記第1領域及び前記第2領域を描画した印刷用データを生成して出力する描画処理部と、を備え
前記領域抽出部は、前記ワークシートの中から、表若しくは指定領域を含む行又は列を前記第1領域として抽出する、
ことを特徴とする印刷制御装置。
【請求項2】
前記領域抽出部は、データが存在するセルが連続する領域、枠線が付加されたセルが連続する領域、色が付加された領域、他のセルから参照されるセルを含む領域の中から選択される少なくとも1つの領域を前記表として抽出する、
ことを特徴とする請求項に記載の印刷制御装置。
【請求項3】
前記描画処理部は、前記第1領域の各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に初期調整する、
ことを特徴とする請求項1または2に記載の印刷制御装置。
【請求項4】
前記描画処理部は、前記第1領域の各列のセル幅を合算した総セル幅及び/又は各行のセル高さを合算した総セル高さを算出し、前記総セル幅及び/又は前記総セル高さと、前記ワークシートの全印刷ページの総ページ印字幅及び/又は総ページ印字高さと、の比較結果に基づいて、前記第1領域のセル幅及び/又はセル高さを調整する、
ことを特徴とする請求項1乃至のいずれか一に記載の印刷制御装置。
【請求項5】
前記描画処理部は、前記総セル幅が前記総ページ印字幅よりも大きい場合、前記総セル幅が前記総ページ印字幅以下となるように、前記第1領域の所定の列のセル幅を狭め、狭めたセル幅ではテキストが収まらないセルが生じる場合は、当該セルを含む行のセル高さを大きくする、
ことを特徴とする請求項に記載の印刷制御装置。
【請求項6】
前記描画処理部は、前記総セル高さが前記総ページ印字高さよりも大きい場合、前記総セル高さが前記総ページ印字高さ以下となるように、前記第1領域の所定の行のセル高さを小さくし、小さくしたセル高さではテキストが収まらないセルが生じる場合は、当該セルを含む列のセル幅を広げる、
ことを特徴とする請求項に記載の印刷制御装置。
【請求項7】
前記描画処理部は、前記ワークシートから複数の前記第1領域を抽出した場合は、前記第1領域毎に、セル幅及び/又はセル高さを調整する、
ことを特徴とする請求項乃至のいずれか一に記載の印刷制御装置。
【請求項8】
前記テキストの幅及び/又は高さは、印刷時の幅及び/又は高さである、
ことを特徴とする請求項1乃至のいずれか一に記載の印刷制御装置。
【請求項9】
前記印刷制御装置は、印刷エンジンを備え、
前記描画処理部は、生成した前記印刷用データを前記印刷エンジンに出力して印刷を指示する、
ことを特徴とする請求項1乃至のいずれか一に記載の印刷制御装置。
【請求項10】
前記印刷制御装置は、表示部を備え、
前記描画処理部は、生成した前記印刷用データを前記表示部に出力して印刷プレビュー画面の表示を指示する、
ことを特徴とする請求項1乃至のいずれか一に記載の印刷制御装置。
【請求項11】
スプレッドシートの印刷を制御する装置で動作する印刷制御プログラムであって、
前記装置に、
前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、表若しくは指定領域を含む行又は列であり、セル内のテキストの幅及び/又は高さに応じてセル幅及び/又はセル高さを調整する第1領域を抽出する領域抽出処理、
前記第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、前記第1領域以外の第2領域は、前記スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、前記ワークシート内の前記第1領域及び前記第2領域を描画した印刷用データを生成して出力する描画処理、を実行させる、
ことを特徴とする印刷制御プログラム。
【請求項12】
前記領域抽出処理では、データが存在するセルが連続する領域、枠線が付加されたセルが連続する領域、色が付加された領域、他のセルから参照されるセルを含む領域の中から選択される少なくとも1つの領域を前記表として抽出する、
ことを特徴とする請求項11に記載の印刷制御プログラム。
【請求項13】
前記描画処理では、前記第1領域の各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に初期調整する、
ことを特徴とする請求項11または12に記載の印刷制御プログラム。
【請求項14】
前記描画処理では、前記第1領域の各列のセル幅を合算した総セル幅及び/又は各行のセル高さを合算した総セル高さを算出し、前記総セル幅及び/又は前記総セル高さと、前記ワークシートの全印刷ページの総ページ印字幅及び/又は総ページ印字高さと、の比較結果に基づいて、前記第1領域のセル幅及び/又はセル高さを調整する、
ことを特徴とする請求項11乃至13のいずれか一に記載の印刷制御プログラム。
【請求項15】
前記描画処理では、前記総セル幅が前記総ページ印字幅よりも大きい場合、前記総セル幅が前記総ページ印字幅以下となるように、前記第1領域の所定の列のセル幅を狭め、狭めたセル幅ではテキストが収まらないセルが生じる場合は、当該セルを含む行のセル高さを大きくする、
ことを特徴とする請求項14に記載の印刷制御プログラム。
【請求項16】
前記描画処理では、前記総セル高さが前記総ページ印字高さよりも大きい場合、前記総セル高さが前記総ページ印字高さ以下となるように、前記第1領域の所定の行のセル高さを小さくし、小さくしたセル高さではテキストが収まらないセルが生じる場合は、当該セルを含む列のセル幅を広げる、ことを特徴とする請求項14に記載の印刷制御プログラム。
【請求項17】
前記描画処理では、前記ワークシートから複数の前記第1領域を抽出した場合は、前記第1領域毎に、セル幅及び/又はセル高さを調整する、
ことを特徴とする請求項13乃至16のいずれか一に記載の印刷制御プログラム。
【請求項18】
前記テキストの幅及び/又は高さは、印刷時の幅及び/又は高さである、
ことを特徴とする請求項11乃至17のいずれか一に記載の印刷制御プログラム。
【請求項19】
スプレッドシートの印刷を制御する印刷制御装置を含むシステムにおける印刷制御方法であって、
前記印刷制御装置は、
前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、表若しくは指定領域を含む行又は列であり、セル内のテキストの幅及び/又は高さに応じてセル幅及び/又はセル高さを調整する第1領域を抽出する領域抽出処理と、
前記第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、前記第1領域以外の第2領域は、前記スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、前記ワークシート内の前記第1領域及び前記第2領域を描画した印刷用データを生成して出力する描画処理と、を実行する、
ことを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷制御装置、印刷制御プログラム及び印刷制御方法に関し、特に、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム及び当該印刷制御装置を含むシステムにおける印刷制御方法に関する。
【背景技術】
【0002】
文書作成や表計算などの処理が可能なオフィススイート・アプリケーションは、オフィスワーク、教育、家庭など、あらゆる場面で一般的に使用されている。オフィススイート・アプリケーションの内の代表的な表計算アプリケーションとして、Microsoft(登録商標、以下省略)のExcel(登録商標、以下省略)が挙げられる。また、Apache OpenOfficeなど、同様の機能を有するアプリケーションも複数流通しており、これらの表計算アプリケーションはスプレッドシート(Spreadsheet)と呼ばれる。
【0003】
上記MicrosoftのExcelのようなスプレッドシートを用いて、ワークシート内のセルに文字や数字などセルデータを入力して表を作成する事が日常的に行われているが、表の印刷において、ユーザの編集ミスやフォントの代替などにより、セル内のデータ長が変化することがあり、セルデータがセル内に収まりきらず、セル内の文字や数字が切れて印刷されるといった不具合が生じる場合がある。
【0004】
この問題に対して、例えば、下記特許文献1には、表の各列について、各列に属するセルに出力されるデータの最大データ長を設定する最大セル幅設定手段と、該最大セル幅設定手段により設定された各列毎の最大データ長を参照して、表出力する各列のセル幅を自動的に調整する出力制御手段と、を有する表出力装置が開示されている。
【0005】
また、上記不具合を解決する技術ではないが、表示に必要な幅や高さの極端に異なるデータを同じセル列またはセル行に体裁よく適切に表示させるために印刷レイアウトを変更する技術として、例えば、下記特許文献2には、縦及び横の枠線によってセルに区画されたワークシートの前記セルに対応してデータを取得するデータ取得手段と、前記データ取得手段により取得した前記データに基づいて表計算処理を行う表計算手段と、前記ワークシートを表示すると共に、表示したワークシートのセル内に前記データ取得手段で取得したデータ又は前記表計算手段で表計算処理後のデータを表示するワークシート表示手段と、前記枠線の位置を設定する枠線位置設定手段と、前記ワークシートを、隣接する複数の前記セルどうしにより形成されるセル群に区分する区分設定手段と、を具備し、前記枠線位置設定手段は、前記区分設定手段により区分された複数の区分に亘る前記枠線を、異なる区分に対して異なる位置に設定可能にする表計算処理装置が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開平05-134826号公報
【文献】特開2000-235606号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記特許文献1の技術では、印刷範囲内の各列に対して、常に最大セル幅が割り当てられるため、全てのセルデータが欠落することなく、確実に表を描画することができる。しかしながら、Excelのような自由度の高いアプリケーションの場合、ワークシートには、特許文献1に記載されているような単一の表だけでなく、その他の様々なコンテンツ(例えば、複数の表、説明文やグラフ等)が配置されることが多い。そして、その中には、セル幅を無視し、セル幅を大幅に超えるデータ長の文字列を配置することがある。そのため、このようなワークシートに対して特許文献1の技術を適用した場合、セル幅が大幅に変更され、印刷レイアウトや印刷ページ数が大きく変化してしまう。
【0008】
また、特許文献2では、ワークシートから表計算に関与するセルを含む連続した行、もしくは、列の領域(表データ領域)を抽出し、抽出した複数の領域を並べて表示するとともに、表示した別々の領域の枠線(罫線)を繋ぐような補間線を表示するようにしており、この方法でも印刷レイアウトが大きく変化してしまう。
【0009】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、スプレッドシートの印刷において、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果を得ることができる印刷制御装置、印刷制御プログラム及び印刷制御方法を提供することにある。
【課題を解決するための手段】
【0010】
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置であって、前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキストの幅及び/又は高さに応じてセル幅及び/又はセル高さを調整する第1領域を抽出する領域抽出部と、前記第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、前記第1領域以外の第2領域は、前記スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、前記ワークシート内の前記第1領域及び前記第2領域を描画した印刷用データを生成して出力する描画処理部と、を備え、前記領域抽出部は、前記ワークシートの中から、表若しくは指定領域を含む行又は列を前記第1領域として抽出することを特徴とする。
【0011】
本発明の一側面は、スプレッドシートの印刷を制御する装置で動作する印刷制御プログラムであって、前記装置に、前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、表若しくは指定領域を含む行又は列であり、セル内のテキストの幅及び/又は高さに応じてセル幅及び/又はセル高さを調整する第1領域を抽出する領域抽出処理、前記第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、前記第1領域以外の第2領域は、前記スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、前記ワークシート内の前記第1領域及び前記第2領域を描画した印刷用データを生成して出力する描画処理、を実行させることを特徴とする。
【0012】
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置を含むシステムにおける印刷制御方法であって、前記印刷制御装置は、前記スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、表若しくは指定領域を含む行又は列であり、セル内のテキストの幅及び/又は高さに応じてセル幅及び/又はセル高さを調整する第1領域を抽出する領域抽出処理と、前記第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、前記第1領域以外の第2領域は、前記スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、前記ワークシート内の前記第1領域及び前記第2領域を描画した印刷用データを生成して出力する描画処理と、を実行することを特徴とする。
【発明の効果】
【0013】
本発明の印刷制御装置、印刷制御プログラム及び印刷制御方法によれば、スプレッドシートの印刷において、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果を得ることができる。
【0014】
その理由は、スプレッドシートの印刷を制御する印刷制御装置(印刷制御プログラム)は、スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキスト幅に応じてセル幅及び/又はセル高さを調整する第1領域を抽出し、第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、第1領域以外の第2領域は、スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、ワークシート内の第1領域及び第2領域を描画した印刷用データを生成して出力するからである。
【図面の簡単な説明】
【0015】
図1】本発明の一実施例に係るシステムの構成を示す模式図である。
図2】本発明の一実施例に係るシステムの構成を示す模式図である。
図3】本発明の一実施例に係るクライアント装置の構成を示すブロック図である。
図4】本発明の一実施例に係る印刷装置の構成を示すブロック図である。
図5】本発明の一実施例に係る印刷装置の処理(全体処理)を示すフローチャート図である。
図6】本発明の一実施例に係る印刷装置の処理(第1領域抽出処理)を示すフローチャート図である。
図7】本発明の一実施例に係る印刷装置の処理(第1領域抽出処理)を示すフローチャート図である。
図8】本発明の一実施例に係る印刷装置の処理(描画処理)を示すフローチャート図である。
図9】本発明の一実施例に係るスプレッドシート(表が1ページ内に収まる場合)の一例である。
図10図9のスプレッドシートの第1領域及び第2領域の分類例である。
図11】本発明の一実施例に係るスプレッドシート(表がページを跨ぐ場合)の一例である。
図12図11のスプレッドシートの第1領域及び第2領域の分類例である。
図13】本発明の一実施例に係るスプレッドシートの第1領域におけるセル幅/高さを説明する図である。
図14】本発明の一実施例に係るスプレッドシートの第1領域の第1のセル幅情報及びセル高さ情報を示すテーブルである。
図15】印刷用紙におけるページ印字幅/ページ印字高さを説明する図である。
図16】本発明の一実施例に係るスプレッドシートの第2領域におけるセル幅/高さを説明する図である。
図17】スプレッドシートの表を印刷する場合の問題点を説明する図である。
【発明を実施するための形態】
【0016】
背景技術で示したように、Excelのようなスプレッドシートを用いて、シート内のセルにセルデータを入力して表を作成する事が日常的に行われているが、表の印刷において、ユーザの編集ミスやフォントの代替などにより、セル内のデータ長が変化することがあり、セルデータがセル内に収まりきらずにセル内の文字や数字が切れて印刷されるといった不具合が生じる場合がある。
【0017】
この問題に対して、特許文献1では、印刷範囲内の各列に対して最大セル幅を割り当てているが、ワークシートには複数の表、説明文やグラフ等の様々なコンテンツが配置されることが多く、例えば、図17(a)に示すように、セル幅を無視してセル幅を大幅に超えるデータ長の文字列を配置することがある。そのため、このようなワークシートに対して、特許文献1の技術を適用した場合、図17(b)に示すように、セル幅が大幅に変更され、印刷レイアウトや印刷ページ数が大きく変化するという問題が生じる。また、特許文献2では、ワークシートから表計算に関与するセルを含む連続した行/列の領域を抽出し、抽出した複数の領域を並べて表示しており、この方法でも印刷レイアウトが大きく変化してしまう。
【0018】
そこで、本発明の一実施の形態では、セルのサイズ(幅や高さ)をワークシート全体に対して一律に調整するのではなく、一部の領域に対して適用可能にすることにより、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果が得られるようにする。
【0019】
具体的には、スプレッドシートの印刷を制御する印刷制御装置では、スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキスト幅に応じてセル幅及び/又はセル高さを調整する第1領域を抽出し、第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、第1領域以外の第2領域は、スプレッドシートで指定された第2のセル幅及び/又はセル高さで描画処理を行い、ワークシート内の第1領域及び第2領域を描画した印刷用データを生成して出力するようにする。
【実施例
【0020】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る印刷制御装置、印刷制御プログラム及び印刷制御方法について、図1乃至図16を参照して説明する。図1及び図2は、本実施例のシステムの構成を示す模式図であり、図3及び図4は、各々、クライアント端末、印刷装置の構成を示すブロック図である。また、図5乃至図8は、本実施例の印刷装置の処理を示すフローチャート図であり、図9乃至図12は、本実施例のスプレッドシートの一例である。また、図13は、本実施例のスプレッドシートの第1領域におけるセル幅/高さを説明する図であり、図14は、スプレッドシートの第1領域の第1のセル幅情報及びセル高さ情報を示すテーブルである。また、図15は、印刷用紙におけるページ印字幅/ページ印字高さを説明する図であり、図16は、本実施例のスプレッドシートの第2領域におけるセル幅/高さを説明する図である。
【0021】
図1に示すように、本実施例のシステム10は、クライアント装置20と印刷装置30などで構成される。これらはイーサネット(登録商標)、トークンリング、FDDI(Fiber-Distributed Data Interface)等の規格により定められるLAN(Local Area Network)やWAN(Wide Area Network)等の通信ネットワーク50を介して接続されている。
【0022】
なお、図1では、システム10をクライアント装置20と印刷装置30とで構成したが、図2に示すように、印刷装置30を制御するコントローラ40を配置してもよく、その場合、印刷装置30とコントローラ40とはPCI(Peripheral Component Interconnect)接続などの専用線で接続してもよい。また、予め記憶したスプレッドシートのデータに基づいて印刷を行う場合は、クライアント装置20を省略してもよいし、印刷を行わない場合は、印刷装置30を省略してもよい。以下、図1のシステム10を前提にして、各装置について説明する。
【0023】
[クライアント装置]
クライアント装置20は、パーソナルコンピュータなどのコンピュータ装置、スマートフォンやタブレットなどの携帯端末などであり、スプレッドシートのデータを作成して印刷装置30に送信する。このクライアント装置20は、図3(a)に示すように、制御部21、記憶部25、ネットワークI/F部26、表示部27、操作部28などで構成される。
【0024】
制御部21は、CPU(Central Processing Unit)22と、ROM(Read Only Memory)23やRAM(Random Access Memory)24などのメモリとで構成され、CPU22は、ROM23や記憶部25に記憶した制御プログラムをRAM24に展開して実行することにより、クライアント装置20全体の動作を制御する。また、図3(b)に示すように、上記制御部21(CPU22)により、OS(Operating System)21a、アプリケーション21b、ダイレクトプリントユーティリティ21cなどが実行される。
【0025】
OS21aは、Windows(登録商標)やMac OS(登録商標)、Android(登録商標)などであり、クライアント装置20でアプリケーション21bやダイレクトプリントユーティリティ21cなどを動作可能にする。
【0026】
アプリケーション21bは、MicrosoftのExcelなどの表計算アプリケーション(スプレッドシート)であり、ワークシート内に、文字、表、図形などのコンテンツが配置されたデータを作成する。このスプレッドシートのデータには、ページ数、ページサイズ(ページ印字幅、ページ印字高さ)、コンテンツ情報(サイズ、描画位置等)などを規定する印刷設定情報が含まれる。
【0027】
ダイレクトプリントユーティリティ21cは、所定のフォルダ(例えば、記憶部25内のフォルダ)を監視し、スプレッドシートのデータが所定のフォルダに保存されたら、印刷装置30に当該データを送信してダイレクトプリントを指示する。
【0028】
記憶部25は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成され、CPU22が各部を制御するためのプログラム、スプレッドシートのデータなどを保存する。
【0029】
ネットワークI/F部26は、NIC(Network Interface Card)やモデムなどで構成され、クライアント装置20を通信ネットワーク50に接続し、印刷装置30にスプレッドシートのデータを送信可能にする。
【0030】
表示部27は、液晶表示装置(LCD:Liquid Crystal Display)や有機EL(electroluminescence)表示装置などで構成され、アプリケーション21bの画面や必要に応じて印刷プレビュー画面などを表示する。
【0031】
操作部28は、マウスやキーボードなどで構成され、アプリケーション21bを用いたスプレッドシートのデータの作成、ダイレクトプリントの指示などの操作を可能にする。
【0032】
なお、図3(b)では、ダイレクトプリントユーティリティ21cを用いて印刷指示を行う構成としたが、プリンタドライバを用いて印刷を指示することもできる。その場合は、制御部21により、プリンタドライバが実行され、プリンタドライバは、アプリケーション21bによって作成されたスプレッドシートのデータを、PJL(Printer Job Language)やPS(PostScript)、PCL(Printer Control Language)等のページ記述言語で記述されたPDL(Page Description Language)の印刷ジョブに変換して印刷装置30に送信する。
【0033】
[印刷装置]
印刷装置30は、クライアント装置20から受信したスプレッドシートのデータに基づいて、印刷を実行する。この印刷装置30は、図4(a)に示すように、制御部31、記憶部35、ネットワークI/F部36、表示操作部37、印刷処理部38などで構成される。
【0034】
制御部31は、CPU32と、ROM33やRAM34などのメモリとで構成され、CPU32は、ROM33や記憶部35に記憶した制御プログラムをRAM34に展開して実行することにより、印刷装置30全体の動作を制御する。また、図4(b)に示すように、制御部31は、領域抽出部31a、描画処理部31bなどとして機能する。
【0035】
領域抽出部31aは、クライアント装置20からスプレッドシートのデータを取得して解析し、ページ数、ページサイズ(ページ印字幅、ページ印字高さ)、コンテンツ情報(サイズ、描画位置等)などを規定する印刷設定情報を取得する。そして、印刷対象のワークシートの中から、セル内のテキストの幅及び/又は高さ(テキストの幅又は高さの少なくとも一方)に応じてセル幅及び/又はセル高さ(セル幅又はセル高さの少なくとも一方)を調整する第1領域を抽出(表若しくはユーザに指定された領域を含む行又は列を第1領域として抽出)し、他の領域を第2領域として抽出する。なお、テキストの幅及び/又は高さは、印刷時の幅及び/又は高さである。また、表を抽出する方法は特に限定されないが、例えば、文字や数字などのデータが存在するセルが連続する領域、枠線が付加されたセルが連続する領域、色が付加された領域、他のセルから引用されるセルを含む領域などを表として抽出することができる。
【0036】
描画処理部31bは、RIP(Raster Image Processor)部として機能し、スプレッドシートのデータをラスタライズして印刷用データを生成し、生成した印刷用データを印刷処理部38に出力して印刷を指示したり、表示操作部37に出力して印刷プレビュー画面の表示を指示したりする。具体的には、第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、第2領域は、スプレッドシートで指定された第2のセル幅及び/又はセル高さで描画処理を行い、ワークシート内の第1領域及び第2領域を描画した印刷用データを生成して印刷処理部38に出力して印刷を指示したり、表示操作部37に出力して印刷プレビュー画面の表示を指示したりする。
【0037】
上記第1領域に関して、各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に調整する初期調整を行った後、第1領域の各列のセル幅を合算した総セル幅及び各行のセル高さを合算した総セル高さを算出し、総セル幅及び/又は総セル高さと、ワークシートの全印刷ページの総ページ印字幅及び/又は総ページ印字高さと、を比較(幅又は高さの少なくとも一方を比較)し、その比較結果に基づいて、第1領域のセル幅及び/又はセル高さを調整する。例えば、総セル幅が総ページ印字幅よりも大きい場合、総セル幅が総ページ印字幅以下となるように、第1領域の所定の列のセル幅を狭め、狭めたセル幅ではテキストが収まらないセルが生じる場合は、当該セルを含む行のセル高さを大きくする。また、総セル高さが総ページ印字高さよりも大きい場合、総セル高さが総ページ印字高さ以下となるように、第1領域の所定の行のセル高さを小さくし、小さくしたセル高さではテキストが収まらないセルが生じる場合は、当該セルを含む列のセル幅を広げる。その際、領域抽出部31aがワークシートから複数の第1領域を抽出した場合は、第1領域毎に上述した調整を行う。
【0038】
なお、上記領域抽出部31a、描画処理部31bはハードウェアとして構成してもよいし、制御部31を領域抽出部31a、描画処理部31bとして機能させる印刷制御プログラムとして構成し、当該印刷制御プログラムをCPU32に実行させるようにしてもよい。
【0039】
記憶部35は、HDDやSSDなどで構成され、CPU32が各部を制御するためのプログラム、クライアント装置20から受信したスプレッドシートのデータ、描画処理部31bが生成した印刷用データ、第1領域のセル幅情報やセル高さ情報を記述したテーブルなどを保存する。
【0040】
ネットワークI/F部36は、NICやモデムなどで構成され、印刷装置30を通信ネットワーク50に接続し、クライアント装置20からスプレッドシートのデータを受信可能にする。
【0041】
表示操作部37は、表示部上に透明電極が格子状に配置された感圧式の操作部(タッチセンサ)を設けたタッチパネルなどであり、印刷処理に関する各種画面(必要に応じて、印刷プレビュー画面)を表示し、印刷に関する各種操作を可能にする。なお、ここでは表示部と操作部とが一体的に構成される表示操作部37を設けているが、表示部と操作部とは別々の装置としてもよい。
【0042】
印刷処理部38は、給紙部から供給される用紙に印刷用データに基づく印刷画像を形成して排紙部に出力する印刷エンジンである。この印刷処理部38は、例えば、印刷画像に基づいてレーザ光を照射して露光する露光部と、感光体ドラムと現像部と帯電部と感光体クリーニング部と1次転写ローラとを備え、CMYKの各色のトナー像を形成する画像形成部と、ローラによって回転され、画像形成部で形成されたトナー像を用紙に搬送する中間転写体として機能する中間ベルトと、中間ベルト上に形成されたトナー像を用紙に転写する2次転写ローラと、用紙に転写されたトナー像を定着させる定着部などで構成される。
【0043】
なお、図1乃至図4は、本実施例のシステム10の一例であり、各装置の構成や制御は適宜変更可能である。
【0044】
例えば、上記では、印刷装置30が印刷制御を行う(印刷装置30を印刷制御装置として動作させる)場合について記載したが、図2に示すように、コントローラ40が印刷装置30とは別に配置される(コントローラ40を印刷制御装置として動作させる)場合は、コントローラ40の制御部を領域抽出部、描画処理部として機能させる(CPUに印刷制御プログラムを実行させる)ようにしてもよい。また、クライアント装置20を印刷制御装置として動作させる場合は、クライアント装置20の制御部21を領域抽出部、描画処理部として機能させる(CPU22に印刷制御プログラムを実行させる)ようにしてもよい。
【0045】
以下、本実施例の印刷装置30の動作について具体的に説明する。CPU32は、ROM33又は記憶部35に記憶した印刷制御プログラムをRAM34に展開して実行することにより、図5乃至図8のフローチャート図に示す各ステップの処理を実行する。
【0046】
[全体処理]
図5に示すように、印刷装置30の制御部31(領域抽出部31a)は、セル内のテキストの幅及び/又は高さに応じてセル幅及び/又はセル高さを調整する第1領域を抽出する第1領域抽出処理を実行し(S101)、制御部31(描画処理部31b)は、第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、第1領域以外の第2領域は、スプレッドシートで指定されたセル幅及び/又はセル高さで描画処理を行い、ワークシート内の第1領域及び第2領域を描画した印刷用データを生成して出力する描画処理を実行する(S102)。
【0047】
上記の第1領域抽出処理は、外部(ユーザ)から指定される指定領域に基づいて抽出するケースと、スプレッドシートのデータの中から、表コンテンツを抽出し、表コンテンツに基づいて抽出するケースの2つが存在する。以下、各々のケースについて説明する。
【0048】
[第1領域抽出処理(指定領域から抽出する場合)]
図6に示すように、制御部31(領域抽出部31a)は、スプレッドシートのデータを受信したら(S201)、外部(ユーザ)による、領域の指定があるかを判断する(S202)。領域の指定がある場合は(S202のYes)、指定領域を含む行又は列を第1領域として抽出する(S203)。
【0049】
例えば、図9に示すように、ユーザにより、領域(ハッチングで示す領域)が指定された場合、図10に示すように、その指定領域を含む行又は列(図では指定領域を含む行)を第1領域として抽出し、その他の領域を第2領域として抽出する。また、図11に示すように、指定領域が複数ページに跨っている場合も、図12に示すように、その指定領域を含む行又は列(図では指定領域を含む行)を第1領域として抽出し、その他の領域を第2領域として抽出する。
【0050】
[第1領域抽出処理(表コンテンツから抽出する場合)]
図7に示すように、制御部31(領域抽出部31a)は、スプレッドシートのデータを受信したら(S301)、データを解析して表コンテンツを抽出し(S302)、表コンテンツがある場合は(S302のYes)、その表コンテンツを含む行又は列を第1領域として抽出する(S303)。そして、S302、S303の処理をデータの解析処理が完了するまで繰り返し実行する。
【0051】
例えば、図9に示すように、n(nは2以上の正数)×m(mは2以上の正数)からなる一群のセルにデータが存在し、行方向及び/又は列方向のデータが同じ種類のデータ(文字データ又は数字データ)で構成されている場合は、このデータが存在するセルが連続する領域を表として抽出する。また、複数のセルに枠線が付加されている場合は、枠線が付加されたセルが連続する領域を表として抽出する。また、複数のセルに色が付加されている場合は、色が付加された領域を表として抽出する。また、セルが他のセルから参照されている場合も、他のセルから引用されるセルを含む領域を表として抽出する。そして、図10に示すように、例えば、色を付加した部分(図ではハッチングで色を表現している。)を表として抽出した場合、表を含む行又は列(図では表を含む行)を第1領域として抽出し、その他の領域を第2領域として抽出する。また、図11に示すように、表が複数ページに跨っている場合も、図12に示すように、表を含む行又は列(図では表を含む行)を第1領域として抽出し、その他の領域を第2領域として抽出する。
【0052】
[描画処理]
図8に示すように、制御部31(描画処理部31b)は、スプレッドシートの描画対象領域が、図6又は図7のフローチャート図に従って抽出された第1領域であるかを判断する(S401)。
【0053】
描画対象領域が第1領域の場合は(S401のYes)、制御部31(描画処理部31b)は、予め定めたルールに従って初期調整した第1のセル幅及び/又は高さ情報を取得する(S402)。この第1のセル幅及び/又は高さの初期調整の手法は特に限定されないが、例えば、第1領域の各列のセル幅を、当該列の各行のセルのデータ長の内の最大データ長に調整するなどして初期調整することができる。図13は、図10の表に対して、第1のセル幅/高さを初期調整した例を示しており、B列の最大データ長は「グランフロント梅田店」の文字列であるため、その最大データ長に合わせてB列のセル幅を調整(広く)する。また、H列の最大データ長は「備考」の文字列であるため、その最大データ長に合わせてH列のセル幅を調整(狭く)する。なお、このステップは省略可能であり、スプレッドシートで指定された第1のセル幅/高さに対して以下の調整を行っても良い。
【0054】
次に、制御部31(描画処理部31b)は、総セル幅及び/又は総セル高さを算出する(S403)。図13に示すように、第1領域の各セルの幅を加算した値が総セル幅となり、第1領域の各セルの高さを加算した値が総セル高さとなる。図14は、第1のセル幅情報及び第1のセル高さ情報を記載したテーブルであり、このテーブルを初期調整時に作成しておくことにより、総セル幅及び/又は総セル高さを算出することができる。
【0055】
次に、制御部31(描画処理部31b)は、総ページ印字幅及び/又は総ページ印字高さを算出する(S404)。図15は、1ページのページ印字幅/ページ印字高さを示しており、第1領域の抽出元である表若しくは指定領域を含む全印刷ページ(例えば、図9の場合は1ページ、図11の場合は2ページ)のページ印字幅/ページ印字高さを合算して総ページ印字幅及び/又は総ページ印字高さを算出する。
【0056】
次に、制御部31(描画処理部31b)は、総セル幅及び/又は総セル高さが、総ページ印字幅及び/又は総ページ印字高さよりも大きいかを判断する(S405)。総セル幅及び/又は総セル高さが、総ページ印字幅及び/又は総ページ印字高さよりも大きい場合は(S405のYes)、ページレイアウト(印刷ページ数)が変化することを抑止するために、総セル幅及び/又は総セル高さが、総ページ印字幅及び/又は総ページ印字高さ以下となるように、第1のセル幅(高さ)を調整し(S406)、更に、文字欠損が生じないように、第1のセル高さ(幅)を調整する(S407)。
【0057】
すなわち、セル幅を狭くすることにより、セル内のテキストがセル内に収まらなくなり、描画時に文字欠損が生じる可能性があるため、セル幅を狭くした場合には、併せてセル高さの調整を行い(セル高さを大きくし)、セル幅を狭くすることで幅方向に収まりきれなくなった文字列を、セル内で改行することによって描画できるようにする。また、セル高さを小さくすることにより、セル内に複数行で描画されていたテキストがセル内に収まらなくなり、描画時に文字欠損が生じる可能性があるため、セル高さを小さくした場合には、併せてセル幅の調整を行い(セル幅を広くし)、セル高さを小さくすることで高さ方向に収まりきれなくなった文字列を、セル内で改行せずに描画できるようにする。
【0058】
その後、制御部31(描画処理部31b)は、第1のセル幅及び/又は高さ情報を用いて印刷用データを生成する(S408)。
【0059】
一方、S401で描画対象領域が第1領域でない(第2領域の)場合は(S401のNo)、制御部31(描画処理部31b)は、スプレッドシートの印刷設定情報で指定されたセル幅及び/又は高さ情報を用いて印刷用データを生成する(S409)。例えば、図16に示すように、第2領域に関しては、図10の印刷レイアウトのままで印刷用データを生成する。
【0060】
そして、S401~S409の処理を、スプレッドシートの全印刷ページの全領域の描画が完了するまで、繰り返し実行し、その後、制御部31(描画処理部31b)は、生成した印刷用データを印刷処理部38に出力して印刷を指示したり、表示操作部37に出力して印刷プレビュー画面の表示を指示したりする。
【0061】
なお、上記フローでは、S401で描画対象領域が第1領域でない(第2領域の)場合、スプレッドシートで指定されたセル幅及びセル高さ情報を用いて印刷用データを生成したが、描画に影響がなければ、第2領域を描画する際も、第1のセル幅/高さ情報を用いても良い。
【0062】
以上説明したように、スプレッドシートの印刷を制御する印刷制御装置では、スプレッドシートのデータを取得して解析し、印刷対象のワークシートの中から、セル内のテキスト幅に応じてセル幅及び/又はセル高さを調整する第1領域を抽出し、第1領域は、予め定めたルールに従ってセル幅及び/又はセル高さを調整して描画処理を行い、第1領域以外の第2領域は、スプレッドシートで指定された第2のセル幅及び/又はセル高さで描画処理を行い、ワークシート内の第1領域及び第2領域を描画した印刷用データを生成して出力することにより、セルデータの欠損がなく、かつ、印刷レイアウトや印刷ページ数への影響を抑制した出力結果を得ることができる。
【0063】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【0064】
例えば、上記実施例では、印刷装置30が印刷制御を行う場合を示したが、クライアント装置20が上述した印刷制御を行うようにしてもよい。その場合は、クライアント装置20の制御部21(ダイレクトプリントユーティリティ21c又はプリンタドライバ)に、領域抽出部及び描画処理部の機能を持たせ、描画処理部は、第1領域については第1のセル幅及び/又は高さ情報を用いて印刷用データ(印刷画像又は表示画像)を生成し、第2領域についてはスプレッドシートで指定されたセル幅及び/又は高さ情報を用いて印刷用データ(印刷画像又は表示画像)を生成し、生成した印刷画像を印刷装置30に出力して印刷を指示したり、生成した表示画像を表示部27に出力して印刷プレビュー画面の表示を指示したりすることができる。
【0065】
また、上記実施例では、描画対象領域が第1領域の場合に、初期調整したセル幅及び/又はセル長を取得した後に、総セル幅及び/又は総セル高さが総ページ印字幅及び/又は総ページ印字高さよりも大きいかを判断したが、スプレッドシートで指定されたセル幅及び/又はセル長に基づいて、総セル幅及び/又は総セル高さが総ページ印字幅及び/又は総ページ印字高さよりも大きいかを判断してもよい。
【0066】
また、上記実施例では、スプレッドシートとしてMicrosoftのExcelを例示したが、任意の表計算アプリケーションに対して、本発明の印刷制御方法を同様に適用することができる。
【産業上の利用可能性】
【0067】
本発明は、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム、当該印刷制御プログラムを記録した記録媒体及び当該印刷制御装置を含むシステムにおける印刷制御方法に利用可能である。
【符号の説明】
【0068】
10 システム
20 クライアント装置
21 制御部
21a OS
21b アプリケーション
21c ダイレクトプリントユーティリティ
22 CPU
23 ROM
24 RAM
25 記憶部
26 ネットワークI/F部
27 表示部
28 操作部
30 印刷装置
31 制御部
31a 領域抽出部
31b 描画処理部
32 CPU
33 ROM
34 RAM
35 記憶部
36 ネットワークI/F部
37 表示操作部
38 印刷処理部
40 コントローラ
50 通信ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17