以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<システム概要>
本発明の実施の形態1に係る文書処理システムの概要を、図1〜図12を参照して説明する。この文書処理システムでは、一般的なアプリケーションにより作成されたデータファイルが、電子原稿ライタによって電子原稿ファイルに変換される。製本アプリケーションは、その電子原稿ファイルを編集する機能を提供している。以下、その詳細を説明する。
<システム構成及び動作>
図1は、本発明の実施の形態に係る情報処理システムに好適な文書処理システムのソフトウェア構成を示す図である。
この文書処理システムは、本実施の形態に係る情報処理装置の好適な実施形態であるデジタルコンピュータ100によって実現されている。一般アプリケーション101は、ワードプロセシングやスプレッドシート、フォトレタッチ、ドロー或いはペイント、プレゼンテーション、テキスト編集などの機能を提供するアプリケーションプログラムであり、印刷機能を有している。これらアプリケーションプログラムは、作成された文書データや画像データなどのアプリケーションデータを印刷するにあたって、オペレーティングシステム(OS)により提供される所定のインターフェースを利用する。即ち、アプリケーション101は、作成したデータを印刷するために、前記インターフェースを提供するOSの出力モジュールに対して、予め定められる、OSに依存する形式の出力コマンド(GDI関数)を送信する。この出力コマンドを受けた出力モジュールは、プリンタ等の出力デバイスが処理可能な形式にそのコマンドを変換し、その変換されたコマンド(DDI関数)を出力する。この出力デバイスが処理可能な形式は、デバイスの種類やメーカ、機種などによって異なるために、デバイスごとにデバイスドライバが提供されており、OSでは、そのデバイスドライバを利用してコマンドの変換を行うことにより印刷データを生成し、JL(Job Language)でくくることにより印刷ジョブを生成する。このOSとして、例えばマイクロソフト社のウインドウズ(Windows(登録商標))を利用する場合は、前述した出力モジュールとしてはGDI(Graphic Device Interface)と呼ばれるモジュールが相当する。
電子原稿ライタ102は、前述のデバイスドライバを改良したものであり、この文書処理システム実現のために提供されるソフトウェアモジュールである。但し、この電子原稿ライタ102は、特定の出力デバイスを目的としておらず、後述の製本アプリケーション104やプリンタドライバ106により処理可能な形式に出力コマンドを変換することにより電子原稿ファイル103を生成する。この電子原稿ライタ102による変換後の形式(以後、「電子原稿形式」と呼ぶ)は、ページ単位の原稿を詳細な書式をもって表現可能であれば特に問わない。実質的な標準形式のうちでは、例えばアドビシステムズによるPDF形式や、SGML形式などが電子原稿形式として採用できる。アプリケーション101により電子原稿ライタ102を利用させる場合には、出力に使用するデバイスドライバとして電子原稿ライタ102を指定してから印刷を実行させる。但し、電子原稿ライタ102によって作成されたままの電子原稿ファイルは、電子原稿ファイルとして完全な形式を備えていない。そのため、デバイスドライバとして電子原稿ライタ102を指定するのは製本アプリケーション104であり、その管理下でアプリケーションデータの電子原稿ファイルへの変換が実行される。製本アプリケーション104は、電子原稿ライタ102が生成した新規の不完全な電子原稿ファイルを、後述する形式を備えた電子原稿ファイルとして完成させる。以下では、この点を明瞭に識別する必要がある際には、電子原稿ライタ102によって作成されたファイルを「電子原稿ファイル」と呼び、製本アプリケーション104によって構造を与えられた電子原稿ファイルを「ブックファイル」と呼ぶ。また、特に区別する必要がない場合は、アプリケーションにより生成されるドキュメントファイル、電子原稿ファイル、及びブックファイルをいずれも文書ファイル(または文書データ)と呼ぶ。
このようにデバイスドライバとして電子原稿ライタ102を指定し、一般アプリケーション101によりそのデータを印刷させることで、アプリケーションデータはアプリケーション101によって定義されたページ(以後、「論理ページ」或いは「原稿ページ」と呼ぶ)を単位とする電子原稿形式に変換され、電子原稿ファイル103としてハードディスクなどの記憶媒体に格納される。尚、ハードディスクは、本実施形態に係る文書処理システムを実現するコンピュータが備えているローカルドライブであってもよいし、ネットワークに接続されている場合にはネットワーク上に提供されるドライブであっても良い。
製本アプリケーション104は、「電子原稿ファイル」或いは「ブックファイル」103を読み込み、それを編集するための機能を利用者に提供する。但し、製本アプリケーション104は、各ページの内容を編集する機能は提供しておらず、ページを最小単位として構成される、後述する章やブックの構造を編集するための機能を提供している。
製本アプリケーション104によって編集されたブックファイル103を印刷する際には、製本アプリケーション104によって電子原稿デスプーラ105が起動される。この電子原稿デスプーラ105は、指定されたブックファイルをハードディスクから読み出し、そのブックファイルに記述された形式で各ページを印刷するために、前述したOSの出力モジュールに適合する出力コマンドを生成し、不図示の出力モジュールに出力する。その際に、出力デバイスとして使用されるプリンタ107用のプリンタドライバ106がデバイスドライバとして指定される。そして出力モジュールは、指定されたプリンタ107のプリンタドライバ106を用いて、受信した出力コマンドをプリンタ107で解釈実行可能なデバイスコマンドに変換する。そして、このデバイスコマンドは、プリンタ107に送信され、プリンタ107によって、そのコマンドに応じた画像が印刷される。
図2は、図1に示すデジタルコンピュータ100のハードウェア構成を示すブロック図である。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、或いはハードディスク211からRAM202にロードされたOSや一般アプリケーション101、製本アプリケーション104などのプログラムを実行し、図1のソフトウェア構成や、後述するフローチャートの手順を実現する。RAM202はCPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は表示部210の表示を制御する。尚、この表示部210はCRTに限定されず、例えば液晶、プラズマなどでも良い。ディスクコントローラ(DKC)207は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、後述する編集ファイル等を記憶するハードディスク(HD)211や不図示のフロッピー(登録商標)ディスク(FD)等との間でのアクセスを制御する。PRTC208は、接続されたプリンタ107との間の信号の交換を制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
<電子原稿データの形式>
編集アプリケーション104の詳細に言及する前に、上述した「ブックファイル」のデータ形式を説明する。
このブックファイルは、紙媒体の書物を模した3層の層構造を有する。上位層は「ブック」と呼ばれ、1冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各「章」についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各「ページ」ついてもページごとの属性が定義できる。尚、一つの「ブック」は複数の「章」を含んでいてよく、また一つの「章」は複数の「ページ」を含むことができる。
図3(A)は、ブックファイルの形式の一例を模式的に示す図である。この例のブックファイルにおける、「ブック」、「章」、「ページ」は、それぞれに相当するノードにより示されている。一つのブックファイルは一つの「ブック」を含む。「ブック」、「章」は、「ブック」としての構造を定義するための概念であるから、この定義された属性値と下位層へのリンクとをその実体として含む。「ページ」は、アプリケーションプログラムによって出力された「ページ」ごとのデータを実体として有する。そのため「ページ」は、その属性値の他、原稿ページの実体(原稿ページデータ)と各原稿ページデータへのリンクを含む。尚、紙媒体等に出力する際の印刷ページは、複数の原稿ページを含む場合がある。この構造に関してはリンクによって表示されず、「ブック」、「章」、「ページ」の各階層における属性として表示される。
図3(A)において、ブック301には、ブック属性が定義されているとともに、2つの章302A,302Bがリンクされている。このリンクにより、章302A,302Bがブック301に包含されていることが表示される。更に章302Aには、ページ303A,303Bがリンクされ、これらページが含まれることが示されている。各ページ303A,303Bには、それぞれそのページの属性値が定義され、その実体である原稿ページデータ(1)、(2)へのリンクが含まれる。これらリンクは、図3(B)に示す原稿ページデータ304の原稿データ(1),(2)を指示しており、ページ303A、303Bの実体が、原稿ページデータ(1)、(2)であることを表示する。
同様に、章302Bにはページ303C,303Dが含まれ、その実体である原稿ページデータ(3)、(4)へのリンクが含まれている。これらリンクは、図3(B)に示す原稿ページデータ304の原稿データ(3),(4)を指示しており、ページ303C、303Dの実体が、原稿ページデータ(3)、(4)であることが表示される。
図4は、本実施の形態に係るブック属性301を説明するための図である。
ここでは、下位層と重複して定義可能な項目に関しては、下位層の属性値が優先的に採用される。そのためブック属性301にのみ含まれる項目に関しては、そのブック属性301で定義された値が、そのブック全体を通して有効な値となる。しかし、下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。尚、図示された各項目は具体的に1項目に対応するのではなく、関連する複数の項目を含むものもある。
図5は、本実施の形態に係る章属性を説明する図、図6は本実施の形態に係るページ属性を説明する図である。ここで、これら章属性とページ属性との関係も、前述のブック属性と下位層の属性との関係と同様である。
図4において、ブック属性301に固有の項目は、「印刷方法」、「製本詳細」、「表紙/裏表紙」、「インデックス紙」、「合紙」、「章区切り」の6項目である。これら項目は、そのブックを通して定義される項目である。
「印刷方法」の属性としては、「片面印刷」、「両面印刷」、「製本印刷」の3つの値を指定できる。ここで「製本印刷」とは、別途指定する枚数の用紙を束にして2つ折りにし、その束を綴り合わせることで製本が可能となる形式で印刷する方法である。「製本詳細」の属性としては、「印刷方法」で「製本印刷」が指定されている場合に、「見開き方向」や「束になる枚数」等が指定できる。
「表紙/裏表紙」の属性は、ブックとしてまとめられる電子原稿ファイルを印刷する際に、表紙および裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。「インデックス紙」の属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定およびインデックス(耳)部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが、使用する印刷装置に備えられている場合か、或いは、複数の給紙カセットを使用可能である場合に有効となる。これは「合紙」の属性についても同様である。この「合紙」の属性は、章の区切りとして、インサータから、或いは給紙カセットから供給される用紙の挿入の指定、及び、合紙を挿入する場合には、給紙元の指定などを含む。
「章区切り」の属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。「片面印刷」時には、新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。「両面印刷」時には、「新たな用紙の使用」を指定すれば連続する章が1枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が1枚の用紙の表裏に印刷されることがあり得る。
次に図5に示す章属性に関しては、章に固有の項目はなく、全てブック属性と重複する。従って、章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。前述のブック属性と章属性とにのみ共通する項目は、「用紙サイズ」、「用紙方向」、「N−up印刷指定」、「拡大縮小」、「排紙方法」の5項目である。このうち「N−up印刷指定」の属性は、1枚の印刷ページに含まれる原稿ページ数を指定するための項目である。ここで指定可能な配置としては、1×1や1×2、2×2、3×3、4×4などがある。「排紙方法」の属性は、排出した用紙にステイプル処理を施すか否かを指定するための項目であり、この属性の有効性は使用する印刷装置がステイプル機能を有するか否かに依存する。
次に図6に示すページ属性において、このページ属性に固有の項目には、「ページ回転指定」、「ズーム」、「配置指定」、「アノテーション」、「ページ分割」などがある。「ページ回転指定」は、原稿ページを印刷ページに配置する際の回転角度を指定するための項目である。「ズーム」の属性は、原稿ページの変倍率を指定するための項目である。この変倍率は、仮想論理ページ領域のサイズを100%として指定される。この仮想論理ページ領域とは、原稿ページをN−up等の指定に応じて配置した場合に、1原稿ページが占める領域である。例えば1×1であれば、仮想論理ページ領域は1印刷ページに相当する領域となり、1×2であれば、1印刷ページの各辺を約70パーセントに縮小した領域となる。
以上説明した「ブック」、「章」、「ページ」のそれぞれについて共通な属性として、「ウォーターマーク」属性および「ヘッダ・フッタ」属性がある。「ウォーターマーク」とは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。「ヘッダ・フッタ」は、それぞれ各ページの上余白および下余白に印刷されるウォーターマークである。但し、この「ヘッダ・フッタ」には、ページ番号や日時など、変数により指定可能な項目が用意されている。尚、「ウォーターマーク」の属性及び「ヘッダ・フッタ」の属性において指定可能な内容は、「章」と「ページ」では共通であるが、「ブック」の場合では、それらと異なっている。「ブック」においては、「ウォーターマーク」や「ヘッダ・フッタ」の内容を設定できるし、また、ブック全体を通してどのように「ウォーターマーク」や「ヘッダ・フッタ」を印刷するかを指定することができる。一方、「章」や「ページ」では、その章やページにおいて、ブックで設定された「ウォーターマーク」や「ヘッダ・フッタ」を印刷するか否かを指定できるだけである。
<ブックファイルの生成手順>
上述した製本アプリケーション104によって構造を与えられた電子原稿ファイルである「ブックファイル」は、上述したような構造及び内容を有している。次に、製本アプリケーション104及び電子原稿ライタ102によってブックファイルを作成する手順を説明する。このブックファイルの作成は、製本アプリケーション104によるブックファイルの編集操作の一環として実現される。
図7は、本実施の形態に係る製本アプリケーション104によりブックファイルを開く際の手順を説明するフローチャートである。
まずステップS701で、開こうとするブックファイルが、新規作成すべきものであるか、それとも既存のものであるかを判定する。新規作成の場合にはステップS702に進み、章を含まないブックファイルを新規に作成する。この新規に作成されるブックファイルは、図3の例で示せば、ブックノード301のみ有し、章のノードに対するリンクが存在しないブックのノードとなる。この場合のブック属性は、新規作成用として予め用意された属性のセットが適用される。そしてステップS704に進み、新規ブックファイルを編集するためのユーザインターフェース(UI)画面を表示する。
図11は、新規にブックファイルが作成された際のUI画面の一例を示す図である。この場合には、ブックファイルは実質的な内容を持たないために、UI画面1100には何も表示されない。
一方、ステップS701で、既存のブックファイルがあればステップS703に進み、指定されたブックファイルを開き、そのブックファイルの構造、属性、内容に従ってユーザインターフェース(UI)画面を表示する。
図10は、この表示されたUI画面の一例を示す図である。
このUI画面1100は、ブックの構造を示すツリー部1101と、印刷された状態を表示するプレビュー部1102とを含む。ツリー部1101には、そのブックに含まれる章、各章に含まれるページが、前述の図3(A)のような木構造で表示される。ツリー部1101にはページ番号が表示されており、このページ番号は原稿ページの番号を示している。またプレビュー部1102には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。
さて、このオープンされたブックファイルには、電子原稿ライタ102によって、電子原稿ファイルに変換されたアプリケーションデータを、新たな章として追加することができる。この機能を「電子原稿インポート機能」と呼ぶ。前述の図7のフローチャートで示す手順に沿って新規に作成されたブックファイルに、この電子原稿インポートすることで、そのブックファイルに実体が与えられる。この機能は、図10の画面において、アプリケーションデータをドラッグアンドドロップ操作することで起動される。
図8は、本実施の形態に係る電子原稿インポートの手順を示すフローチャートである。
まず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして電子原稿ライタ102を指定してアプリケーションデータを印刷させることにより電子原稿データに変換する(ステップS801)。この電子原稿データへの変換を終えるとステップS802に進み、その変換されたデータが画像データであるか否かを判定する。この判定は、ウインドウズOSの下であれば、アプリケーションデータのファイル拡張子に基づいて行うことができる。例えば、拡張子が「bmp」であればウインドウズビットマップデータであり、「jpg」であればJPEG圧縮された画像データ、「tiff」であればtiff形式の画像データであると判定できる。また、このような画像データの場合はステップS801のようにアプリケーションを起動せずに、画像データから直接電子原稿ファイルを生成することが可能であるため、ステップS801の処理を省略することも可能である。
ステップS802で、画像データでなかった場合はステップS803に進み、ステップS801で生成された電子原稿ファイルを、現在開かれているブックファイルのブックに、新たな章として追加する。この場合、章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、予め用意された規定値に設定される。
又ステップS802で画像データである場合にはステップS804に進み、原則として新たな章は追加されず、指定されている章に、ステップS801で生成された電子原稿ファイルに含まれる各原稿ページを追加する。但し、ブックファイルが新規作成されたファイルであれば、新たな章が作成されて、その章に属するページとして、電子原稿ファイルの各ページが追加される。ここでページ属性は、上位層の属性と共通のものについてはその属性値が与えられ、アプリケーションデータにおいて定義された属性を電子原稿ファイルに引き継いでいるものについてはその値が与えられる。例えば、「N−up印刷指定」などがアプリケーションデータにおいてされていた場合には、その属性値が引き継がれる。このようにして、新規なブックファイルが作成され、或いは新規な章が追加される。
図9は、図8のステップS801において、電子原稿ライタ102により電子原稿ファイルを生成させる手順を示すフローチャートである。
まずステップS901で、新たな電子原稿ファイルを作成してそれを開く。次にステップS902に進み、その指定したアプリケーションデータに対応するアプリケーションを起動し、電子原稿ライタ102をデバイスドライバとして、OSの出力モジュールに対して出力コマンドを送信させる。この出力モジュールは、受信した出力コマンドを電子原稿ライタによって電子原稿形式のデータに変換して出力する。ここで、その出力先は、ステップS901で開いた電子原稿ファイルである。次にステップS903に進み、指定されたデータの全てについて変換が終了したか判定し、終了していればステップS904に進み、その電子原稿ファイルを閉じる。この様にして電子原稿ライタ102によって生成される電子原稿ファイルは、前述の図3(B)に示した、原稿ページデータの実体を含むファイルである。
<ブックファイルの編集>
以上のようにして、アプリケーションデータからブックファイルを作成することができる。こうして生成されたブックファイルについては、章及びページに対して次のような編集操作が可能である。
(1)新規追加
(2)削除
(3)コピー
(4)切り取り
(5)貼り付け
(6)移動
(7)章名称変更
(8)ページ番号名称振り直し
(9)表紙挿入
(10)合紙挿入
(11)インデックス紙挿入
(12)各原稿ページに対するページレイアウト。
この他、一旦行った編集操作を取り消す操作や、更に、取り消した操作をやり直す操作が可能である。これら編集機能により、例えば複数のブックファイルの統合、ブックファイル内で章やページの再配置、ブックファイル内で章やページの削除、原稿ページのレイアウト変更、合紙やインデックス紙の挿入などといった編集操作が可能となる。これらの操作を行うと、図4乃至図6に示す属性に捜査結果が反映されたり、或いはブックファイルの構造に反映される。例えば、ブランクページの新規追加操作を行えば、指定された箇所にブランクページが挿入される。このブランクページは原稿ページとして扱われる。また、原稿ページに対するレイアウトを変更すれば、その変更内容は、印刷方法やN−up印刷、表紙/裏表紙、インデックス紙、合紙、章区切りといった属性に反映される。
<ブックファイルの出力>
以上のように作成・編集されるブックファイルは印刷出力を最終目的としている。利用者が図10に示す製本アプリケーションのUI画面1100からファイルメニューを選択し、そこから印刷を選択すると、指定した出力デバイスにより印刷が行われる。この際、まず製本アプリケーション104は、現在開かれているブックファイルからジョブチケットを作成して電子原稿デスプーラ105に渡す。これにより電子原稿デスプーラ105は、ジョブチケットをOSの出力コマンド、例えばウインドウズのGDIコマンドに変換し、それを出力モジュール、例えばGDIに送信する。出力モジュールは、その指定されたプリンタドライバ106によって、出力デバイスに適したコマンドを生成し、その出力デバイスに送信する。
ここでジョブチケットは、原稿ページを最小単位とする構造を有するデータである。このジョブチケットにおけるデータ構造は、用紙上における原稿ページのレイアウトを定義している。このジョブチケットは、1ジョブにつき1つ発行される。そのため、まず最上位にドキュメントというノードがあり、文書全体の属性、例えば両面印刷/片面印刷などが定義されている。その下には、用紙ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各用紙ノードには、その用紙で印刷されるシートのノードが属する。1シートは1枚の印刷用紙に相当し、各シートには、印刷ページ(物理ページ)が属している。片面印刷ならば1シートには1物理ページが属し、両面印刷ならば1シートに2物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。
電子原稿デスプーラ105は、上述のジョブチケットを出力モジュールへの出力コマンドに変換する。
<そのほかのシステム構成>
本実施の形態に係る文書処理システムの概要は以上のようなものである。これはスタンドアロン型のシステムであるが、これを拡張したサーバ・クライアントシステムでもほぼ同様の構成・手順でブックファイルが作成・編集される。ただし、ブックファイルや印刷処理はサーバによって管理される。
図12は、本実施の形態に係るサーバ・クライアント型の文書処理システムの構成を示すブロック図である。
クライアント文書処理システム1200は、スタンドアロン型システムに、クライアントモジュールであるDOMS(Document Output Management Service:文書出力管理サービス)ドライバ109およびDOMSプリントサービスモジュール110、DS(文書サービス)クライアントモジュール108を加えた構成を有する。このクライアント文書処理システム1200に、文書管理サーバ1201および印刷集中管理サーバ1202およびプリントサーバ1203が接続されている。これらサーバは、通常ネットワークによってクライアント文書処理システム1200と接続されるが、サーバが同時にクライアントとしても機能する場合には、ネットワーク間の通信をシミュレートするプロセス間通信によって接続される。尚、図12では、文書管理サーバ1201と印刷集中管理サーバ1202の両サーバがクライアントに接続されているが、いずれか一方のみがネットワーク上に存在する場合もあり得る。接続されているサーバが文書管理サーバであれば、そのクライアントモジュールを含む文書管理サーバクライアントシステム1201SCが、印刷集中管理サーバ1202であれば、そのクライアントモジュールを含む印刷管理サーバクライアントシステム1202SCが、スタンドアロン型文書管理システムに追加される。
文書管理サーバ1201は、製本アプリケーション104により作成・編集されたブックファイルを格納するサーバである。この文書管理サーバ1201によってブックファイルを管理する場合、ブックファイルは、クライアントPCのローカルHDに代わって、或いはそれに加えて、文書管理サーバ1201のデータベース1211に保存される。製本アプリケーション104と文書管理サーバ1201との間のブックファイルの保存及び読み出しは、DSクライアント108及びDSコア1212を介して行われる。
印刷集中管理サーバ1202は、クライアント文書管理システム1200に格納された、或いは文書管理サーバ1201に格納されたブックファイルの印刷を管理するサーバである。クライアントにおける印刷要求は、DOMSドライバ109及びDOMSプリントサービスモジュール110を介して印刷集中管理サーバ1202のDOMSWGサーバモジュール1221に送信される。印刷集中管理サーバ1202は、クライアントのプリンタ107で印刷する場合には、クライアントのDOMSプリントサービスモジュール110を介して電子原稿デスプーラ105に電子原稿データを渡す。
一方、プリントサーバ1203により印刷する場合には、プリントサーバ1203のDOMSプリントサービスモジュール1231に送信する。印刷集中管理サーバ1202は、例えば保存されているブックファイルに対して、その印刷要求を発行した利用者の資格などについてセキュリティチェックを行ったり、印刷処理のログを保存したりする。このように、この文書処理システムは、スタンドアロンとしても、クライアントサーバシステムとしても実現できる。
<プレビュー表示の内容>
既に説明したとおり、ブックファイルが製本アプリケーションによって開かれると、図10に示すユーザインターフェース画面1100が表示される。ここでツリー部1101には、開いているブック(以下、「注目ブック」と呼ぶ)の構造を示すツリーが表示される。印刷プレビュー部1102には、利用者の指定に応じて、3通りの表示方法が用意されている。第1は原稿ページをそのまま表示する「原稿ビューモード」である。この「原稿ビューモード」では、注目ブックに属する原稿ページの内容が縮小されて表示される。この場合、プレビュー部1102の表示には、その原稿のレイアウトは反映されない。第2は「印刷ビューモード」である。この「印刷ビューモード」では、プレビュー部1102には、各原稿ページのレイアウトが反映された形で原稿ページが表示される。第3は「簡易印刷ビューモード」である。この「簡易印刷ビューモード」では、各原稿ページの内容はプレビュー部1102の表示には反映されず、そのレイアウトのみが反映される。
次に本発明の実施の形態の特徴について説明する前に、本実施の形態に適用可能なホストコンピュータ100(本発明の情報処理装置に相当する)とプリンタ107とを有する文書処理システムの構成について説明する。尚、ホストコンピュータ100(以下、クライアントと呼ぶこともある)の構成に関しては、前述の図2を参照して説明した通りであるので、ここでは共通する箇所には同じ番号を付し、その説明を省略する。またプリンタ107は、クライアントに接続されたローカルプリンタであっても、或いはサーバに接続されたプリンタ1204(図12)の場合であってもいずれの場合にも適用可能であるものとする。
図13は、本発明の実施の形態に係る文書処理システムの構成を説明するためのブロック図である。なお、本実施の形態に係る機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。尚、ここでホストコンピュータ100の構成は前述の図2と同じであるため、その説明を省略する。
プリンタ107はCPU12により制御される。このCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム、或いは外部メモリ14に記憶されRAM19にロードされた制御プログラムに基づいて、システムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラム用ROMには、CPU12の制御プログラムが記憶されている。ROM13のフォント用ROMには、上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14が設けられていないプリンタの場合には、ホストコンピュータ100で利用される情報等が記憶されている。
CPU12は入力部18を介してホストコンピュータ100との間での通信処理が可能となっており、プリンタ107の情報等をホストコンピュータ100に通知できる。RAM19は、CPU12の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMにより、そのメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報の展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD),ICカード等の外部メモリ14は、メモリコントローラ(MC)20により、そのアクセスが制御されている。外部メモリ14はオプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また操作パネル21には、操作のためのスイッチおよびLED表示器等が配されている。
また、前述した外部メモリ14は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル21からのプリンタモード設定情報を記憶するようにしてもよい。
ここで、ホストコンピュータ100は、図1を参照して前述したファイル、アプリケーション、デスプーラ及びドライバ等を備えているものとする。そして、このアプリケーション101により生成された文書ファイル(アプリケーションデータ)を電子原稿ライタ102を介することにより電子原稿ファイル103が生成される。電子原稿ファイル103は前述したように、製本アプリケーション104によりファイルオープンすることが可能であり、製本アプリケーション104は、例えば前述の図10に示すような、操作画面を表示部210に表示させる。製本アプリケーション104と汎用の一般アプリケーション101との大きな違いは、製本アプリケーション104が、通常プリンタドライバ106が提供するはずの印刷設定機能を有していることである。この印刷設定機能により、製本アプリケーション104は、汎用アプリケーション101とは異なり、文書のページ順の入れ替えや複製(コピー)、削除などの編集機能に加え、ステイプル・パンチ穴などの、プリンタ107における機能設定を電子原稿ファイルに対して行うことができ、指定したプリンタを使用して印刷することが可能である。なお、本実施の形態で説明する製本アプリケーション104を、印刷設定アプリケーションとも呼ぶ。
図14は、本実施の形態に係る文書処理システムの製本アプリケーション104の「用紙の挿入設定」の機能(一般アプリケーション101にない特有の印刷設定機能の1つ)を使用して、電子原稿ファイルの文書に表紙やインデックス紙の挿入を指示し、そのインデックス紙のタブに章の名前を印刷する設定を行う場合の処理を示すフローチャートである。尚、このインデックス紙は、本実施の形態では章の区切りに挿入される。
この図14のフローチャートを説明する前に、図15及び図16を参照して、「用紙の挿入設定」の一例について説明する。
図15は、本実施の形態に係る製本アプリケーション104による「用紙の挿入設定」のウィンドウ表示の一例を示している。
図15において、1500は挿入する用紙の組合せを指示するためのエリアで、ここでは表紙とインデックス紙を挿入するように指示されており「表紙+インデックス紙」と表示されている。又これ以外にも、「表紙、インデックス紙、合紙、裏表紙」の全て、或いは、これらのいずれかの組合せ、これらのいずれかのみ、を設定することができる。このダイアログボックスで指定した「表紙」「インデックス紙」「合紙」「裏表紙」は、電子原稿ファイル内の実際の文書データとしては存在せず、電子原稿ファイル内の印刷設定情報として管理されている。そのため、このダイアログボックスの印刷設定を変更する(チェックボックスのチェックを外したり、タグを変更する)だけで、インデックス紙を挿入や削除を行うことができ、ユーザの操作性が格段に向上するという効果がある。
またチェックボックス1501により、「インデックス紙のタブに章の名前を印刷する」がチェックされている。これにより、ツリー部1101に表示されている各章の名称(各章の設定情報として予め記憶されている(図22))を、各章毎に挿入されるインデックス紙のタブに印刷するように指定することができる。
図16は、製本アプリケーション104により画面提供される図15の「テキストの詳細設定」1502を指示することによりオープンされた、インデックス紙のタブ部に書く文字列(章の名称)の詳細を設定するためのウィンドウの表示例を示す図である。
この図16のウィンドウでは、タブ部に章名称を記入する際に使用するテキストの文字フォント、サイズ等を選択することができる。図16のウィンドウのフォント指定欄で、横書きフォントを選択するか、縦書きフォントを選択するかで、レイアウト指定欄の候補が自動的に変更される。横書きフォントが選択された場合は、図17のようにウィンドウが変更され、縦書きフォントが選択された場合は、図18のようにウィンドウが変更される。図17及び図18は、これらウィンドウの拡大図である。
本実施の形態に係る印刷制御プログラムである製本アプリケーション104では、図16に示すようなタブ設定画面を提供することにより、文書に付与するタブ紙(インデックス紙)に印刷する文字の設定を容易に行うことができる。そのため従来のように、文書ページとしてインデックス紙用のデータを生成しなくて済む。また、文書へのインデックス紙の挿入位置を変更したい場合には、製本アプリケーション104のページプレビュー画面においてインデックス紙のページ位置を変更するだけで済むため、操作を容易にできる。更に、インデックス紙を追加する場合でも、インデックス紙の追加を指示するだけで良いため使い勝手が格段に向上するという効果が得られる。
ここでは、横書きのフォント「MS明朝」が選択されているため、図17に示すような欄1606の選択肢の中から、ユーザは好きなレイアウトを選ぶことができる。図17の場合は、1605で示す「左寄り<1>」が選択されているため、タブの左側に文字列が寄ったレイアウト(1607)で、また、インデックス紙のタブを上側にして章名称の印刷が行われる。更に、「左寄り<2>」を選択すれば、タブの左側に寄った文字レイアウトで、かつインデックス紙のタブを下側にして章名称の印刷が行われる。このように、横書きフォントを選択した場合は、インデックス紙に対してタブを上側にして印刷する場合と、下側にして印刷する場合とに対応することが可能となる。
また、1602はスタイルを指定するエリア(ここでは標準)、1603は文字サイズを設定するエリア(ここでは10ポイント)、1604は文字の色、1605には、欄1606のうちの選択されたレイアウトが表示されている。1607は、実際にタブに印字される文字の形態(ここでは、左寄り)を示している。
図18は、インデックス紙のタブに記入する文字列の詳細を設定するためのウィンドウにおいて、縦書きフォントが選択されている場合の例を示すウィンドウ表示例を示す図である。
ここではフォント指定エリア1601において、縦書きのフォント「@MSゴシック」が選択されている。この場合には、欄1606には、「上寄り」、「中央寄り」、「下寄り」が表示され、これらの中から、好きなレイアウトを選択することができる。図18では、欄1606で「上寄り」が選択されているため、1605には「上寄り」が表示され、1607には、タブの「上寄り」のレイアウトで、かつインデックス紙のタブを右側にして章名称を印刷する設定が行われていることが表わされている。また、図18では、インデックス紙のタブへのレイアウトとして「上寄り」「中央寄り」「下寄り」のいずれかを選択したが、製本印刷アプリケーション104の印刷設定で、印刷物の開き方向として「左開き」「右開き」の指定欄を設け、その開き方向の指定で「左開き」が選択されている場合は、図18のようにレイアウトを選択させ、「右開き」が選択されている場合は、図示省略したが「上寄り<2>」「中央寄り<2>」「下寄り<2>」を選択させるようにしてもよい。尚、<2>のレイアウトは、インデックス紙のタブを左側にして章名称の印刷が行われるレイアウトに相当する。
以上の前提を基に、図14のフローチャートについて説明する。
まずステップS1401で、製本アプリケーション104は、タブに章の名称を書く設定になっているかどうかを、チェックボックス1501がチェックされているかどうかにより判定する。チェックボックス1501がチェックされて、タブに章の名称を書く設定になっている場合はステップS1402に進み、その章の名称或いは番号等をタブに印刷するために使用するためのフォントを選択する処理に移り、製本アプリケーション104は、選択したフォントが縦書きフォントであるかどうかを判定する。これは選択されているフォントの種類に応じて判定される。縦書きフォントのときはステップS1403に進み、製本アプリケーション104は、縦書き用のタブ部の設定処理を行う。この縦書き用のタブ部の設定処理では、図18の表示画面例に示されるように、製本アプリケーション104は、文字スタイル、文字サイズ、文字の色、文字揃え等が設定された表示用画面を提供し、OSを介して表示部210に表示させるよう制御する。ここで前述したように、製本アプリケーション104は、開き方向が「右開き」であるか「左開き」であるかを更に判断し、その開き方向に応じて、インデックス紙のタブへのレイアウトの候補を変更してもよい。また、横書きフォントが選択されている場合はステップS1404に進み、製本アプリケーション104は、横書き用のタブ部の設定処理を行う。この横書き用のタブ部の設定処理では、図17の表示画面例に示されるように、製本アプリケーション104は、文字スタイル、文字サイズ、文字の色、文字揃え等が設定された表示用画面を提供し、OSを介して表示部210に表示させるよう制御する。
図19は、本実施の形態に係るアプリケーション101が扱う文書ファイルのデータ構造を説明する図である。この文書ファイルは、図1の電子原稿ファイル103に相当し、ここでは、例えば図13の外部メモリ211に記憶されているが、図12の文書管理サーバ1201のデータベース1211に格納されていてもよい。
図19において、文書の構造情報701は、図10に示したアプリケーション操作画面のツリービュー1101に表示する文書の構造に関する情報を記憶している。文書の詳細設定情報702は、文書全体に設定可能な情報を記憶するための領域である。章の詳細設定情報703は、各章に設定可能な情報を記憶する領域である。ページの詳細設定情報704は、ページごとに設定可能な情報を記憶するための領域である。そして原稿情報705は、各原稿ページの描画情報を記憶しており、図10の右側の印刷プレビュー1102への表示に使用する情報がページ単位で保存されている。尚、この文書ファイルには、その他にも各文書毎に必要な情報が含まれているが、ここではそれらの説明を省略する。
図20は、図19の文書の詳細設定情報702のデータ構成を更に詳細に説明する図である。
801は文書のページ設定情報、802は文書の仕上げ情報、803は文書の編集情報、804は文書の給紙情報、805はインデックス紙の情報で、これらの情報が文書の詳細設定情報702として格納されている。更に、図15に示す操作画面を用いてインデックス紙の設定を行った場合には、それらの設定情報がインデックス紙の情報805に追加される。
図21は、図20のインデックス紙の情報805に記憶される情報を更に詳細に説明する図である。
図において、901は1章のインデックス紙情報、902は2章のインデックス紙情報というように、以下順に最終章までインデックス紙情報(903〜905)が連続した領域に記憶される。例えば、図15に示すようにして、インデックス紙を使用するように設定された場合には、各章の先頭にインデックス紙が挿入されることになるので、章の個数分のインデックス紙情報の欄が確保されることになる。
図22は、図19に示す章の詳細設定情報703のデータ構成さらに詳細に示した図である。
ここでは、1章から最終章までの各章の詳細設定情報(1001〜1005)が格納されている。この各章の詳細設定情報には、前述した、インデックス紙のタブ部に印刷される章の名称も記憶されている。
図23は、図22に示された各章の詳細設定情報(1001〜1005)のデータ構成を説明する図である。
図23において、2101は章のページ設定情報で、ここに章の名称が記憶されている。2102は章の仕上げ情報、2103は章の編集情報、そして2104は章の給紙情報で、これらの情報が各章の詳細設定情報として格納されている。
図24は、図15の「インデックス紙の挿入設定」の後、インデックス紙の詳細編集を行う場合を説明する図である。
ここでは全てのインデックス紙(図24の例では5枚)が重なった状態で編集画面に表示される。ここで、編集を行うインデックス紙のタブを、例えばポインティングデバイスであるマウスにより指示されるマウスカーソルを用いて指示し、そのマウスをクリックすることで、その指示されたインデックス紙が先頭ページに表示されて、そのインデックス紙が編集可能な状態になる。例えば、図24の左側に示す初期画面では、先頭章のインデックス紙が編集可能状態であるので、タブ2201が付いたインデックス紙がアクティブになっていて、このインデックス紙に対する編集が可能となる。この状態で次に、例えばタブ2205をクリックすることにより、図24の右側に示すように、そのタブ2205が付与されているインデックス紙(5枚目)が一番上に表示されて、このインデックス紙への編集がアクティブになる。このようにしてアクティブになったインデックス紙のタブ及びインデックス紙の内容を編集することができる。
図25は、本実施の形態に係る文書処理システムにおけるアプリケーション101によるインデックス紙の設定及びプレビュー表示処理の詳細を示すフローチャートである。
このアプリケーション101は、インディスク紙の挿入設定ダイアログ(図15)でインデックス紙の設定を行っていれば、その文書に含まれる章の個数分のインデックス情報を記録する領域が、図21に示したように確保されている。
従って、まずステップS2301で、今回始めてインデックス紙を設定したのであれば、インデックス紙の情報805に、図21に示すように、章の個数(N)分だけ、各章のインデックス紙情報の領域を確保し、そこにインデックス紙情報のデフォルト値を書き込む。次に、このインデックス紙の編集操作を行うことによりステップ2302で、インデックス紙のタブ領域の有効座標を求めるための情報を計算する。ここでは、一例として、インデックス紙の右上座標(X0,Y0)を原点とした時のタブ位置のX座標範囲(X1,X2)、インデックス紙の高さH、及びタブの高さJを予め求めておく。
次にステップS2303以降において、ユーザによる編集操作による何らかのイベントが発生すれば、そのイベントに対応する処理を行う。例えば、編集するインデックス紙の選択イベントとして、ポインティングデバイスであるマウスで当該インデックス紙上がクリックされるとステップS2304からステップS2309に進み、マウスカーソルを用いてクリックされた座標値(XX、YY)を読み取る。次にステップS2310に進み、そのマウスクリックされた画面上の座標値(XX、YY)を、インデックス紙の右上座標値(X0、Y0)を原点とした座標値(X,Y)に変換する。そして、この変換した座標値(X,Y)を基に、タブ領域の有効座標範囲がマウスにより指示されたか否かを確認する。ここで、この変換された座標値(X,Y)のX,Yの各値が、X1<X<X2,Y0<Y<(Y0+H)の条件を満たしていれば、マウスカーソルにより、いずれかのインデックス紙のタブが指示されたことになるので、その指示されたタブに対応するインデックス紙を求める。ここでは、{(Y−Y0)/J}の整数部分を求めることにより、先頭のインデックス紙の番号を「0」とした場合における、指示されたインデックス紙の番号を求めることができる。つまり、この番号が当該編集の情報を格納する領域、即ち、図21で示すインデックス紙情報の格納領域への章番号となっている。
ステップS2304でマウスイベントでない場合はステップS2305に進み、タブ編集イベントが発生したかを調べ、タブ編集イベントが発生したときはステップ2308に進み、インデックス紙のタブに書き込む章の名称を印刷するための編集画面に切り替える。そして、この画面を用いて設定された文字の様式がステップ2310で求めた章番号で指示される章のインデックス紙情報(図21)に格納される。このステップS2308における処理の詳細は、前述の図14のフローチャートに示されている。
またステップS2305でタブ編集イベントでない場合はステップS2306に進み、インデックス紙の編集イベントが発生したかを調べ、そうであればステップS2307に進み、インデックス紙の編集画面に切り替わり、ステップ2310で求めた章番号で指示されるインデックス紙情報(図21)に、ステップS2307で編集された情報が格納される。
最後にステップS2303で、編集の終了イベントが発生するとステップS2311に進み、今までの操作で編集した情報をもとにして、インデックス紙の設定処理が終了する。
このようにして、ユーザは、インデックス紙の向きに応じて、そのインデックス紙のタグの文字列の配置を任意の方向に設定することが可能となる。
図26は、上述したインデックス紙の情報の入力処理をまとめて示すフローチャートである。
まずステップS2601で、図15の画面を用いてインデックス紙の設定処理が起動されると次にステップS2602に進み、製本アプリケーション104は、設定されたインデックス紙の枚数を基に、図21に示すように、必要な章の個数分のインデックス紙情報の記憶エリアを確保する。次にステップS2603で、製本アプリケーション104は、チェックボックス1501により、インデックスのタブ部に章の名称を印刷するように指示されているかを判定する。印刷が指示されている時はステップS2604に進み、そのタブに印刷する文字のフォント、スタイル、サイズ、色及び文字揃えを指定する(図16乃至図18)。そしてステップS2605に進み、その設定されたタブの情報とともに、そのインデックス紙の情報を、該当する章のインデックス紙情報として記憶する。又ステップS2603で、タブへの印刷が設定されていない場合には、ステップS2605に進み、そのインデックス紙の情報を記憶する。
図27は本実施の形態に係る文書情報の印刷処理を示すフローチャートである。
まずステップS2701で、電子原稿デスプーラ105は、図19に示す文書情報のうち文書の詳細設定情報702を読取り、次にステップS2702で、それに含まれるインデックス紙の情報805(図20)を取り出す。この情報805(図21)を基に、現在の章にインデックス紙の情報が設定されているかどうかをみる。設定されているときはステップS2704に進み、電子原稿デスプーラ105は、その章のインデックス紙の情報を取り出して、インデックス紙を印刷する。次にステップS2705に進み、そのインデックス紙のタブに章の名称を印刷するように指示されているかどうかを判定する。印刷が指示されている場合はステップS2706に進み、その章に対応する章の名称を対応する章の詳細設定情報から読み出し、ステップS2707で電子原稿デスプーラは、対応するインデックス紙情報として記憶されている、指定されたフォント、文字サイズや文字揃え等に応じて、そのインデックス紙のタブに印刷させるようGDI関数をOSの描画手段であるグラフィックエンジン(GDI)に出力する。これにより、グラフィックエンジンでプリンタドライバ106が解釈可能な描画関数(DDI関数)に変換され、前述したように、プリンタドライバ106は、グラフィックエンジンから渡された描画関数に応じて、プリンタ107が解釈可能なプリンタ制御言語の印刷データを生成することにより、タブ紙印刷処理が実行される。
一方、ステップS2703で、その章にインデックス紙の情報が設定されていない場合は、或いはステップS2705でタブの印刷が指示されていない場合はステップS2708に進み、電子原稿デスプーラ105は、その章に含まれる原稿ページの情報を基に、各原稿ページを印刷させるようGDI関数をグラフィックエンジンに出力することにより印刷処理を実行する。そしてその章の全原稿ページの印刷処理が終了するとステップS2709に進み、その章が最終章であるかをみる。最終章でない時は再びステップS2702に戻り、電子原稿デスプーラ105は、次の章のインデックス紙の情報805(図20)を取り出し、前述と同様の処理を実行する。こうして、その文書の全ての章の全原稿ページ及び付与されているインデックス紙の印刷処理が終了すると、この印刷処理を終了する。
尚、この文書情報の印刷プレビューを表示する場合には、図27のフローチャートにおいて、「印刷する」を「印刷プレビューに展開して表示する」とすることにより、設定されているインデックス紙と各原稿ページの印刷プレビュー表示を行うことができる。
図28は、この様にして表示された印刷プレビューの一例を示す図である。
図28では、各章の先頭にインデックス紙2800,2801が挿入されて、印刷プレビュー1102が表示されている。これらインデックス紙2800,2801のそれぞれは、インデックス紙にタブが付いた状態で表示されており、そのタブの文字列も、設定された文字サイズや文字フォント、文字揃えなどに応じて表示されている。これにより、そのインデックス紙が挿入されているページ位置が一瞥して判別でき、またインデックス紙のタブ位置を先頭のインデックス紙2800から順に下方にずらして配置して表示しているので、インデックス紙の用紙形状も一瞥して分かる。
この処理によって、図16に示したウィンドウから指定されたインデックス紙情報に従った文字列をインデックス紙のタブに印刷することが可能となる。
なお、このインデックス紙情報では文字サイズを指定できるが、タブに印刷すべき文字列が長いと、指定された文字サイズでは文字列の全てをタブ内に印刷できない場合がある。この場合には、文字サイズの調整処理と改行処理を行うことで、タブ内に文字列を収める処理を行うべく、インデックス紙情報を拡張することが可能である。
以下、タブ内に文字列を収める拡張された処理を説明する。
図29は、図16及び図17で示したインデックス紙のタブ部に書く文字列(章の名称)の詳細を設定するためのウィンドウを拡張した一例を示す図で、図16及び図17と共通する部分は同じ記号で示している。
図において、「サイズの自動調整」のチェックボックス2901を図示のようにチェック(オン)すると、「サイズ」1603で指定された文字サイズでは、指定された文字列がタブ内に収まらない場合、その文字列のサイズを、そのタブ内に収まる文字サイズに自動的に調整する処理が有効となる。即ち、「サイズ」1603で指定されたサイズは、必ずそのサイズで印刷される上述の実施の形態とは異なり、その文字列が指定されたサイズではタブ内に収まらない場合に、その文字サイズが自動的に変更される設定となる。
また、「サイズの自動調整」のチェックボックス2901がオンの場合には、更に、「改行を許可する」のチェックボックス2902が指定可能な状態となる。このチェックボックス2902をオンにすると、自動調整された文字サイズが所定の文字サイズ未満となる場合には、改行により文字列を二行に分けて印刷する処理が有効となる。この所定文字サイズはプログラム内部に保持されており、それ未満の文字サイズで一行に印刷するよりも二行に分けて印刷すべきであると判定する閾値となる文字サイズであり、二行で印刷可能な最大文字サイズ以下のサイズで、かつ人が文字を識別するために小さ過ぎないサイズが保持されている。この所定の文字サイズは、プログラム内部に固定値で保持する例を示すが、本発明はこれに限定されず、例えば図29に示すウィンドウ上で、その文字サイズを指定するためのユーザインターフェース(UI)を設け、可変値として制御することも可能である。
図30は、本実施の形態に係るタブ内に印刷する文字サイズの調整処理および改行処理を示すフローチャートである。以下、この処理を図29を参照して説明する。
まずステップS3001で、電子原稿デスプーラ105は、「サイズの自動調整」のチェックボックス2901がオンになっているかを調べ、オフの場合にはステップS3008へ進み、「サイズ」1603で指定された文字サイズでタブ部に、指定された文字を印刷すべくタブ紙部分へ印刷させる描画情報のGDI関数を出力する。
一方ステップS3001で、そのチェックボックス2901がオンの場合にはステップS3002に進み、電子原稿デスプーラ105は、図29の1601,1602および1603で指定されたフォント、文字サイズおよびその他の属性に基づいて、指定された文字列(章の名称)の長さを調べる。次にステップS3003に進み、ステップS3002で求めた文字列の長さがタブ内に収まるかを調べる。
図31は、タブ部の印刷可能な領域を説明する図である。
ここでは印刷可能領域は、幅W、高さHで示されている。従って、計算した文字列の長さがW以下であればタブの印刷可能領域に収まると判定し、それを超える場合には収まらないと判定する。
こうしてタブの印刷可能領域に収まると判定した場合はステップS3008へ進み、電子原稿デスプーラ105は、「サイズ」1603で指定された文字サイズで、その設定されている文字列をタブ部に印刷すべく描画関数として出力を行い、プリンタドライバ106で印刷データの生成処理に進む。
一方、ステップS3003で文字列がタブの印刷可能領域に収まらないと判定された場合はステップS3004に進み、電子原稿デスプーラ105は、その文字列をタブの一行に収めるための文字サイズを求める。即ち、文字列長がW或はそれ以下となる文字サイズを求める。そしてステップS3005へ進み、図29の「改行を許可する」のチェックボックス2902がオンになっているか調べ、オフの場合にはステップS3008へ進み、ステップS3004で求めた文字サイズでタブ部に印刷すべく描画関数として出力を行い、プリンタドライバ106で印刷データの生成処理に進む。この場合には、指定されている文字列が一行でタブに印刷され、その文字列の長さに応じて文字サイズが極めて小さくなる可能性がある。
一方、ステップS3005で、「改行を許可する」のチェックボックス2902がオンの場合にはステップS3006へ進み、電子原稿デスプーラ105は、ステップS3004で求めた文字サイズが、上述した所定の文字サイズ、即ち、二行で印刷可能な最大文字サイズ以下のサイズで、かつ人が文字を識別するために小さ過ぎないサイズ以上かどうかを調べる。この所定の文字サイズ以上の場合にはステップS3008に進み、電子原稿デスプーラ105は、ステップS3004で求めた文字サイズでタブ部に印刷すべく描画関数として出力を行う。この場合にも、指定されている文字列が一行でタブに印刷され、その文字列の文字サイズは適正なものとなる。
一方、ステップS3006で、所定文字サイズ未満の場合にはステップS3007に進み、電子原稿デスプーラ105は、その文字列を二行に収めるための文字サイズを求め、その文字サイズで、その印刷すべき文字列を二行に分けて、ステップS3008でタブ部に印刷すべく文字列の描画関数を出力する。ここで、ステップS3007で求める二行に収めるための文字サイズは、文字列長が二行の長さ、即ち、図31で(W×2)で表される値になる文字サイズと、行の高さがタブ部に二行で収まるサイズ、即ち、図31で(H/2)で表される値になる文字サイズの小さい方のサイズである。
また、文字列を二行に分割する際には、使用される言語に応じた禁則処理を含む分割が通常なされるが、本実施の形態においても、その処理が実行されても良い。また更にステップS3008において、二行に分けて印刷する場合には、図31に示す二つの領域に分割された各印刷領域に対して、それぞれ指定された文字揃えに基づき、分割した文字列の印刷を行う。尚、この様な文字列を二行に分割して印刷する処理は周知であるので、それに関する詳細な説明は省略する。
[実施の形態2]
上述の実施の形態1では、インデックス紙のタブに印刷する文字の書式は、図16のウィンドウのフォント指定欄で指定したフォントが横書きフォントか、縦書きフォントかに応じて文字揃えを変更する例を説明した。これに対してこの実施の形態2では、元々横書きフォントしか存在しない例えば欧文フォントを用いて、縦書きで印刷できるようにする。尚、この実施の形態2に係る文書処理システムは前述の実施の形態1に係るハードウェア構成と基本的に同じであるため、それらの説明を省略する。
図32乃至図35は、本発明の実施の形態2に係るタブに印刷する文字を指定するためのウインドウ例を示す図で、前述の図16乃至図18と共通する部分は同じ記号で示している。
図32では、フォント指定エリア1601では横書きの和文フォント「MS明朝」が選択されている。この場合には、欄1606には、「左寄り」、「中央寄り」、「右寄り」が表示され、これらの中から、好きなレイアウトを選択することができる。図32では、欄1606で「左寄り<1>」が選択されているため、1605には「左寄り<1>」が表示され、1607には、タブの「左寄り」のレイアウトで章名称「あああ」を横書きで印刷するように設定されていることが表わされている。尚、この実施の形態2では、強制的に縦書きで印刷するように指示する「縦印刷を行う」欄3301が設けられている。しかし、図32の例では、横書きの和文フォントが選択されているため、この「縦印刷を行う」が選択できないように、その欄3301をグレーアウトで表示している。
次に図33では、フォント指定エリア1601では縦書きの和文フォント「@MSゴシック」が選択されている。この場合には、欄1606には、「上寄り」、「中央寄り」、「下寄り」が表示され、これらの中から、好きなレイアウトを選択することができる。図33では、欄1606で「上寄り」が選択されているため、1605には「上寄り」が表示され、1607には、タブの「上寄り」のレイアウトで、かつインデックス紙のタブを右側にして章名称「あああ」を縦書きで印刷する設定が行われていることが表わされている。また、図33では、インデックス紙のタブへのレイアウトとして「上寄り」「中央寄り」「下寄り」のいずれかを選択したが、製本印刷アプリケーション104の印刷設定で、印刷物の開き方向として「左開き」「右開き」の指定欄を設け、その開き方向の指定で「左開き」が選択されている場合は、図18のようにレイアウトを選択させ、「右開き」が選択されている場合は、図示省略したが「上寄り<2>」「中央寄り<2>」「下寄り<2>」を選択させるようにしてもよい。尚、<2>のレイアウトは、インデックス紙のタブを左側にして章名称の印刷が行われるレイアウトに相当する。
このように、欄3301のチェックボックスは、フォント指定エリア1601で欧文フォントが選択されているときのみ選択可能とし、和文フォントが選択されているときは、図32及び図33に示すように、このチェックボックスはグレーアウト表示して選択することができないようしている。
図34では、フォント指定エリア1601では、通常縦書きでは印刷されない欧文フォント「Times New Roman」が選択されている。この場合には、欄1606には、「左寄り」、「中央寄り」、「右寄り」が表示され、これらの中から、好きなレイアウトを選択することができる。図34では、欄1606で「左寄り<1>」が選択されているため、1605には「左寄り<1>」が表示され、1607には、タブの「左寄り」のレイアウトで章名称「AAA」を横書きで印刷するように設定されていることが表わされている。この場合では、上述の「縦印刷を行う」欄3301での指定が可能であるため、その欄3301とそのチェックボックスは指定可能に表示されている。
図35は、図34の状態から欄3301のチェックボックスがチェックされた状態を示す図である。
即ち、欄1601で欧文フォントを選択し、かつ「縦印刷を行う」欄3301のチェックボックスがチェックされた場合の表示例である。この場合には、欄1606には、「上寄り」、「中央寄り」、「下寄り」が表示され、これらの中から、好きなレイアウトを選択することができる。そして1607には、タブの「上寄り」のレイアウトで章名称「AAA」を縦書きで印刷するように設定されていることが表わされている。
図36は、本実施の形態2に係る文書処理システムにおけるタブへの文字列の書込みを説明するフローチャートで、この処理フローチャートは前述の図14と基本的に共通しているが、欧文フォントで縦印刷を行うことを可能にした点が異なっている。
まずステップS3601で、製本アプリケーション104は、タブに章の名称を書く設定になっているかどうかを、チェックボックス1501がチェックされているかどうかにより判定する。チェックボックス1501がチェックされて、タブに章の名称を書く設定になっている場合はステップS3602に進み、その章の名称或いは番号等をタブに印刷するために使用するためのフォントを選択する処理に移り、製本アプリケーション104は、選択したフォントが和文フォントであるかどうかを判定する。和文フォントの場合はステップS3603に進み、縦書きフォントが選択されているかを判定する。縦書きフォントが選択されている時はステップS3604に進み、製本アプリケーション104は、縦書き用のタブ部の設定処理を行う。またステップS3603で横書きフォントが選択されている場合はステップS3606に進み、製本アプリケーション104は、横書き用のタブ部の設定処理を行う。これらの処理は前述の図14のステップS1401乃至S1404と同じである。
一方、ステップS360で、フォント指定欄1601で選択されたフォントが和文フォントでない場合はステップS3605に進み、前述した3301で示す縦印刷チェックボックスがチェックされているかどうかを判定し、チェックされていたらステップS3607に進み、指定された欧文フォントでタブに縦書きで印刷するための設定処理を行う。またステップS3605でチェックされていない場合はステップS3606に進み、通常の横書き用の設定処理を行う。
次に、図テープ3607で実行される欧文フォントを使った縦書き用のタブ部の設定処理について詳しく説明する。
タブに章の名称を和文フォントで縦書きで印刷したいときは、図33に示すように、ユーザが縦書きの和文フォントを選択すれば、その印刷される文字列は既に左に90度回転した縦書き用のフォントであるため、特別な処理を行わなくとも自動的にタブに縦書きで印刷することができる。
しかし、欧文フォントでタブに印刷する場合には、欧文フォントには縦書きフォントがないので、図35に示すように、「縦印刷を行う」3301のチェックボックスをチェックして、欧文フォントで縦書きの印刷を行わせるように指示する。
図37は、欧文フォントで縦書きで印刷する例を説明する図である。
この例では、欧文フォントの章名称「ABCD」を、タブ部に縦書きで印刷する場合の製本アプリケーション104が行うタブ部の設定例を示している。
製本アプリケーション104は、タブ部に印刷する1文字列目の文字領域の原点座標(X0,Y0)、1文字分の領域の幅W,(1文字分の高さ+字間)Hを求める。そして、一番目の文字「A」の原点座標(X0,Y0)を基準として、2番目以降の各文字の原点座標を、(X1,Y1)=(X0,Y0+H),(X2,Y2)=(X0,Y0+2H),(X3,Y3)=(X0,Y0+3H)により求める。このようにして、各文字を印刷するための基準となる文字の原点座標を順に求めていき、ここで得られた各文字の座標情報をインデックス紙の情報として図21に示すインデックス紙の情報805に記憶する。
このようにして、横書きフォントしか存在しない欧文フォントの場合であっても、縦書きで印刷することが可能となる。
なお本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
以上説明したように本実施の形態によれば、インデックス紙のタブに書き込む、例えば章名称等を、ユーザが任意に指定することが可能となる。それにより、ユーザは、一組のインデックス紙に対して、各章ごとに、その都度、タブの設定を行う手間を省くことができる。
また、ユーザは、選択したフォントに応じた選択肢の中から、タブに書く文字列のレイアウトを選択してタブ情報を書き込むことができる。それにより、インデックス紙の向きやタブの大きさを考慮したインデックス情報を設定することが可能となる。