[本実施形態の文書処理システムの概要]
以下、添付図面に従って、本発明の実施形態を詳細に説明する。本実施形態の文書処理システムでは、スキャナで読み取られた画像データだけでなく、様々なアプリケーションプログラムで作成した電子ファイルも扱うことが可能である。実施形態の説明に先立ち、本実施形態の文書処理システムが必要となった背景を説明する。
文字や表、デジタルカメラやスキャナで取り込まれた画像など、データの種類が異なると、データを定義する構造やそれらデータに対する編集操作が異なるために、データの種類に応じた様々なアプリケーションプログラムが提供されている。利用者は、文字を編集するためには文字処理プログラム、表を編集するためには表計算プログラム、画像を編集するためには画像編集プログラムといった具合に、データの種類別にアプリケーションを使い分けている。
このように、利用者はデータの種類ごとにアプリケーションプログラムを使い分けるのが一般的である。しかし、利用者が作成しようとする文書としては、例えば文字のみや、表のみ、画像のみといった1種類のデータのみから構成される文書よりも、文字と表、文字と画像など、複数種類のデータから構成される文書の方が一般的である。そこで複数種類のデータを含む目的文書を作成するために、利用者は各種アプリケーションが備えている印刷機能を利用してアプリケーションごとにデータを印刷させ、印刷物を所望の順序に組み合わせる必要があった。
あるいは、いわゆるオフィススイートと呼ばれる、各種アプリケーションによってひとつの統合アプリケーションを形成するプログラムには、各アプリケーションで生成されたデータを組み合わせ、ひとつの文書を構成する機能を提供するものもある。この統合アプリケーションを使用する場合には、利用者は、各アプリケーションで作成したデータを、統合アプリケーションに含まれる特定のアプリケーションによってひとつの目的文書にまとめることができる。
しかしながら、利用者が各種アプリケーションによる印刷物を組み合わせてひとつの目的文書を作成する場合、例えばページ番号を各ページに振るためには、いったん必要なデータをすべて印刷出力し、文書としてまとめてから付すべきページ番号を決定する必要がある。そして、各アプリケーションによって、そのアプリケーションで作成された原稿の各ページ(これを論理ページあるいは原稿ページと呼ぶ)ごとに、決定されたページ番号を書き込んでいく。アプリケーションプログラムがページ番号を振る機能を有している場合であっても、不連続部分があればその部分についてはやはり利用者がページ番号を指定しなければならない。また、目的文書のページを再配置した場合には、ページ番号もそれに合わせて振り直さなければならない。あるいは、複数の原稿ページを、印刷物としての1ページ(これを物理ページあるいは印刷ページと呼ぶ)にまとめたり、片面印刷から両面印刷に変更したりするなど、データの内容にかかる変更ではなく、単に書式を変更する場合であっても、アプリケーションによって編集及び印刷のし直しが必要となる。
このように、データの種類ごとにそれを管理できるアプリケーションが異なることから、アプリケーション間のインタフェースを利用者自身が人手によって提供しなければならない。このことは、利用者に多大な労力が要求されるということであり、生産性の低下をもたらす。さらに、多くの人手を介することからエラーの発生も生じやすかった。
一方、統合アプリケーションを利用して目的文書を作成する場合、印刷出力せずに、データの状態で各種データを配置することができる。このため、印刷物を組み合わせて目的文書を作成する場合ほどには労力は必要とされることはない。しかしながら、各種データを編集・作成するためのアプリケーションは、統合アプリケーションに含まれるものに限られてしまい、利用者が望むアプリケーションが使用できるとは限らない。また、統合アプリケーションによって作成された目的文書はひとつの文書ファイルであり、ファイル単位で編集・出力等の管理が行われる。そのために、文書ファイルの一部について書式を設定しようとしてもアプリケーションの機能による制約が多く、例えば書式が変わる部分ごとに書式設定を変更しては印刷し直すといった作業が必要とされる。このため、多くの労力が必要とされて生産性が低い点においては、前述した方法と変わりはなかった。
以上のような背景から、本実施形態の文書処理システムは、これらの問題点を解決した上で、本発明の課題も解決する文書処理システムとなっている。よって、スキャナで読み取った画像データだけでなく、様々なアプリケーションプログラムで作成した電子ファイルも扱うことが可能に構成されている。
次に、本発明の実施形態である文書処理システムの概要を、図1〜図19を参照して説明する。この文書処理システムでは、一般アプリケーションにより作成されたデータファイルが、電子原稿ライタによって電子原稿ファイルに変換される。また、スキャナで読み取られた画像も、スキャナドライバか他のアプリケーションソフトウエア等の手段によって電子原稿ファイルに変換される。製本アプリケーションはその電子原稿ファイルを編集する機能を提供している。尚、本例では、それぞれの機能が明瞭になるように、一般アプリケーション、スキャナドライバ、電子原稿ライタ、製本アプリケーション、電子原稿デスプーラと分離して示しているが、ユーザに提供されるパッケージはこれらに限定されず、これらを組み合わせたアプリケーションやグラフィックエンジンとして提供されてもよい。以下、その詳細を説明する。
<本実施形態の文書処理システムのソフトウェア構成例>
図1は、本実施形態の文書処理システムのソフトウェア構成を示す図である。
文書処理システムは、本発明の文書処理装置(情報処理装置)の好適な実施形態であるデジタルコンピュータ100(以下、ホストコンピュータとも呼ばれる)によって実現されている。一般アプリケーション101は、ワードプロセシングやスプレッドシート、フォトレタッチ、ドローあるいはペイント、プレゼンテーション、テキスト編集などの機能を提供するアプリケーションプログラムであり、OSに対する印刷機能を有している。これらアプリケーションは、作成された文書データや画像データなどのアプリケーションデータを印刷するにあたって、オペレーティングシステム(OS)により提供される所定のインタフェース(一般に、GDIと呼ばれる)を利用する。すなわち、アプリケーション101は、作成したデータを印刷するために、前記インタフェースを提供するOSの出力モジュールに対して、あらかじめ定められる、OSに依存する形式の出力コマンド(GDI関数と呼ばれる)を送信する。出力コマンドを受けた出力モジュールは、プリンタ等の出力デバイスが処理可能な形式にそのコマンドを変換し、変換されたコマンド(DDI関数と呼ばれる)を出力する。出力デバイスが処理可能な形式はデバイスの種類やメーカ、機種などによって異なるために、デバイスごとにデバイスドライバが提供されており、OSではそのデバイスドライバを利用してコマンドの変換を行い、印刷データを生成し、JL(Job Language)でくくることにより印刷ジョブが生成される。OSとしてマイクロソフト社のウィンドウズ(登録商標)を利用する場合には、前述した出力モジュールとしてはGDI(Graphic Device Interface)と呼ばれるモジュールが相当する。
電子原稿ライタ102は、前述のデバイスドライバを改良したものであり、本文書処理システム実現のために提供されるソフトウェアモジュールである。ただし、電子原稿ライタ102は特定の出力デバイスを目的としておらず、後述の製本アプリケーション104やプリンタドライバ106により処理可能な形式に出力コマンドを変換する。この電子原稿ライタ102による変換後の形式(以後、「電子原稿形式」と呼ぶ。)は、ページ単位の原稿を詳細な書式をもって表現可能であれば特に問わない。実質的な標準形式のうちでは、例えばアドビシステムズによるPDF形式や、SVG形式などが電子原稿形式として採用できる。
アプリケーション101により電子原稿ライタ102を利用させる場合には、出力に使用するデバイスドライバとして電子原稿ライタ102を指定してから印刷を実行させる。ただし、電子原稿ライタ102によって作成されたままの電子原稿ファイルは、電子原稿ファイルとして完全な形式を備えていない。そのため、デバイスドライバとして電子原稿ライタ102を指定するのは製本アプリケーション104であり、その管理下でアプリケーションデータの電子原稿ファイルへの変換が実行される。製本アプリケーション104は、電子原稿ライタ102が生成した新規の不完全な電子原稿ファイルを後述する形式を備えた電子原稿ファイルとして完成させる。以下では、この点を明瞭に識別する必要がある際には、電子原稿ライタ102によって作成されたファイルを電子原稿ファイルと呼び、製本アプリケーションによって構造を与えられた電子原稿ファイルをブックファイルと呼ぶ。また、特に区別する必要がない場合は、アプリケーションにより生成されるドキュメントファイル、電子原稿ファイル、及びブックファイルをいずれも文書ファイル(または文書データ)と呼ぶ。
このようにデバイスドライバとして電子原稿ライタ102を指定し、一般アプリケーション101によりそのデータを印刷させることで、アプリケーションデータはアプリケーション101によって定義されたページ(以後、「論理ページ」あるいは「原稿ページ」と呼ぶ。)を単位とする電子原稿形式に変換され、電子原稿ファイル103としてハードディスクなどの記憶媒体に格納される。なお、ハードディスクは、本実施形態の文書処理システムを実現するコンピュータが備えているローカルドライブであってもよいし、ネットワークに接続されている場合にはネットワーク上に提供されるドライブであっても良い。
製本アプリケーション104は、電子原稿ファイルあるいはブックファイル103を読み込み、それを編集するための機能を利用者に提供する。ただし製本アプリケーション104は、各ページの内容を編集する機能は提供しておらず、ページを最小単位として構成される、後述する章やブックの構造を編集するための機能を提供している。
製本アプリケーション104によって編集されたブックファイル103を印刷する際には、製本アプリケーション104によって電子原稿デスプーラ105が起動される。電子原稿デスプーラ105は、製本アプリケーションと共にコンピュータ内にインストールされるプログラムモジュールであり、製本アプリケーションで利用するドキュメント(ブックファイル)を印刷する際に、プリンタドライバ106へ描画データを出力するために使用されるモジュールである。電子原稿デスプーラ105は、指定されたブックファイルをハードディスクから読み出し、ブックファイルに記述された形式で各ページを印刷するために、前述したOSの出力モジュールに適合する出力コマンドを生成し、不図示の出力モジュールに出力する。その際に、出力デバイスとして使用されるプリンタ107のドライバ106がデバイスドライバとして指定される。出力モジュールは、指定されたプリンタ107のプリンタドライバ106を用いて受信した出力コマンドを、プリンタ107で解釈実行可能なデバイスコマンドに変換する。そしてデバイスコマンドはプリンタ107に送信され、プリンタ107によってコマンドに応じた画像が印刷される。
スキャナ108から画像を取り込むには大きく分類して二つの方法がある。一つはプルスキャンと呼ばれる方法で、画像を受け取るアプリケーション側からスキャンの指示を行う方法である。具体的には、スキャナドライバ109を通じてアプリケーションは画像データを取得する方法が挙げられる。スキャナドライバとしてはTWAINやISIS対応のドライバが一般的である。解像度や色数などは、スキャナドライバで設定することが可能である。もう一つの方法は、プッシュスキャンと呼ばれる方法で、スキャナ側からスキャンの指示を行う方法である。具体的には、ネットワーク共有されているハードディスクにスキャナが画像ファイルを置く方法が挙げられる。この場合、スキャナはデジタルコンピュータ100と共通のネットワーク機能を備え、共有フォルダに書き込み権限を持っている必要がある。
プッシュスキャンの場合、画像ファイルの画質設定はスキャナ本体のパネルなどで設定する。画像フォーマットとしてはTIFF、JPEG、BMP、PDFなどの形式が一般的である。
プルスキャンの場合、製本アプリケーション104は直接スキャナドライバから画像データを取得して読み込む。プッシュスキャンの場合は、デジタルコンピュータ100におかれた画像ファイル110を読み込む。このとき、製本アプリケーション104がフォルダを監視或いはスキャナからのスキャン終了通知を受け取りユーザの入力を待たずに自動的に読み込む事ができる。もしくは、デジタルコンピュータ100に置かれた画像ファイル110をユーザが製本アプリケーション104に読み込む指示を行っても良い。
<本実施形態の文書処理システムのハードウェア構成例>
図2は、本実施形態の文書処理システムのハードウェア構成を示す図である。図2において、ホストコンピュータ100は、ROM203内のプログラム用ROMあるいは外部メモリ211に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU201を備え、システムバス204に接続される各デバイスをCPU201が総括的に制御する。また、このROM203内のプログラム用ROMあるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステムプログラム等を記憶し、ROM203内のフォント用ROMあるいは外部メモリ211には上記文書処理の際に使用するフォントデータ等を記憶し、ROM203内のデータ用ROMあるいは外部メモリ211には上記文書処理等を行う際に使用する各種データを記憶する。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。
キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ(CRT)210の表示を制御する。207はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ211とのアクセスを制御する。プリンタコントローラ(PRTC)208は、双方向性インタフェース(インタフェース)21を介してプリンタ107に接続されて、プリンタ107との通信制御処理を実行する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
なお、CPU201は、例えばRAM202上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT210上でのWYSIWYGを可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。周辺機器インターフェース213はUSBやSCSI等であり、本例では画像スキャナ108に接続されている。
プリンタ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は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、321は操作パネルで、操作のためのスイッチ及びLED表示器等が配されている。
また、前述した外部メモリ314は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル321からのプリンタモード設定情報を記憶するようにしてもよい。
<電子原稿データの形式例>
編集アプリケーション104の詳細を言及する前に、ブックファイルのデータ形式を説明する。ブックファイルは紙媒体の書物を模した3層の層構造を有する。上位層は「ブック」と呼ばれ、1冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各ページについてもページごとの属性が定義できる。ひとつのブックは複数の章を含んでいてよく、また、ひとつの章は複数のページを含むことができる。
図3は、ブックファイルの形式の一例を模式的に示す図である。この例のブックファイルにおける、ブック、章、ページは、それぞれに相当するノードにより示されている。ひとつのブックファイルはひとつのブックを含む。ブック、章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体として含む。ページは、アプリケーションプログラムによって出力されたページごとのデータを実体として有する。そのため、ページは、その属性値のほか、原稿ページの実体(原稿ページデータ)か各原稿ページデータへのリンクを含む。尚、紙媒体等に出力する際の印刷ページは複数の原稿ページを含む場合がある。この構造に関してはリンクによって表示されず、ブック、章、ページ各階層における属性として表示される。
図3では、「文書」として一般的な記載をしているが、本実施例ではこれをブック、また章およびページの情報を含めファイル化したものをブックファイルと呼ぶ。
まず最上位に文書情報401を持つ。文書情報401は402〜404の3つのパートに大別できる。文書制御情報402は、文書ファイルのファイルシステムにおけるパス名などの情報を保持する。文書設定情報403は、ページレイアウトなどのレイアウト情報とステイプルなど印刷装置の機能設定情報を保持し、ブックの属性に相当する。章情報リスト404は、文書を構成している章の集合をリスト形式で保持する。リストが保持するのは章情報405である。
章情報405も406〜408の3つのパートに大別できる。章制御情報406は、章の名称などの情報を保持する。章設定情報407は、その章特有のページレイアウトやステイプルの情報を保持し、章の属性に相当する。章ごとに設定情報をもつことで最初の章は2UPのレイアウトその他の章は4UPのレイアウトのように複雑なレイアウトを持った文書を作成することが可能である。ページ情報リスト408は各章を構成する原稿ページの集合リスト形式で保持している。ページ情報リスト408が指示するのは、ページ情報データ409である。
ページ情報データ409も410〜412の3つのパートに大別される。ページ制御情報410は、ツリー上に表示するページ番号などの情報を保持する。ページ設定情報411は、ページ回転角やページの配置位置情報などの情報を保持し、原稿ページの属性に相当する。ページリンク情報412は、ページに対応する原稿データである。この例では、ページ情報409が直接原稿データを持つのではなく、リンク情報412だけをもち、実際の原稿データは、ページデータリスト413で保持する構成としている。
図4は、ブック属性(文書設定情報403)の例を示すリストである。通常、下位層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。そのため、ブック属性にのみ含まれる項目に関しては、ブック属性に定義された値はブック全体を通して有効な値となる。しかし、下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。なお、図示された各項目は具体的に1項目に対応するのではなく、関連する複数の項目を含むものもある。
ブック属性に固有の項目は、とじ代/とじ方向、製本詳細、表紙/裏表紙、インデックス紙、合紙、章区切りの6項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の3つの値を指定できる。製本印刷とは、別途指定する枚数の用紙を束にして2つ折りにし、その束をつづり合わせることで製本が可能となる形式で印刷する方法である。製本詳細属性としては、製本印刷が指定されている場合に、見開き方向や、束になる枚数等が指定できる。
表紙/裏表紙属性は、ブックとしてまとめられる電子原稿ファイルを印刷する際に、表紙及び裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。インデックス紙属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定及びインデックス(耳)部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが使用する印刷装置に備えられている場合か、あるいは、複数の給紙カセットを使用可能である場合に有効となる。これは合紙属性についても同様である。
合紙属性は、章の区切りとして、インサータからあるいは給紙カセットから供給される用紙の挿入の指定、及び、合紙を挿入する場合には、給紙元の指定などを含む。
章区切り属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。片面印刷時には新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。両面印刷時には、「新たな用紙の使用」を指定すれば連続する章が1枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が1枚の用紙の表裏に印刷されることがあり得る。
「とじ代/とじ方向」属性(設定情報)には、原稿ページを印刷ページ(シートの片面)に配置する場合の位置の調整量を保持する。とじ代の指定のために用いるが、原稿ページの位置の調整のために汎用的に利用できる。たとえば、スキャン原稿をひとつの文書として構成する様な場合、スキャナの紙送り機構などによって、読み取られた原稿画像の位置が本来のシート上における原稿画像の位置に対して偏る場合がある。そのような場合、読み取られた原稿すなわち画像全てについて、ほぼ同量のずれが生じていることが多い。このずれを、ブック属性のとじ代およびとじ方向の値を設定することで、文書全体について補正することができる。位置の調整は、基本となる位置(あらかじめ定められている。)から、指定された方向に、指定された量だけ、原稿ページが平行移動されることで行われる。
図5は、章属性(章設定情報407)の、図6はページ属性(ページ設定情報411)の例を示すリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。
章属性に関しては、章に固有の項目はなく、すべてブック属性と重複する。したがって、通常は、章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
ブック属性と章属性とにのみ共通する項目は、印刷方法、用紙サイズ、用紙方向、N−up印刷指定、拡大縮小、排紙方法の6項目である。印刷方法属性は、ブック属性では片面印刷、両面印刷、製本印刷の3つの値を指定できるが、章属性ではブック属性で両面印刷が指定されている場合のみ片面印刷するか否かすなわち片面印刷と両面印刷のいずれかを指定でき、一つのブック内で片面印刷と両面印刷の切り替えを設定できるようになっている。N−up印刷指定属性は、1印刷ページに含まれる原稿ページ数を指定するための項目である。指定可能な配置としては、1×1や1×2、2×2、3×3、4×4などがある。排紙方法属性は、排出した用紙にステイプル処理を施すか否かを指定するための項目であり、この属性の有効性は使用する印刷装置がステイプル機能を有するか否かに依存する。
ページ属性に固有の項目には、ページ回転属性、ズーム、配置位置指定、アノテーション、ページ分割などがある。ページ回転属性は、原稿ページを印刷ページに配置する際の回転角度を指定するための項目である。ズーム属性は、原稿ページの変倍率を指定するための項目である。変倍率は、仮想論理ページ領域のサイズを100%として指定される。仮想論理ページ領域とは、原稿ページを、N−up等の指定に応じて配置した場合に、1原稿ページが占める領域である。例えば1×1であれば、仮想論理ページ領域は1印刷ページに相当する領域となり、1×2であれば、1印刷ページの各辺を約70パーセントに縮小した領域となる。
配置位置は、当該原稿ページについて、印刷ページ上における縦横各方向の調整量を設定するための設定情報である。基本となる位置(あらかじめ定められている。)から、指定された方向に、指定された量だけ、原稿ページが平行移動される。ブック属性に「とじ代/とじ方向」の設定がある場合(すなわち0以外の調整量が設定されている場合)には、「とじ代/とじ方向」により設定された調整量に加えて、当該ページについての配置位置で設定された調整量、原稿ページの位置が補正される。
ブック、章、ページについて共通な属性として、ウォーターマーク属性及びヘッダ・フッタ属性がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウォーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できる。
<本実施形態の文書処理システムの操作手順例>
(ブックファイルの生成手順例)
ブックファイルは、上述したような構造及び内容を有している。次に、製本アプリケーション104及び電子原稿ライタ102によってブックファイルを作成する手順を説明する。ブックファイルの作成は、製本アプリケーション104によるブックファイルの編集操作の一環として実現される。
図7は、製本アプリケーション104によりブックファイルを開く際の手順を示すフローチャートである。
まず、開こうとするブックファイルが、新規作成すべきものであるか、それとも既存のものであるか判定する(ステップS701)。新規作成の場合には、章を含まないブックファイルを新規に作成する(ステップS702)。新規に作成されるブックファイルは、図3の例で示せば、ブックノード401のみ有し、章のノードに対するリンクが存在しないブックのノードとなる。ブック属性は、新規作成用としてあらかじめ用意された属性のセットが適用される。そして、新規ブックファイルを編集するためのユーザインタフェース(UI)画面を表示する(ステップS704)。図8は、新規にブックファイルが作成された際のUI画面の一例である。この場合には、ブックファイルは実質的な内容を持たないために、UI画面800には何も表示されない。
一方、既存のブックファイルがあれば、指定されたブックファイルを開き(ステップS703)、そのブックファイルの構造、属性、内容に従ってユーザインタフェース(UI)画面を表示する。図9は、このUI画面の一例である。UI画面900は、ブックの構造を示すツリー部901と、印刷された状態を表示するプレビュー部902とを含む。ツリー部901には、ブックに含まれる章、各章に含まれるページが、図3のような木構造が分かるように表示される。ツリー部901に表示されるページは原稿ページである。プレビュー部902には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。
さて、開かれたブックファイルには、電子原稿ライタ102によって電子原稿ファイルに変換されたアプリケーションデータを、新たな章として追加することができる。この機能を電子原稿インポート機能と呼ぶ。図7の手順によって新規に作成されたブックファイルに電子原稿インポートすることで、そのブックファイルには実体が与えられる。この機能は、図8あるいは図9の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。
図10は電子原稿インポートの手順例を示すフローチャートである。
まず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして電子原稿ライタ102を指定してアプリケーションデータを印刷出力させることで、電子原稿データに変換する(ステップS801)。変換を終えたなら、変換されたデータが画像データであるか否かを判定する(ステップS802)。この判定は、ウィンドウズ(登録商標)OSの下であれば、アプリケーションデータのファイル拡張子に基づいて行うことができる。例えば、拡張子が「bmp」であればウィンドウズ(登録商標)ビットマップデータであり、「jpg」であればJPEG圧縮された画像データ、「tif」であればtiff形式の画像データであると判定できる。また、このような画像データの場合はS801のようにアプリケーションを起動せずに、画像データから直接電子原稿ファイルを生成することが可能であるため、S801の処理を省略することも可能である。
画像データでなかった場合には、ステップS801で生成された電子原稿ファイルを、現在開かれているブックファイルのブックに、新たな章として追加する(ステップS803)。通常、章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、あらかじめ用意された規定値に設定されるが、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
画像データである場合には、原則として新たな章は追加されず、指定されている章に、ステップS801で生成された電子原稿ファイルに含まれる各原稿ページが追加される(ステップS804)。ただし、ブックファイルが新規作成されたファイルであれば、新たな章が作成されて、その章に属するページとして電子原稿ファイルの各ページが追加される。通常、ページ属性は、上位層の属性と共通のものについてはその属性値が与えられ、アプリケーションデータにおいて定義された属性を電子原稿ファイルに引き継いでいるものについてはその値が与えられる。例えば、N−up指定などがアプリケーションデータにおいてされていた場合には、その属性値が引き継がれる。このようにして、新規なブックファイルが作成され、あるいは、新規な章が追加される。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
図11は、図10のステップS801において、電子原稿ライタ102により電子原稿ファイルを生成させる手順を示すフローチャートである。
まず、新たな電子原稿ファイルを作成してそれを開く(ステップS901)。指定したアプリケーションデータに対応するアプリケーションを起動し、電子原稿ライタ102をデバイスドライバとして、OSの出力モジュールに対して出力コマンドを送信させる。出力モジュールは、受信した出力コマンドを電子原稿ライタによって電子原稿形式のデータに変換し、出力する(ステップS902)。出力先はステップS901で開いた電子原稿ファイルである。指定されたデータすべてについて変換が終了したか判定し(ステップS903)、終了していれば電子原稿ファイルを閉じる(ステップS904)。電子原稿ライタ102によって生成される電子原稿ファイルは、図3に示した、原稿ページデータの実体を含むファイルである。
(ブックファイルの編集例)
以上のようにして、アプリケーションデータからブックファイルを作成することができる。生成されたブックファイルについては、章及びページに対して次のような編集操作が可能である。
(1)新規追加
(2)削除
(3)コピー
(4)切り取り
(5)貼り付け
(6)移動
(7)章名称変更
(8)ページ番号名称振り直し
(9)表紙挿入
(10)合紙挿入
(11)インデックス紙挿入
(12)各原稿ページに対するページレイアウト。
このほか、一旦行った編集操作を取り消す操作や、さらに取り消した操作をやり直す操作が可能である。これら編集機能により、例えば複数のブックファイルの統合、ブックファイル内で章やページの再配置、ブックファイル内で章やページの削除、原稿ページのレイアウト変更、合紙やインデックス紙の挿入などといった編集操作が可能となる。これらの操作を行うと、図4乃至図6に示す属性に操作結果が反映されたり、あるいはブックファイルの構造に反映されたりする。たとえば、ブランクページの新規追加操作を行えば、指定された箇所にブランクページが挿入される。このブランクページは原稿ページとして扱われる。また、原稿ページに対するレイアウトを変更すれば、その変更内容は、印刷方法やN−up印刷、表紙/裏表紙、インデックス紙、合紙、章区切りといった属性に反映される。本例における、編集時の表示及び操作例については、以下で詳細に示す。
(ブックファイルの出力例)
以上のように作成・編集されるブックファイルは印刷出力を最終目的としている。利用者が図9に示す製本アプリケーションのUI画面900からファイルメニューを選択し、そこから印刷を選択すると、指定した出力デバイスにより印刷出力される。この際、まず製本アプリケーション104は、現在開かれているブックファイルからジョブチケットを作成して電子原稿デスプーラ105に渡す。電子原稿デスプーラ105は、ジョブチケットをOSの出力コマンド、例えばウィンドウズ(登録商標)のGDIコマンドに変換し、それを出力モジュール、例えばGDIに送信する。出力モジュールは、指定されたプリンタドライバ106によってデバイスに適したコマンドを生成し、そのデバイスに送信する。
すなわち、図示しない出力モジュールのグラフィックエンジンは、印刷装置ごとに用意されたプリンタドライバ106を外部メモリ211からRAM202にロードし、出力をプリンタドライバ106に設定する。そして、出力モジュールは、受け取ったGDI(Graphic Device Interface)関数からDDI(Device Driver Interface)関数に変換して、プリンタドライバ106へDDI関数を出力する。プリンタドライバ106は、出力モジュールから受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM202にロードされたシステムスプーラを経てインタフェース21経由でプリンタ107へ印刷データとして出力される仕組みとなっている。
ここで、上記ジョブチケットは、原稿ページを最小単位とする構造を有するデータである。ジョブチケットにおける構造は、用紙上における原稿ページのレイアウトを定義している。ジョブチケットは1ジョブにつき1つ発行される。そのため、まず最上位にドキュメントというノードがあり、文書全体の属性、例えば両面印刷/片面印刷などが定義されている。その下には、用紙ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各用紙ノードには、その用紙で印刷されるシートのノードが属する。1シートは1枚の用紙に相当する。各シートには、印刷ページ(物理ページ)が属する。片面印刷ならば1シートには1物理ページが属し、両面印刷ならば1シートに2物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。
ジョブチケットのデータ構造の例を図12に示す。印刷用のデータでは、文書は用紙の集合で構成されており、各用紙は表、裏の2面で構成されており、各面は原稿をレイアウトする領域(物理ページ)を持ち、各物理ページには、最小単位である原稿ページの集合から構成される。1101は文書に相当するデータで、文書全体に関係するデータと、文書を構成する用紙情報のリストから構成される。用紙情報1102は用紙サイズなど用紙に関する情報と用紙上に配置される面情報のリストから構成される。面情報1103は、面に固有のデータと、面上に配置される物理ページのリストから構成される。物理ページ情報1104は、物理ページのサイズやヘッダ・フッタなどの情報と、物理ページを構成する原稿ページのリストから構成される。電子原稿デスプーラ105は、上述のジョブチケットを、出力モジュールへの出力コマンドに変換する。
(プレビュー表示の内容例)
すでに説明したとおり、ブックファイルが製本アプリケーションによって開かれると、図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に送信する。集中印刷管理サーバは、例えば保存されているブックファイルに対して印刷要求を発行した利用者の資格などについてセキュリティチェックを行ったり、印刷処理のログを保存したりする。このように、文書処理システムは、スタンドアロンとしても、クライアントサーバシステムとしても実現できる。
<本実施形態の文書処理システムの属性設定例>
図9は、製本アプリケーション104の操作画面である。製本アプリケーションは、文書のページ順の入れ替えや複製、削除などの編集に加え、ステイプルなどの印刷装置の機能設定も行うことができ、指定した印刷装置に印刷することが可能である。図9の左側の領域には、文書の構造を示すツリービューが表示されている。文書は、章の集合で構成されており、各章は原稿ページの集合で構成されている。図9の右側の領域には、各ページの印刷プレビューが表示されている。
図14は、製本アプリケーション104の「文書の詳細設定」ウインドウ1400を示している。このウインドウでは、「文書設定情報403」を表示/設定することができる。このウインドウは、図9のアプリケーション操作画面にある印刷形式メニューの「文書の詳細設定」メニューあるいはツールバー上の「文書の詳細設定」ボタンから起動される。「文書の詳細設定」ウインドウは、文書全体に影響する属性の設定を行うためのウインドウである。このウインドウは、ページ設定、フィニッシング、編集、ページソースの4つのシートから構成されており、図14は、ページ設定シートを表示した状態を示している。このページ設定シートでは、主にレイアウトに関する設定を行うことができ、用紙サイズや向き、Nページ印刷などの設定を指示することができる。このウインドウには、ズームに関するチェックボックスコントロール1401、1402が配置されている。
図15は、製本アプリケーション104の「章の詳細設定」ウインドウ1500を示している。このウインドウでは、「章設定情報407」を表示/設定することができる。このウインドウは、図9のアプリケーション操作画面にある印刷形式メニューの「章の詳細設定」メニューあるいはツールバー上の「章の詳細設定」ボタンから起動される。「章の詳細設定」ウインドウは、章固有の属性の設定を行うためのウインドウである。このウインドウは、ページ設定、フィニッシング、編集、ページソースの4つのシートから構成されており、図15は、ページ設定シートを表示した状態を示している。このページ設定シートでは、主に各章で固有のレイアウトに関する設定を行うことができ、用紙サイズや向き、Nページ印刷などの設定を指示することができる。「文書の詳細設定」と「章の詳細設定」で重複する設定項目については「ブック属性に従う」のチェックボックスコントロール1501、1502、1503を配置している。このチェックボックスにチェックが入っている項目グループについては、文書の設定値をその章にも適用する。このチェックをはずした場合については、次の図16に示す。章固有の設定としては2種類に分類できる。一つは章でしか持たない設定項目である。もう一つは、上位階層の文書とは異なる独自の設定値を章の階層で保持している場合である。
図16は、図15の「章の詳細設定」でチェックボックスコントロール1501、1502のチェックをはずした状態である。この場合、文書の全体がA3用紙を使っている場合でも、この章を構成するページはA4用紙サイズとする。またレイアウトも、文書では1シート当たり1ページであっても、この章は1シート当たり4ページでレイアウトするという指定である。「ズーム配置」については、チェックがついているので、上位階層である文書の設定値をこの章の設定値として使う。
図17は、製本アプリケーション104の「ページの詳細設定」ウインドウ1700を示している。このウインドウでは、「ページ設定情報411」を表示/設定することができる。このウインドウは、図9のアプリケーション操作画面にある印刷形式メニューの「ページの詳細設定」メニューあるいはツールバー上の「ページの詳細設定」ボタンから起動される。「ページの詳細設定」ウインドウは、各ページで固有の属性の設定を行うためのウインドウである。このウインドウは、ページ設定、編集の2つのシートから構成されており、図17は、ページ設定シートを表示した状態を示している。このページ設定シートでは、主に各ページで固有のレイアウトに関する設定を行うことができ、原稿ページを配置する際の回転角や拡縮率などの設定を指示することができる。「章の詳細設定」と「ページの詳細設定」で重複する設定項目については「章属性に従う」のチェックボックスコントロール1701を配置している。このチェックボックスにチェックが入っている項目については、章の設定値をそのページにも適用する。このチェックをはずした場合については、次の図18に示す。
図18は、図17の「ページの詳細設定」でページの回転の設定を変更した状態を示している。コントロール1701で、原稿ページをレイアウトする際にページの上が左になるように回転して配置する設定にしている。この項目については「章属性に従う」のチェックボックスが無いので、章や文書に重複する設定項目が無く、このウインドウに表示されている設定が常にページの設定値となる。1701のチェックがある場合、例えば「ズーム配置」の項目は、章にも重複する設定項目があるので章の設定値をページの設定値とする。章で該当する「ズーム配置」の項目が「ブック属性に従う」のチェックがある場合、章の設定値は上位階層である文書の設置値を使うので結局ページの設定値は文書の設定値を使うことになる。章で該当する項目のチェックが外れている場合、章固有の設定値を持っているので、ページの設定値はその章固有の設定値を使う。
尚、上記設定画面で設定されたチェックボックスコントロールの情報は、専用の領域に保持されてもよいが、図3に示した設定情報内に属性の1つとして保持するのが望ましい。この場合には、図5及び図6にチェックボックスコントロールの情報を保持する領域が追加される。
<本実施形態の文書処理システムの文書編集の表示例>
上位階層と重複する設定項目を上位階層の設定値を使わないようにした場合、つまり、チェックボックスコントロール1501や1701のチェックをはずした場合のアプリケーションの表示形式を、図19に示す。図19の例では、文書は二つの章からなり、各章は9ページの原稿データを持っている。最初の章のレイアウトを4UP(4in1とも表記する。)に、2番目の章の先頭ページ(文書全体では10ページ目)に回転を指定した場合の表示例である。右側のプレビューにおいて、1〜3ページ目には1ページ上に4つの原稿がそれぞれ配置されている様子が表示されている。そして、第4ページ目のデータである「A」の文字が回転している様子が表示されている。ツリービューでの章やページ固有の設定を行った場合の表示形式を説明する。最初の章に対するアイコン1901が変化して、この章に章独自の設定がなされていることを示している。2番目の章の先頭ページに対するアイコン1902が変化して、このページに特別な設定がなされていることが示されている。
[本実施形態の文書処理方法および印刷処理方法]
次に、上記文書処理システムにおいて、印刷ページに対する設定を原稿ページの属性として適用し、文書編集時には原稿ページの保持する印刷ページに対する設定を読み出し、印刷ページの設定の整合性を保つよう原稿ページの属性を変更する文書処理と、印刷実行時には原稿ページの保持する印刷ページに対する設定を読み出し、印刷ページの設定として印刷に適用する印刷制御処理について詳細に説明する。
<印刷ページに対する設定を原稿ページの属性として適用する方法>
図21、図22にブックに含まれるすべての印刷ページに対する印刷位置の上下左右方向への微調整設定を行うユーザインタフェースの例を示す。このユーザインタフェースは、図4に示したブック属性NO.4とじ代/とじ方向に格納される設定値を編集するものである。また、ブック属性NO.1印刷方法の設定が片面の場合には図21、両面または製本の場合には図22のユーザインタフェースを表示し、両面または製本時には、表面と裏面それぞれ独立に移動量を指定可能になっている。
図21または図22のユーザインターフェース画面は、たとえば図14のページの詳細設定のユーザインターフェースの「位置設定」ボタン1403の押下により、片面/両面/製本の印刷設定に応じて表示される。あるいは、図9のユーザインターフェース画面の印刷形式メニューから「とじ代」項目を選択するようにしてもよい。
図23は、図21および図22に示すユーザインタフェースから設定される図4のブック属性NO.4「とじ代/とじ方向」設定情報の詳細内容を示す図である。ブックに含まれるすべての表面の印刷位置調整量(X1, Y1)と裏面の印刷位置調整量(X2, Y2)の値が格納されており、電子原稿デスプーラ105によりここで指定された値分印刷位置をずらして印刷が実行されるか、あるいはプリンタ107に対して印刷位置をずらすコマンドが送信されるようプリンタドライバ106に対して指示を行う。なお、片面時には表面の印刷位置調整量(X1, Y1)のみが参照され、裏面の印刷位置調整量(X2, Y2)は参照されない。
図24、図25に特定の印刷ページに対する印刷位置の上下左右方向への微調整設定を行うユーザインタフェースの例を、図26に特定の印刷ページに対する印刷位置の微調整処理のフローチャートを示す。印刷ページは、印刷ページに配置された原稿ページを指定することで特定される。このため、たとえば図17のユーザインターフェース画面上において、プレビュー表示された原稿ページを操作者が選択すると、選択された原稿ページが配置された印刷ページが「特定の印刷ページ」となる。
このユーザインタフェースは、図6に示したページ属性NO.5「配置位置」設定情報に格納される設定値を編集するものである。たとえば図17のページの詳細設定のユーザインターフェース画面における「位置設定」1702の押下により表示される。このとき、図5に示した章属性NO.1「印刷方法」の設定(この設定がブックの属性に従う設定の場合にはブック属性NO.1「印刷方法」の設定)が片面の場合には図24、両面または製本の場合には図25のユーザインタフェースをステップS2601で表示する。両面または製本時には、表面と裏面それぞれ独立に移動量を指定可能になっている。また、この移動量は、図24、図25に示すとおり、ブック(図中ではドキュメントという用語で表示)に対して設定されている印刷位置調整値に対するオフセット量での指定となる。また、ページ属性NO.5「配置位置」設定情報に格納される設定値の詳細は、図23に示したブック属性NO.4「とじ代/とじ方向」の詳細内容と同様の4つの設定項目からなる。
そしてステップS2602でユーザインタフェースから設定が変更されたかを調べ、変更されている場合には、ステップS2603で特定ページと同一の印刷ページ上の全原稿ページのページ属性NO.5「配置位置」の値を更新する。
なお、ブック属性の「とじ代/とじ方向」については、図26とほぼ同様の処理であるが、設定自体ブックに唯一であるので、単に設定された値を「とじ代/とじ方向」の設定情報として保存するだけの処理である。
図27のブックファイルの例を用いて具体的に説明する。このブックファイルは原稿20ページに対して2−up、すなわち2つの連続する原稿ページを1つの印刷ページに縮小は位置するレイアウトあり、しかも両面印刷が設定されている。今、操作者が図27の原稿5を選択し、メニューあるいはボタンから特定の印刷ページ、すなわち選択した原稿ページを含む印刷ページに対する印刷位置の上下左右方向への微調整設定を指示する。このページを含む章又はブックの印刷方法の設定値は「両面印刷」なので、図25に示したユーザインタフェースが表示される。ここで設定を変更すると、原稿5と同一印刷ページ上にあるすべての原稿(この例では原稿5と原稿6)のページ属性NO.5「配置位置」設定情報の値が、変更された値で更新される。このような処理により、同一印刷ページ上に配置される原稿ページが持つ印刷ページに対する設定内容は、常に同一に保たれる。
<文書編集時の印刷ページの設定の整合性を保つ方法>
図28に文書編集時の印刷ページ設定処理のフローチャートを示す。原稿ページの移動や削除などにより、各印刷ページ上に配置される原稿ページが移動する場合、各印刷ページに対して図28に示す処理により、各印刷ページに適用される設定が再設定され、設定の整合性が保たれる。すなわち、図28の処理は、原稿ページの移動、追加、削除など、原稿ページと印刷ページとの対応関係が変化した場合に、当該印刷ページに配置される原稿ページを対象として実行される。原稿ページと印刷ページとの対応関係の変化は、たとえば第1の方法では、編集操作が実行されたことを示すフラグ等を設け、それを参照して編集操作が行われたなら原稿ページと印刷ページとの対応関係が変化したと見なすことで判定できる。この場合には、先頭から順番にすべての印刷ページが注目印刷ページとなる。また、第2の方法として、印刷ページごとに配置される原稿ページの識別子などを対応付け、印刷ページごとに、編集によって変更されたことを示すフラグを持たせた表を設けて、原稿ページと印刷ページとの対応関係が変化したと見なすことで判定できる。この場合には、フラグがセットされた印刷ページを順次注目印刷ページとする。
図28において、まずステップS2801では、注目している印刷ページ上に配置される原稿ページの配置位置の設定情報の値を取得し、ステップS2802で比較する。注目している印刷ページ上に配置される原稿ページは、上述の第2の方法では表を参照して知ることができる。第1の方法では、先頭の原稿ページから順次原稿ページを印刷方法やN−upの設定情報にしたがって印刷ページに対応付けることで、知ることができる。
ステップS2802の判定によりすべての配置位置の設定情報の値が一致する場合には、各原稿ページに設定されている値は有効なものとしてそのまま処理を終了する。一致しない値を持つ原稿ページが存在する場合には、編集によって再構成された注目印刷ページに対して、その注目印刷ページに含まれる原稿ページの配置位置設定情報は不整合を起こしていると判断し、ステップS2803で同一印刷ページ上の全原稿の配置位置の値を初期化(クリア)して処理を終了する。一致しない値を持つ原稿ページが存在する場合に不整合と判定するのは、1ページの印刷ページに配置された原稿ページの内、一部だけについて位置の調整が行われると、原稿ページの一部が覆い隠されたり、あるいは一部だけが調整されて、文書としての品質が低下するおそれがあるためである。
図28の処理を行う具体的な文書編集例を図29に示す。図29は、図27に示すブックファイルから原稿1、原稿2をまとめて削除した結果を示している。この場合、前述のとおり、印刷ページの設定として原稿(原稿ページのこと)5と原稿6に印刷位置調整値が設定され、その他の原稿については設定されていない場合、編集後も原稿5と原稿6は同一印刷ページ上に存在し、その印刷ページ上の全原稿ページに含まれる印刷位置調整値が一致するため、原稿5と原稿6の持つ印刷位置調整値はそのまま保持される。これにより、この印刷ページに対して設定された値は、編集後も有効とすることが可能となる。すなわち、原稿の移動や削除が行われた場合に、印刷ページ上にレイアウトされる原稿が変わっても、保持すべき一部の印刷ページに対する設定を消去されないようにすることが可能となる。
一方、さらに図29の状態から原稿3を削除した場合には、原稿5と原稿6は異なる印刷ページ上に配置される。そして、原稿4と原稿5とが配置される印刷ページも、原稿6と原稿7とが配置される印刷ページも、印刷ページ上にある原稿ページが保持する配置位置の設定情報すなわち印刷ページに対する調整量がすべて一致しない。そのため、どちらも原稿ページが保持する印刷位置調整値は初期化されることとなる。このようにして、原稿の移動や削除が行われた場合に、印刷ページ上にレイアウトされる原稿が変わっても、本来設定を行おうとした対象のページでないページに設定が適用されないようにすることが可能となる。
<本実施形態における印刷処理方法>
図30は、電子原稿デスプーラ105における印刷処理の詳細をフローチャートで示したものである。本発明を適用可能なプリンタなどの印刷装置は、ブックファイルが持つブック・章・ページの階層構造と同様に、ジョブ・バインダー・ページという階層構造をもつ。基本的に、ブックに対する設定は印刷装置のジョブに、章に対する設定は印刷装置のバインダーに対して適用することで、階層構造を持った文書の印刷設定に従った印刷装置の制御が可能となる。
電子原稿デスプーラ105は、まずステップS3001でジョブ開始の発行を行う。そしてステップS3002でジョブの属性にブックの属性をセットする。
ステップS3003ではジョブの属性を発行し、ステップS3004で現在処理中の章番号を初期化する。ステップS3005で、すべての章を処理済みか判定し、処理済の場合には、ステップS3012でジョブ終了を発行して、ブックの印刷処理を終了する。未処理の章が残っている場合には、ステップS3006で処理対象の章を一つ進め、すべての章に対してステップS3007からステップS3011までの処理を順次実施する。ステップS3007ではバインダー開始を発行し、バインダーの属性に現在処理中の章の属性を設定して、ステップS3009でバインダー属性を発行する。続いてステップS3010では処理中の章の各ページの印刷処理を実行する。章内の印刷処理が終了すると、ステップS3011でバインダー終了を発行し、ステップS3005に戻ってすべての章が終了するまでこの処理を繰り返し、すべての章の属性をプリンタに伝えることができる。
図31は、図30における印刷処理が、電子原稿デスプーラ105、プリンタドライバ106、およびプリンタ107の間でどのように制御されるかを示すシーケンス図である。
まず、電子原稿デスプーラ105は、図30のステップS3001およびステップS3003の処理でOSの印刷処理手順に従って、例えばウィンドウズ(登録商標)OSであれば、CreateDC(), StartDoc()など、印刷ジョブを生成する処理を実行する。この処理は、GDIを経由して、プリンタドライバ106に通知され、プリンタドライバ106は、ジョブ生成処理およびジョブ属性設定処理を行う。具体的には、ジョブの開始、印刷方法設定などを含むジョブ属性をプリンタへ指示するコマンドを生成し、プリンタへデータを送信するためのOSの手続きを経て、プリンタ107へコマンドを送信する。
次に、電子原稿デスプーラ105は、図30のステップS3008のバインダー開始の発行処理でExtEscape(BINDER_START)を実行し、プリンタドライバ106へ、ジョブ属性とは異なる属性を指定可能なバインダーの開始を通知する。具体的には、章の印刷開始の通知を意味している。次に図30のステップS3009のバインダー属性の発行処理でResetDC()を実行し、バインダー属性をプリンタドライバ106へ通知する。具体的には、章の属性を含むバインダー属性をプリンタドライバ106へ通知する。プリンタドライバ106は、これらの処理を受けて、プリンタ107に対して、バインダーが開始されたことを通知するバインダー生成処理およびバインダー属性設定処理を行う。具体的には、バインダーの属性をプリンタへ指示するコマンドを生成し、プリンタへデータを送信するためのOSの手続きを経て、プリンタ107へコマンドを送信する。
その後、電子原稿デスプーラ105は、図30のステップS3010の処理でバインダーに含まれる各ページの描画内容すなわち現在の章に含まれる各原稿ページの描画内容をGDIを通じてプリンタドライバ106へ通知する。前述のとおり、プリンタドライバ106はGDIからDDIに変換された形で描画内容を受け取り、PDLなどのプリンタが解釈可能な描画命令に変換してプリンタ107へ送信する。
そして、電子原稿デスプーラ105は、図30のステップS3011で現在のバインダーが終了すること、ステップS3008で次のバインダーが開始することを、それぞれExtEscape ( BINDER_END ) およびExtEscape ( BINDER_START ) によってプリンタドライバ106へ通知する。この2つの通知は、バインダーの境界を通知するのが目的であるため、バインダーの境界を通知する1つの通知にまとめることも可能である。
このように、電子原稿デスプーラ105は、章の数だけ上記処理を繰り返し、最後に電子原稿デスプーラ105は、図30のステップS3012でOSの印刷処理手順に従って、例えばウィンドウズ(登録商標)OSであれば、EndDoc()など、印刷ジョブを終了する処理を実行する。この処理は、GDIを経由して、プリンタドライバ106に通知され、プリンタドライバ106は、ジョブ終了処理を行う。具体的には、ジョブの終了をプリンタへ指示するコマンドを生成し、プリンタへデータを送信するためのOSの手続きを経て、プリンタ107へコマンドを送信する。
なお、ここでは、電子原稿デスプーラ105がGDI経由でプリンタドライバ106へ通知する手段として、ExtEscape()やResetDC()といった具体的なAPIを例として挙げたが、電子原稿デスプーラ105とプリンタドライバ106が同期して印刷処理を実行できるのであれば、このAPI以外の手段を用いても同様の処理が実現可能なことは言うまでもない。
なお、本実施例で挙げた印刷位置調整値は、ブック全体の調整値を図30のステップS3002でプリンタ107に伝え、プリンタ側ですべての印刷ページの印刷位置を調整し、特定印刷ページの調整値をステップS3010の各章の印刷処理の中で、印刷位置をずらすあるいは原点を移動する指示をプリンタ107に各印刷ページで発行して印刷することにより、印刷結果に反映させることが可能である。この際、各印刷ページに配置される原稿ページに関連付けられた印刷ページに対する設定値は統一されているので、適当なひとつの原稿ページに設定されている値を用いればよい。あるいは、ブック全体の調整値と特定ページの調整値の和をステップS3010の各章の印刷処理の中で、同様に指示することによっても実現することが可能である。
また、この印刷位置の移動の設定は印刷ページに対する設定の一例であって、その他の印刷ページに対する設定であっても本発明を適用することが可能である。
このようにして、印刷ページに対する設定を、印刷ページ上に配置される原稿ページに関連付けた設定として保持し、編集時にも設定が有効である場合には設定を保持し、印刷時に印刷ページに対する設定として、印刷結果に反映させることが可能となる。
<プレビュー表示処理>
図32は、本実施形態における文書ファイルのプレビュー表示処理手順を示す図である。図32には印刷プレビューモードの手順を示す。原稿プレビューモードや簡易プレビューモードでは、本実施形態において設定された原稿ページの位置調整量が表示に範囲されないために省略した。
ステップS3201において、ステップS3201において、まず注目印刷ページ(第1ページから始まる。)に配置される注目原稿ページを文書ファイル103から読み出す。そして、ステップS3202において、ブック属性や章属性、ページ属性に設定された印刷方法(両面/片面/製本)やNupレイアウトなどの設定にしたがって、原稿ページを印刷ページにレイアウトする。印刷ページは実体はないので、たとえば印刷ページに相当する領域に原稿ページのデータを配置する。ただし、この配置は、ビットマップ画像データではなく、オブジェクトとその位置や順序、縮尺などを示す中間データで行ってもよい。ステップS3203において、ブック属性の「とじ代/とじ方向」設定の値と、注目原稿ページについてのページ属性の「配置位置」設定の値とをX、Yそれぞれの方向について加算し、調整量を求める。そして求めた調整量だけ注目原稿ページをずらす。ステップS3204において、その画像を、中間データであればビットマップにレンダリングし、必要に応じて縮小してプレビュー画像を作成する。プレビュー画像は、文書全体について注目原稿ページ及び注目印刷ページを順次進めながら生成される。最後に、ステップS3205でプレビュー画像を、製本アプリケーション104のユーザインターフェース画面のプレニューウインドウ内に表示させる。
印刷についても、図32とほぼ同様の容量で原稿画像のずれを実行できる。ただし、製本アプリケーション104は、電子原稿デスプーラ105に対して中間データで文書ファイルをわたすために、たとえば、原稿ページの調整量を、中間データにおける原稿ページの配置位置に各方向について加算しておくなど、具体的なデータの形式では相違する。
このようにして、印刷ページに対する設定を、印刷ページ上に配置される原稿ページに関連付けた設定として保持し、編集時にも設定が有効である場合には設定を保持し、印刷時に印刷ページに対する設定として、プレビュー画面に反映させることが可能となる。
以上のようにして、アプリケーションデータや画像データをまとめて文書化し、印刷制御するシステムにおいて、原稿の移動や削除が行われた場合に、印刷ページ上にレイアウトされる原稿が変わっても、本来設定を行おうとした対象のページでないページに設定が適用されないようにすることが可能となる効果が得られる。また、原稿の移動や削除が行われた場合に、印刷ページ上にレイアウトされる原稿が変わっても、保持すべき一部の印刷ページに対する設定を消去されないようにすることが可能となる効果が得られる。
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。