説明

情報処理装置、情報処理方法およびプログラム

【課題】構造化文書に基づくデータを適切かつ簡単にレイアウトする情報処理装置を提供する。
【解決手段】ユーザによる指示に応じて、構造化文書に基づくデータがレイアウトされるページのページ数を決定し、また構造化文書に基づくデータがレイアウトされるときの当該データの内容が編集可能であるか判定する。そして、その判定結果と、ページ数に応じて、当該ページ数のページに構造化文書に基づくデータをレイアウトする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、構造化文書に基づくデータをレイアウトする情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
近年、インターネット上のWebページにアクセスして様々な情報を得ることが可能となっている。そのWebページは、HTML(Hyper Text Markup Language)又はXHTML(Extensible Hyper Text Markup Language)のような構造化言語で記述された構造化文書である。構造化文書に対応したブラウザと呼ばれるソフトウェアによって、Webページをディスプレイ上に表示したり、プリンタに出力したりすることができる。
【0003】
構造化文書をプリンタに出力する場合にユーザは、ブラウザの印刷プレビューで拡大縮小率を指定して印刷データを拡大/縮小することで、所望のサイズで印刷を行わせることができる。また特許文献1には、最終ページの用紙の後端に余白が多い場合には、最終ページの内容を前ページまでに納めて印刷する方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−219294号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、最終ページの印刷データを前ページまでに納めて印刷するものであり、全体のページ数については考慮されていない。よって、ユーザが所望するページ数で印刷することができない場合がある。所望のページ数で印刷するためには、ブラウザの印刷プレビューで縮小率の指定と印刷プレビューの確認とを繰り返して、縮小率をマニュアル操作で設定していく必要がある。
【0006】
本発明の目的は、このような従来の問題点を解決することにある。本発明は、上記の点に鑑み、構造化文書に基づくデータを適切かつ簡単にレイアウトすることができる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明に係る情報処理装置は、構造化文書に基づくデータをページにレイアウトする情報処理装置であって、ユーザによる指示に応じて、構造化文書に基づくデータがレイアウトされるページのページ数を決定する決定手段と、前記構造化文書に基づき、当該構造化文書に基づくデータがレイアウトされるときの当該データの内容が編集可能であるか判定する判定手段と、前記判定手段による判定結果と、前記決定手段により決定されたページ数に応じて、当該ページ数のページに前記構造化文書に基づくデータをレイアウトするレイアウト手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、構造化文書に基づくデータを適切かつ簡単にレイアウトすることができる。
【図面の簡単な説明】
【0009】
【図1】情報処理装置を含むシステムの構成を示す図である。
【図2】情報処理装置の構成を示すブロック図である。
【図3】実施例1での情報処理装置のソフトウェアの構成を示すブロック図である。
【図4】GUI画面の一例を示す図である。
【図5】印刷プレビューのためのGUI画面の一例を示す図である。
【図6】縮小ボタンの押下に伴う印刷プレビュー画面の変化を示す図である。
【図7】ページ幅が固定タイプの構造化文書について説明するための図である。
【図8】ページ幅が可変タイプの構造化文書について説明するための図である。
【図9】縮小率を解析する処理を説明するための図である。
【図10】本実施例におけるプレビュー表示処理の手順を示すフローチャートである。
【図11】実施例2での情報処理装置のソフトウェアの構成を示すブロック図である。
【図12】本実施例における印刷プレビュー画面の変化を示す図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【0011】
〔実施例1〕
図1は、本発明に係る実施例における情報処理装置を含むシステムの構成を示す図である。情報処理装置であるPC101は、インターネット102を介して複数のWWWサーバ103からWebページをダウンロードして表示する。Webページは、HTMLやXHTMLで記述された構造化文書である。また、PC101は、プリンタ104と接続されており、WWWサーバ103上のWebページを印刷対象文書としてPC101上にダウンロードし、さらにその内容をプリンタ104に印刷することができる。
【0012】
図2は、PC101の構成を示すブロック図である。CPU201は、RAM202、ROM203又はハードディスク204に格納されたプログラムに従って、データや命令を処理する。RAM202は、CPU201が各種処理を行う際の一時記憶領域として用いられる。ハードディスク204は、オペレーティングシステム(OS)や、ブラウザやその他のアプリケーションソフトウェア等を格納する。USBインタフェース205は、USBケーブルが接続されるインタフェースであり、プリンタ104とデータ通信を行うためのインタフェースである。なお、プリンタ104との通信は、USBケーブル以外に、例えばSCSIや無線により行われても良い。
【0013】
表示部206は、CRTや液晶ディスプレイとグラフィックコントローラとを含んで構成され、WWWサーバ103からダウンロードしたWebページや、印刷プレビュー画像、又はグラフィックユーザインタフェース(GUI)等を表示する。入力部207は、ユーザがPC101に対して各種指示を入力するためのブロックであり、例えばポインティングデバイスやキーボードである。システムバス209は、CPU201やRAM202、ROM203、ハードディスク204等を相互に接続する。LANインタフェース208は、LANケーブルが接続されるインタフェースであり、不図示のルータやインターネット102を介して外部のWWWサーバ103とデータ通信を行う。なお、本実施例においてデータ通信は、例えば無線に対応したインタフェースによって無線で行われても良い。また、図2は、表示部206と入力部207が、CPU201及びRAM202を含む制御部と一体となった所謂ノート型のPC101の場合を示している。しかしながら、PC101は、表示部206と入力部207とがそれぞれ別体とされた所謂デスクトップ型であっても良い。
【0014】
図3は、PC101のソフトウェアの構成を示すブロック図である。ブラウザ301は、Webページを表示するためのアプリケーションであり、WWWサーバ103上のWebページをPC101のハードディスク204にダウンロードして表示部206に表示する。Webページは、HTMLやXHTML等の構造化文書であり、テキストや画像等の構造化文書を構成する要素がタグを用いて記述されている。また、これらの要素の表示スタイルを指定するCSS(Cascading Style Sheet)と呼ばれるファイルが構造化文書内に別に指定されている。ブラウザ301は、これらの構造化文書を解析して表示部206に表示する。
【0015】
構造化文書印刷モジュール302は、構造化文書303をパラメータとしてブラウザ301から呼び出されるプラグインソフトウェアであり、ユーザがブラウザ301を起動した際に、ブラウザ301が構造化文書印刷モジュール302を実行する。本実施例においては、この構造化文書印刷モジュール302が、印刷プレビュー画面の表示を行う。その印刷プレビュー表示時に、ユーザが指定したページ数にフィットするように、印刷データを配置する。
【0016】
構造化文書印刷モジュール302において、ユーザインタフェース304は、構造化文書印刷モジュール302の実行と同時に起動される。そして、ブラウザ301のウインドウ内に、印刷を開始するための印刷ボタン及び印刷プレビューを表示するための印刷プレビューボタンが表示される。図4は、ブラウザ301内に印刷ボタン404及び印刷プレビューボタン405を表示された場合のGUI画面の一例を示す図である。詳細については後述する。
【0017】
中間データ抽出部305は、ユーザインタフェース304が表示した印刷ボタン404又は印刷プレビューボタン405が押下された際に、ブラウザ301から構造化文書303を中間データファイルとして抽出する。この中間データファイルは、印刷のためのデータである。中間データファイルはビットマップデータでも良いが、文字情報や図形情報をベクタデータとして保持できるように構成される。例えば、PDF(Portable Document Format)やEMF(Enhanced Metafile Format)等が中間データファイルとして用いられる。
【0018】
印刷レイアウト部306は、中間データ抽出部305が抽出した中間データファイルを印刷設定に従って、用紙サイズにレイアウトする。具体的には、中間データファイルに含まれているテキストデータや画像データといった要素(オブジェクト)を、用紙サイズの領域に配置する。なお、印刷設定は、用紙サイズ、解像度、用紙サイズにおける印刷領域のサイズ等の情報を含み、OS312を介してプリンタドライバ313から取得する。なお、印刷領域のサイズを印刷設定として取得する場合に限らず、用紙に対して設定されている余白の幅の情報を参照して、印刷領域のサイズを決定してもよい。
【0019】
印刷プレビュー部307は、印刷レイアウト部306によりレイアウトされた中間データファイルを印刷プレビューとして表示部206に表示する。図5は、印刷プレビューのためのGUI画面の一例を示す図である。
【0020】
本実施例においては、上記の印刷プレビューが表示されるときに、ページにおける印刷領域の末端に余白を生じさせずに(フィットさせて)、ユーザが指定したページ数になるよう中間データを縮小してレイアウトするためのボタン505を配する。この画面の詳細については後述する。
【0021】
用紙枚数指定部308は、縮小ボタン505の押下時に起動され、現在の印刷設定での印刷用紙枚数(印刷ページ数。ここではn枚とする)を印刷レイアウト部306から取得する。用紙枚数指定部308は、n枚より1枚(1ページ)削減された用紙枚数n−1枚を指定して縮小率解析部309を起動する。
【0022】
縮小率解析部309は、用紙枚数n−1をパラメータとして用紙枚数指定部308により起動され、印刷プレビュー画面501に表示された印刷データ502を、指定された用紙枚数n−1にフィットさせて縮小するための縮小率を解析する。上記n−1枚の用紙におけるページサイズは、プリンタドライバ313から取得した印刷設定(用紙サイズ、印刷領域のサイズ等)から算出される。そして、上記の縮小率は、印刷データのサイズと、上記のページサイズにより決定される。
【0023】
この縮小率で中間データが縮小されることにより、最終ページの高さ方向に不要な余白を生じさせずに、n−1ページで、中間データをレイアウトすることができる。縮小率の解析の詳細については後述する。
【0024】
ページ幅情報検出部310は、構造化文書303のCSSファイルやタグ属性を解析し、構造化文書のページ幅が可変であるか又は固定であるかを検出する。上記の縮小率解析部309は、それぞれの検出結果に応じた縮小方法で縮小率を解析する。このページ幅について、また検出結果に応じた縮小方法についての詳細は後述する。
【0025】
本実施例においては、ページ幅情報検出部310による検出結果に応じた縮小方法で、縮小率解析部309により、縮小率が解析される。そして、その解析された縮小率に従って、印刷レイアウト部306が中間データのレイアウトを行うことにより、印刷データを所定のページにフィットさせるレイアウトを決定することができる。
【0026】
印刷処理部311は、ユーザにより印刷開始指示を受けた場合に、印刷レイアウト部306によりレイアウトされた印刷データの配置情報に従って、必要に応じて印刷設定を変更する。その後、印刷処理部311は、OS312を介してプリンタドライバ313に対し描画処理を実行する。OS312は、構造化文書印刷モジュール302とプリンタドライバ313とが印刷設定データのやり取りを行うためのAPI(Application Programming Interface)や描画処理を行うためのAPIを提供する。また、OS312には、印刷のジョブを管理するスプーラシステムや、プリンタコマンドをポートに出力するポートモニタ等の各種制御ソフトウェアが含まれるが詳細については省略する。プリンタドライバ313は、印刷処理部311により実行された描画処理に従って、印刷データを生成してプリンタコマンドに変換後、その変換されたプリンタコマンドをプリンタ104に送信する。その後、プリンタ104は、用紙に印刷する。
【0027】
図4及び図5について説明する。図4に示すブラウザ301は、Webページである構造化文書303をWebページ表示領域406に表示する。更に、ブラウザ301は、表示するWebページを切り替えるための戻るボタン401、進むボタン402、アドレス入力領域403を含んでいる。さらに、ブラウザ301は、構造化文書印刷モジュール302のユーザインタフェース304が表示する印刷ボタン404及び印刷プレビューボタン405を含んでいる。
【0028】
図5は、図4において印刷プレビューボタン405が押下された場合に表示される印刷プレビュー画面である。印刷プレビュー画面501には、構造化文書303を現在の印刷設定で印刷する場合の印刷プレビュー表示された印刷データ502や、印刷を開始するための印刷ボタン503を含んでいる。また印刷プレビューに表示するページを切り替えるための、ページ切り替えの各種ボタン506や、表示を拡大又は縮小するための表示倍率選択コンボボックス507を含んでいる。表示倍率コンボボックスは、100%、150%、200%、80%、50%、30%の倍率や、サムネイル表示/2ページ表示等の表示倍率から選択可能である。更に、印刷プレビュー画面501には、拡大/縮小印刷のための拡大/縮小率の指定を受付ける拡大/縮小率指定スライダバー504と、用紙にフィットさせて縮小するための指定を受付ける縮小ボタン505(縮小受付ボタン)を含む。この縮小ボタン505が押下されると、最終ページの高さ方向に不要な余白を生じさせずに、所定のページ数で、印刷プレビュー画像を表示することができる。また、本実施例では、この縮小ボタンが押されるたびに、印刷データを更に縮小するようにする。
【0029】
図6は、印刷プレビュー画面501上の縮小ボタン505を繰り返して押下した場合の印刷プレビュー画面の変化を示す図である。図6(a)は、図5に示す印刷プレビュー画面501上の表示倍率選択コンボボックス507による表示倍率でサムネイル表示が選択された場合のGUI画面を示す。サムネイル表示された結果、印刷プレビュー画面501内に8ページの用紙にレイアウトされた印刷イメージが表示されている。8ページ目の用紙601は最終ページであり、用紙の途中で印刷イメージが終了して後端に余白が表示されている。図6(b)は、図6(a)に示す状態で縮小ボタン505が押下された場合の印刷プレビュー画面を示す。
【0030】
図6(b)に示すように、印刷イメージが7ページの用紙にフィットされた状態で表示されている。図6(c)には、図6(b)に示す状態で更に縮小ボタン505が押下された場合の印刷プレビュー画面を示す。図6(c)に示すように、印刷イメージが6ページの用紙にフィットされた状態で表示されている。図6(d)には、図6(c)に示す状態で更に縮小ボタン505が押下された場合の印刷プレビュー画面を示す。図6(d)に示すように、印刷イメージが5ページの用紙にフィットされた状態で表示されている。
【0031】
図6(e)には、図6(d)に示す状態で更に縮小ボタン505が押下された場合の印刷プレビュー画面を示す。図6(e)に示すように、4ページの用紙にフィットされるのではなく、用紙をランドスケープ方向に回転されて2段組みレイアウトに変更されることによって、3ページの用紙にフィットされている。図6(d)における状態から更に縮小した場合に、1枚の用紙に1ページをレイアウトした場合には、ページの幅方向の余白が大きくなってしまうことがわかる。そこで、このように1枚の用紙に対して複数ページをレイアウトすることにより、ページの幅方向の余白を低減させることができる。
【0032】
なお、本実施例においては、縮小率解析部309が必要に応じて、上記のように用紙方向および段組み数を変更する。なお、縮小率解析部309は、当該印刷設定で設定されている印刷領域のサイズを取得して、取得された印刷領域のサイズに応じて、上記の用紙方向、段組み数の変更を行うか(編集可能か否か)判定する。そして、その判定結果で上記の変更を行う場合には、1枚の用紙に対して割り当てられる複数ページのそれぞれにフィットするように、中間データの縮小率を決定する。
【0033】
また、印刷レイアウト部306が、上記の用紙方向、段組み数の変更を行うか判断してもよい。このとき、印刷レイアウト部306が、縮小率解析部309が決定した縮小率により縮小された印刷データのサイズと、当該印刷設定で設定されている印刷領域のサイズとを比較することにより、上記の用紙方向、段組み数の変更を行うか判断する。
【0034】
縮小率解析部309は、用紙方向および段組み数を変更すると決定すると、1枚の用紙に複数ページが割り当てられたときの、1ページのサイズに応じて縮小率を決定する。そして、その縮小率に従って、印刷レイアウト部306がレイアウトを決定する。
【0035】
印刷プレビュー部307は、この決定されたレイアウトに従って、図6(e)に示すような印刷プレビュー画像を表示させる。また、上記のように変更された用紙方向および段組み数を、印刷処理部311に通知して、印刷処理部311に印刷設定を変更させる。これにより、図6(e)の状態でユーザにより印刷の実行が指示されたときに、印刷プレビューに対応した印刷を行うことができる。
【0036】
なお、ここでは、ランドスケープ方向及び2段組みレイアウトを説明した。しかしながら、用紙方向をポートレート又はランドスケープから選択し、段組み数を1段組み、2段組み又は3段組みの計6通りの組み合わせのレイアウトから最も用紙枚数及び余白が最小となるレイアウトを決定するように構成しても良い。
【0037】
以上のように、縮小ボタン505が押下される度に、構造化文書印刷モジュール302の縮小率解析部309が、指定用紙枚数n−1にフィットさせて縮小するための縮小率を算出し、印刷レイアウト設定を変更して印刷プレビューを更新する。その場合に、縮小率解析部309は、必要に応じて用紙方向及び段組み数を変更して、プレビュー表示する。
【0038】
本実施例においては、縮小ボタン505はユーザによるページ削減指示を受付ける役割を果たしており、押下される度に1ページずつページが削減されたレイアウトで印刷プレビュー表示される。
【0039】
従って、ユーザは、縮小ボタン505を押下することにより、最終ページに不要な余白が生じさせずに、また所望のページ数のページに、簡単に印刷データをレイアウトすることができる。さらに、図6(d)、図6(e)に示すように、縮小ボタン505の押下により印刷データの縮小が指示されたことに応じて、印刷設定(用紙方向、段組み数)が自動で変更される。従ってユーザは、印刷設定を変更させるための特別な操作を行わなくても、適切なレイアウトで、印刷データをレイアウトすることができる。
【0040】
なお、図6に示した例では、縮小ボタン505が押されるたびに、印刷データを縮小していく例を示したが、印刷データを拡大するための拡大ボタンを設けるようにしてもよい。この場合にも、拡大ボタンが押されるたびに、印刷データを拡大して、また1ページずつページ数を増やし、さらに、最終ページの末端に余白を設けないようにする。
【0041】
図7及び図8を参照しながら、ページ幅情報検出部310の処理を説明する。ページ幅情報検出部310は、構造化文書303のページ幅が固定であるか又は可変であるかのページ幅情報を検出する。縮小率解析部309は、その検出されたページ幅情報を用いて縮小率を解析する。図7(a)は、ページ幅が固定タイプの構造化文書303をブラウザ301により表示した場合のブラウザ画面の一例を示す図である。図7(b)は、図7(a)に示すブラウザ301のウインドウサイズを横方向に広げた場合の画面を示す。ここでは、構造化文書303のページ幅が固定であるので、図7(a)に示す構造化文書303のページ幅701と図7(b)に示す構造化文書303のページ幅702とが同一のピクセル数で表示される。
【0042】
図8(a)は、ページ幅が可変タイプの構造化文書303をブラウザ301により表示した場合のブラウザ画面の一例を示す図である。図8(b)は、図8(a)に示すブラウザ301のウインドウサイズを横方向に広げた場合の画面を示す。ここでは、構造化文書303のページ幅が可変であるので、図8(a)に示す構造化文書303のページ幅801より図8(b)に示す構造化文書303のページ幅802のほうが、ピクセル数が多くなるように表示される。
【0043】
このように、ページ幅が固定であるか、可変であるかは、構造化文書303において規定されており、構造化文書を解析することにより、上記固定、可変のいずれであるか判断することができる。具体的には、構造化文書303の文字部分の改行位置が固定である場合に、図7(a)及び図7(b)に示すようにページ幅が固定に表示され、構造化文書303の文字部分の改行位置が可変である場合に、図8(a)及び図8(b)に示すようにページ幅が可変に表示される。ページ幅情報検出部310は、構造化文書303のbodyタグやその他のタグのwidth属性またはスタイルを取得する。そして、ページ幅情報検出部310は、それらの情報に基づき、ページ幅が、ピクセル単位などの固定幅で指定されているのか若しくはブラウザ301のウインドウ幅に対する割合指定などの可変幅で指定されているのかを検出する。このページ幅情報を用いて、縮小率解析部309が用紙枚数指定部308により指定された用紙枚数にフィットさせるための縮小率を解析する。
【0044】
図9は、縮小率解析部309が、構造化文書303のページ幅情報に応じて縮小率を解析する処理を説明するための図である。図9(a)の画像901は、ページ幅が可変である構造化文書303の初期設定での印刷時の用紙を表しており、画像901内には印刷画像902が配置されている。ここで、印刷画像902の高さ(ページ縦方向の長さ)903はhである。画像904は、縮小率解析部309が印刷画像902の高さがh/2になるように縮小した場合のページを示す。この画像904内の印刷画像905のように、ページ幅が可変の場合には、ページの高さ方向の縮小または拡大を行う場合に、テキストの改行位置の変更等の編集処理により、縮小・拡大(変倍処理)を行うことができる。
【0045】
印刷画像902を印刷画像905に縮小した場合に、その面積はおよそ1/2となり、縮小率はおよそ1/√2となる。厳密には、縮小率は、文字のサイズや改行位置、ワードラップ、画像の有無などに作用される。
【0046】
一方、図9(b)の画像907は、ページ幅が固定である構造化文書303の初期設定での印刷時の用紙を表しており、画像907には印刷画像908が配置されている。ここで、印刷画像908の高さ909はhである。画像910は、縮小率解析部309が印刷画像908の高さがh/2になるように縮小した場合を示す。印刷画像908を印刷画像911に縮小した場合に、その面積はおよそ1/4となり、縮小率はおよそ1/2となる。図9(a)と同様に、厳密には、縮小率は、文字のサイズや改行位置、ワードラップ、画像の有無などに作用される。
【0047】
以上のように、ページ幅が可変である構造化文書303の印刷画像を縮小する場合に、印刷画像の高さ方向の縮小比率をrとすると、縮小率はおよそ√rとなる。一方、ページ幅が固定である構造化文書303の印刷画像を縮小する場合に、縮小率はおよそrとなる。本実施例において、縮小率解析部309は、ページ幅情報に応じた縮小率の計算方法を用いて、用紙枚数指定部308により指定されたページ数にフィットさせるための縮小率を解析する。
【0048】
図10は、本実施例における縮小率解析部309により、印刷データの縮小率を算出する手順を示すフローチャートである。図10に示す各処理は、例えば、PC101のCPU201により実行される。CPU201は、印刷プレビュー画面501上の縮小ボタン505が押下されると、構造化文書印刷モジュール302の縮小率解析部309の処理を開始する。
【0049】
CPU201は、現在の印刷設定である用紙枚数nから用紙枚数n−1にフィットさせる場合に必要な高さ方向の縮小比率rを算出する(S1001)。例えば、図6を説明すると、図6(a)の初期状態では8枚目の1/2(7.5枚目と換算)まで印刷イメージが表示されている。従って、7枚の用紙にフィットさせるための高さ方向の縮小比率rは、7/7.5(約0.93)と算出する。
【0050】
このS1001では、縮小率解析部309が印刷レイアウト部306から、印刷データのサイズを取得し、また印刷設定で設定されている用紙サイズ、印刷領域のサイズ、1枚の用紙に配置されるページ数を取得する。そして、上記の印刷設定から1ページのサイズを算出し、印刷データのサイズと、1ページのサイズとを比較する。これにより、印刷データがレイアウトされているページ数、また最終ページがページのどの部分までレイアウトされているか判定することができる。よって、上記のように初期状態において印刷データが8枚目の1/2までレイアウトされていることを判断することができる。
【0051】
なお、上記の判断処理を、縮小率解析部309が行うのではなく、印刷レイアウト部306が行ってもよい。この場合、縮小率解析部309は、S1001において、印刷レイアウト部306により判断結果を取得する。
【0052】
このように、縮小率解析部309が、印刷データがレイアウトされているページ数、また最終ページにおいて印刷データが配置されている領域を判断すると、上記のように所定のページ数に印刷データを収めるための縮小率を算出することができる。
【0053】
CPU201は、ページ幅情報検出部310から構造化文書303のページ幅情報を取得し(S1002)、そのページ幅情報に基づき、構造化文書303のページ幅が固定であるか若しくは可変であるかを判定する(S1003)。ここで、ページ幅が固定であると判定された場合には、S1004に進み、ページ幅が可変であると判定された場合には、S1008に進む。
【0054】
まず、固定であると判定された場合を説明する。CPU201は、縮小率Pを変数として定め、縮小率Pに高さ方向の縮小比率rを代入し、縮小率Pを構造化文書303に適用した場合の実際のページ数を計算する(S1004)。
【0055】
上記の代入処理により、印刷レイアウト部306が、縮小比率rに従って印刷データを縮小して、印刷設定により決定されるサイズのページに対し、レイアウトを行う。縮小率解析部309は、S1004において、このように印刷データがレイアウトされたページのページ数を確認する。
【0056】
このような処理を行うのは、S1001で、n−1ページにレイアウトするために算出した縮小比率rで縮小を行ったとしても、実際にはn−1ページに印刷データが収まらない場合があるからである。例えば、ページ間に文字や画像のオブジェクトが配置された結果、ページ間でオブジェクトが切れることを防ぐために、文字や画像オブジェクトを次ページに再配置することがある。この場合、縮小率Pで中間データを縮小してレイアウトを行ったとしても、ページの切れ目に配置されるオブジェクトの全体が、次のページにシフトすることになる。よって、結果としてページ数がn−1とならず、nページとなってしまうことがある。
【0057】
そこでCPU201は、縮小率Pを適用した場合に実際に印刷に必要な用紙枚数を判定し、その用紙枚数がn−1であるか否かを判定する(S1005)。ここで、用紙枚数がn−1であると判定された場合にはS1006に進み、用紙枚数がn−1でないと判定された場合にはS1007に進む。用紙枚数がn−1でないと判定された場合、即ち、nである場合には、縮小率Pを適用した状態から用紙枚数n−1にフィットさせるために必要な縮小比率r2を計算し、これを新たな縮小率Pとして(S1006)、S1004の処理を再び行う。以上のようにページ幅が固定である場合には、S1004〜S1006の処理を用紙枚数がn−1になるまで繰り返すことで、用紙枚数n−1にフィットさせるための縮小率Pを算出する。CPU201は、用紙枚数n−1にフィットさせるための縮小率Pを確定して(S1007)、本処理を終了する。
【0058】
再び、S1003を参照する。S1003においてページ幅が可変であると判定された場合には、S1008に進む。CPU201は、縮小率Pに √rを代入し、縮小率Pを構造化文書303に適用した場合の実際のページ数を計算する(S1008)。S1008において、S1004と同様に、ページ間に配置されるオブジェクトは次ページに再配置することを考慮して用紙枚数を計算する。
【0059】
CPU201は、縮小率Pを適用した場合に実際に印刷に必要な用紙枚数を判定し、その用紙枚数がn−1であるか否かを判定する(S1009)。ここで、用紙枚数がn−1であると判定された場合にはS1011に進み、用紙枚数がn−1でないと判定された場合にはS1010に進む。用紙枚数がn−1でないと判定された場合、即ち、なおnである場合には、縮小率Pを適用した状態から用紙枚数n−1にフィットさせるために必要な縮小比率r3を計算し、これを新たな縮小率Pとして(S1010)、S1008の処理を再び行う。以上のようにページ幅が可変である場合には、S1008〜S1010の処理を用紙枚数がn−1になるまで繰り返すことで、用紙枚数n−1にフィットさせるための縮小率Pを算出する。CPU201は、用紙枚数n−1にフィットさせるための縮小率Pを確定して(S1011)、本処理を終了する。
【0060】
このように縮小率解析部309により決定された縮小率に従って、印刷レイアウト部306が、中間データをレイアウトする。これにより、nページに中間データがレイアウトされているときに、最終ページの高さ方向の余白を生じさせないように、n−1ページに中間データをレイアウトすることができる。
【0061】
なお、このとき印刷レイアウト部306は、ページ幅が固定の場合には、印刷データの縦横を単純縮小する。一方、ページ幅が可変の場合には、テキストの改行位置を変更するなど、中間データに対する編集処理を行う。
【0062】
また、上記のS1001では、図6(e)に示したように、用紙方向、段組み数の変更を行うか判定してもよい。具体的には、上記のように、S1001において縮小率解析部309は、印刷レイアウト部306から、印刷データのサイズと、ページサイズを算出するための印刷設定を取得する。このとき、印刷データのページ幅方向のサイズと、ページの幅方向のサイズとを比較して、ページ幅方向の余白を算出する。そして、図6(e)に示すように、用紙方向、段組み数の変更を行うと判定した場合には、印刷設定に従って、新たなページサイズを算出する。そして、そのページサイズにフィットするように、縮小率を決定する。
【0063】
以上のように、S1004では縮小率としてrを適用したが、S1008では縮小率として√rを適用している。これは、図9に示すように、構造化文書303のページ幅が固定であれば、印刷画像の縮小率がそのまま印刷画像の長さ方向に反映されるが、ページ幅が可変であれば、印刷画像の縮小率が印刷画像の幅方向と長さ方向の両方向に適用されるためである。
【0064】
本実施例においては、縮小ボタン505を繰り返し押下することで、段階的に印刷に必要な用紙枚数を減らす場合について説明したが、任意の指定用紙枚数を1度で指定して縮小するようにしても良い。その場合には、所望の枚数まで複数回数、指定する必要がなくなるので、さらにユーザの工数を低減させることができる。
【0065】
また、図6(e)において説明したが、縮小率解析部309が必要に応じて用紙方向および段組み数を決定し、新たなページサイズを算出する。そして、その新たなページサイズを算出する。このようなレイアウト処理は、ページ幅が固定である構造化文書303を縮小する場合に特に有効である。図6(a)〜(d)に示すようにページ幅が固定である場合には、縮小率が大きくなるに従って右側の余白部分の領域が大きくなってしまう。しかしながら、同じ縮小率でも用紙の方向及びレイアウトを変更することによって、右余白部分の領域を解消し、且つ、用紙枚数を少なくすることができる。
【0066】
〔実施例2〕
本実施例においては、指定した縮小率でレイアウトし、更に必要に応じて異なる用紙方向および段組み数にレイアウトして印刷する場合について説明する。本実施例におけるシステム構成及びPC構成は、図1及び図2と同じである。
【0067】
図11は、本実施例におけるPC101上のソフトウェアの構成を示すブロック図である。以下、PC101上で動作するプログラムとそのデータ処理構成について、図11を参照しながら説明する。図11に示すブラウザ301は、実施例1における説明と同じである。図11に示す構造化文書印刷モジュール1101は、構造化文書303をパラメータとしてブラウザ301から呼び出されるプラグインソフトウェアである。ユーザがブラウザ301を起動した際に、ブラウザ301が構造化文書印刷モジュール1101を実行する。構造化文書印刷モジュール1101において、ユーザインタフェース304、中間データ抽出部305は、実施例1における説明と同じである。
【0068】
印刷レイアウト部1102は、実施例1と同様に、中間データ抽出部305が抽出した中間データファイルを印刷設定に従って用紙サイズにレイアウトする。また、印刷レイアウト部1102は、後述する縮小率指定部1103で縮小率が指定された場合は、この縮小率に従って中間データを縮小した状態で用紙サイズにレイアウトする。このとき、印刷レイアウト部1102は、複数の用紙方向およびレイアウトに対して指定された縮小率を適用した場合の用紙枚数を求め、最も用紙枚数の少ない用紙方向および1枚の用紙におけるページ数で印刷データを配置する。このとき印刷レイアウト部1102は、種々のレイアウトに従って印刷データを配置したときの余白を算出することにより最も用紙枚数の少ない用紙方向、および1枚の用紙におけるページ数を決定する。なお上記余白は、当該印刷設定(用紙サイズ、用紙サイズ内の印刷領域のサイズ)と、印刷データのサイズにより算出することができる。
【0069】
印刷プレビュー部307は、印刷レイアウト部1102でレイアウトした中間データファイルを印刷プレビューとして表示部206に表示する。
【0070】
本実施例において、印刷プレビュー画面501は、印刷プレビュー画面501に表示された印刷データ502の縮小率をユーザが1%間隔で指定可能な縮小率指定スライダバー1201を備えている。縮小率指定部1103は、ユーザが縮小率指定スライダバーにより指定された縮小率を検出する。印刷処理部311、OS312およびプリンタドライバ313は、実施例1における説明と同じである。
【0071】
次に、図12を参照しながら、本実施例の縮小率指定部1103と印刷レイアウト部306の動作を説明する。図12(a)は、印刷プレビュー画面501上でサムネイル表示された場合を示す。図12(a)に示すように、印刷プレビュー画面501内に8ページの用紙が表示されている。この状態で縮小率指定スライダバー1201で縮小率66%が指定された場合の印刷プレビュー画面を図12(b)に示す。図12(b)では、5ページの用紙に印刷イメージが表示されている。
【0072】
図12(c)は、更に縮小率指定スライダバー1201で縮小率52%が指定された場合の印刷プレビュー画面を示す。図12(c)では、用紙をランドスケープ方向に回転後、2段組みレイアウトに変更することで、同じ縮小率で以って3ページで印刷イメージを表示する。ここでは、用紙方向がランドスケープで2段組みレイアウトの例を説明したが、用紙方向はポートレートまたはランドスケープで、段組み数は、1段組み、2段組みまたは3段組みの計6通りの組み合わせのレイアウトから選択するようにしても良い。
【0073】
以上のように、本実施例においては、縮小率指定スライダバー1201で縮小率が指定された場合に、縮小率指定部1103は、印刷レイアウト部1102に縮小率を指定する。そして、印刷レイアウト部1102は、複数の用紙方向およびレイアウトから、指定された縮小率で以ってより用紙枚数の少ない用紙方向およびレイアウトを選択して印刷プレビュー表示する。
【0074】
以上の実施例によれば、ユーザは、ページの増減させるための指示を行うと、その指示に応じてページ数を決定し、その決定されたページ数にフィットするように、印刷データのレイアウトを行う。これにより、ユーザは所望のページ数になるように指示を行うことで、その指定したページ数のページに、印刷データをフィットさせてレイアウトを行うことができる。よって、ユーザは、構造化文書に基づくデータを、適切かつ簡単にレイアウトすることができる
また、以上の実施例では、ユーザは、印刷データが配置されている当該ページ数から、ページを増減させる例を示したが、印刷データがページに配置される前に、ページ数を指定し、そのページ数にフィットするように、印刷データを配置してもよい。なお、以上の実施例では、印刷データを縮小する例を示したが、ページ数を増やす場合には、印刷データを拡大するようにしてもよい。
【0075】
さらに、印刷データが既にページに配置されているときに、印刷データの拡大、縮小を行う場合に限らず、印刷データを作成するときに、ユーザが指定したページ数にフィットするように、印刷データのサイズを決定してもよい。この場合には、ユーザはページ数を指定することにより、そのページ数に応じた印刷データを簡単かつ適切に作成することができる。
【0076】
また、ユーザにより指定されたページ数の印刷データを印刷プレビューする場合に限らず、ユーザによりページ数が指定されたことに応じて、そのページ数の印刷データを作成し、印刷プレビューを行わずに、印刷を実行してもよい。さらに、ユーザにより指定されたページ数にフィットするように印刷データを作成する場合に限らず、ユーザにより指定されたページ数を越える場合に、そのページ数で収まるように、印刷データをフィットさせるようにしてもよい。つまり、ユーザは、ページ数の上限を指定することにより、その上限のページ数に収まるように、印刷させることができる。また、以上の実施例では、ページにレイアウトしたデータを印刷する例について説明したが、これに限らず、表示装置への表示や、メモリへの記憶等の各種の出力処理を行ってもよい。
【0077】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
構造化文書に基づくデータをページにレイアウトする情報処理装置であって、
ユーザによる指示に応じて、構造化文書に基づくデータがレイアウトされるページのページ数を決定する決定手段と、
前記構造化文書に基づき、当該構造化文書に基づくデータがレイアウトされるときの当該データの内容が編集可能であるか判定する判定手段と、
前記判定手段による判定結果と、前記決定手段により決定されたページ数に応じて、当該ページ数のページに前記構造化文書に基づくデータをレイアウトするレイアウト手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記レイアウト手段は、前記判定手段により、前記構造化文書に基づくデータがレイアウトされるときの当該データの内容が編集可能であると判定された場合には、前記決定手段により決定されたページ数に応じて当該データを編集して、当該編集されたデータをレイアウトすることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記レイアウト手段は、前記判定手段により、前記構造化文書に基づくデータがレイアウトされるときの当該データの内容が編集可能であると判定されなかった場合には、前記決定手段により決定されたページ数に応じて当該構造化文書に基づくデータに変倍処理を実行して、変倍処理が実行された当該データをレイアウトすることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記構造化文書に基づくデータが印刷装置に印刷されるときの、印刷設定を取得する取得手段を有し、
前記レイアウト手段は、前記取得手段により取得された印刷設定に基づくページサイズのページに、前記構造化文書に基づくデータをレイアウトすることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
構造化文書に基づくデータをページにレイアウトする情報処理方法であって、
ユーザによる指示に応じて、構造化文書に基づくデータがレイアウトされるページのページ数を決定する決定工程と、
前記構造化文書に基づき、当該構造化文書に基づくデータがレイアウトされるときの当該データの内容が編集可能であるか判定する判定工程と、
前記判定工程における判定結果と、前記決定工程において決定されたページ数に応じて、当該ページ数のページに前記構造化文書に基づくデータをレイアウトするレイアウト工程と、
を有することを特徴とする情報処理方法。
【請求項6】
請求項5に記載の方法の各工程をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−54527(P2013−54527A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−192032(P2011−192032)
【出願日】平成23年9月2日(2011.9.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】