本発明は、印刷方法および装置に関するもので、特にパーソナルコンピュータ等の情報処理とプリンタからなるシステムにおける、印刷レイアウトアプリケーションにおいて、ソフトウェアとして実装され、印刷データ編集時に実行されるものである。
以下、添付図面に従って、本発明の実施形態を詳細に説明する。
[本実施形態の文書処理システムの概要]
本発明の第1の実施形態である文書処理システムの概要を、図1〜図13を参照して説明する。この文書処理システムでは、一般アプリケーションにより作成されたデータファイルが、印刷データ保存用ドライバによって保存ファイルに変換される。印刷制御アプリケーション(製本アプリケーションと呼ぶ場合もある。)はその電子原稿ファイルを編集する機能を提供している。また、印刷制御アプリケーションで編集された保存ファイルに対しては、保存ファイルに対応付けられた編集情報ファイルが生成されて保存される。そして、保存ファイルの内容は、印刷制御アプリケーションを介して印刷アプリケーション(デスプーラとも呼ばれる。)により読み出されて印刷に供される。尚、本例では、それぞれの機能が明瞭になるように、一般アプリケーション、印刷データ保存用ドライバ、印刷制御アプリケーション、印刷アプリケーションと分離して示しているが、ユーザに提供されるパッケージはこれらに限定されず、これらを組み合わせたアプリケーションやグラフィックエンジンとして提供されてもよい。以下、その詳細は説明する。
<本実施形態の文書処理システムのハードウェア構成例>
図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とを別個のファイルとしているが、これらは、ファイルが開かれていない状態においては、その一体性を保持するためにアーカイブファイルとして一体とされていてもよい。本説明では、とくに保存ファイル103と拡張編集情報ファイル111とをまとめて電子原稿ファイルと呼ぶことがある。また印刷データ保存用ドライバのことを、電子原稿ファイルを生成するプログラムという意味で電子原稿ライタと呼ぶ場合もある。
図1で示すシステムにおいては、保存ファイル103で保存されているデータの内容に対して加工を施すことができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。これらの目的のために、図1のシステムでは中間コードデータでスプールする様、従来のものに対してシステムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常印刷制御アプリケーション104が提供するウインドウから設定を行い、その設定内容をRAM202上あるいは外部メモリ211上に保管する。
図1に示す通り、この拡張された処理方式では、まず、アプリケーション101からの印刷データは印刷データ保存用ドライバ102を介して保存ファイル103としてシステム上に保存される。この保存ファイル103は中間ファイルとも呼ばれ、印刷物のコンテンツデータや印刷用設定データ等が含まれる。印刷物のコンテンツデータとはユーザがアプリケーション上で作成したデータを中間コードに変換したデータであり、印刷用設定データとはコンテンツデータをどのように出力するか(出力体裁等)を記述したデータである。そのほか、印刷制御アプリケーションにより保存ファイルの内容の編集や出力指示をユーザに行わせる際のユーザインターフェースを提供するための拡張編集情報ファイルというアプリケーション用拡張データが含まれる。拡張編集情報ファイル111には、ユーザインターフェースの提供のための拡張データのみならず、保存ファイルには格納できない印刷用設定データが格納されている。このため、保存ファイルとしてたとえば標準化された形式を用いた場合など、その形式では保存できない印刷用設定も拡張編集情報ファイル111に保存できる。
さらに、拡張編集情報ファイル111には、印刷制御アプリケーションに104による編集操作の対象となる電子原稿ファイルそのもののほか、電子原稿ファイルの元となるオリジナル文書ファイルへのリンク情報が含まれる。また、本実施形態ではオリジナル文書ファイルそのものも含まれる。ただし、オリジナル文書ファイルそのものは拡張編集情報ファイル111に含まれていなくとも良い。なおオリジナル文書ファイルには、たとえば文書作成アプリケーションにより作成された文書データファイルや、表作成アプリケーションにより作成された表データ、ドローイングアプリケーションにより作成された図面データファイル、ディジタル化された写真データ等、一般アプリケーション101により作成され、印刷データ保存用ドライバ102の入力となった文書データが含まれる。
この保存ファイル103を印刷制御アプリケーション104が読み込む。この印刷制御アプリケーション104は、保存ファイル103の内容をメモリにテーブルとして展開し、さらに拡張編集情報ファイル111に、保存ファイルには含まれない特有の設定が含まれていれば、その設定をメモリ上に展開したテーブルに反映する。そして、読み込んだ保存ファイル103に内容の出力体裁を変更、表示し、保存、印刷することが可能である。実際に印刷のための処理を行うのは印刷アプリケーション(デスプーラ)105である。印刷制御アプリケーション104から印刷命令を受けた印刷アプリケーション(デスプーラ)105は、印刷制御アプリケーション104の設定した出力体裁に従い、GDI関数など、所定の形式でグラフィックエンジン121に対してデータを入力する。グラフィックエンジン121は、入力されたGDI関数形式などのデータをDDI関数に変換して、プリンタドライバ106へDDI関数を出力する。プリンタドライバ106は、グラフィックエンジン121から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ122経由でプリンタ107に出力する。
<保存ファイルのデータ形式例>
印刷アプリケーション104の詳細に言及する前に、保存ファイルのデータ形式を説明する。保存ファイルは、コンテンツデータとして各原稿ページ(アプリケーションで生成されたページ単位のデータ。論理ページとも呼ぶ。)のデータを含み、印刷用設定データとしてたとえばジョブチケットと呼ばれる形式のデータを含む。さらに、保存ファイル103と共に、後述する印刷制御アプリケーション104が独自に参照するための拡張編集情報ファイル111も格納される。保存ファイル103においては、このPDF形式の原稿ページデータやジョブチケットと呼ばれる形式のデータが中間データということになる。
保存ファイルにおいて、原稿ページデータは、例えばPDF形式などで定義されており、文字の書体や色の指定、原稿ページ内における文字や図形等のレイアウトの情報等が含まれている。
保存ファイルとして保存されるジョブチケットは原稿ページを最小単位とする構造を有するデータである。ジョブチケットにおける構造は、用紙上における原稿ページのレイアウトを定義している。1つのジョブチケットは1つの印刷ジョブに対応する。最上位に文書全体のノードがあり、文書全体の属性、例えば両面印刷/片面印刷などが定義されている。その下には、文書の構造および各構成要素ごとの設定を示す情報と含む。具体的には、シート束ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各シート束ノードには、そのシート束に含まれるシートのノードが属する。1シートは1枚の用紙に相当する。各シートには、印刷ページ(物理ページ)が属する。片面印刷ならば1シートには1物理ページが属し、両面印刷ならば1シートに2物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。原稿ページについては、原稿ページの実体である原稿ページデータへの関連づけ情報(リンク情報)が含まれる。
ジョブチケットのデータ構造の例を図12に示す。印刷用のデータでは、文書は用紙の集合で構成されており、各用紙は表、裏の2面で構成されており、各面は原稿をレイアウトする領域(物理ページ)を持ち、各物理ページには、最小単位である原稿ページの集合から構成される。1101は文書に相当するデータで、文書全体に関係するデータと、文書を構成する用紙情報のリストから構成される。用紙情報1102は用紙サイズなど用紙に関する情報と用紙上に配置される面情報のリストから構成される。面情報1103は、面に固有のデータと、面上に配置される物理ページのリストから構成される。物理ページ情報1104は、物理ページのサイズやヘッダ・フッタなどの情報と、物理ページを構成する原稿ページのリストから構成される。原稿ページ情報1105は、原稿ページの設定と、ページの内容を表すページデータへのリンクが含まれる。
文書全体の設定については、例えば次のような情報を含む。
(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は、保存ファイル103に含まれるデータを様々な方法でユーザに指定させ、また、印刷設定を変更させるためのユーザインターフェースを提供するプログラムである。保存ファイル自体は上述した構造を有するファイルであるが、印刷制御アプリケーション104は、保存ファイル103とは別に前述した拡張編集情報ファイル111を、保存ファイルと対応付けて管理している。その拡張編集情報ファイルに含まれる編集情報により、印刷制御アプリケーション104は、保存ファイル103、例えばジョブチケットで定義されるドキュメントとは独立した管理構造で文書を管理する。その管理構造は、ジョブチケットと類似した階層構造であるが、ジョブチケットと異なり、上位から「ブック」「章」「原稿(論理)ページ」という階層からなる。このうち原稿ページはジョブチケットでいうところの原稿ページと同じものを指す。また章は、シート束(シートのくくり)に対応する。
ユーザインターフェースとして表示される文書ファイルは、ユーザが、印刷制御アプリケーション104を用いて保存ファイル103の印刷用設定の変更や印刷指示等を行う際に一時的にユーザインターフェースのために構築される。したがって、印刷制御アプリケーション104は、保存ファイル103を対応する拡張編集情報ファイル111とともに開き、その保存ファイルから編集情報で定義される構造を有したデスプールテーブル(後述)をメモリ上に展開し、それに基づいて、文書ファイルの構造やプレビュー画面を、後述するようにユーザインターフェースとして表示する。この印刷制御アプリケーション(製本アプリケーション)104により、保存ファイル103および拡張編集情報ファイル111に基づいて構築される文書ファイルをブックファイルと呼ぶ。そして、その際、拡張編集情報ファイルに固有の設定項目がある場合には、ユーザがユーザインターフェースを介してブックファイルを参照しながら印刷設定の変更を行うことができる。変更された設定は、メモリ上のテーブル(デスプールテーブル)に反映され、保存の指示がされれば保存ファイル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は4つのパート410〜412および414に大別される。ページ制御情報410は、ツリー上に表示するページ番号などの情報を保持する。ページ設定情報411は、ページ回転角やページの配置位置情報などの情報を保持し、原稿ページの属性に相当する。ページリンク情報412は、ページに対応する原稿データである。この例では、ページ情報409が直接原稿データを持つのではなく、リンク情報412だけをもち、実際の原稿データは、ページデータ413で保持する構成としている。
そして、オリジナル文書リンク414は、当該ページ情報を含むオリジナル文書へのリンクデータを保持する。なお、本実施形態では、このリンクは一方向ではなく、オリジナル文書からページ情報への逆方向のリンクをも含む。オリジナル文書は、ページごとに分割されているとは限らないので、複数のページ情報からひとつのオリジナル文書へのリンクが形成されている場合もある。図3においては、2つのページ情報がそれぞれ互いに異なるオリジナル文書1とオリジナル文書2へのリンクを有しているが、もしもこれら2つのページ情報がひとつのオリジナル文書から生成されたものであれば、これらのリンクはひとつのオリジナル文書を指し示す。
図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パーセントに縮小した領域となる。
ブック、章、ページについて共通な属性として、ウォーターマーク属性及びヘッダ・フッタ属性がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウォーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できる。
<本実施形態の文書処理システムの操作手順例>
拡張編集情報ファイル111は上述したような構造および内容を有している。次に、印刷制御アプリケーション104および印刷データ保存用ドライバ102によって拡張編集情報ファイル111および保存ファイル103を作成する手順を説明する。拡張編集情報ファイル111の作成は、印刷制御アプリケーション104による拡張編集情報ファイル111の編集操作の一環として実現される。図7は、印刷制御アプリケーション104により、保存ファイル103および拡張編集情報ファイル111を開いてメモリ上に展開する際の手順である。
まず、開こうとする拡張編集情報ファイル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に展開される。これら属性項目は、たとえばその構造はポインタ等を用いて実現し、また属性における項目は、項目ごとの識別子等によって識別することができる。
さて、開かれた拡張編集情報ファイル111には、印刷データ保存用ドライバ102によって原稿ページデータを、新たな章として追加することができる。この機能をインポート機能と呼ぶ。図7の手順によって新規に作成された拡張編集情報ファイルにアプリケーションデータをインポートすることで、原稿ページデータが拡張編集情報ファイルの章の下に属するものとして対応付けられ、拡張編集情報ファイルに実体が与えられる。この機能は、図8の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。図10にインポート処理の手順を示す。
図10においてまず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして印刷データ保存用ドライバ102を指定してアプリケーションデータを印刷出力させることで、中間形式のデータ(たとえばPDF形式)に変換する(ステップS801)。変換を終えたなら、変換されたデータが画像データであるか否かを判定する(ステップS802)。この判定は、ウインドウズ(登録商標)OSの下であれば、アプリケーションデータのファイル拡張子に基づいて行うことができる。例えば、拡張子が「bmp」であればウインドウズ(登録商標)ビットマップデータであり、「jpg」であればjpeg圧縮された画像データ、「tiff」であればtiff形式の画像データであると判定できる。
画像データでなかった場合には、ステップS801で生成された中間データを、現在開かれている拡張編集情報ファイル111のブックに、新たな章として追加する(ステップS803)。すなわち、インポートにより新たな章とそれに属する新たな原稿ページが追加される。そして、各ページノードには、原稿ページの実体に対するリンク情報を書き込む。原稿ページの実体は印刷データ保存用ドライバ102により生成されたものが使用される。
なおインポートされた場合、章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、あらかじめ用意された規定値に設定される。また、保存ファイルの文書全体についての属性と共通するものについては、それを引き継ぐようにすることもできる。
インポートされたアプリケーションデータが画像データである場合には、原則として新たな章は追加されず、指定されている章に画像データが1ファイルを1原稿ページとして追加される(ステップS804)。ただし、拡張編集情報ファイル111が新規作成された空のファイルであれば、新たな章が作成されて、その章に属する原稿ページとして画像データが追加される。その場合ページ属性は、上位層の属性と共通のものについてはその属性値が与えられ、アプリケーションデータにおいて定義された属性を保存ファイル103に引き継いでいるものについてはその値が与えられる。例えば、N−up指定などがアプリケーションデータにおいてされていた場合には、その属性値が引き継がれる。このようにして、新規な拡張編集情報ファイルが作成され、あるいは、新規な章が追加される。
また、インポートされた文書は、オリジナル文書として拡張編集情報ファイル111とともに保存される。そして、ステップS803においても、ステップS804においても、追加された原稿ページについては、そのページ情報に含まれるオリジナル文書リンクに、保存されたオリジナル文書ファイルへのリンク情報が書き込まれる。
また、保存ファイル103についても、追加された原稿ページデータは、印刷データ保存用ドライバ102で生成されたデータが、既存の保存ファイル103に対する追加であれば、新たに付加されて保存される。その際、アプリケーション101で指定された印刷設定が、印刷データ保存用ドライバ102で生成されたデータに反映されている場合には、その印刷設定を保存ファイル103に反映することもできる。
図11は、図10のステップS801において、印刷データ保存用ドライバ102により保存ファイル103を生成させる手順を示すフローチャートである。まず、新たな保存ファイル103を作成してそれを開く(ステップ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に示す属性に操作結果が反映されたり、あるいは保存ファイル102および拡張編集情報ファイル111の構造に反映される。たとえば、ブランクページの新規追加操作を行えば、指定された箇所にブランクページが挿入される。このブランクページは原稿ページとして扱われる。また、原稿ページに対するレイアウトを変更すれば、その変更内容は、印刷方法やN−up印刷、表紙/裏表紙、インデックス紙、合紙、章区切りといった属性に反映される。また、レイアウト編集は、保存ファイル103のジョブチケットにおいては、その構造に反映される。
編集操作にあたっては、いったん保存ファイル103に保存されたジョブチケットをその構造を反映したデスプールテーブルという形式のデータとしてメモリに展開し、さらにそのデスプールテーブル上に拡張編集情報ファイル111に特有の属性を反映させる。ページデータそのものについては、展開はしなくともよい。そして、デスプールテーブルとしてメモリ上に展開された文書の構造自体が、上述した編集操作の対象となる。
デスプールテーブルは、その元となるジョブチケットと同様の構造および各層における印刷設定、原稿ページへの関連づけを含む。すなわち、部数やカラータイプ、両面/片面印刷の指定などドキュメント全体に有効な印刷設定の下に、Nアップ印刷の指定などシート束(シートのくくり)で有効な印刷設定があり、各シート束に属するシートごとに、両面/片面指定などの印刷設定があり、各シートに属する物理ページ(面)ごとに、カラータイプや表面/裏面のいずれかに相当するかの指定などの印刷設定がある。各層の印刷設定には設定可能な項目が含まれている。デスプールテーブルの設定はデバイスの仕様に従い、物理ページでの指定となっている。
そして、編集後にそのデスプールテーブルは、利用者の操作に応じて保存される。保存の形式は、保存ファイル103及び拡張編集情報ファイル111である。すなわち、デスプールテーブルは、メモリに展開されたジョブチケットそのものに近いが、拡張編集情報ファイルの属性としてのみ保有し得る印刷設定もそこには含まれる。したがって、まずそのような属性を除いて、デスプールテーブルは保存ファイル103として格納される。それとともに、そこ構造に表される文書のレイアウトや各ノードの設定などが、拡張編集情報ファイル111に保存される。ただし、デスプールテーブルに表された構造を属性として保存するためには、デスプールテーブルの構造を把握する必要がある。そこでその構造の把握を不要とするために、デスプールテーブルに編集結果を反映するとともに、編集結果を拡張編集情報ファイル111に定義された属性に合わせたデータとして記録しても良い。このようにすることで、デスプールテーブルの構造とは独立して、拡張編集情報ファイルへの編集結果の保存を実現できる。
<拡張編集情報ファイルの出力>
以上のように作成・編集される拡張編集情報ファイルは印刷出力を最終目的としている。利用者が図9に示す印刷制御アプリケーションのUI画面900からファイルメニューを選択し、そこから印刷を選択すると、指定した出力デバイスにより印刷出力される。この際、まず印刷制御アプリケーション104は、現在開かれている拡張編集情報ファイルおよび対応する保存ファイル(例えばジョブチケット)から上述したデスプールテーブルと呼ばれるデータを作成して印刷アプリケーション105に渡す。
印刷アプリケーション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は簡易印刷ビューモードである。簡易印刷ビューモードでは、各原稿ページの内容はプレビュー部の表示には反映されず、レイアウトのみが反映される。
<印刷レイアウト処理の概要>
図14は、本実施形態において編集情報ファイルおよび保存ファイルを作成するまでの工程をあらわした図である。この工程は従来の場合と同じである。まず、一般のアプリケーションで本文の元となるデータのファイルを作成する。このファイルは1つであっても、複数であってもかまわない。また、同じアプリケーションのものでも、異なるアプリケーションのものでもかまわない。次に製本アプリケーション104で、このデータを取り込みページごとの画像に変換する。この画像に対して、レイアウト編集を行なったのち、編集された文書を編集情報ファイル111および保存ファイル103として保存する。
図16は本発明に係る製本アプリケーション104の作業ファイルの内容を示している。従来の内容に加え、本文の元となったアプリケーションで作成されたオリジナル文書データ1601等を情報として取り込んでいる。このデータを利用することで、本文の画像情報にも変更を加えることが可能になる。
図17は、図14の工程で作成した編集情報ファイル及び保存ファイル1701から本文を編集する工程を示している。編集情報ファイル及び保存ファイル1701に含まれている本文の元データを当該アプリケーションで編集する。編集後これを保存すると、前回の工程で編集したレイアウトと新しくなった本文との合成が自動的に行われ、新しい本文と前回のレイアウト編集の組み合わさった状態が作成される。これを保存することで作業は完了する。すべてやり直しが必要だった従来の工程にくらべ、大幅に効率が改善されている。
ただし、図17の場合でも、本文データのページ数が変化していたり、レイアウト編集時にページが入れ替えられていた場合などは、自動合成のあとにユーザの手動による修正が必要なこともある。しかし、すべてをやり直す場合に比べれば、それでも効率は良いと言える。
図18は本発明に係る製本アプリケーションによるユーザインターフェース操作の概念図である。編集情報ファイル及び保存ファイルを開くとき、まず、拡張編集情報ファイル1800を基にして、本文編集かレイアウト編集かを選択できる画面1801を最初に開く。この表示は本実施形態においては製本アプリケーション104により行われる。しかし、製本アプリケーション以外のプログラムにより実行されても良い。ここでアイコン1801aが選択されて開かれると、レイアウト編集が選択されたものとして、製本アプリケーションの提供するウインドウ1802内において通常のレイアウト編集を利用者が行うことができ、編集後のデータを保存することができる。ウインドウ1802は、図9に示すウインドウ900に相当する。
一方、本文編集のときは、ウインドウ1801に表示されたオリジナル文書ファイルのアイコンの内、編集対象のファイルを利用者が選択する。選択されたファイルには、それを編集生成したアプリケーションが関連づけられており、アイコンの選択によって対応する一般のアプリケーションが起動される。その対応アプリケーションによる編集操作はウインドウ1803において行われる。この画面は、通常市販されているようなアプリケーションプログラムの使用する場合のユーザインターフェースと全く同様のユーザインターフェースにより、利用者は編集を行える。
一般アプリケーションによる本文の編集が終了し、それを保存してアプリケーションを終了したのをきっかけにして、新しい本文を画像データに変換し、古いものと置き換える。この処理は本実施形態においては製本アプリケーション104により行われる。しかし、製本アプリケーション以外の製本アプリケーション以外のプログラムによりウインドウ1801の表示が行われている場合には、そのプログラムにより編集後の本文の取り込みは実行される。
その後、製本アプリケーションによって、新しい本文に対して、以前設定したレイアウトなどの情報が反映された形で表示される。このようにして、本文とレイアウトとの合成が実現される。ユーザは合成された結果に問題がなければ、そのまま保存し、修正の必要があれば、レイアウトなどを修正して保存することができる。
<編集処理手順の説明>
図19〜図23の流れ図および図3の編集情報ファイルの構成、及び、図12のジョブチケットの構成を参照して、本実施形態により拡張された製本アプリケーションの処理について説明する。なお、前述の通り、図19乃至図23の処理は製本アプリケーションではなく、別に設けたプログラムにより実行させることもできる。
図19は、本実施形態における製本アプリケーション104により、図18のウインドウ1801を表示し、利用者による操作に応じた処理に分岐する処理手順のフローチャートである。この手順は、製本アプリケーションが起動された後、拡張製本情報ファイルが編集対象として指定された場合や、拡張編集情報ファイルを指定してそれをアプリケーションにより開く操作が行われた場合に起動される。なお、以下では、拡張編集情報ファイルの内、オリジナル文書リンクおよびリンクされたオリジナル文書ファイルを除く部分を編集情報ファイルと呼ぶ。
まずステップS1901において、指定された拡張編集情報ファイルに含まれるオリジナル文書ファイルを、編集情報ファイルとともに表示する。この表示は、ファイルを示すアイコン等のシンボルや、そのファイル名のリストを表示することで、図18のウインドウ1801に示すように行われる。
ここで利用者による操作を待ち(ステップS1902)、編集情報ファイル1801aのオープンが指示された場合には(ステップS1903−Y)、その編集情報ファイルを開く。この手順は図7に示したとおりの手順である。あるいは、オリジナル文書ファイル1801bのオープンが指示された場合には(ステップS1904−Y)、指定されたオリジナル文書ファイルに対応付けられたアプリケーション(オリジナル文書対応アプリケーションと呼ぶ。)を起動して編集処理を開始する。この対応付けは、製本アプリケーションが独自に行っても良いが、ウインドウズ(登録商標)オペレーティングシステムなどでは、ファイル名の拡張子にアプリケーションを対応付けて保存しており、その情報を利用することもできる。オリジナル文書対応アプリケーションの起動前には、編集対象の文書のページ数および更新日時を当該文書と関連づけて記憶しておく。更新日時はファイルの属性として記録されているのが普通であるが、ページ数についてファイルを開かずに獲得できるとは限らない。しかし、図3に示すように、オリジナル文書と各ページ情報とはリンクされており、本実施形態ではオリジナル文書からページ情報への逆リンクも有することから、そのリンクの数をオリジナル文書のページ数として記憶しておいても良い。
オリジナル文書の編集は、それを編集するアプリケーション独自の手順で行われるために、ここではその詳細は省略する。さて、オリジナル文書の編集が終了したときの製本アプリケーションによる処理を図20に示す。製本アプリケーション104は、オリジナル文書対応アプリケーションの終了というイベントの発生を待ち、そのイベントの発生を伝えるメッセージを受けて図20の処理を開始する。このようなプロセス間のメッセージは通常オペレーティングシステムによりサポートされる。
図20において、まず、オリジナル文書対応アプリケーションにより作成・保存されたオリジナル文書ファイルについて、ページごとにたとえばPDF化されたページデータを含む仮保存ファイルを作成する(ステップS2001)。ここで、保存ファイルの作成は、図11に示したように印刷データ保存用ドライバ102により行われる。ただし、ここではページごとのページデータを作成することを目的としており、図10のインポート処理のように文書に構造を持たせる必要はない。
次に、ステップS2001により作成された電子原稿のページデータ(所定形式で作成された各ページのデータ。)のページ数と、オリジナル文書対応アプリケーション起動前に記憶しておいたオリジナル文書のページ数とを比較する(ステップS2002)。一致していれば、保存ファイル、編集情報ファイルとも、その構造に何ら変更はない。したがって、仮保存ファイルのページデータにより、元の保存ファイルのページデータを置換する(ステップS2004)。これは、保存ファイル103のみならず、編集情報ファイル111についても同様である。ただし、ふたつのファイルによりページデータを共有する場合には、置換は共有されているページデータについてのみ行われる。
既存の保存ファイル103の原稿ページ情報1105(図11参照)および編集情報ファイル111のページ情報409(図3参照)それぞれのページデータリンクの値は、これら置換後のページデータを指し示しているとは限らず、ページデータへのリンクが確立していないために、ステップS2004では、保存ファイル103および編集情報ファイル111についてページデータリンクを再構成する。保存ファイル103および編集情報ファイル111とも、原稿ページ情報1105およびページ情報409は木構造の葉に相当し、その葉のみを走査すると文書内でページが配置されている順序に並ぶ。たとえば、図3のページデータリスト413は左から右へとページ順に並べて記載されているが、これはページ情報409が左から右へとページ順に並ぶためである。これは保存ファイル103についても同様である。したがって、置換後のページデータの先頭ページから末尾ページへ、その順序でページ情報および原稿ページ情報を順次対応付けてリンクすれば、ページデータリンクあるいは原稿ページデータリンクの再構成が実現できる。
なお、図20の手順は、編集されたオリジナル文書ファイルに限って行われる。すなわち、製本アプリケーションにより作成される文書(すなわち電子原稿)のうち、他のオリジナル文書対応アプリケーションにより作成された部分については何ら変更されない場合には、編集対象となったオリジナル文書ファイルの部分に限り図20の処理が行われ、そのほかの部分はそのまま維持される。「編集対象となったオリジナル文書ファイルの部分」が元の文書(すなわち電子原稿)内において不連続であっても、例えば図3に示すオリジナル文書リンク(の逆リンク)により、オリジナル文書ファイルからページ情報を特定できる。そして特定されたページ情報からページデータリンクにより特定されるページデータについて上記置換および再構成を行うこともできる。この場合にも、オリジナル文書におけるページと、文書(すなわち電子原稿)におけるページの対応付けまでは行わず、仮保存ファイルのページの先頭から順にページデータを取りだし、それを新たなページデータとして置換する。
なお、オリジナル文書対応アプリケーション起動前のオリジナル文書ファイルの作成更新日時を記録しておき、それをオリジナル文書対応アプリケーション起動後の更新日時と比較して、一致している場合にはその時点でステップS2005へと分岐するようにしてもよい。
また、製本アプリケーションにより、ページ順序が入れ替えられたり、ページが削除されている場合もあり得るが、そのような場合には、操作者が改めてそれと同様の操作を行う必要がある。
ステップS2005では、図9あるいは図18のウインドウ1802に示すように、製本アプリケーションにより編集情報ファイルを開き、プレビュー画像を生成して表示する。この状態で利用者は表示された文書の編集や印刷を行うことができる。
さて、ステップS2002において編集前後のページ数が一致しない場合には、図21のステップS2100へ分岐する。ここでは編集後のページ数が編集前よりも増加しているか判定される。この判定は、ステップS2002と同じデータを用いて行える。
増加していると判定された場合には、まず仮保護ファイルの原稿ページのページデータにより、元の保存ファイルおよび編集情報ファイルのページデータを置換する(ステップS2101)。
そして、編集情報ファイル111について、ページ情報のページデータリンクを再構成する(ステップS2102)。この再構成は、ステップS2004において編集情報ファイルについて行った処理と同様である。ただし、ここではページデータが増加しているために、末尾の増分のページデータについては、ページ情報にリンクできない。
そこで、増加した原稿ページのページデータに対応するページ情報を新たに編集情報ファイルに追加する(ステップS2103)。追加に際しては、編集前のオリジナル文書の最終ページに対応するページ情報を、増加したページ数に相当する数だけ、ページ属性を含めて複製する。
これらページ情報が追加される編集情報ファイルは、ステップS2104において再構成される。まず、複製されたページ情報は、その複製元のページ情報と同一の章情報のページ情報リスト408(図3参照)にリンクされる。したがって、同一の章に属し、同一の属性を有するページ情報が、増加したページ数分だけ編集情報ファイルに追加される。
こうして追加されたページ情報が、余っていたページデータとリンクされる。すなわち、余っていたページデータをそのページ順序に従ってページ情報と対応付ける。ページ情報は、図3の例では左から右へ向かって並ぶ。したがって、対応付けもその順序(すなわち編集情報ファイルにおけるページの順序)で行う。対応付けられたページ情報とページデータとが、ページデータリンクによりリンクされる。
なお、ページ情報に含まれるオリジナル文書リンク情報についても、オリジナル文書単位で再構成される。すなわち、図21に示す処理はオリジナル文書単位で行われる処理であるために、ステップS2103において編集情報ファイルに追加されたページデータはすべて同一のオリジナル文書ファイルから生成されたものである。新規に追加されたページ情報は、編集前のオリジナル文書の末尾ページに相当するページ情報を複製したものであるから、複製時にオリジナル文書リンク情報も複製することで、オリジナル文書リンク情報も同時に再構成される。
最後に、保存ファイル103に格納されたジョブチケットを再構成する(ステップS2105)。この手順は図22および図23により説明する。
一方、ステップS2100において編集後のページ数が編集前のページ数よりも少ないと判定された場合には、ステップS2106に分岐して、仮保存ファイルの原稿ページのページデータにより、元の保存ファイルおよび編集情報ファイルのページデータを置換する(ステップS2106)。この手順はステップS2101と同様である。
そして、編集情報ファイル111について、ページ情報のページデータリンクを再構成する(ステップS2107)。この再構成は、ステップS2102においてと同じく、ステップS2004において編集情報ファイルについて行った処理と同様の処理を行う。ただし、ここではページデータが減少しているために、末尾の減少分のページ情報については、ページデータにリンクできない。
そこで、減少した原稿ページのページデータに対応するページ情報を編集情報ファイルから削除する(ステップS2108)。これは、単にページデータへのリンクが失われているページ情報を削除すればよい。削除に際しては、削除によりリンクされるページ情報がひとつもなくなる章情報があればその章情報も削除する。最後に、保存ファイルに格納されたジョブチケットを再構成する(ステップS2105)。
図22は、図21のステップS2105におけるジョブチケットの再構成処理の手順である。ジョブチケットはページのレイアウトをその木構造により表現しているために、ページデータの追加あるいは削除も、その構造に応じて行わねばならない。
まずステップS2200において、編集後のページ数が編集前よりも増加しているか判定される。この判定は、ステップS2002と同じデータを用いて行える。
変化していないか、あるいは減少していると判定された場合には、保存ファイルについて、オリジナル文書編集後の原稿ページデータを編集前の原稿ページデータと置換し、原稿ページデータの原稿ページリンクを再構成する(ステップS2201)。ジョブチケットは木構造を有し、原稿ページ情報がその葉に相当する。そして葉は、一定の走査方向についてページ順に配置されている。したがって、編集後の原稿ページデータを、編集前の対応する原稿ページデータと順次置換する。そして、原稿ページデータリンクを置換後の原稿ページデータに繋ぎ直す。原稿ページ数が変化していなければ、これで処理は終了する。ステップS2202以降は行わなくとも良い。
ページ数が編集により減少している場合には、原稿ページ情報があまるので、原稿ページデータへのリンク先がない原稿ページ情報を削除する(ステップS2202)。そして、削除された原稿ページ情報がリンクされていた物理ページ情報を参照し、その原稿ページ情報の削除によりその物理ページ情報にリンクする原稿ページ情報が全くなくなれば、その物理ページ情報も削除する(ステップS2203)。この場合には、削除される物理ページがリンクされていた面情報を参照し、その物理ページ情報の削除によりその面情報にリンクする物理ページ情報が全くなくなれば、その面情報も削除する(ステップS2204)。この場合には、削除される面情報がリンクされていた用紙情報を参照し、その面情報の削除によりその用紙情報にリンクする面情報が全くなくなれば、その用紙情報も削除する(ステップS2205)。
このようにして、ページ数減少後のジョブチケットの再構成を行う。なお、ジョブチケットの再構成も編集対象のオリジナル文書単位で行われる。そこで、オリジナル文書の編集によって置換、削除、追加の対象となる原稿ページデータ(および原稿ページ情報)を特定するために、ページデータを保存ファイルと編集情報ファイルとが共有している場合には、編集情報ファイル111におけるオリジナル文書ファイルとページ情報とのリンクを利用できる。すなわち、この場合オリジナル文書ファイルから対応するページデータを特定できるために、そのページデータにリンクするジョブチケットの原稿ページ情報を特定できる。ただし、この場合には、保存ファイルにおいて、原稿ページデータから原稿ページ情報への逆リンクを備える必要がある。そのリンクをたどることで、置換される原稿ページデータを特定できる。
一方ステップS2200において編集後のページ数が編集前のページ数よりも多いと判定された場合には、図23のステップS2301に分岐してジョブチケットの原稿ページデータリンクを再構成する。ただし、編集後の原稿ページデータの数よりも現状の原稿ページ情報の数の方が少ないために、ステップS2301の段階では原稿ページ情報に合わせて再構成を行う。すなわち、ステップS22014と同様に、編集後の原稿ページデータを、編集前の対応する原稿ページデータと順次置換し、原稿ページデータリンクを置換後の原稿ページデータに繋ぎ直す。
次に、現在の最終ページの原稿ページ情報を、増加したページ数分だけ複製し、原稿ページデータへのリンクを作成する(ステップS2302)。もちろん、最終ページとは、編集されたオリジナル文書ファイルに相当する原稿ページの内の最終ページを意味する。このオリジナル文書ファイルに相当する原稿ページの特定は、既述の通り、編集情報ファイル111におけるオリジナル文書ファイルとページ情報とのリンクを利用できる。
ステップS2303以降では、増加した原稿ページデータをジョブチケットにリンクする処理を行う。まず、増加したためにジョブチケットにリンクできなかったページデータのうち、ページ順が先頭のページデータをリンクした原稿ページ情報に注目する。これはまだジョブチケットにはリンクされていない。そして、編集により変更されたオリジナル文書ファイルに属するページデータであって、現在ジョブチケットにリンクされているページデータのうち、末尾のものに着目する。すなわち、ステップS2302において複製元となった原稿ページ情報にリンクされた原稿ページデータに再び着目する(なお、これ以降、この末尾のページデータが直接あるいは間接に属する物理ページ情報や用紙情報といったノードを「末尾」のノードと称する。)。そしてこの末尾の原稿ページデータが属する物理ページ情報すなわち末尾の物理ページ情報に、新たな原稿ページ情報をリンク可能であるか判定する(ステップS2303)。この判定は、物理ページ情報1104の物理ページ設定および原稿ページへのリンク数を参照して行われる。物理ページ設定からはその物理ページにリンク可能な原稿ページ数が分かる。たとえば物理ページ設定にNイン1レイアウトが設定されていたなら、その物理ページにリンク可能な原稿ページ数はNである。そして、その数と、現在の原稿ページ情報へのリンクの数とを比較し、リンク可能な原稿ページ数の方が多ければ、リンク可能であると判定される。
その場合には、注目原稿ページ情報を、その末尾の物理ページ情報にリンクする(ステップS2304)。そして次の原稿ページ情報に注目し(ステップS2305)、ステップS2303から繰り返す。
一方、末尾の物理ページ情報に余裕がない場合には、その物理ページ情報がリンクされた、末尾の面情報に新たな物理ページ情報をリンク可能か判定する(ステップS2306)。この判定も、面情報1103の面設定および物理ページへのリンク数を参照して行われる。面設定からはその面情報にリンク可能な物理ページ数が分かる。たとえば面設定に両面が設定されていたなら、その面情報にリンク可能な物理ページ数は2である。そして、その数と、現在の物理ページ情報へのリンクの数とを比較し、リンク可能な物理ページ数の方が多ければ、リンク可能であると判定される。
その場合には、末尾の物理ページ情報を複製してそれを末尾の面情報にリンクし(ステップS2307)、ステップS2303へ分岐する。その分岐後にステップS2304が実行され、注目原稿ページ情報は、複製された新たな末尾の物理ページ情報にリンクされる。
末尾の面情報に新たな物理ページ情報をリンクする余裕がない場合には、その面情報がリンクされた、末尾の用紙情報に新たな面情報をリンク可能か判定する(ステップS2308)。この判定も、用紙情報1102の用紙設定および面情報へのリンク数を参照して行われる。用紙設定からはその用紙情報にリンク可能な面情報の数が分かる。たとえば用紙設定に一定枚数を単位とする製本設定がされていたなら、その用紙情報にリンク可能な面情報の数は製本単位の数である。そして、その数と、現在の面情報へのリンクの数とを比較し、リンク可能な面情報数の方が多ければ、リンク可能であると判定される。
その場合には、末尾の面情報を複製してそれを末尾の用紙情報にリンクし(ステップS2309)、ステップS2303へ分岐する。その分岐後にステップS2307が実行され、新たな物理ページ情報が、複製された新たな末尾の面情報にリンクされる。その後ステップS2304が実行され、注目原稿ページ情報は、複製された新たな末尾の物理ページ情報にリンクされる。
末尾の用紙情報に新たな面情報をリンクする余裕がない場合には、末尾の用紙情報を複製してそれを文書情報にリンクし(ステップS2310)、ステップS2303へ分岐する。その結果、新たな面情報、新たな物理ページ情報がジョブチケットに追加されて、注目原稿ページ情報がジョブチケットに組み込まれる。以上のようにして、ジョブチケットが再構成される。
図19乃至図23の処理が行われる結果、編集されたオリジナル文書は、印刷データ保存用ドライバにより保存ファイルの形式でページデータに変換されて、ページの内容が更新される。それにもかかわらずページの属性等、文書が保持する属性は不変であるために、新たに電子原稿の文書ファイルを再構成する必要が無く、文書編集処理における労力を軽減し、生産性の向上を図ることができる。
すなわち、(1)製本アプリケーションで作成したeDOC(電子原稿ファイル)を拡張してオリジナル文書自体を保持しておき、製本アプリからの指示によりオリジナルページの編集を許可し、編集後eDOC(電子原稿ファイル)に反映させることができる。(2)編集後に再eDOC化した際に、編集前のページに対する属性(ウォーターマーク、ヘッダ/フッダ等の各印刷属性)はそのまま引き継ぐことができる。
本実施形態の処理における特徴としては、以下の点が上げられる。
(1)文書作成アプリケーションの文書、表作成アプリケーションの文書、図形描画アプリケーションの文書、画像ファイルの文書をそれぞれ合わせて1つの文書として新規に生成している。
(2)電子原稿は、オリジナル文書と、オリジナル文書から変換された製本アプリケーション用の電子原稿、更には、複合電子原稿の構成情報(図3)と、印刷設定が階層構造で記述されているジョブチケット(図11)とを含んでいる。
(3)オリジナル文書が編集され保存されると、編集後のオリジナル文書を印刷データ保存用ドライバに処理させることで、再度電子原稿(eDOCの原稿データ)が生成され、古い原稿データと入れ替えが行われる。
(4)原稿ページ自体のオリジナル文書を用いた編集処理を許可する上、編集後にページ属性を反映させる。
[他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現する図19乃至図23の手順を実行するためのソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。