以下、添付図面に従って、本発明の実施形態を詳細に説明する。
[本実施形態の文書処理システムの概要]
本発明の第1の実施形態である文書処理システムの概要を、図1〜図13を参照して説明する。この文書処理システムでは、一般アプリケーションにより作成されたデータファイルが、印刷データ保存用ドライバによって保存ファイルに変換される。印刷制御アプリケーションはその電子原稿ファイルを編集する機能を提供している。また、印刷制御アプリケーションで編集された保存ファイルに対しては、保存ファイルに対応付けられた編集情報ファイルが生成されて保存される。そして、保存ファイルの内容は、印刷制御アプリケーションを介して印刷アプリケーション(デスプーラとも呼ばれる。)により読み出されて印刷に供される。尚、本例では、それぞれの機能が明瞭になるように、一般アプリケーション、印刷データ保存用ドライバ、印刷制御アプリケーション、印刷アプリケーションと分離して示しているが、ユーザに提供されるパッケージはこれらに限定されず、これらを組み合わせたアプリケーションやグラフィックエンジンとして提供されてもよい。以下、その詳細は説明する。なお、本発明の印刷制御プログラムは、後述する付加情報を各ページに動的に割り振る機能を備えるものであり、当該機能を備えた印刷制御するプログラムに相当し、本実施例でいう印刷制御アプリケーション104(印刷アプリケーション105を含む)もしくはプリンタドライバ106に相当するものである。
<本実施形態の文書処理システムのハードウェア構成例>
図2は本実施形態の文書処理システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
同図において、ホストコンピュータ100は、CPU201やRAM202、ROM203等を備える。CPU201は、ROM203のプログラム用ROMあるいは外部メモリ211に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行する。またCPU201は、システムバス204に接続される各デバイスを総括的に制御する。また、ROM203のプログラム用ROM領域あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM203のフォント用ROM領域あるいは外部メモリ211には上記文書処理の際に使用するフォントデータ等を記憶し、ROM203のデータ用ROM領域あるいは外部メモリ211には上記文書処理等を行う際に使用する各種データを記憶する。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。
キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ(CRT)210の表示を制御する。ディスクコントローラ(DKC)207は、ハードディスク(HD)やフロッピー(登録商標)ディスク(FD)等の外部メモリ211とのアクセスを制御する。外部メモリ111には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等が記憶される。プリンタコントローラ(PRTC)208は、双方向性インタフェイス(インタフェイス)21を介してプリンタ107に接続されて、プリンタ107との通信制御処理を実行する。
なお、CPU201は、例えばRAM202上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT210上でのWYSIWYGを可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、プリンタドライバにより提供される印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
プリンタ107は、CPU312により制御される。プリンタCPU312は、ROM313のプログラム用ROM領域に記憶された制御プログラム等あるいは外部メモリ314に記憶された制御プログラム等に基づいてシステムバス315に接続される印刷部(プリンタエンジン)317に出力情報としての画像信号を出力する。また、このROM313のプログラムROM領域には、CPU312の制御プログラム等を記憶する。ROM313のフォント用ROM領域には上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM313のデータ用ROM領域には、ハードディスク等の外部メモリ314がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
CPU312は入力部318を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ100に通知できる。RAM319は、CPU312の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM319は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ314は、メモリコントローラ(MC)320によりアクセスを制御される。外部メモリ314は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、318は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
また、外部メモリ314は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作部321からのプリンタモード設定情報を記憶するようにしてもよい。
<本実施形態の文書処理システムのソフトウェア構成例>
図1は、本実施形態の文書処理システムのソフトウェア構成を示す図である。
文書処理システムは、本発明の文書処理装置(情報処理装置)の好適な実施形態であるデジタルコンピュータ100(以下、ホストコンピュータとも呼ばれる)によって実現されている。一般アプリケーション101は、ワードプロセシングやスプレッドシート、フォトレタッチ、ドローあるいはペイント、プレゼンテーション、テキスト編集などの機能を提供するアプリケーションプログラムであり、オペレーティングシステム(OS)に対して印刷処理を要求する機能を有している。これらアプリケーションは、作成された文書データや画像データなどのアプリケーションデータを印刷するにあたって、OSにより提供される所定のインタフェースを利用する。すなわち、アプリケーション101は、作成したデータを印刷するために、前記インタフェースを提供するOSの出力モジュールに対して、あらかじめ定められる形式で出力指示を行う。出力指示を受けた出力モジュールは、プリンタ等の出力デバイスが処理可能な形式にそのコマンドを変換し、変換されたコマンドを出力する。出力デバイスが処理可能な形式はデバイスの種類やメーカ、機種などによって異なるために、デバイスごとにデバイスドライバが提供されており、OSではそのデバイスドライバを利用してコマンドの変換を行い、印刷データを生成し、JL(Job Language)でくくることにより印刷ジョブが生成される。
OSとしてマイクロソフト社のウインドウズ(登録商標)を利用する場合には、出力モジュールとしてはGDI(Graphic Device Interface)と呼ばれるモジュールが用いられる。そして、アプリケーション101は、作成したデータをGDIに適合した形式のパラメータとしてGDI関数をコールする。こうすることで、OSに対して前述した出力指示が送られたことになる。
印刷データ保存用ドライバ102は、前述のデバイスドライバを改良したものであり、本文書処理システム実現のために提供されるソフトウェアモジュールである。ただし、印刷データ保存用ドライバ102は特定の出力デバイスを目的としておらず、後述の印刷制御アプリケーション104やプリンタドライバ106により処理可能な形式に出力コマンドを変換する。この印刷データ保存用ドライバ102による変換後の形式(以後、「保存ファイル形式」と呼ぶ。)は、文書の構造やページ単位の原稿を詳細な書式をもって表現可能であれば特に問わない。ページ単位の原稿を表現する形式としては、例えばアドビシステムズによるPDF形式や、SVG形式などが保存ファイルとして採用できる。
なお、本実施形態においては保存ファイル103と編集情報ファイル111とを別個のファイルとしているが、これらは、ファイルが開かれていない状態においては、その一体性を保持するためにアーカイブファイルとして一体とされていてもよい。
図1で示すシステムにおいては、保存ファイル103で保存されているデータの内容に対して加工を施すことができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。これらの目的のために、図1のシステムでは中間コードデータでスプールする様、従来のものに対してシステムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常印刷制御アプリケーション104が提供するウインドウから設定を行い、その設定内容をRAM202上あるいは外部メモリ211上に保管する。
図1に示す通り、この拡張された処理方式では、まず、アプリケーション101からの印刷データは印刷データ保存用ドライバ102を介して保存ファイル103としてシステム上に保存される。この保存ファイル103は中間ファイルとも呼ばれ、印刷物のコンテンツデータや印刷用設定データ等が含まれる。印刷物のコンテンツデータとはユーザがアプリケーション上で作成したデータを中間コードに変換したデータであり、印刷用設定データとはコンテンツデータをどのように出力するか(出力体裁等)を記述したデータである。そのほか、印刷制御アプリケーションにより保存ファイルの内容の編集や出力指示をユーザに行わせる際のユーザインターフェースを提供するための編集情報ファイルというアプリケーション用拡張データが含まれる。
この保存ファイル103を印刷制御アプリケーション104が読み込む。この印刷制御アプリケーション104は読み込んだ保存ファイル103の出力体裁を変更、表示し、保存、印刷することが可能である。実際に印刷のための処理を行うのは印刷アプリケーション(デスプーラ)105である。印刷制御アプリケーション104から印刷命令を受けた印刷アプリケーション(デスプーラ)105は、印刷制御アプリケーション104の設定した出力体裁に従い、GDI関数など、所定の形式でグラフィックエンジン121に対してデータを入力する。グラフィックエンジン121は、入力されたGDI関数形式などのデータをDDI関数に変換して、プリンタドライバ106へDDI関数を出力する。プリンタドライバ106は、グラフィックエンジン121から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ122経由でプリンタ107に出力する。
<保存ファイルのデータ形式例>
印刷アプリケーション104の詳細に言及する前に、保存ファイルのデータ形式を説明する。保存ファイルは、コンテンツデータとして各原稿ページ(アプリケーションで生成されたページ単位のデータ。論理ページとも呼ぶ。)のデータを含み、印刷用設定データとしてたとえばジョブチケットと呼ばれる形式のデータを含む。さらに、保存ファイルと共に、後述する印刷制御アプリケーションで保存ファイルに含まれる印刷設定情報の設定変更を行うための編集情報ファイルも格納される。保存ファイルにおいては、このPDF形式の原稿ページデータやジョブチケットと呼ばれる形式のデータが中間データということになる。
保存ファイルにおいて、原稿ページデータは、例えばPDF形式などで定義されており、文字の書体や色の指定、原稿ページ内における文字や図形等のレイアウトの情報等が含まれている。
保存ファイルであるジョブチケットは原稿ページを最小単位とする構造を有するデータである。ジョブチケットにおける構造は、用紙上における原稿ページのレイアウトを定義している。1つのジョブチケットは1つの印刷ジョブに対応する。最上位に文書全体のノードがあり、文書全体の属性、例えば両面印刷/片面印刷などが定義されている。その下には、文書の構造および各構成要素ごとの設定を示す情報と含む。具体的には、シート束ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各シート束ノードには、そのシート束に含まれるシートのノードが属する。1シートは1枚の用紙に相当する。各シートには、印刷ページ(物理ページ)が属する。片面印刷ならば1シートには1物理ページが属し、両面印刷ならば1シートに2物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。原稿ページについては、原稿ページの実体である原稿ページデータへの関連づけ情報(リンク情報)が含まれる。
ジョブチケットのデータ構造の例を図12に示す。印刷用のデータでは、文書は用紙の集合で構成されており、各用紙は表、裏の2面で構成されており、各面は原稿をレイアウトする領域(物理ページ)を持ち、各物理ページには、最小単位である原稿ページの集合から構成される。1101は文書に相当するデータで、文書全体に関係するデータと、文書を構成する用紙情報のリストから構成される。用紙情報1102は用紙サイズなど用紙に関する情報と用紙上に配置される面情報のリストから構成される。面情報1103は、面に固有のデータと、面上に配置される物理ページのリストから構成される。物理ページ情報1104は、物理ページのサイズやヘッダ・フッタなどの付加情報と、物理ページを構成する原稿ページのリストから構成される。
文書全体の設定については、例えば次のような情報を含む。
(1)物理ページ(印刷媒体のシートの面を指す。)上における原稿ページの配置の情報(Nページを1枚の物理ページに配置するいわゆるNアップ(N−up)印刷の設定等)および順序
(2)ドキュメント名
(3)両面指定の可否
(4)バリアブル印刷(あらかじめ定めた欄の内容を別途用意したデータを埋め込んで印刷する技術)の可否
(5)含まれる原稿ページ数
(6)カラータイプ
(7)部数など
(8)ウォーターマーク(原稿ページまたは印刷ページに重複させる地模様)
(9)プリンタ状態
(10)メディアタイプ
(11)シート上の論理ページ番号リスト
(12)印刷品位など。
シート束ごとの印刷設定については次のようなパラメータを設定できる。
(13)Nアップ印刷の指定
(14)カラータイプ
(15)給紙元など。
各シート束に属するシートごとの印刷設定については次のような設定ができる。
(16)両面/片面印刷の設定。
各シートに属する物理ページ(面)ごとの印刷設定については次の設定ができる。
(17)カラータイプ
(18)表面/裏面のいずれかに相当するかの指定。
各物理ページに配置される原稿ページごとの印刷設定については次の設定ができる。
(19)開始座標
(20)大きさ
(21)順序。
このようにジョブチケットは、原稿ページを最小位とした階層構造を有するデータである。そして、これらジョブチケットにより定義される印刷用設定は、その多くがドキュメント単位で設定される階層ごとに共通なものではあるが、N−up設定やカラータイプのように階層間で共通なものも一部存在する。共通な設定については、下位の階層は、原則としてその上位の階層における同一の設定の値を継承する。ただし、階層間で共通な属性が異なる値を有している場合には、注目階層について設定された値が、その属性の値として用いられる。たとえば、カラータイプの設定は、ドキュメント全体とシート束(シートのくくり)、物理ページ(面あるいは印刷ページとも呼ぶ)について設定することができる。カラータイプは、印刷装置におけるモードを指定する設定であり、モノクロモードが設定されれば印刷装置によりモノクロームで印刷させ、カラーモードが設定されればカラーで印刷させるように、印刷データが生成される。
<編集情報ファイルにより管理される文書構造>
印刷制御アプリケーション104は、保存ファイルに含まれるデータを様々な方法でユーザに指定させ、また、印刷設定を変更させるためのユーザインターフェースを提供するプログラムである。保存ファイル自体は上述した構造を有するファイルであるが、印刷制御アプリケーション104は、保存ファイルを管理するためにさらに前述した編集情報ファイルを、保存ファイルと対応付けて管理している。その編集情報ファイルに含まれる編集情報により、印刷制御アプリケーション104は、保存ファイル、例えばジョブチケットで定義されるドキュメントとは独立した管理構造で文書を管理する。その管理構造は、ジョブチケットと類似した階層構造であるが、ジョブチケットと異なり、上位から「ブック」「章」「原稿(論理)ページ」という階層からなる。このうち原稿ページはジョブチケットでいうところの原稿ページと同じものを指す。また章は、シート束(シートのくくり)に対応する。
ユーザインターフェースとして表示される仮想的なファイルは、保存ファイル103のように恒久的に保存され管理されるファイルではなく、ユーザが、印刷制御アプリケーション104を用いて保存ファイルの印刷用設定の変更や印刷指示等を行う際に一時的にユーザインターフェースのために構築される。したがって、印刷制御アプリケーション104は、保存ファイル103を対応する編集情報ファイル111とともに開き、その保存ファイルから編集情報で定義される構造を有した仮想的なブックファイルを構築して後述するようにユーザインターフェースとして表示する。そして、ユーザがユーザインターフェースを介してブックファイルを参照しながら印刷設定の変更を行うと、その設定は、編集情報ファイルに反映される。
<編集情報ファイルの形式例>
印刷制御アプリケーション104の詳細を言及する前に、ブックファイルすなわち編集情報ファイルのデータ形式を説明する。ブックファイルは紙媒体の書物を模した3層の階層構造を有する。上位層は「ブック」と呼ばれ、1冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各ページついてもページごとの属性が定義できる。ひとつのブックは複数の章を含んでいてよく、また、ひとつの章は複数のページを含むことができる。
図3は、ブックファイルの形式の一例を模式的に示す図である。この例のブックファイルにおける、ブック、章、ページは、それぞれに相当するノードにより示されている。ひとつのブックファイルはひとつのブックを含む。ブック、章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体としている。ページの実体は、保存ファイル103に含まれるPDF形式等の原稿ページデータである。すなわち、編集情報ファイルはブックファイルの形式および属性を定義するだけで、原稿ページデータそのものは含まない。ページは、アプリケーションプログラムによって出力されたページごとのデータを実体として有する。そのため、ページは、その属性値のほか、原稿ページの実体(原稿ページデータ)と各原稿ページデータへのリンクを含む。尚、紙媒体等に出力する際の印刷ページは複数の原稿ページを含む場合がある。この構造に関してはリンクによって表示されず、ブック、章、ページ各階層における属性として表示される。
なお図3では、ブックファイルが1つの完結したブックである必要はないので、「ブック」を「文書」として一般化して記載している。そして、文書に関する情報を文書情報、章に関する情報を章情報、ページに関する情報をページ情報と総括的に呼ぶ。
図3において、まず最上位に文書情報401を持つ。文書情報401は3つのパート402〜404に大別できる。文書制御情報402は、文書ファイルのファイルシステムにおけるパス名などの情報を保持する。文書設定情報403は、ページレイアウトなどのレイアウト情報とステイプルなど印刷装置の機能設定情報を保持し、ブックの属性に相当する。章情報リスト404は、文書を構成している章の集合をリスト形式で保持する。リストが保持するのは章情報405である。
章情報405も3つのパート406〜408に大別できる。章制御情報406は、章の名称などの情報を保持する。章設定情報407は、その章特有のページレイアウトやステイプルの情報を保持し、章の属性に相当する。章ごとに設定情報をもつことで最初の章は2UPのレイアウトその他の章は4UPのレイアウトのように複雑なレイアウトを持った文書を作成することが可能である。ページ情報リスト408は各章を構成する原稿ページの集合リスト形式で保持している。ページ情報リスト408が指示するのは、ページ情報データ409である。
ページ情報データ409も3つのパート410〜412に大別される。ページ制御情報410は、ツリー上に表示するページ番号などの情報を保持する。ページ設定情報411は、ページ回転角やページの配置位置情報などの情報を保持し、原稿ページの属性に相当する。ページリンク情報412は、ページに対応する原稿データである。この例では、ページ情報409が直接原稿データを持つのではなく、リンク情報412だけをもち、実際の原稿データは、ページデータリスト413で保持する構成としている。
図4は、ブック属性(文書設定情報403)の例を示すリストである。通常、下位層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。そのため、ブック属性にのみ含まれる項目に関しては、ブック属性に定義された値はブック全体を通して有効な値となる。しかし、下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。なお、図示された各項目は具体的に1項目に対応するのではなく、関連する複数の項目を含むものもある。
ブック属性に固有の項目は、印刷方法、製本詳細、表紙/裏表紙、インデックス紙、合紙、章区切りの6項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の3つの値を指定できる。製本印刷とは、別途指定する枚数の用紙を束にして2つ折りにし、その束をつづり合わせることで製本が可能となる形式で印刷する方法である。製本詳細属性としては、製本印刷が指定されている場合に、見開き方向や、束になる枚数等が指定できる。
表紙/裏表紙属性は、ブックとしてまとめられる保存ファイルを印刷する際に、表紙及び裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。インデックス紙属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定及びインデックス(耳)部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが使用する印刷装置に備えられている場合か、あるいは、複数の給紙カセットを使用可能である場合に有効となる。これは合紙属性についても同様である。
合紙属性は、章の区切りとして、インサータからあるいは給紙カセットから供給される用紙の挿入の指定、及び、合紙を挿入する場合には、給紙元の指定などを含む。
章区切り属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。片面印刷時には新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。両面印刷時には、「新たな用紙の使用」を指定すれば連続する章が1枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が1枚の用紙の表裏に印刷されることがあり得る。
図5は、章属性(章設定情報407)の、図6はページ属性(ページ設定情報411)の例を示すリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。
章属性に関しては、章に固有の項目はなく、すべてブック属性と重複する。したがって、通常は、章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
ブック属性と章属性とにのみ共通する項目は、用紙サイズ、用紙方向、N−up印刷指定、拡大縮小、排紙方法の5項目である。このうち、N−up印刷指定属性は、1印刷ページに含まれる原稿ページ数を指定するための項目である。指定可能な配置としては、1×1や1×2、2×2、3×3、4×4などがある。排紙方法属性は、排出した用紙にステープル処理を施すか否かを指定するための項目であり、この属性の有効性は使用する印刷装置がステープル機能を有するか否かに依存する。
ページ属性に固有の項目には、ページ回転属性、ズーム、配置指定、アノテーション、ページ分割などがある。ページ回転属性は、原稿ページを印刷ページに配置する際の回転角度を指定するための項目である。ズーム属性は、原稿ページの変倍率を指定するための項目である。変倍率は、仮想論理ページ領域のサイズを100%として指定される。仮想論理ページ領域とは、原稿ページを、N−up等の指定に応じて配置した場合に、1原稿ページが占める領域である。例えば1×1であれば、仮想論理ページ領域は1印刷ページに相当する領域となり、1×2であれば、1印刷ページの各辺を約70パーセントに縮小した領域となる。
ブック、章、ページについて共通な属性として、ウォーターマーク属性及びヘッダ・フッタ属性(付加情報属性)がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に固定位置に印刷されるウォーターマークもしくは、表面と裏面で異なる位置に印刷されるウォーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。ここで、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、本実施例において、ブック、章及びページでそれぞれ詳細な設定が可能となっている。つまり、ブックにおいて、ページ番号を算用数字で動的位置として外側と指定し、かつ、章やページにおいて、ページ番号をローマ数字で固定位置として右側と指定することもできる。これにより、ユーザが所望とする付加情報の内容及び配置位置を指定することが可能となる。
なおこれに限るものではなく、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっていてもよい。ブックつまり文書設定情報403においては、ウォーターマークやヘッダ・フッタの内容(ウォーターマークの種類やヘッダ・フッタとしてのページ番号の書式)を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定(固定位置もしくは動的位置の指定)することができるようにし、一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できるようにしてもよい。
<本実施形態の文書処理システムの操作手順例>
編集情報ファイルは上述したような構造および内容を有している。次に、印刷制御アプリケーション104および印刷データ保存用ドライバ102によって編集情報ファイル111および保存ファイル103を作成する手順を説明する。編集情報ファイル111の作成は、印刷制御アプリケーション104による編集情報ファイル111の編集操作の一環として実現される。図7は、印刷制御アプリケーション104により編集情報ファイル111を開く際の手順である。
まず、開こうとする編集情報ファイルが、新規作成すべきものであるか、それとも既存のものであるか判定する(ステップS701)。新規作成の場合には、章を含まない編集情報ファイルを新規に作成する(ステップS702)。新規に作成される編集情報ファイルは、図3の例で示せば、章情報リスト404にリンクする章ノードが存在しないブックのノードとなる。ブック属性は、新規作成用としてあらかじめ用意された属性のセットが適用される。そして、新規編集情報ファイルを編集するためのユーザインターフェース(UI)画面を表示する(ステップS704)。図8は、新規にブックファイルが作成された際のUI画面の一例である。この場合には、ブックファイルは実質的な内容を持たないために、UI画面800には何も表示されない。
一方、既存の編集情報ファイルがあれば、指定された編集情報ファイルを開き(ステップS704)、その編集情報ファイルの構造、属性、内容に従ってデータを展開してユーザインターフェース(UI)画面を表示する。図9は、このUI画面の一例である。UI画面900は、ブックの構造を示すツリー部901と、印刷された状態を表示するプレビュー部902とを含む。ツリー部901には、ブックに含まれる章、各章に含まれるページが、図3のような木構造が分かるように表示される。ツリー部901に表示されるページは原稿ページである。プレビュー部902には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。なおRAM102に展開されるデータもまた図3と同様の構成をとる。そして、各階層のノードに含まれる属性も、図4〜図6に示す形式でRAM102に展開される。これら属性項目は、たとえばその構造はポインタ等を用いて実現し、また属性における項目は、項目ごとの識別子等によって識別することができる。
さて、開かれた編集情報ファイルには、印刷データ保存用ドライバ102によって原稿ページデータを、新たな章として追加することができる。この機能をインポート機能と呼ぶ。図7の手順によって新規に作成された編集情報ファイルにアプリケーションデータをインポートすることで、原稿ページデータが編集情報ファイルの章の下に属するものとして対応付けられ、編集情報ファイルに実体が与えられる。この機能は、図8の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。図10にインポート処理の手順を示す。
図10においてまず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして印刷データ保存用ドライバ102を指定してアプリケーションデータを印刷出力させることで、中間形式のデータ(たとえばPDF形式)に変換する(ステップS801)。変換を終えたなら、変換されたデータが画像データであるか否かを判定する(ステップS802)。この判定は、ウインドウズ(登録商標)OSの下であれば、アプリケーションデータのファイル拡張子に基づいて行うことができる。例えば、拡張子が「bmp」であればウインドウズ(登録商標)ビットマップデータであり、「jpg」であればjpeg圧縮された画像データ、「tiff」であればtiff形式の画像データであると判定できる。
画像データでなかった場合には、ステップS801で生成された中間データを、現在開かれている編集情報ファイルのブックに、新たな章として追加する(ステップS803)。すなわち、インポートにより新たな章とそれに属する新たな原稿ページが追加される。そして、各ページノードには、原稿ページの実体に対するリンク情報を書き込む。原稿ページの実体は印刷データ保存用ドライバ102により生成されたものが使用される。
なおインポートされた場合、章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、あらかじめ用意された規定値に設定される。また、保存ファイルの文書全体についての属性と共通するものについては、それを引き継ぐようにすることもできる。
インポートされたアプリケーションデータが画像データである場合には、原則として新たな章は追加されず、指定されている章に画像データが1ファイルを1原稿ページとして追加される(ステップS804)。ただし、編集情報ファイルが新規作成された空のファイルであれば、新たな章が作成されて、その章に属する原稿ページとして画像データが追加される。その場合ページ属性は、上位層の属性と共通のものについてはその属性値が与えられ、アプリケーションデータにおいて定義された属性を保存ファイルに引き継いでいるものについてはその値が与えられる。例えば、N−up指定などがアプリケーションデータにおいてされていた場合には、その属性値が引き継がれる。このようにして、新規な編集情報ファイルが作成され、あるいは、新規な章が追加される。
また、保存ファイルについても、追加された原稿ページデータは、印刷データ保存用ドライバで生成されたデータが、既存の保存ファイルに対する追加であれば、新たに付加されて保存される。その際、アプリケーションで指定された印刷設定が、印刷データ保存用ドライバで生成されたデータに反映されている場合には、その印刷設定を保存ファイルに反映することもできる。
図11は、図10のステップS801において、印刷データ保存用ドライバ102により保存ファイルを生成させる手順を示すフローチャートである。まず、新たな保存ファイルを作成してそれを開く(ステップS901)。指定したアプリケーションデータに対応するアプリケーションを起動し、印刷データ保存用ドライバ102をデバイスドライバとして、OSの出力モジュール(例えばウインドウズ(登録商標)のGDI)に対して出力コマンドを送信させる。出力モジュールは、受信した出力コマンドを印刷データ保存用ドライバ102によって所定の形式(例えばPDF形式)のデータに変換し、出力する(ステップS902)。出力先はステップS901で開いた保存ファイルである。指定されたデータすべてについて変換が終了したか判定し(ステップS903)、終了していれば保存ファイルを閉じる(ステップS904)。印刷データ保存用ドライバ102によって生成される保存ファイルは、図12に示す構造と、原稿ページデータの実体を含むファイルである。
<編集情報ファイルの編集>
以上のようにして、アプリケーションデータから編集情報ファイル111及び保存ファイル103を作成することができる。生成された編集情報ファイル111については、章及びページに対して次のような編集操作が可能である。
(1)新規追加
(2)削除
(3)コピー
(4)切り取り
(5)貼り付け
(6)移動
(7)章名称変更
(8)ページ番号名称振り直し
(9)表紙挿入
(10)合紙挿入
(11)インデックス紙挿入
(12)各原稿ページに対するページレイアウト。
このほか、いったん行った編集操作を取り消す操作や、さらに取り消した操作をやり直す操作が可能である。これら編集機能により、例えば複数の編集情報ファイルの統合、編集情報ファイル内で章やページの再配置、編集情報ファイル内で章やページの削除、原稿ページのレイアウト変更、合紙やインデックス紙の挿入などといった編集操作が可能となる。これらの操作を行うと、図4乃至図6に示す属性に操作結果が反映されたり、あるいは編集情報ファイルの構造に反映される。たとえば、ブランクページの新規追加操作を行えば、指定された箇所にブランクページが挿入される。このブランクページは原稿ページとして扱われる。また、原稿ページに対するレイアウトを変更すれば、その変更内容は、印刷方法やN−up印刷、表紙/裏表紙、インデックス紙、合紙、章区切りといった属性に反映される。
<編集情報ファイルの出力>
以上のように作成・編集される編集情報ファイルは印刷出力を最終目的としている。利用者が図9に示す印刷制御アプリケーションのUI画面900からファイルメニューを選択し、そこから印刷を選択すると、指定した出力デバイスにより印刷出力される。この際、まず印刷制御アプリケーション104は、現在開かれている編集情報ファイルおよび対応する保存ファイル(例えばジョブチケット)からデスプールテーブルと呼ばれるデータを作成して印刷アプリケーション105に渡す。
デスプールテーブルは、その元となるジョブチケットと同様の構造および各層における印刷設定、原稿ページへの関連づけを含む。すなわち、部数やカラータイプ、両面/片面印刷の指定などドキュメント全体に有効な印刷設定の下に、Nアップ印刷の指定などシート束(シートのくくり)で有効な印刷設定があり、各シート束に属するシートごとに、両面/片面指定などの印刷設定があり、各シートに属する物理ページ(面)ごとに、カラータイプや表面/裏面のいずれかに相当するかの指定などの印刷設定がある。各層の印刷設定には設定可能な項目が含まれている。デスプールテーブルの設定はデバイスの仕様に従い、物理ページでの指定となっている。印刷アプリケーション105は、デスプールテーブルを、グラフィックエンジン121に渡すパラメータに変換する。
印刷アプリケーション105は、保存ファイル103をOSの出力コマンド、例えばウインドウズ(登録商標)のGDIコマンドに変換し、それをパラメータとしてグラフィックエンジンであるGDI関数をコールする。グラフィックエンジン121は、指定されたプリンタドライバ121によってデバイス(例えばプリンタ)に適したコマンドを生成させ、そのコマンドをデバイスに送信する。
ここでグラフィックエンジン121は、印刷デバイスごとに用意されたプリンタドライバ106を外部メモリ211からRAM202にロードし、出力をプリンタドライバ106に設定する。そして、グラフィックエンジン121は、GDI(Graphic Device Interface)関数からDDI(Device Driver Interface)関数に変換して、プリンタドライバ106の提供するDDI関数をコールする。プリンタドライバ106は、出力モジュールから呼び出されたDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM202にロードされたシステムスプーラ122を経てインタフェース21経由でプリンタ107へ印刷データとして出力される仕組みとなっている。
(プレビュー表示の内容例)
すでに説明したとおり、ブックファイルが印刷制御アプリケーションによって開かれると、図9に示すユーザインタフェース画面900が表示される。ツリー部901には、開いているブック(以下、「注目ブック」と呼ぶ。)の構造を示すツリーが表示される。プレビュー部には、利用者の指定に応じて、3通りの表示方法が用意されている。第1は原稿ページをそのまま表示する原稿ビューと呼ばれるモードである。原稿ビューモードでは、注目ブックに属する原稿ページの内容が縮小されて表示される。プレビュー部の表示にレイアウトは反映されない。第2は印刷ビューモードである。印刷ビューモードでは、プレビュー部902には、原稿ページのレイアウトが反映された形で原稿ページが表示される。第3は簡易印刷ビューモードである。簡易印刷ビューモードでは、各原稿ページの内容はプレビュー部の表示には反映されず、レイアウトのみが反映される。
<他の文書処理システムの構成例>
上記実施形態の文書処理システムはスタンドアロン型のシステムであるが、これを拡張したサーバクライアントシステムでもほぼ同様の構成・手順でブックファイルが作成・編集される。ただし、ブックファイルや印刷処理はサーバによって管理される。
図13はサーバクライアント型文書処理システムの構成を示すブロック図である。
クライアント文書処理システムは、スタンドアロン型システムに、クライアントモジュールであるDOMS(Document Output Management Service:文書出力管理サービス)ドライバ109及びDOMSプリントサービスモジュール110、DS(文書サービス)クライアントモジュール108を加えた構成を有する。このクライアント文書処理システム1200に、文書管理サーバ1201及び印刷集中管理サーバ1202及びプリントサーバ1203が接続されている。これらサーバは、通常ネットワークによってクライアント文書処理システムと接続されるが、サーバが同時にクライアントとしても機能する場合には、ネットワーク間の通信をシミュレートするプロセス間通信によって接続される。尚、図13では文書管理サーバ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は、クライアントのプリンタで印刷する場合にはクライアントのDOMSプリントサービスモジュール110を介して印刷アプリケーション105に電子原稿データを渡し、プリントサーバ1203により印刷する場合には、プリントサーバ1203のDOMSプリントサービスモジュール1203に送信する。集中印刷管理サーバは、例えば保存されているブックファイルに対して印刷要求を発行した利用者の資格などについてセキュリティチェックを行ったり、印刷処理のログを保存したりする。このように、文書処理システムは、スタンドアロンとしても、クライアントサーバシステムとしても実現できる。
<ヘッダ/フッタの設定>
ここで本実施の形態に係る文書処理システムの印刷制御アプリケーション104が提供している「原稿ページのヘッダ/フッタ設定」機能について説明する。
図14は、印刷制御アプリケーション104による「ドキュメントの詳細設定」のウィンドウ表示の一例を示している。ここでは「ドキュメントの詳細設定」における「仕上げ」シートが選択されており、印刷方法やステープル、パンチ、Z折りの指定などのフィニッシングに関する設定を行うことができる。
図14の印刷方法指定欄1400は、印刷方法を選択するためのエリアであり、印刷用紙に対する印刷面の設定として「片面、両面、製本」のいずれかを指定することができる。また、綴じ方向指定欄1401はとじ方向を指定するためのエリアで、「長辺とじ(左)」、「長辺とじ(右)」、「短辺とじ(左)」、「短辺とじ(左)」のいずれかより選択可能であるが、ここでは「長辺とじ(左)」が指定されている。さらに、ステープル指定欄1402(綴じ設定欄1402とも呼ぶ)ではステープルを指定することができ、ここでは全ページまとめてステープルを行うように指示されている。図14の画面で指定されたとじ代およびとじ方向(綴じ位置に相当する)については、図4の「4.とじ代/とじ方向」の一部として、印刷アプリケーション104(印刷設定手段に相当する)により編集情報ファイル111に保存される。また、印刷方向も図4の「3.用紙方向」として保存される。
図15は、印刷制御アプリケーション104が提供している「ドキュメントの詳細設定」機能における「編集」シートのユーザインターフェース(UI)である。ここでは、保存ファイルの電子原稿データに「ウォーターマーク」や「ヘッダ/フッタ」などをつける設定を行うことができる。図15において、チェックボックス1500は原稿ページにページ番号などのヘッダやフッダをつけるかどうかを指示するためのチェックボックスである。チェックボックス1500をチェックするとボタン1501が有効になり、ここを押下すると印刷制御アプリケーション104(表示制御手段に相当する)により図16のような「原稿ページのヘッダ/フッタ設定」を行うための画面が表示され、ここでは保存ファイルの電子原稿データに付加するヘッダ/フッタについての詳細を設定することができる。
図16のシート1600、1601ではそれぞれヘッダ、フッタの設定を行うことができる。なお、図16のUI画面は、印刷方法として「片面印刷」が指定されている場合、もしくは印刷方法として「両面印刷」または「製本印刷」が指定されており、かつステープルやパンチ穴の綴じ代の設定がされていない場合のものである。
図16にはフッタの設定を行うウィンドウが選択されているので、フッタの設定を行うことができる。ボタン1602では、フッタに日付やファイル名を指定することが可能である。またボタン1603では、フッタとしてページ番号を挿入する指定ができる。また、エリア1604は、ページ番号の振り方を指定するためのエリアである。この例では、「先頭から順にページ番号をふる」が選択されているので、先頭ページから順に1、2、・・・とページ番号が振られる。エリア1605、1606、1607は、付加情報の描画位置として固定的な位置であるページの左側、中央部、右側に入れるフッタの内容を指定するためのボックスで、ユーザは任意の文字フォントでテキストを指定することが可能である。ここでユーザにより指定された値は、印刷アプリケーション104(付加情報設定手段に相当する)により編集情報ファイル111に保存される。この例ではフッタとしてページの右側に「ページ番号」を入れる設定が行われていることがわかる。
図17は、図14のUIにおいて印刷方法1400として「両面印刷」または「製本印刷」が指定されており、かつ、ステープルやパンチ穴の綴じ代の設定がされている場合に、図15のヘッダ/フッタ設定ボタン1501が押された場合に表示される「原稿ページのヘッダ/フッタ設定」ウィンドウの表示例である。図16の表示と比較して、ヘッダ/フッタの内容指定ボックス2500、2501、2502が、図16の「左側、中央部、右側」表示から、付加情報の描画位置としてページに対する相対的な位置である「内側、中央部、外側」にウインドウ表示が切り替わっている。ここで、「外側」にヘッダ(またはフッダ)を入れる指定をすれば、文書の見開きの外側(綴じ代の反対側)にヘッダ(またはフッタ)を挿入する指定を行うことができる。また、「内側」の場合は、その反対側にヘッダ(またはフッタ)を挿入する指定を行うことができる。図17の例では、フッタの「外側」にページ番号を挿入する指定がされている。ここでユーザにより指定された値は、印刷アプリケーション104(付加情報設定手段に相当する)により編集情報ファイル111に保存される。
さて、図16あるいは図17で指定されたヘッダおよびフッタの内容、形式、ページ番号の振り方等の指定や、それを印刷する位置(「左側、中央部、右側」あるいは「外側、中央部、内側」)の指定は、それぞれパラメータとして図4の「8.ヘッダ/フッタ」属性の一部として編集情報ファイル111に保存される。
このように、印刷制御アプリケーション104でユーザが設定した内容によって、「原稿ページのヘッダ/フッタ設定」ウィンドウの表示内容が、図14の印刷方法の設定および綴じ設定に応じて自動で切り換わる。また、図14の印刷方法設定欄1400において、一旦両面あるいは製本印刷とされていた設定が片面印刷に切り換えられた場合は、「原稿ページのヘッダ/フッタ設定」ウィンドウの内容も、「外側、中央部、内側」からもとの「左側、中央部、右側」に自動で切り替わる。また同様に、図14の綴じ設定欄1402において、一旦ステープル指定として「全ページまとめて」とされていた設定が「ステープルしない」に切り換えられた場合は、「原稿ページのヘッダ/フッタ設定」ウィンドウの内容も、「外側、中央部、内側」からもとの「左側、中央部、右側」に自動で切り替わる。
<データ構造>
ここで、本発明の実施の形態に係るアプリケーション101が扱う文書ファイルのデータ構造について説明する。
図18は、本実施の形態に係るアプリケーション101が扱う文書ファイルのデータ構造を説明する図である。この文書ファイルは、図1の編集情報ファイル111(図3)に相当する。文書の詳細設定情報702は図4のブック属性に、章の詳細設定情報703は図5の章属性に、ページの詳細設定情報704は図6のページ属性にそれぞれ相当する。ここでは、2つのファイルを例えば図13の外部メモリ211に記憶されているが、図12の文書管理サーバ1201のデータベース1211に格納されていてもよい。
図18において、文書の構造情報701は、図10に示したアプリケーション操作画面のツリービュー1101に表示する文書の構造に関する情報を記憶している。文書の詳細設定情報702は、図3の文書設定情報403に相当し、文書全体に設定可能な情報を記憶するための領域である。章の詳細設定情報703は、図3の章設定情報407に相当し、各章に設定可能な情報を記憶する領域である。ページの詳細設定情報704は図3のページ設定情報411に相当し、ページごとに設定可能な情報を記憶するための領域である。そして原稿情報705は、各原稿ページの描画情報を記憶しており、図10の右側の印刷プレビュー1102への表示に使用する情報がページ単位で保存されている。尚、この文書ファイルには、その他にも各文書毎に必要な情報が含まれているが、ここではそれらの説明を省略する。
図19は、図18のページの詳細設定情報704のデータ構成を更に詳細に説明する図である。図19において、801はページ設定情報、802はページの仕上げ情報、803はページの編集情報、804はページの給紙情報、805はヘッダ・フッタの情報で、これらの情報がページの詳細設定情報704として格納されている。これらは、各ページごとに保持される。更に、図16に示す操作画面を用いてヘッダ・フッタ設定を行った場合には、それらの設定情報がヘッダ・フッタの情報805に追加される。
図20は、図19のヘッダ・フッタの情報805に記憶される情報を更に詳細に説明する図である。図20において、901は1ページ目のヘッダ・フッタ情報、902は2ページ目のヘッダ・フッタ紙情報というように、以下順に最終ページまでヘッダ・フッタの情報(903〜905)が各領域に記憶される。この情報は、文書全体に対して設定されたヘッダ/フッタの設定を、各ページに反映するか否かを指定するためのフラグのみの設定であるが、例えば、図15において、文書の各ページごとにページ番号などのヘッダを付ける設定を許す場合には、全原稿ページ数分のヘッダ・フッタ情報の欄が確保されることになる。以下では、各ページごとにヘッダ・フッタの設定が可能であるとして説明する。
なお、図20においては、各ページについてのヘッダ・フッタが連続して格納されているが、これは物理的に連続していることを示すものではなく、図3に示す構造において各ページのページ設定情報411に保持されているヘッダ・フッタ設定情報を連続的に表現したものである。
ここで、「ヘッダ・フッタ設定情報」は文書の詳細設定情報702にも含まれており、その中に、指定された位置に印刷されるべきヘッダ/フッタの内容が保存される。
ヘッダ/フッタ情報は、たとえば、図16のウインドウ1605または図17のウインドウ2500から入力された第1のヘッダ/フッタ情報、図16のウインドウ1606または図17のウインドウ2501から入力された第2のヘッダ/フッタ情報、図16のウインドウ1606または図17のウインドウ2502から入力された第3のヘッダ/フッタ情報といったように、入力されたウインドウを対応付けられたデータとして保存されればよい。各データとそれが配置される位置との対応付けは、文書の詳細設定情報702における「印刷方法」の設定に応じて決定される(この手順は後述)。たとえば、印刷方法が「片面印刷」なら第1のヘッダ/フッタ情報は右側、第2のヘッダ/フッタ情報は中央、第3のヘッダ/フッタ情報は左側に配置され、印刷方法が「両面印刷」または「製本印刷」なら第1のヘッダ/フッタ情報は内側、第2のヘッダ/フッタ情報は中央、第3のヘッダ/フッタ情報は外側に印刷すべきものとしてその位置が決定される。決定された位置に従って、ヘッダ/フッタが各ページに付される。内側、中央部、外側は、とじ位置に対する相対的な位置なので、各ページごとにとじ位置に応じて具体的な位置が決定される。
<ページ番号記述位置の自動切換え>
次に、図15のUI画面において「ヘッダ・フッタ設定」ボタン1501が押下されて図16および図17のヘッダ・フッタ設定画面を表示する際の印刷制御アプリケーション104による処理手順を、図21、図22を参照して説明する。
図21は、ヘッダ・フッタ情報の入力処理を示すフローチャートである。まずステップS2000で、図15の画面において、ボタン1501により「ヘッダ/フッタ設定処理」が起動され、図16(あるいは図17)で示したUIが開かれると、ステップS2001に進み、印刷制御アプリケーション104は、図17に示すように必要なページ数分のヘッダ・フッタ情報の記憶エリアを確保する。
次にステップS2002で、印刷制御アプリケーション104は、ヘッダ/フッタの入力用ウインドウ(入力欄)1605〜1607または2500〜2502を表示する。
次にステップS2003で、印刷制御アプリケーション104は、図16のボタン1603により、ページ番号を挿入する指定が行われているかを判定する。ページ番号の挿入が指示されている時はステップS2004に進み、ヘッダ(またはフッタ)として、ページ番号を挿入する設定を行う。
続いて、ステップS2005で、ヘッダ(またはフッタ)の文字を印刷するフォント、サイズ、色などをユーザから指定させることにより、印刷制御アプリケーション104は、その指定値を設定する。さらにステップS2006に進み、ここでは、ユーザがページごとのさらに詳細な設定を行ったり、ページ番号以外をヘッダ(またはフッタ)として挿入する場合の具体的なテキスト文字列を指定したりすることにより、印刷制御アプリケーション104は、ページ番号を指定した場合のページ番号の振り方などの詳細な設定を行う。
そして、ステップS2006において、以上のようにして設定された情報がページごとに設定された情報であれば、印刷制御アプリケーション104は、設定対象のページのヘッダ・フッタ情報として、図20に示したページごとのヘッダ・フッタ設定情報に記憶する。また、設定された情報が文書の設定情報であれば、図17に示す文書の詳細設定情報702におけるヘッダ・フッタ設定情報として記憶される。
一方、ステップS2000で、ヘッダ・フッタを挿入する設定がされていない場合には、そのままステップS2007に進み、印刷制御アプリケーション104は、設定された情報を該当するページのヘッダ・フッタの情報として記憶する。前述したように、指定された位置に印刷されるべきヘッダ/フッタの内容は、たとえば第1のヘッダ/フッタ情報、第2のヘッダ/フッタ情報、第3のヘッダ/フッタ情報のように、それぞれを識別可能に保存すればよい。
<ヘッダ/フッタ設定ウィンドウの切り換え処理>
図22は、図21のステップS2002におけるウインドウ表示処理の一例を実現するためのフローチャートである。
まず、ステップS2600において、印刷制御アプリケーション104は、文書の詳細設定情報702における「とじ代/とじ方向」の設定値を参照し、ステープルが指示されていて、とじ方向が左側または右側に設定されているか判定する。
ステープルが指示されていて、とじ方向が左側または右側に設定されていると判断されたら、ステップS2601に進む。そこでは、印刷制御アプリケーション104は、文書の詳細設定情報702における「印刷方法」の設定値を参照し、両面印刷または製本印刷が設定されているかどうかを判定する。
「印刷方法」として、両面印刷または製本印刷が設定されていた場合は、ステップS2602において、「原稿ページのヘッダ/フッタ設定」ウィンドウの上部に、ページに対する相対的な付加情報の描画位置として、それぞれ「内側、中央部、外側」と表示する(図17参照)。一方、S2600において、ステープルが指定されていない場合、または、とじ方向が上または下であると判断された場合、またはS2601において、片面印刷であると判断された場合は、ステップS2603に進み、「原稿ページのヘッダ/フッタ設定」ウィンドウの上部に、ページに対する固定的な付加情報の描画位置として、「左側、中央部、右側」を表示する(図16参照)。
すなわち、図17の入力ウインドウにおいては、内側に第1のヘッダ/フッタ情報が、中央部に第2のヘッダ/フッタ情報が、外側に第3のヘッダ/フッタ情報が対応付けられている。図16の入力ウインドウにおいては、左側に第1のヘッダ/フッタ情報が、中央部に第2のヘッダ/フッタ情報が、右側に第3のヘッダ/フッタ情報が対応付けられている。
<ヘッダ/フッタを含む印刷処理>
図23は本実施の形態に係るデスプーラ105(印刷アプリケーション)による文書のヘッダ・フッタの印刷処理(印刷データ生成処理)を示すフローチャートである。
まずステップS2100で、デスプーラ105は、図18に示す文書情報のうち1原稿ページ分の詳細設定情報を読み取る。そして、該当ページの原稿ページの情報705(図18)を基に、原稿ページを印刷させるためのGDI関数を呼び出す。ステップS2101においては、たとえば製本印刷設定されている場合には、原稿ページは、製本後に適正な順序となるように用紙上に配置される。この配置は、製本単位(2つ折りされる枚数)となる枚数に応じて決定される。
次にステップS2102で、デスプーラ105は、図18で読み取ったページの詳細設定情報の中に含まれる、ページのヘッダ・フッタに関する情報805(図19)を取り出す。このヘッダ・フッタに関する情報805(図20)の情報をもとにページにヘッダ・フッタに関する設定が行われているかどうか判断する。ここで設定が行われていた場合は、次にステップS2103で、デスプーラ105は、805(図20)からヘッダ・フッタに関する情報を取り出す。この情報や印刷制御アプリケーション104で設定された印刷設定情報を基に、デスプーラ105は、S2104において、ヘッダ(またはフッタ)の描画位置を決定する。決定されるのは、前述した第1のヘッダ/フッタ情報の位置、第2のヘッダ/フッタ情報の位置、第3のヘッダ/フッタ情報の位置のそれぞれである。
さらに、S2105に進んで、電子原稿デスプーラ105は、さきほど決定した位置に対して、ページ番号等のヘッダ/フッタ情報を描画するGDI関数を呼び出し、S2101で呼び出した原稿ページのGDI関数に加えて、OSの描画手段であるグラフィックエンジン(GDI)に出力する。このとき、第1〜第3のヘッダ/フッタ情報は、それぞれについて決定された位置に描画される。ヘッダ・フッタの文字には、S2103で取り出したヘッダ・フッタの詳細設定情報に設定されているフォントや文字サイズが使用される。
以上のようにして生成されたヘッダ・フッタが付加された原稿ページを描画するためのGDI関数が、グラフィックエンジンでプリンタドライバ106が解釈可能な描画関数(DDI関数)に変換され、前述したように、プリンタドライバ106は、グラフィックエンジンから渡された描画関数に応じて、プリンタ107が解釈可能なプリンタ制御言語の印刷データを生成することにより、ページ番号描画処理が実行される。
そしてその原稿ページの描画処理が終了するとステップS2106に進み、そのページが文書の最終ページであるかを判定する。最終ページでない時は再びステップS2100に戻り、次のページの詳細設定情報取り出し、原稿ページを描画し、さきほどと同様の処理を実行する。こうして、その文書のすべて原稿ページおよび付与されているヘッダ・フッタの印刷が終了するとこの印刷処理を終了する。
このようにして描画されたデータは図1のシステムスプーラ122に出力され、プリンタ107へと印刷ジョブが発行されて印刷が実行される。
一方、ステップS2102でそのページにヘッダ・フッタを付加する設定がされていない場合は、S2101でデスプーラ105は、原稿ページのみを描画したあと、そのままステップS2106に進む。
次に、図24のフローチャートを用いて、図23のS2104の詳細にあたる、本発明の実施例におけるページ番号記述位置の決定処理について説明する。なお、本実施例においては、印刷向きが縦(ポートレート)を考えている。
図24は、印刷制御アプリケーション104が作成したジョブチケットをもとに、デスプーラ105が、ヘッダ(またはフッタ)を記述する位置を動的に求める処理の例を示すフローチャートである。
まず、ステップ2401においてステープル設定がされており、かつ、とじ位置が右又は左であるか、文書の詳細印刷設定を参照して判定する。条件を満たす場合には、ステップ2402において、文書の詳細印刷設定を参照して、印刷方法として「両面印刷」又は「製本印刷」のいずれかが設定されているか判定する。ステップ2401の条件も、ステップ2402の条件も満たされない場合には、ステップ2403で、左側又は右側又は中央部のそれぞれについて、設定された文字列を配置する位置を決定する。
ステップ2404において、注目原稿ページが奇数ページであると判断された場合には、次のステップ2405に進み、とじ方向として左側が指定されているかどうかを、文書の詳細印刷設定またはページの詳細印刷設定を参照して判断する。なお、本実施例では、印刷向きが「縦」で「長辺綴じ(左)」である「左綴じ」の指定かを判断しているがこれに限るものではなく、印刷向きが「縦」で綴じ位置として「長辺綴じ」が設定されている場合には、開き方向として「左開き」であるかを判断するように構成しても、設定内容は同じであるため、結果は同じになる。
左とじの指定がされている場合は、ステップ2406において、デスプーラ105は、ページの右側にヘッダ・フッタをつける場合の印字位置座標を求める。ステップ2405で、とじ方向が右側だと判断されたら、ステップ2408に進み、デスプーラ105は、左側にヘッダ・フッタを描画するときの座標を求める。一方、ステップ2404において、当該ページが偶数ページであると判断され、ステップ2407において、とじ方向が右だと判断された場合には、ステップ2408に進み、デスプーラ105は、左側のヘッダ・フッタ印字位置座標を求める。さらに、とじ方向が左と判断された場合は、ステップ2406に進んでデスプーラ105は、右側用のヘッダ・フッタ印字位置座標を求める。
このように、印刷制御アプリケーション104で設定された綴じ位置の印刷設定情報に応じて、ページにページ番号などのヘッダ・フッタを描画する位置を動的に変えて印字することが可能となった。
さて、ステップ2406におけるページ右側用のヘッダ・フッタの印字位置座標を求める手順の一例をここで説明する。ヘッダ/フッタの位置としては、例えば予め決められている位置を選択することで座標を求められる。たとえば、ページ右側用の印字位置座標として、右側用内側位置、右側用中央位置、右側用外側位置それぞれを予め決めておく。その際に、予め決められる位置は、とじ位置に近い側を内側、遠い側を外側としている。またたとえば、内側についてはヘッダ/フッタ文字列の内側を基準として、中央についてはヘッダ/フッタ文字列の中央を基準として、外側についてはヘッダ/フッタ文字列の外側を基準として位置を定めておく。もちろんこれに限られない。そして、右側用内側位置、右側用中央位置、右側用外側位置それぞれを、第1のヘッダ/フッタ情報の描画位置、第2のヘッダ/フッタ情報の描画位置、第3のヘッダ/フッタ情報の描画位置それぞれを示すメモリ上の領域に格納する。
さて図23のステップS2105では、上述のようにステップS2406で決定されたそれぞれの基準位置に合わせてヘッダ/フッタ文字列を描画する。すなわち、図24の処理により格納された第1のヘッダ/フッタ情報の描画位置、第2のヘッダ/フッタ情報の描画位置、第3のヘッダ/フッタ情報の描画位置それぞれに、第1のヘッダ/フッタ情報、第2のヘッダ/フッタ情報、第3のヘッダ/フッタ情報それぞれを描画する。それによって、本実施形態では、図17の入力ウインドウにおける、内側に第1のヘッダ/フッタ情報が、中央部に第2のヘッダ/フッタ情報が、外側に第3のヘッダ/フッタ情報が対応付けられているため、第1のヘッダ/フッタ情報が右側用内側位置に、第2のヘッダ/フッタ情報が右側用中央位置に、第3のヘッダ/フッタ情報が右側用外側位置に描画される。
これはステップS2408において決定されるページ左側用の各位置についても同様である。もちろん、ここでは、左側用内側位置、左側用中央位置、左側用外側位置それぞれが、第1のヘッダ/フッタ情報の描画位置、第2のヘッダ/フッタ情報の描画位置、第3のヘッダ/フッタ情報の描画位置それぞれを示すメモリ上の領域に格納される。そして、それぞれの位置に、第1のヘッダ/フッタ情報、第2のヘッダ/フッタ情報、第3のヘッダ/フッタ情報それぞれが配置される。
同様に、ステップS2403においては、左側位置、中央位置、右側位置が予め与えられており、左側位置、中央位置、右側位置それぞれを、第1のヘッダ/フッタ情報の描画位置、第2のヘッダ/フッタ情報の描画位置、第3のヘッダ/フッタ情報の描画位置それぞれを示すメモリ上の領域に格納する。
なお、ここで注意すべきは、製本印刷ではとじ位置は用紙の中央となり、原稿ページは用紙を長辺中央部で2等分した各領域に配置される点である。そのため、第1のヘッダ/フッタ情報の描画位置、第2のヘッダ/フッタ情報の描画位置、第3のヘッダ/フッタ情報の描画位置は、たとえばステップS2105におけるヘッダ/フッタの描画時に、用紙中央線(折り線)をとじ位置として座標変換する必要がある。なお、座標変換を描画時に行わずに、ステップS2406またはステップS2408において、製本印刷用のヘッダ/フッタ描画位置を予め与えておき、製本印刷の設定がされている場合には、第1のヘッダ/フッタ情報の描画位置、第2のヘッダ/フッタ情報の描画位置、第3のヘッダ/フッタ情報の描画位置それぞれに製本印刷用の描画位置を格納する方法も取り得る。
図23および図24の処理は、ここでは印刷処理として説明したが、プレビュー表示を行う場合にも同様の処理が行われて、ヘッダ/フッタが表示される。ただし、プレビュー表示の場合には、製本印刷設定であっても、印刷ページと原稿ページの対応付けは考慮する必要が無い。そのために、プレビュー表示時の製本印刷設定については、原稿ページ上のヘッダ/フッタの位置を印刷ページ(用紙)上の位置に変換する処理は不要である。
<ページレイアウトへの対応>
なお1印刷ページに複数(Nページ)の原稿ページをレイアウトできるいわゆるNアップ印刷設定がされている場合には、1印刷ページ上にNページの原稿ページが指定された順序で配置されるように描画される。Nアップ印刷の設定がされている場合には、とじ位置に対して相対的に内側あるいは外側という概念は原稿ページには適用できない。そのために、Nアップ設定がされている場合には、印刷ページに対するヘッダ/フッタ設定について、上記原稿ページに対するヘッダ/フッタ設定についてと同様の処理を、ステップS2104,S2105において行う。すなわち、Nアップ印刷の場合には、図15〜図17及び図21〜図24において、「原稿ページ」を「印刷ページ」と読み替えた処理を行うことで、本実施形態で説明した機能と同様の機能をNアップ印刷についても実現できる。
その場合、原稿ページについてのヘッダ/フッタの設定のうち、その位置についての設定は、右側あるいは左側と読み替えられてもよい。すなわち、ヘッダ・フッタは、「外側」「内側」にそれぞれ対応付けてその内容が保存されているのではなく、前述したように「第1の位置」「第3の位置」に対応付けて保存されている。この第1の位置をたとえば左側に、第2の位置を右側に対応させて、各原稿ページのヘッダ/フッタの位置を決定する。
<プレビュー表示及び印刷出力の例>
図25、26は、以上のような印刷制御アプリケーション104が提供する「原稿ページのヘッダ/フッタ設定」機能によって実際に文書に対してフッダの設定が行われた印刷プレビュー結果の例である。
図25は、図14の印刷方法指定欄1400において片面印刷が指定され、図16においてページの右側に「ページ番号」を挿入する設定が行われた場合のプレビューの例である。このように、全てのページの右下にページ番号が1から順番に振られていることがわかる。
また、図26は、従来の装置におけるプレビュー表示例である。印刷方法指定欄1400において、両面印刷を指定し、また綴じ方向指定欄1401においてとじ方向として長辺とじ(左)を選択し、さらに図16でフッタとしてページの右側にページ番号を挿入する設定を行った場合のプレビュー結果の例である。図16において全ページ右下にページ番号が振られる設定が行われているため、裏ページではとじ側にページ番号が振られてしまっている。このように、従来のシステムでは、ヘッタ/フッタの位置として、左側、中央部、右側の指定しかできなかったために、フィニッシングの設定によっては両面、製本印刷時に、ページ番号が適切でない位置(例えばとじ側)に印刷されてしまうということがあった。
図27は、本発明にかかる上記実施形態において、図14のとじ位置指定欄1401で長辺とじ(左)(言い換えれば、印刷向き縦(ポートレート)、長辺綴じ、左開きの場合)、印刷方法指定欄1400において「製本印刷」を指定し、さらに図17のウインドウ2502においてフッタとしてページの外側に「ページ番号」を入れる設定が行われた場合のプレビュー結果である。フッタにおいて、ページ番号がとじ位置に対して外側、すなわち、奇数ページでは右側、偶数ページでは左側に振られ、どのページでも、ページ番号が見開きの外側に振られるようになった。
以上のようにして、印刷設定の状況に応じて、ページ番号などのフッダ・ヘッタの適切な指定を容易に行うことが可能となった。本実施形態においては、特にページ番号の位置を「外側」に指定しておくことで、ステープルなどでとじられる両面印刷や製本印刷の場合には、見開きの「外側」に自動に振られる。さらにヘッダ/フッタの設定ウィンドウのUIにも、フィニッシングの状況に応じて、動的に変化することでより適切なページ番号などのヘッダ・フッタの設定を容易に行うことが可能となった。すなわち、ステープル指定がされ、かつ、両面印刷が指定されている場合や、または、製本印刷が指定されている場合には「外側」「内側」というとじ位置に対する相対的な位置が指定できるようにUIに表示され、とじ位置に対して相対的な位置が指定できる。
なお本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。