(57)【特許請求の範囲】
【請求項１】
構造化文書に基づくデータをページにレイアウトする情報処理装置であって、
ユーザによる指示に応じて、構造化文書に基づくデータがレイアウトされるページのページ数を決定する決定手段と、
前記構造化文書に基づき、当該構造化文書に基づくデータがレイアウトされるときの当該データの内容を編集するための所定の編集処理が当該データに実行可能であるか判定する判定手段と、
前記判定手段により前記所定の編集処理が前記データに実行可能であると判定された場合、前記決定手段により決定されたページ数に応じて当該データに前記所定の編集処理を実行して、前記所定の編集処理が実行された当該データを当該ページ数のページにレイアウトし、前記判定手段により前記所定の編集処理が前記データに実行可能であると判定されなかった場合、前記所定の編集処理を実行せずに、前記決定手段により決定されたページ数に応じて当該データに変倍処理を実行して、当該変倍処理が実行された当該データを当該ページ数のページにレイアウトするレイアウト手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記所定の編集処理としての、前記構造化文書に基づくデータに含まれるテキストがレイアウトされるときの当該テキストの改行位置を変更する変更処理を、当該テキストに実行可能であるか判定し、
前記レイアウト手段は、前記判定手段により前記変更処理が前記テキストに実行可能であると判定された場合、前記決定手段により決定されたページ数に応じて当該テキストに前記変更処理を実行して、前記変更処理が実行された当該テキストを含む前記データを当該ページ数のページにレイアウトすることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記レイアウト手段は、前記判定手段により前記変更処理が前記テキストに実行可能であると判定された場合、前記決定手段により決定されたページ数に応じて、当該テキストに前記変更処理と変倍処理を実行することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記レイアウト手段は、前記判定手段により前記変更処理が前記テキストに実行可能であると判定された場合、前記決定手段により決定されたページ数のページそれぞれの高さ方向に前記データがフィットしてレイアウトされるように、当該テキストに前記変更処理と前記変倍処理を実行することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記レイアウト手段は、前記判定手段により前記変更処理が前記テキストに実行可能であると判定された場合と判定されなかった場合とで異なる変倍率に従って当該テキストに変倍処理を実行することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記レイアウト手段は、前記判定手段により前記変更処理が前記テキストに実行可能であると判定されなかった場合、当該テキストに当該変更処理を実行せずに、前記決定手段により決定されたページ数に応じて当該テキストに前記変倍処理を実行して、当該変倍処理が実行された当該テキストを含む前記データを当該ページ数のページにレイアウトすることを特徴とする請求項２乃至５のいずれか1項に記載の情報処理装置。
【請求項７】
前記決定手段により決定されたページ数のページそれぞれの高さ方向に前記データがフィットしてレイアウトされるように、当該テキストに前記変倍処理を実行することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記データは、前記テキストに加え、画像を含むことを特徴とする請求項２乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記決定手段により決定されたページ数のページに前記レイアウト手段によりレイアウトされた前記データを印刷装置に印刷させる印刷制御手段をさらに備えることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記印刷制御手段により前記データが印刷される用紙の用紙サイズを取得する取得手段をさらに備え、
前記レイアウト手段は、前記決定手段により決定されたページ数であり、且つ前記取得手段により取得された用紙サイズに対応する大きさのページに、前記データをレイアウトすることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記決定手段により決定されたページ数のページに前記レイアウト手段によりレイアウトされた前記データを表示装置に表示させる表示制御手段をさらに備えることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１２】
前記決定手段は、前記データが複数のページにレイアウトされている状態におけるユーザの指示に応じて、前記ページ数を決定することを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記データは、前記構造化文書に基づく中間データであることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記構造化文書は、ＨＴＭＬまたはＸＨＴＭＬで記述されていることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１５】
構造化文書に基づくデータをページにレイアウトする情報処理方法であって、
ユーザによる指示に応じて、構造化文書に基づくデータがレイアウトされるページのページ数を決定する決定工程と、
前記構造化文書に基づき、当該構造化文書に基づくデータがレイアウトされるときの当該データの内容を編集するための所定の編集処理が当該データに実行可能であるか判定する判定工程と、
前記判定工程において前記所定の編集処理が前記データに実行可能であると判定された場合、前記決定工程において決定されたページ数に応じて当該データに前記所定の編集処理を実行して、前記所定の編集処理が実行された当該データを当該ページ数のページにレイアウトし、前記判定工程において前記所定の編集処理が前記データに実行可能であると判定されなかった場合、前記所定の編集処理を実行せずに、前記決定工程において決定されたページ数に応じて当該データに変倍処理を実行して、当該変倍処理が実行された当該データを当該ページ数のページにレイアウトするレイアウト工程と、
を有することを特徴とする情報処理方法。
【請求項１６】
請求項１乃至１４のいずれか１項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項１７】
前記プログラムは、前記構造化文書に基づきＷｅｂページを表示するＷｅｂブラウザのためのプラグインソフトウェアであることを特徴とする請求項１６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書に基づくデータをレイアウトする情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネット上のＷｅｂページにアクセスして様々な情報を得ることが可能となっている。そのＷｅｂページは、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）又はＸＨＴＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のような構造化言語で記述された構造化文書である。構造化文書に対応したブラウザと呼ばれるソフトウェアによって、Ｗｅｂページをディスプレイ上に表示したり、プリンタに出力したりすることができる。
【０００３】
構造化文書をプリンタに出力する場合にユーザは、ブラウザの印刷プレビューで拡大縮小率を指定して印刷データを拡大／縮小することで、所望のサイズで印刷を行わせることができる。また特許文献１には、最終ページの用紙の後端に余白が多い場合には、最終ページの内容を前ページまでに納めて印刷する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２１９２９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、最終ページの印刷データを前ページまでに納めて印刷するものであり、全体のページ数については考慮されていない。よって、ユーザが所望するページ数で印刷することができない場合がある。所望のページ数で印刷するためには、ブラウザの印刷プレビューで縮小率の指定と印刷プレビューの確認とを繰り返して、縮小率をマニュアル操作で設定していく必要がある。
【０００６】
本発明の目的は、このような従来の問題点を解決することにある。本発明は、上記の点に鑑み、構造化文書に基づくデータを適切かつ簡単にレイアウトすることができる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る情報処理装置は、構造化文書に基づくデータをページにレイアウトする情報処理装置であって、ユーザによる指示に応じて、構造化文書に基づくデータがレイアウトされるページのページ数を決定する決定手段と、前記構造化文書に基づき、当該構造化文書に基づくデータがレイアウトされるときの当該データの内容を編集するための所定の編集処理が当該データに実行可能であるか判定する判定手段と、前記判定手段により前記所定の編集処理が前記データに実行可能であると判定された場合、前記決定手段により決定されたページ数に応じて当該データに前記所定の編集処理を実行して、前記所定の編集処理が実行された当該データを当該ページ数のページにレイアウトし、前記判定手段により前記所定の編集処理が前記データに実行可能であると判定されなかった場合、前記所定の編集処理を実行せずに、前記決定手段により決定されたページ数に応じて当該データに変倍処理を実行して、当該変倍処理が実行された当該データを当該ページ数のページにレイアウトするレイアウト手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、構造化文書に基づくデータを適切かつ簡単にレイアウトすることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置を含むシステムの構成を示す図である。
【図２】情報処理装置の構成を示すブロック図である。
【図３】実施例１での情報処理装置のソフトウェアの構成を示すブロック図である。
【図４】ＧＵＩ画面の一例を示す図である。
【図５】印刷プレビューのためのＧＵＩ画面の一例を示す図である。
【図６】縮小ボタンの押下に伴う印刷プレビュー画面の変化を示す図である。
【図７】ページ幅が固定タイプの構造化文書について説明するための図である。
【図８】ページ幅が可変タイプの構造化文書について説明するための図である。
【図９】縮小率を解析する処理を説明するための図である。
【図１０】本実施例におけるプレビュー表示処理の手順を示すフローチャートである。
【図１１】実施例２での情報処理装置のソフトウェアの構成を示すブロック図である。
【図１２】本実施例における印刷プレビュー画面の変化を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
〔実施例１〕
図１は、本発明に係る実施例における情報処理装置を含むシステムの構成を示す図である。情報処理装置であるＰＣ１０１は、インターネット１０２を介して複数のＷＷＷサーバ１０３からＷｅｂページをダウンロードして表示する。Ｗｅｂページは、ＨＴＭＬやＸＨＴＭＬで記述された構造化文書である。また、ＰＣ１０１は、プリンタ１０４と接続されており、ＷＷＷサーバ１０３上のＷｅｂページを印刷対象文書としてＰＣ１０１上にダウンロードし、さらにその内容をプリンタ１０４に印刷することができる。
【００１２】
図２は、ＰＣ１０１の構成を示すブロック図である。ＣＰＵ２０１は、ＲＡＭ２０２、ＲＯＭ２０３又はハードディスク２０４に格納されたプログラムに従って、データや命令を処理する。ＲＡＭ２０２は、ＣＰＵ２０１が各種処理を行う際の一時記憶領域として用いられる。ハードディスク２０４は、オペレーティングシステム（ＯＳ）や、ブラウザやその他のアプリケーションソフトウェア等を格納する。ＵＳＢインタフェース２０５は、ＵＳＢケーブルが接続されるインタフェースであり、プリンタ１０４とデータ通信を行うためのインタフェースである。なお、プリンタ１０４との通信は、ＵＳＢケーブル以外に、例えばＳＣＳＩや無線により行われても良い。
【００１３】
表示部２０６は、ＣＲＴや液晶ディスプレイとグラフィックコントローラとを含んで構成され、ＷＷＷサーバ１０３からダウンロードしたＷｅｂページや、印刷プレビュー画像、又はグラフィックユーザインタフェース（ＧＵＩ）等を表示する。入力部２０７は、ユーザがＰＣ１０１に対して各種指示を入力するためのブロックであり、例えばポインティングデバイスやキーボードである。システムバス２０９は、ＣＰＵ２０１やＲＡＭ２０２、ＲＯＭ２０３、ハードディスク２０４等を相互に接続する。ＬＡＮインタフェース２０８は、ＬＡＮケーブルが接続されるインタフェースであり、不図示のルータやインターネット１０２を介して外部のＷＷＷサーバ１０３とデータ通信を行う。なお、本実施例においてデータ通信は、例えば無線に対応したインタフェースによって無線で行われても良い。また、図２は、表示部２０６と入力部２０７が、ＣＰＵ２０１及びＲＡＭ２０２を含む制御部と一体となった所謂ノート型のＰＣ１０１の場合を示している。しかしながら、ＰＣ１０１は、表示部２０６と入力部２０７とがそれぞれ別体とされた所謂デスクトップ型であっても良い。
【００１４】
図３は、ＰＣ１０１のソフトウェアの構成を示すブロック図である。ブラウザ３０１は、Ｗｅｂページを表示するためのアプリケーションであり、ＷＷＷサーバ１０３上のＷｅｂページをＰＣ１０１のハードディスク２０４にダウンロードして表示部２０６に表示する。Ｗｅｂページは、ＨＴＭＬやＸＨＴＭＬ等の構造化文書であり、テキストや画像等の構造化文書を構成する要素がタグを用いて記述されている。また、これらの要素の表示スタイルを指定するＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔ）と呼ばれるファイルが構造化文書内に別に指定されている。ブラウザ３０１は、これらの構造化文書を解析して表示部２０６に表示する。
【００１５】
構造化文書印刷モジュール３０２は、構造化文書３０３をパラメータとしてブラウザ３０１から呼び出されるプラグインソフトウェアであり、ユーザがブラウザ３０１を起動した際に、ブラウザ３０１が構造化文書印刷モジュール３０２を実行する。本実施例においては、この構造化文書印刷モジュール３０２が、印刷プレビュー画面の表示を行う。その印刷プレビュー表示時に、ユーザが指定したページ数にフィットするように、印刷データを配置する。
【００１６】
構造化文書印刷モジュール３０２において、ユーザインタフェース３０４は、構造化文書印刷モジュール３０２の実行と同時に起動される。そして、ブラウザ３０１のウインドウ内に、印刷を開始するための印刷ボタン及び印刷プレビューを表示するための印刷プレビューボタンが表示される。図４は、ブラウザ３０１内に印刷ボタン４０４及び印刷プレビューボタン４０５を表示された場合のＧＵＩ画面の一例を示す図である。詳細については後述する。
【００１７】
中間データ抽出部３０５は、ユーザインタフェース３０４が表示した印刷ボタン４０４又は印刷プレビューボタン４０５が押下された際に、ブラウザ３０１から構造化文書３０３を中間データファイルとして抽出する。この中間データファイルは、印刷のためのデータである。中間データファイルはビットマップデータでも良いが、文字情報や図形情報をベクタデータとして保持できるように構成される。例えば、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ  Ｆｏｒｍａｔ）等が中間データファイルとして用いられる。
【００１８】
印刷レイアウト部３０６は、中間データ抽出部３０５が抽出した中間データファイルを印刷設定に従って、用紙サイズにレイアウトする。具体的には、中間データファイルに含まれているテキストデータや画像データといった要素（オブジェクト）を、用紙サイズの領域に配置する。なお、印刷設定は、用紙サイズ、解像度、用紙サイズにおける印刷領域のサイズ等の情報を含み、ＯＳ３１２を介してプリンタドライバ３１３から取得する。なお、印刷領域のサイズを印刷設定として取得する場合に限らず、用紙に対して設定されている余白の幅の情報を参照して、印刷領域のサイズを決定してもよい。
【００１９】
印刷プレビュー部３０７は、印刷レイアウト部３０６によりレイアウトされた中間データファイルを印刷プレビューとして表示部２０６に表示する。図５は、印刷プレビューのためのＧＵＩ画面の一例を示す図である。
【００２０】
本実施例においては、上記の印刷プレビューが表示されるときに、ページにおける印刷領域の末端に余白を生じさせずに（フィットさせて）、ユーザが指定したページ数になるよう中間データを縮小してレイアウトするためのボタン５０５を配する。この画面の詳細については後述する。
【００２１】
用紙枚数指定部３０８は、縮小ボタン５０５の押下時に起動され、現在の印刷設定での印刷用紙枚数（印刷ページ数。ここではｎ枚とする）を印刷レイアウト部３０６から取得する。用紙枚数指定部３０８は、ｎ枚より１枚（１ページ）削減された用紙枚数ｎ−１枚を指定して縮小率解析部３０９を起動する。
【００２２】
縮小率解析部３０９は、用紙枚数ｎ−１をパラメータとして用紙枚数指定部３０８により起動され、印刷プレビュー画面５０１に表示された印刷データ５０２を、指定された用紙枚数ｎ−１にフィットさせて縮小するための縮小率を解析する。上記ｎ−１枚の用紙におけるページサイズは、プリンタドライバ３１３から取得した印刷設定（用紙サイズ、印刷領域のサイズ等）から算出される。そして、上記の縮小率は、印刷データのサイズと、上記のページサイズにより決定される。
【００２３】
この縮小率で中間データが縮小されることにより、最終ページの高さ方向に不要な余白を生じさせずに、ｎ−１ページで、中間データをレイアウトすることができる。縮小率の解析の詳細については後述する。
【００２４】
ページ幅情報検出部３１０は、構造化文書３０３のＣＳＳファイルやタグ属性を解析し、構造化文書のページ幅が可変であるか又は固定であるかを検出する。上記の縮小率解析部３０９は、それぞれの検出結果に応じた縮小方法で縮小率を解析する。このページ幅について、また検出結果に応じた縮小方法についての詳細は後述する。
【００２５】
本実施例においては、ページ幅情報検出部３１０による検出結果に応じた縮小方法で、縮小率解析部３０９により、縮小率が解析される。そして、その解析された縮小率に従って、印刷レイアウト部３０６が中間データのレイアウトを行うことにより、印刷データを所定のページにフィットさせるレイアウトを決定することができる。
【００２６】
印刷処理部３１１は、ユーザにより印刷開始指示を受けた場合に、印刷レイアウト部３０６によりレイアウトされた印刷データの配置情報に従って、必要に応じて印刷設定を変更する。その後、印刷処理部３１１は、ＯＳ３１２を介してプリンタドライバ３１３に対し描画処理を実行する。ＯＳ３１２は、構造化文書印刷モジュール３０２とプリンタドライバ３１３とが印刷設定データのやり取りを行うためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）や描画処理を行うためのＡＰＩを提供する。また、ＯＳ３１２には、印刷のジョブを管理するスプーラシステムや、プリンタコマンドをポートに出力するポートモニタ等の各種制御ソフトウェアが含まれるが詳細については省略する。プリンタドライバ３１３は、印刷処理部３１１により実行された描画処理に従って、印刷データを生成してプリンタコマンドに変換後、その変換されたプリンタコマンドをプリンタ１０４に送信する。その後、プリンタ１０４は、用紙に印刷する。
【００２７】
図４及び図５について説明する。図４に示すブラウザ３０１は、Ｗｅｂページである構造化文書３０３をＷｅｂページ表示領域４０６に表示する。更に、ブラウザ３０１は、表示するＷｅｂページを切り替えるための戻るボタン４０１、進むボタン４０２、アドレス入力領域４０３を含んでいる。さらに、ブラウザ３０１は、構造化文書印刷モジュール３０２のユーザインタフェース３０４が表示する印刷ボタン４０４及び印刷プレビューボタン４０５を含んでいる。
【００２８】
図５は、図４において印刷プレビューボタン４０５が押下された場合に表示される印刷プレビュー画面である。印刷プレビュー画面５０１には、構造化文書３０３を現在の印刷設定で印刷する場合の印刷プレビュー表示された印刷データ５０２や、印刷を開始するための印刷ボタン５０３を含んでいる。また印刷プレビューに表示するページを切り替えるための、ページ切り替えの各種ボタン５０６や、表示を拡大又は縮小するための表示倍率選択コンボボックス５０７を含んでいる。表示倍率コンボボックスは、１００％、１５０％、２００％、８０％、５０％、３０％の倍率や、サムネイル表示／２ページ表示等の表示倍率から選択可能である。更に、印刷プレビュー画面５０１には、拡大／縮小印刷のための拡大／縮小率の指定を受付ける拡大／縮小率指定スライダバー５０４と、用紙にフィットさせて縮小するための指定を受付ける縮小ボタン５０５（縮小受付ボタン）を含む。この縮小ボタン５０５が押下されると、最終ページの高さ方向に不要な余白を生じさせずに、所定のページ数で、印刷プレビュー画像を表示することができる。また、本実施例では、この縮小ボタンが押されるたびに、印刷データを更に縮小するようにする。
【００２９】
図６は、印刷プレビュー画面５０１上の縮小ボタン５０５を繰り返して押下した場合の印刷プレビュー画面の変化を示す図である。図６（ａ）は、図５に示す印刷プレビュー画面５０１上の表示倍率選択コンボボックス５０７による表示倍率でサムネイル表示が選択された場合のＧＵＩ画面を示す。サムネイル表示された結果、印刷プレビュー画面５０１内に８ページの用紙にレイアウトされた印刷イメージが表示されている。８ページ目の用紙６０１は最終ページであり、用紙の途中で印刷イメージが終了して後端に余白が表示されている。図６（ｂ）は、図６（ａ）に示す状態で縮小ボタン５０５が押下された場合の印刷プレビュー画面を示す。
【００３０】
図６（ｂ）に示すように、印刷イメージが７ページの用紙にフィットされた状態で表示されている。図６（ｃ）には、図６（ｂ）に示す状態で更に縮小ボタン５０５が押下された場合の印刷プレビュー画面を示す。図６（ｃ）に示すように、印刷イメージが６ページの用紙にフィットされた状態で表示されている。図６（ｄ）には、図６（ｃ）に示す状態で更に縮小ボタン５０５が押下された場合の印刷プレビュー画面を示す。図６（ｄ）に示すように、印刷イメージが５ページの用紙にフィットされた状態で表示されている。
【００３１】
図６（ｅ）には、図６（ｄ）に示す状態で更に縮小ボタン５０５が押下された場合の印刷プレビュー画面を示す。図６（ｅ）に示すように、４ページの用紙にフィットされるのではなく、用紙をランドスケープ方向に回転されて２段組みレイアウトに変更されることによって、３ページの用紙にフィットされている。図６（ｄ）における状態から更に縮小した場合に、１枚の用紙に１ページをレイアウトした場合には、ページの幅方向の余白が大きくなってしまうことがわかる。そこで、このように１枚の用紙に対して複数ページをレイアウトすることにより、ページの幅方向の余白を低減させることができる。
【００３２】
なお、本実施例においては、縮小率解析部３０９が必要に応じて、上記のように用紙方向および段組み数を変更する。なお、縮小率解析部３０９は、当該印刷設定で設定されている印刷領域のサイズを取得して、取得された印刷領域のサイズに応じて、上記の用紙方向、段組み数の変更を行うか（編集可能か否か）判定する。そして、その判定結果で上記の変更を行う場合には、１枚の用紙に対して割り当てられる複数ページのそれぞれにフィットするように、中間データの縮小率を決定する。
【００３３】
また、印刷レイアウト部３０６が、上記の用紙方向、段組み数の変更を行うか判断してもよい。このとき、印刷レイアウト部３０６が、縮小率解析部３０９が決定した縮小率により縮小された印刷データのサイズと、当該印刷設定で設定されている印刷領域のサイズとを比較することにより、上記の用紙方向、段組み数の変更を行うか判断する。
【００３４】
縮小率解析部３０９は、用紙方向および段組み数を変更すると決定すると、１枚の用紙に複数ページが割り当てられたときの、１ページのサイズに応じて縮小率を決定する。そして、その縮小率に従って、印刷レイアウト部３０６がレイアウトを決定する。
【００３５】
印刷プレビュー部３０７は、この決定されたレイアウトに従って、図６（ｅ）に示すような印刷プレビュー画像を表示させる。また、上記のように変更された用紙方向および段組み数を、印刷処理部３１１に通知して、印刷処理部３１１に印刷設定を変更させる。これにより、図６（ｅ）の状態でユーザにより印刷の実行が指示されたときに、印刷プレビューに対応した印刷を行うことができる。
【００３６】
なお、ここでは、ランドスケープ方向及び２段組みレイアウトを説明した。しかしながら、用紙方向をポートレート又はランドスケープから選択し、段組み数を１段組み、２段組み又は３段組みの計６通りの組み合わせのレイアウトから最も用紙枚数及び余白が最小となるレイアウトを決定するように構成しても良い。
【００３７】
以上のように、縮小ボタン５０５が押下される度に、構造化文書印刷モジュール３０２の縮小率解析部３０９が、指定用紙枚数ｎ−１にフィットさせて縮小するための縮小率を算出し、印刷レイアウト設定を変更して印刷プレビューを更新する。その場合に、縮小率解析部３０９は、必要に応じて用紙方向及び段組み数を変更して、プレビュー表示する。
【００３８】
本実施例においては、縮小ボタン５０５はユーザによるページ削減指示を受付ける役割を果たしており、押下される度に１ページずつページが削減されたレイアウトで印刷プレビュー表示される。
【００３９】
従って、ユーザは、縮小ボタン５０５を押下することにより、最終ページに不要な余白が生じさせずに、また所望のページ数のページに、簡単に印刷データをレイアウトすることができる。さらに、図６（ｄ）、図６（ｅ）に示すように、縮小ボタン５０５の押下により印刷データの縮小が指示されたことに応じて、印刷設定（用紙方向、段組み数）が自動で変更される。従ってユーザは、印刷設定を変更させるための特別な操作を行わなくても、適切なレイアウトで、印刷データをレイアウトすることができる。
【００４０】
なお、図６に示した例では、縮小ボタン５０５が押されるたびに、印刷データを縮小していく例を示したが、印刷データを拡大するための拡大ボタンを設けるようにしてもよい。この場合にも、拡大ボタンが押されるたびに、印刷データを拡大して、また１ページずつページ数を増やし、さらに、最終ページの末端に余白を設けないようにする。
【００４１】
図７及び図８を参照しながら、ページ幅情報検出部３１０の処理を説明する。ページ幅情報検出部３１０は、構造化文書３０３のページ幅が固定であるか又は可変であるかのページ幅情報を検出する。縮小率解析部３０９は、その検出されたページ幅情報を用いて縮小率を解析する。図７（ａ）は、ページ幅が固定タイプの構造化文書３０３をブラウザ３０１により表示した場合のブラウザ画面の一例を示す図である。図７（ｂ）は、図７（ａ）に示すブラウザ３０１のウインドウサイズを横方向に広げた場合の画面を示す。ここでは、構造化文書３０３のページ幅が固定であるので、図７（ａ）に示す構造化文書３０３のページ幅７０１と図７（ｂ）に示す構造化文書３０３のページ幅７０２とが同一のピクセル数で表示される。
【００４２】
図８（ａ）は、ページ幅が可変タイプの構造化文書３０３をブラウザ３０１により表示した場合のブラウザ画面の一例を示す図である。図８（ｂ）は、図８（ａ）に示すブラウザ３０１のウインドウサイズを横方向に広げた場合の画面を示す。ここでは、構造化文書３０３のページ幅が可変であるので、図８（ａ）に示す構造化文書３０３のページ幅８０１より図８（ｂ）に示す構造化文書３０３のページ幅８０２のほうが、ピクセル数が多くなるように表示される。
【００４３】
このように、ページ幅が固定であるか、可変であるかは、構造化文書３０３において規定されており、構造化文書を解析することにより、上記固定、可変のいずれであるか判断することができる。具体的には、構造化文書３０３の文字部分の改行位置が固定である場合に、図７（ａ）及び図７（ｂ）に示すようにページ幅が固定に表示され、構造化文書３０３の文字部分の改行位置が可変である場合に、図８（ａ）及び図８（ｂ）に示すようにページ幅が可変に表示される。ページ幅情報検出部３１０は、構造化文書３０３のｂｏｄｙタグやその他のタグのｗｉｄｔｈ属性またはスタイルを取得する。そして、ページ幅情報検出部３１０は、それらの情報に基づき、ページ幅が、ピクセル単位などの固定幅で指定されているのか若しくはブラウザ３０１のウインドウ幅に対する割合指定などの可変幅で指定されているのかを検出する。このページ幅情報を用いて、縮小率解析部３０９が用紙枚数指定部３０８により指定された用紙枚数にフィットさせるための縮小率を解析する。
【００４４】
図９は、縮小率解析部３０９が、構造化文書３０３のページ幅情報に応じて縮小率を解析する処理を説明するための図である。図９（ａ）の画像９０１は、ページ幅が可変である構造化文書３０３の初期設定での印刷時の用紙を表しており、画像９０１内には印刷画像９０２が配置されている。ここで、印刷画像９０２の高さ（ページ縦方向の長さ）９０３はｈである。画像９０４は、縮小率解析部３０９が印刷画像９０２の高さがｈ／２になるように縮小した場合のページを示す。この画像９０４内の印刷画像９０５のように、ページ幅が可変の場合には、ページの高さ方向の縮小または拡大を行う場合に、テキストの改行位置の変更等の編集処理により、縮小・拡大（変倍処理）を行うことができる。
【００４５】
印刷画像９０２を印刷画像９０５に縮小した場合に、その面積はおよそ１／２となり、縮小率はおよそ１／√２となる。厳密には、縮小率は、文字のサイズや改行位置、ワードラップ、画像の有無などに作用される。
【００４６】
一方、図９（ｂ）の画像９０７は、ページ幅が固定である構造化文書３０３の初期設定での印刷時の用紙を表しており、画像９０７には印刷画像９０８が配置されている。ここで、印刷画像９０８の高さ９０９はｈである。画像９１０は、縮小率解析部３０９が印刷画像９０８の高さがｈ／２になるように縮小した場合を示す。印刷画像９０８を印刷画像９１１に縮小した場合に、その面積はおよそ１／４となり、縮小率はおよそ１／２となる。図９（ａ）と同様に、厳密には、縮小率は、文字のサイズや改行位置、ワードラップ、画像の有無などに作用される。
【００４７】
以上のように、ページ幅が可変である構造化文書３０３の印刷画像を縮小する場合に、印刷画像の高さ方向の縮小比率をｒとすると、縮小率はおよそ√ｒとなる。一方、ページ幅が固定である構造化文書３０３の印刷画像を縮小する場合に、縮小率はおよそｒとなる。本実施例において、縮小率解析部３０９は、ページ幅情報に応じた縮小率の計算方法を用いて、用紙枚数指定部３０８により指定されたページ数にフィットさせるための縮小率を解析する。
【００４８】
図１０は、本実施例における縮小率解析部３０９により、印刷データの縮小率を算出する手順を示すフローチャートである。図１０に示す各処理は、例えば、ＰＣ１０１のＣＰＵ２０１により実行される。ＣＰＵ２０１は、印刷プレビュー画面５０１上の縮小ボタン５０５が押下されると、構造化文書印刷モジュール３０２の縮小率解析部３０９の処理を開始する。
【００４９】
ＣＰＵ２０１は、現在の印刷設定である用紙枚数ｎから用紙枚数ｎ−１にフィットさせる場合に必要な高さ方向の縮小比率ｒを算出する（Ｓ１００１）。例えば、図６を説明すると、図６（ａ）の初期状態では８枚目の１／２（７．５枚目と換算）まで印刷イメージが表示されている。従って、７枚の用紙にフィットさせるための高さ方向の縮小比率ｒは、７／７．５（約０．９３）と算出する。
【００５０】
このＳ１００１では、縮小率解析部３０９が印刷レイアウト部３０６から、印刷データのサイズを取得し、また印刷設定で設定されている用紙サイズ、印刷領域のサイズ、１枚の用紙に配置されるページ数を取得する。そして、上記の印刷設定から１ページのサイズを算出し、印刷データのサイズと、１ページのサイズとを比較する。これにより、印刷データがレイアウトされているページ数、また最終ページがページのどの部分までレイアウトされているか判定することができる。よって、上記のように初期状態において印刷データが８枚目の１／２までレイアウトされていることを判断することができる。
【００５１】
なお、上記の判断処理を、縮小率解析部３０９が行うのではなく、印刷レイアウト部３０６が行ってもよい。この場合、縮小率解析部３０９は、Ｓ１００１において、印刷レイアウト部３０６により判断結果を取得する。
【００５２】
このように、縮小率解析部３０９が、印刷データがレイアウトされているページ数、また最終ページにおいて印刷データが配置されている領域を判断すると、上記のように所定のページ数に印刷データを収めるための縮小率を算出することができる。
【００５３】
ＣＰＵ２０１は、ページ幅情報検出部３１０から構造化文書３０３のページ幅情報を取得し（Ｓ１００２）、そのページ幅情報に基づき、構造化文書３０３のページ幅が固定であるか若しくは可変であるかを判定する（Ｓ１００３）。ここで、ページ幅が固定であると判定された場合には、Ｓ１００４に進み、ページ幅が可変であると判定された場合には、Ｓ１００８に進む。
【００５４】
まず、固定であると判定された場合を説明する。ＣＰＵ２０１は、縮小率Ｐを変数として定め、縮小率Ｐに高さ方向の縮小比率ｒを代入し、縮小率Ｐを構造化文書３０３に適用した場合の実際のページ数を計算する（Ｓ１００４）。
【００５５】
上記の代入処理により、印刷レイアウト部３０６が、縮小比率ｒに従って印刷データを縮小して、印刷設定により決定されるサイズのページに対し、レイアウトを行う。縮小率解析部３０９は、Ｓ１００４において、このように印刷データがレイアウトされたページのページ数を確認する。
【００５６】
このような処理を行うのは、Ｓ１００１で、ｎ−１ページにレイアウトするために算出した縮小比率ｒで縮小を行ったとしても、実際にはｎ−１ページに印刷データが収まらない場合があるからである。例えば、ページ間に文字や画像のオブジェクトが配置された結果、ページ間でオブジェクトが切れることを防ぐために、文字や画像オブジェクトを次ページに再配置することがある。この場合、縮小率Ｐで中間データを縮小してレイアウトを行ったとしても、ページの切れ目に配置されるオブジェクトの全体が、次のページにシフトすることになる。よって、結果としてページ数がｎ−１とならず、ｎページとなってしまうことがある。
【００５７】
そこでＣＰＵ２０１は、縮小率Ｐを適用した場合に実際に印刷に必要な用紙枚数を判定し、その用紙枚数がｎ−１であるか否かを判定する（Ｓ１００５）。ここで、用紙枚数がｎ−１であると判定された場合にはＳ１００６に進み、用紙枚数がｎ−１でないと判定された場合にはＳ１００７に進む。用紙枚数がｎ−１でないと判定された場合、即ち、ｎである場合には、縮小率Ｐを適用した状態から用紙枚数ｎ−１にフィットさせるために必要な縮小比率ｒ２を計算し、これを新たな縮小率Ｐとして（Ｓ１００６）、Ｓ１００４の処理を再び行う。以上のようにページ幅が固定である場合には、Ｓ１００４〜Ｓ１００６の処理を用紙枚数がｎ−１になるまで繰り返すことで、用紙枚数ｎ−１にフィットさせるための縮小率Ｐを算出する。ＣＰＵ２０１は、用紙枚数ｎ−１にフィットさせるための縮小率Ｐを確定して（Ｓ１００７）、本処理を終了する。
【００５８】
再び、Ｓ１００３を参照する。Ｓ１００３においてページ幅が可変であると判定された場合には、Ｓ１００８に進む。ＣＰＵ２０１は、縮小率Ｐに √ｒを代入し、縮小率Ｐを構造化文書３０３に適用した場合の実際のページ数を計算する（Ｓ１００８）。Ｓ１００８において、Ｓ１００４と同様に、ページ間に配置されるオブジェクトは次ページに再配置することを考慮して用紙枚数を計算する。
【００５９】
ＣＰＵ２０１は、縮小率Ｐを適用した場合に実際に印刷に必要な用紙枚数を判定し、その用紙枚数がｎ−１であるか否かを判定する（Ｓ１００９）。ここで、用紙枚数がｎ−１であると判定された場合にはＳ１０１１に進み、用紙枚数がｎ−１でないと判定された場合にはＳ１０１０に進む。用紙枚数がｎ−１でないと判定された場合、即ち、なおｎである場合には、縮小率Ｐを適用した状態から用紙枚数ｎ−１にフィットさせるために必要な縮小比率ｒ３を計算し、これを新たな縮小率Ｐとして（Ｓ１０１０）、Ｓ１００８の処理を再び行う。以上のようにページ幅が可変である場合には、Ｓ１００８〜Ｓ１０１０の処理を用紙枚数がｎ−１になるまで繰り返すことで、用紙枚数ｎ−１にフィットさせるための縮小率Ｐを算出する。ＣＰＵ２０１は、用紙枚数ｎ−１にフィットさせるための縮小率Ｐを確定して（Ｓ１０１１）、本処理を終了する。
【００６０】
このように縮小率解析部３０９により決定された縮小率に従って、印刷レイアウト部３０６が、中間データをレイアウトする。これにより、ｎページに中間データがレイアウトされているときに、最終ページの高さ方向の余白を生じさせないように、ｎ−１ページに中間データをレイアウトすることができる。
【００６１】
なお、このとき印刷レイアウト部３０６は、ページ幅が固定の場合には、印刷データの縦横を単純縮小する。一方、ページ幅が可変の場合には、テキストの改行位置を変更するなど、中間データに対する編集処理を行う。
【００６２】
また、上記のＳ１００１では、図６（ｅ）に示したように、用紙方向、段組み数の変更を行うか判定してもよい。具体的には、上記のように、Ｓ１００１において縮小率解析部３０９は、印刷レイアウト部３０６から、印刷データのサイズと、ページサイズを算出するための印刷設定を取得する。このとき、印刷データのページ幅方向のサイズと、ページの幅方向のサイズとを比較して、ページ幅方向の余白を算出する。そして、図６（ｅ）に示すように、用紙方向、段組み数の変更を行うと判定した場合には、印刷設定に従って、新たなページサイズを算出する。そして、そのページサイズにフィットするように、縮小率を決定する。
【００６３】
以上のように、Ｓ１００４では縮小率としてｒを適用したが、Ｓ１００８では縮小率として√ｒを適用している。これは、図９に示すように、構造化文書３０３のページ幅が固定であれば、印刷画像の縮小率がそのまま印刷画像の長さ方向に反映されるが、ページ幅が可変であれば、印刷画像の縮小率が印刷画像の幅方向と長さ方向の両方向に適用されるためである。
【００６４】
本実施例においては、縮小ボタン５０５を繰り返し押下することで、段階的に印刷に必要な用紙枚数を減らす場合について説明したが、任意の指定用紙枚数を１度で指定して縮小するようにしても良い。その場合には、所望の枚数まで複数回数、指定する必要がなくなるので、さらにユーザの工数を低減させることができる。
【００６５】
また、図６（ｅ）において説明したが、縮小率解析部３０９が必要に応じて用紙方向および段組み数を決定し、新たなページサイズを算出する。そして、その新たなページサイズを算出する。このようなレイアウト処理は、ページ幅が固定である構造化文書３０３を縮小する場合に特に有効である。図６（ａ）〜（ｄ）に示すようにページ幅が固定である場合には、縮小率が大きくなるに従って右側の余白部分の領域が大きくなってしまう。しかしながら、同じ縮小率でも用紙の方向及びレイアウトを変更することによって、右余白部分の領域を解消し、且つ、用紙枚数を少なくすることができる。
【００６６】
〔実施例２〕
本実施例においては、指定した縮小率でレイアウトし、更に必要に応じて異なる用紙方向および段組み数にレイアウトして印刷する場合について説明する。本実施例におけるシステム構成及びＰＣ構成は、図１及び図２と同じである。
【００６７】
図１１は、本実施例におけるＰＣ１０１上のソフトウェアの構成を示すブロック図である。以下、ＰＣ１０１上で動作するプログラムとそのデータ処理構成について、図１１を参照しながら説明する。図１１に示すブラウザ３０１は、実施例１における説明と同じである。図１１に示す構造化文書印刷モジュール１１０１は、構造化文書３０３をパラメータとしてブラウザ３０１から呼び出されるプラグインソフトウェアである。ユーザがブラウザ３０１を起動した際に、ブラウザ３０１が構造化文書印刷モジュール１１０１を実行する。構造化文書印刷モジュール１１０１において、ユーザインタフェース３０４、中間データ抽出部３０５は、実施例１における説明と同じである。
【００６８】
印刷レイアウト部１１０２は、実施例１と同様に、中間データ抽出部３０５が抽出した中間データファイルを印刷設定に従って用紙サイズにレイアウトする。また、印刷レイアウト部１１０２は、後述する縮小率指定部１１０３で縮小率が指定された場合は、この縮小率に従って中間データを縮小した状態で用紙サイズにレイアウトする。このとき、印刷レイアウト部１１０２は、複数の用紙方向およびレイアウトに対して指定された縮小率を適用した場合の用紙枚数を求め、最も用紙枚数の少ない用紙方向および１枚の用紙におけるページ数で印刷データを配置する。このとき印刷レイアウト部１１０２は、種々のレイアウトに従って印刷データを配置したときの余白を算出することにより最も用紙枚数の少ない用紙方向、および１枚の用紙におけるページ数を決定する。なお上記余白は、当該印刷設定（用紙サイズ、用紙サイズ内の印刷領域のサイズ）と、印刷データのサイズにより算出することができる。
【００６９】
印刷プレビュー部３０７は、印刷レイアウト部１１０２でレイアウトした中間データファイルを印刷プレビューとして表示部２０６に表示する。
【００７０】
本実施例において、印刷プレビュー画面５０１は、印刷プレビュー画面５０１に表示された印刷データ５０２の縮小率をユーザが１％間隔で指定可能な縮小率指定スライダバー１２０１を備えている。縮小率指定部１１０３は、ユーザが縮小率指定スライダバーにより指定された縮小率を検出する。印刷処理部３１１、ＯＳ３１２およびプリンタドライバ３１３は、実施例１における説明と同じである。
【００７１】
次に、図１２を参照しながら、本実施例の縮小率指定部１１０３と印刷レイアウト部３０６の動作を説明する。図１２（ａ）は、印刷プレビュー画面５０１上でサムネイル表示された場合を示す。図１２（ａ）に示すように、印刷プレビュー画面５０１内に８ページの用紙が表示されている。この状態で縮小率指定スライダバー１２０１で縮小率６６％が指定された場合の印刷プレビュー画面を図１２（ｂ）に示す。図１２（ｂ）では、５ページの用紙に印刷イメージが表示されている。
【００７２】
図１２（ｃ）は、更に縮小率指定スライダバー１２０１で縮小率５２％が指定された場合の印刷プレビュー画面を示す。図１２（ｃ）では、用紙をランドスケープ方向に回転後、２段組みレイアウトに変更することで、同じ縮小率で以って３ページで印刷イメージを表示する。ここでは、用紙方向がランドスケープで２段組みレイアウトの例を説明したが、用紙方向はポートレートまたはランドスケープで、段組み数は、１段組み、２段組みまたは３段組みの計６通りの組み合わせのレイアウトから選択するようにしても良い。
【００７３】
以上のように、本実施例においては、縮小率指定スライダバー１２０１で縮小率が指定された場合に、縮小率指定部１１０３は、印刷レイアウト部１１０２に縮小率を指定する。そして、印刷レイアウト部１１０２は、複数の用紙方向およびレイアウトから、指定された縮小率で以ってより用紙枚数の少ない用紙方向およびレイアウトを選択して印刷プレビュー表示する。
【００７４】
以上の実施例によれば、ユーザは、ページの増減させるための指示を行うと、その指示に応じてページ数を決定し、その決定されたページ数にフィットするように、印刷データのレイアウトを行う。これにより、ユーザは所望のページ数になるように指示を行うことで、その指定したページ数のページに、印刷データをフィットさせてレイアウトを行うことができる。よって、ユーザは、構造化文書に基づくデータを、適切かつ簡単にレイアウトすることができる
また、以上の実施例では、ユーザは、印刷データが配置されている当該ページ数から、ページを増減させる例を示したが、印刷データがページに配置される前に、ページ数を指定し、そのページ数にフィットするように、印刷データを配置してもよい。なお、以上の実施例では、印刷データを縮小する例を示したが、ページ数を増やす場合には、印刷データを拡大するようにしてもよい。
【００７５】
さらに、印刷データが既にページに配置されているときに、印刷データの拡大、縮小を行う場合に限らず、印刷データを作成するときに、ユーザが指定したページ数にフィットするように、印刷データのサイズを決定してもよい。この場合には、ユーザはページ数を指定することにより、そのページ数に応じた印刷データを簡単かつ適切に作成することができる。
【００７６】
また、ユーザにより指定されたページ数の印刷データを印刷プレビューする場合に限らず、ユーザによりページ数が指定されたことに応じて、そのページ数の印刷データを作成し、印刷プレビューを行わずに、印刷を実行してもよい。さらに、ユーザにより指定されたページ数にフィットするように印刷データを作成する場合に限らず、ユーザにより指定されたページ数を越える場合に、そのページ数で収まるように、印刷データをフィットさせるようにしてもよい。つまり、ユーザは、ページ数の上限を指定することにより、その上限のページ数に収まるように、印刷させることができる。また、以上の実施例では、ページにレイアウトしたデータを印刷する例について説明したが、これに限らず、表示装置への表示や、メモリへの記憶等の各種の出力処理を行ってもよい。
【００７７】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005947508.tif 000002
【図２】
0005947508.tif 000003
【図３】
0005947508.tif 000004
【図４】
0005947508.tif 000005
【図５】
0005947508.tif 000006
【図６】
0005947508.tif 000007
【図７】
0005947508.tif 000008
【図８】
0005947508.tif 000009
【図９】
0005947508.tif 000010
【図１０】
0005947508.tif 000011
【図１１】
0005947508.tif 000012
【図１２】
0005947508.tif 000013