以下、添付図面に従って、本発明の実施形態を詳細に説明する。
[本実施形態の文書処理システムの概要]
本実施形態の文書処理システムでは、スキャナで読み取られた画像データだけでなく、様々なアプリケーションプログラムで作成した電子ファイルも扱うことが可能である。実施形態の説明に先立ち、本実施形態の文書処理システムが必要となった背景を説明する。
文字や表、デジタルカメラやスキャナで取り込まれた画像など、データの種類が異なると、データを定義する構造やそれらデータに対する編集操作が異なるために、データの種類に応じた様々なアプリケーションプログラムが提供されている。利用者は、文字を編集するためには文字処理プログラム、表を編集するためには表計算プログラム、画像を編集するためには画像編集プログラムといった具合に、データの種類別にアプリケーションを使い分けている。
このように、利用者はデータの種類ごとにアプリケーションプログラムを使い分けるのが一般的である。しかし、利用者が作成しようとする文書としては、例えば文字のみや、表のみ、画像のみといった1種類のデータのみから構成される文書よりも、文字と表、文字と画像など、複数種類のデータから構成される文書の方が一般的である。そこで複数種類のデータを含む目的文書を作成するために、利用者は各種アプリケーションが備えている印刷機能を利用してアプリケーションごとにデータを印刷させ、印刷物を所望の順序に組み合わせる必要があった。
あるいは、いわゆるオフィススイートと呼ばれる、各種アプリケーションによってひとつの統合アプリケーションを形成するプログラムには、各アプリケーションで生成されたデータを組み合わせ、ひとつの文書を構成する機能を提供するものもある。この統合アプリケーションを使用する場合には、利用者は、各アプリケーションで作成したデータを、統合アプリケーションに含まれる特定のアプリケーションによってひとつの目的文書にまとめることができる。
しかしながら、利用者が各種アプリケーションによる印刷物を組み合わせてひとつの目的文書を作成する場合、例えばページ番号を各ページに振るためには、いったん必要なデータをすべて印刷出力し、文書としてまとめてから付すべきページ番号を決定する必要がある。そして、各アプリケーションによって、そのアプリケーションで作成された原稿の各ページ(これを論理ページあるいは原稿ページと呼ぶ)ごとに、決定されたページ番号を書き込んでいく。アプリケーションプログラムがページ番号を振る機能を有している場合であっても、不連続部分があればその部分についてはやはり利用者がページ番号を指定しなければならない。また、目的文書のページを再配置した場合には、ページ番号もそれに合わせて振り直さなければならない。あるいは、複数の原稿ページを、印刷物としての1ページ(これを物理ページあるいは印刷ページと呼ぶ)にまとめたり、片面印刷から両面印刷に変更したりするなど、データの内容にかかる変更ではなく、単に書式を変更する場合であっても、アプリケーションによって編集及び印刷のし直しが必要となる。
このように、データの種類ごとにそれを管理できるアプリケーションが異なることから、アプリケーション間のインタフェースを利用者自身が人手によって提供しなければならない。このことは、利用者に多大な労力が要求されるということであり、生産性の低下をもたらす。さらに、多くの人手を介することからエラーの発生も生じやすかった。
一方、統合アプリケーションを利用して目的文書を作成する場合、印刷出力せずに、データの状態で各種データを配置することができる。このため、印刷物を組み合わせて目的文書を作成する場合ほどには労力は必要とされることはない。しかしながら、各種データを編集・作成するためのアプリケーションは、統合アプリケーションに含まれるものに限られてしまい、利用者が望むアプリケーションが使用できるとは限らない。また、統合アプリケーションによって作成された目的文書はひとつの文書ファイルであり、ファイル単位で編集・出力等の管理が行われる。そのために、文書ファイルの一部について書式を設定しようとしてもアプリケーションの機能による制約が多く、例えば書式が変わる部分ごとに書式設定を変更しては印刷し直すといった作業が必要とされる。このため、多くの労力が必要とされて生産性が低い点においては、前述した方法と変わりはなかった。
以上のような背景から、本実施形態の文書処理システムは、これらの問題点を解決した上で、本発明の課題も解決する文書処理システムとなっている。よって、スキャナで読み取った画像データだけでなく、様々なアプリケーションプログラムで作成した電子ファイルも扱うことが可能に構成されている。
次に、本発明の実施形態である文書処理システムの概要を、図1〜図13を参照して説明する。この文書処理システムでは、一般アプリケーションにより作成されたデータファイルが、電子原稿ライタ(印刷データ保存用ドライバと呼ぶこともある。)によって電子原稿ファイルに変換される。また、スキャナで読み取られた画像も、スキャナドライバか他のアプリケーションソフトウエア等の手段によって電子原稿ファイルに変換される。製本アプリケーション(印刷制御アプリケーションと呼ぶこともある。)はその電子原稿ファイルを編集する機能を提供している。尚、本例では、それぞれの機能が明瞭になるように、一般アプリケーション、スキャナドライバ、電子原稿ライタ、製本アプリケーション、電子原稿デスプーラ(印刷アプリケーションと呼ぶこともある。)と分離して示しているが、ユーザに提供されるパッケージはこれらに限定されず、これらを組み合わせたアプリケーションやグラフィックエンジンとして提供されてもよい。以下、その詳細を説明する。
<本実施形態の文書処理システムのソフトウェア構成例>
図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は、各ページの内容を編集する機能は提供しておらず、ページを最小単位として構成される、後述する章やブックの構造を編集するための機能を提供している。
本実施形態では、まず、一般アプリケーション101からの印刷データは電子原稿ライタ102を介して電子原稿ファイル103としてシステム上に保存される。この電子原稿ファイル103には、中間ファイルと編集情報ファイルとが含まれる。中間ファイルには、印刷物のコンテンツデータや印刷用設定データ等が含まれる。印刷物のコンテンツデータとはユーザがアプリケーション上で作成したデータを中間コードに変換したデータであり、印刷用設定データとはコンテンツデータをどのように出力するか(出力体裁等)を記述したデータである。そのほか、製本アプリケーション104により電子原稿ファイル103の内容の編集や出力指示をユーザに行わせる際のユーザインターフェースを提供するための編集情報ファイルというアプリケーション用拡張データが含まれる。編集情報ファイルには、ユーザインターフェースの提供のための拡張データのみならず、中間ファイルには格納できない印刷用設定データが格納されている。このため、中間ファイルとしてたとえば標準化された形式を用いた場合など、その形式では保存できない印刷用設定も編集情報ファイルに保存できる。
この電子原稿ファイル103を製本アプリケーション104が読み込む。この製本アプリケーション104は、中間ファイルの内容をメモリにテーブルとして展開し、さらに編集情報ファイルに、中間ファイルには含まれない特有の設定が含まれていれば、その設定をメモリ上に展開したテーブルに反映する。そして、読み込んだ中間ファイルの内容の出力体裁を変更、表示し、保存、印刷することが可能である。実際に印刷のための処理を行うのは電子原稿デスプーラ105である。
製本アプリケーション104によって編集されたブックファイル103を印刷する際には、製本アプリケーション104によって電子原稿デスプーラ105が起動される。電子原稿デスプーラ105は、製本アプリケーションと共にコンピュータ内にインストールされるプログラムモジュールであり、製本アプリケーションで利用するドキュメント(ブックファイル)を印刷する際に、プリンタドライバへ描画データを出力するために使用されるモジュールである。電子原稿デスプーラ105は、指定されたブックファイル(電子原稿ファイル)をハードディスクから読み出し、ブックファイル(電子原稿ファイル)に記述された形式、すなわち中間ファイルおよび編集情報ファイルにより定義された形式で各ページを印刷するために、前述したOSの出力モジュール(グラフィックエンジン)に適合する出力コマンドを生成し、不図示の出力モジュールに出力する。その際に、出力デバイスとして使用されるプリンタ107のドライバ106がデバイスドライバとして指定される。出力モジュールは、指定されたプリンタ107のプリンタドライバ106を用いて受信した出力コマンドを、プリンタ107で解釈実行可能なデバイスコマンドに変換する。そしてデバイスコマンドはプリンタ107に送信され、プリンタ107によってコマンドに応じた画像が印刷される。
また、図1のシステムはスキャナを備えており、スキャナ108により画像を読み取って電子原稿ファイル103として保存することができる。スキャナ108から画像を取り込むには大きく分類して二つの方法がある。一つはプルスキャンと呼ばれる方法で、画像を受け取るアプリケーション側からスキャンの指示を行う方法である。具体的には、スキャナドライバ109を通じてアプリケーションは画像データを取得する方法が挙げられる。スキャナドライバとしてはTWAINやISIS対応のドライバが一般的である。解像度や色数などは、スキャナドライバで設定することが可能である。
もう一つの方法は、プッシュスキャンと呼ばれる方法で、スキャナ側からスキャンの指示を行う方法である。具体的には、ネットワーク共有されているハードディスクにスキャナが画像ファイルを置く方法が挙げられる。この場合、スキャナはデジタルコンピュータ100と共通のネットワーク機能を備え、共有フォルダに書き込み権限を持っている必要がある。
プッシュスキャンの場合、画像ファイルの画質設定はスキャナ本体のパネルなどで設定する。画像フォーマットとしてはTIFF、JPEG、BMP、PDFなどの形式が一般的である。一方プルスキャンの場合、製本アプリケーション104は直接スキャナドライバから画像データを取得して読み込む。プッシュスキャンの場合は、デジタルコンピュータ100の、たとえば所定のフォルダにおかれた画像ファイルを読み込む。このとき、製本アプリケーション104が、スキャンされた画像ファイルが置かれるフォルダを監視し、あるいはスキャナからのスキャン終了通知を受け取り、ユーザの入力を待たずに自動的に読み込むことができる。もしくは、デジタルコンピュータ100に置かれた画像ファイルをユーザが製本アプリケーション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とのアクセスを制御する。外部インターフェース(外部I/F)208は、双方向性インタフェース(インタフェース)21を介してプリンタ107に、双方向性インターフェース22を介してスキャナ108に接続されて、プリンタ107およびスキャナ108との通信制御処理を実行する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。プリンタ107及びスキャナ108はネットワークを介して接続されていても良い。
なお、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は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、321は操作パネルで、操作のためのスイッチ及びLED表示器等が配されている。
また、前述した外部メモリ314は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル321からのプリンタモード設定情報を記憶するようにしてもよい。
スキャナ108は、CPU332により制御される。スキャナのCPU332は、ROM333内のプログラム用ROMに記憶された制御プログラムに基づいてシステムバス335に接続される読み取り部(スキャナエンジン)337から入力情報としての画像信号を入力する。また、このROM333内のプログラムROMには、CPU332の制御プログラム等を記憶する。ROM333内のデータ用ROMには、CPU332により利用される情報等が記憶されている。
CPU332はI/F部部338を介してホストコンピュータ100との通信処理が可能となっており、スキャナ内の情報等をホストコンピュータ100に通知できる。RAM339は、CPU332の主メモリや、ワークエリア等として機能するRAMであり、スキャナエンジンで読み取った画像データを一時的に保存する画像メモリとしても機能する。読み取られた画像データは、シート1ページ単位でRAM339に一時的に保存されて、ホストコンピュータ100に送信される。
読み取り部337は、原稿画像に光源光を照射してその反射光を光学系によりCCDやCMOSなどのイメージセンサに集光して電子化し、それをデジタル信号に変換してIF部338に入力する。あるいはCISを用いたものであってもよい。また、読み取り部337には、自動原稿給送装置(ADF)が設けられ、給紙部に積載された原稿を1枚ずつ読み取り位置まで搬送する機能を持ち、複数枚の原稿を自動で読み取ることができる。さらに、ADFにはシートの反転機能が備えられており、1枚のシートの表裏を連続して読み取ることができる。その場合には、表面の読み取り後に読み取られた画像データが1ページ相当の画像データとしてホストコンピュータに送信され、その後にシートが反転されて裏面が読み取られてその画像データが1ページ相当の画像データとしてホストコンピュータ100に送信される。操作パネル331はオペレータによる操作、たとえばプッシュスキャン操作のためのスイッチ及びLED表示器等が配されている。
<電子原稿データの形式例>
編集アプリケーション104の詳細を言及する前に、ブックファイルのデータ形式を説明する。ブックファイルは紙媒体の書物を模した3層の層構造を有する。上位層は「ブック」と呼ばれ、1冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各ページについてもページごとの属性が定義できる。ひとつのブックは複数の章を含んでいてよく、また、ひとつの章は複数のページを含むことができる。
ブックファイルは、図3に示すように階層構造を示すノード情報、原稿ページデータ、中間データの保存ファイル(ジョブチケット、後述)、図4〜6に示すような属性情報(編集情報とも呼ぶ)、ウォーターマークライブラリ、アノテーションライブラリ、バリアブルデータライブラリから構成されている。ウォーターマークライブラリは、ウォーターマーク(スタンプ)の実体のデータが識別番号と関連付けて格納されている。アノテーションライブラリは、アノテーションの実体のデータが識別番号と関連付けて格納されている。バリアブルデータライブラリは、バリアブルデータの実体がレコード単位で格納されている。これらライブラリのデータ(実体)には識別子が付され、各階層の属性からそのデータを重畳する位置等を指定することで、そのデータが出力されるデータに反映される。
図3は、ブックファイルの形式の一例を模式的に示す図である。このブックファイルの形式は、編集情報ファイルにより表される。すなわち、図3は、電子原稿ファイルのうちでも編集情報ファイルの構造を示すものである。ブックファイルにおける、ブック、章、ページは、それぞれに相当するノードにより示されている。ひとつのブックファイルはひとつのブックを含む。ブック、章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体として含む。ページは、アプリケーションプログラムによって出力されたページごとのデータを実体として有する。そのため、ページは、その属性値のほか、原稿ページの実体(原稿ページデータ)と各原稿ページデータへのリンクを含む。尚、紙媒体等に出力する際の印刷ページは複数の原稿ページを含む場合がある。この構造に関してはリンクによって表示されず、ブック、章、ページ各階層における属性として表示される。
図3では、ブックファイルが1つの完結したブックである必要はないので、「ブック」を「文書」として一般化して記載している。
まず最上位に文書情報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項目に対応するのではなく、関連する複数の項目を含むものもある。
ブック属性に固有の項目は、印刷方法、製本詳細、表紙/裏表紙、章区切りの4項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の3つの値を指定できる。製本印刷とは、別途指定する枚数の用紙を束にして2つ折りにし、その束をつづり合わせることで製本が可能となる形式で印刷する方法である。製本詳細属性としては、製本印刷が指定されている場合に、見開き方向や、束になる枚数等が指定できる。
表紙/裏表紙属性は、ブックとしてまとめられる電子原稿ファイルを印刷する際に、表紙及び裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。インデックス紙属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定及びインデックス(耳)部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが使用する印刷装置に備えられている場合か、あるいは、複数の給紙カセットを使用可能である場合に有効となる。これは合紙属性についても同様である。また、インデックス紙上に印刷されるアノテーションをインデックス属性の一部として登録することもできる。この場合、登録されるのは、印刷される位置や印刷対象の文字列や画像データ等である。このアノテーションは合紙属性についても同様に定義することができる。
章区切り属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。片面印刷時には新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。両面印刷時には、「新たな用紙の使用」を指定すれば連続する章が1枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が1枚の用紙の表裏に印刷されることがあり得る。
図5は、章属性(章設定情報407)の例を示すリストである。章属性では、用紙サイズ、用紙方向、Nup印刷指定、拡大縮小、ウォーターマーク、ヘッダ・フッダ、排紙情報、インデックス紙、および合紙の属性を記述できる。インデックス紙属性および合紙属性は、章の区切りとして、インサータからあるいは給紙カセットから供給される用紙の挿入の指定、及び、合紙を挿入する場合には、給紙元の指定などを含む。更に、インデックス紙または合紙に、アノテーションが付加される場合は、インデックス紙属性および合紙属性は、付加されるアノテーションの識別情報が記述される。
本願発明は、後述する処理により自動的に章分割し、更に章紙の設定をする場合に、このインデックス紙属性をONにし、アノテーションの識別情報が記述されることで、原稿ページデータの実体のない章紙に対して、アノテーションの設定を行うことが可能となる。
また、図6はページ属性(ページ設定情報411)の例を示すリストである。図6にあるように、ページ属性も各属性を備えている。ページ属性のアノテーション属性は、原稿ページデータに対するアノテーションの識別情報が記述されている。図5のインデックス紙のアノテーションも、図6のページ属性中のアノテーション情報も同じように用紙に対して印刷すべきアノテーションがあることを示しているが、図5は、原稿ページデータの実体のない用紙であるインデックス紙(または合紙)に対する設定のため、図6のようにページ属性中に記載することができず、図5の章属性に記述することで、章紙としてのインデックス紙に対してアノテーションを付加することを実現した。なお、章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。
章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
ブック属性と章属性とにのみ共通する項目は、印刷方法、用紙サイズ、用紙方向、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パーセントに縮小した領域となる。
ブック、章、ページについて共通な属性として、ウォーターマーク属性及びヘッダ・フッタ属性がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウォーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できる。
<本実施形態の文書処理システムの操作手順例>
(ブックファイルの生成手順例)
ブックファイルは、上述したような構造及び内容を有している。次に、製本アプリケーション104及び電子原稿ライタ102によってブックファイルを作成する手順を説明する。ブックファイルの作成は、製本アプリケーション104によるブックファイルの編集操作の一環として実現される。
図7は、製本アプリケーション104によりブックファイルを開く際の手順を示すフローチャートである。
まず、開こうとするブックファイルが、新規作成すべきものであるか、それとも既存のものであるか判定する(ステップS701)。新規作成の場合には、章を含まないブックファイルを新規に作成する(ステップS702)。新規に作成されるブックファイルは、図3の例で示せば、ブックノード301のみ有し、章のノードに対するリンクが存在しないブックのノードとなる。ブック属性は、新規作成用としてあらかじめ用意された属性のセットが適用される。そして、新規ブックファイルを編集するためのユーザインタフェース(UI)画面を表示する(ステップS704)。図8は、新規にブックファイルが作成された際のUI画面の一例である。この場合には、ブックファイルは実質的な内容を持たないために、UI画面800には何も表示されない。
一方、既存のブックファイルがあれば、指定されたブックファイルを開き(ステップS703)、そのブックファイルの構造、属性、内容に従ってユーザインタフェース(UI)画面を表示する。図9は、このUI画面の一例である。UI画面900は、ブックの構造を示すツリー部901と、印刷された状態を表示するプレビュー部902とを含む。ツリー部901には、ブックに含まれる章、各章に含まれるページが、図3のような木構造が分かるように表示される。ツリー部901に表示されるページは原稿ページである。プレビュー部902には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。
さて、開かれたブックファイルには、電子原稿ライタ102によって電子原稿ファイルに変換されたアプリケーションデータを、新たな章として追加することができる。この機能を電子原稿インポート機能と呼ぶ。図7の手順によって新規に作成されたブックファイルに電子原稿インポートすることで、そのブックファイルには実体が与えられる。この機能は、図8あるいは図9の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。
図10は電子原稿インポートの手順例を示すフローチャートである。ただし、スキャナ108から文書を画像データとして読み込んでインポートする場合については、図21において説明する。
まず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして電子原稿ライタ102を指定してアプリケーションデータを印刷出力させることで、電子原稿データに変換する(ステップS801)。変換を終えたなら、変換されたデータが画像データであるか否かを判定する(ステップS802)。この判定は、ウインドウズ(登録商標)OSの下であれば、アプリケーションデータのファイル拡張子に基づいて行うことができる。例えば、拡張子が「bmp」であればウインドウズ(登録商標)ビットマップデータであり、「jpg」であればJPEG圧縮された画像データ、「tiff」であればtiff形式の画像データであると判定できる。また、このような画像データの場合はS8010のようにアプリケーションを起動せずに、画像データから直接電子原稿ファイルを生成することが可能であるため、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へ印刷データとして出力される仕組みとなっている。
ここで、ジョブチケットは、電子原稿ファイル103の構成する中間ファイルとして本実施形態に置いて用いている形式である。ジョブチケットは、原稿ページを最小単位とする構造を有するデータである。ジョブチケットにおける構造は、用紙上における原稿ページのレイアウトを定義している。ジョブチケットは1ジョブにつき1つ発行される。そのため、まず最上位にドキュメントというノードがあり、文書全体の属性、例えば両面印刷/片面印刷などが定義されている。その下には、用紙ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各用紙ノードには、その用紙で印刷されるシートのノードが属する。1シートは1枚の用紙に相当する。各シートには、印刷ページ(物理ページ)が属する。片面印刷ならば1シートには1物理ページが属し、両面印刷ならば1シートに2物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。
ジョブチケットのデータ構造の例を図12に示す。印刷用のデータでは、文書は用紙の集合で構成されており、各用紙は表、裏の2面で構成されており、各面は原稿をレイアウトする領域(物理ページ)を持ち、各物理ページには、最小単位である原稿ページの集合から構成される。1101は文書に相当するデータで、文書全体に関係するデータと、文書を構成する用紙情報のリストから構成される。用紙情報1102は用紙サイズなど用紙に関する情報と用紙上に配置される面情報のリストから構成される。面情報1103は、面に固有のデータと、面上に配置される物理ページのリストから構成される。物理ページ情報1104は、物理ページのサイズやヘッダ・フッタなどの情報と、物理ページを構成する原稿ページのリストから構成される。
電子原稿デスプーラ105は、電子原稿ファイルのジョブチケットをデスプールテーブルというテーブル(図12のジョブチケットをテーブルとして表現したものに相当する。)を作成し、編集情報ファイルに定義された属性や印刷設定に応じて、そのデスプールテーブルを出力モジュールへの出力コマンドに変換する。
(プレビュー表示の内容例)
すでに説明したとおり、ブックファイルが製本アプリケーションによって開かれると、図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のアプリケーション操作画面にあるPrint Formメニューの「Detailed Setting for Document」メニューあるいはツールバー上の「Detailed Setting for Document」ボタンから起動される。「文書の詳細設定」ウインドウは、文書全体に影響する属性の設定を行うためのウインドウである。このウインドウは、Page Setup、Finishing、Edit、Paper Sourceの4つのシートから構成されており、図14は、Page Setupシートを表示した状態を示している。このPage Setupシートでは、主にレイアウトに関する設定を行うことができ、用紙サイズや向き、Nページ印刷などの設定を指示することができる。このウインドウには、ズームに関するチェックボックスコントロール1401、1402が配置されている。
図15は、製本アプリケーション104の「章の詳細設定」ウインドウ1500を示している。このウインドウでは、「章設定情報407」を表示/設定することができる。このウインドウは、図9のアプリケーション操作画面にあるPrint Formメニューの「Detailed Setting for Chapter」メニューあるいはツールバー上の「Detailed Setting for Chapter」ボタンから起動される。「章の詳細設定」ウインドウは、章固有の属性の設定を行うためのウインドウである。このウインドウは、Page Setup、Finishing、Edit、Paper Sourceの4つのシートから構成されており、図15は、Page Setupシートを表示した状態を示している。このPage Setupシートでは、主に各章で固有のレイアウトに関する設定を行うことができ、用紙サイズや向き、Nページ印刷などの設定を指示することができる。「文書の詳細設定」と「章の詳細設定」で重複する設定項目については「Follow Book Attribute」のチェックボックスコントロール1501、1502、1503を配置している。このチェックボックスにチェックが入っている項目グループについては、文書の設定値をその章にも適用する。このチェックをはずした場合については、次の図16に示す。章固有の設定としては2種類に分類できる。一つは章でしか持たない設定項目である。もう一つは、上位階層の文書とは異なる独自の設定値を章の階層で保持している場合である。
図16は、図15の「章の詳細設定」でチェックボックスコントロール1501、1502のチェックをはずした状態である。この場合、文書の全体がA3用紙を使っている場合でも、この章を構成するページはA4用紙サイズとする。またレイアウトも、文書では1Page Par Sheetであっても、この章は4 Page Per Sheetでレイアウトするという指定である。「Zoom Arrange」については、チェックがついているので、上位階層である文書の設定値をこの章の設定値として使う。
図17は、製本アプリケーション104の「ページの詳細設定」ウインドウ1700を示している。このウインドウでは、「ページ設定情報411」を表示/設定することができる。このウインドウは、図9のアプリケーション操作画面にあるPrint Formメニューの「Detailed Setting for Page」メニューあるいはツールバー上の「Detailed Setting for Page」ボタンから起動される。「ページの詳細設定」ウインドウは、各ページで固有の属性の設定を行うためのウインドウである。このウインドウは、Page Setup、Editの2つのシートから構成されており、図17は、Page Setupシートを表示した状態を示している。このPage Setupシートでは、主に各ページで固有のレイアウトに関する設定を行うことができ、原稿ページを配置する際の回転角や拡縮率などの設定を指示することができる。「章の詳細設定」と「ページの詳細設定」で重複する設定項目については「Follow Chapter Attribute」のチェックボックスコントロール1701を配置している。このチェックボックスにチェックが入っている項目については、章の設定値をそのページにも適用する。このチェックをはずした場合については、次の図18に示す。
図18は、図17の「ページの詳細設定」でPage Rotationの設定を変更した状態を示している。コントロール1701で、原稿ページをレイアウトする際にページの上が左になるように回転して配置する設定にしている。この項目については「Follow Chapter Attribute」のチェックボックスが無いので、章や文書に重複する設定項目が無いので、このウインドウに表示されている設定が常にページの設定値となる。1701のチェックがある場合、例えば「Zoom Arrange」の項目は、章にも重複する設定項目があるので章の設定値をページの設定値とする。章で該当する「Zoom Arrange」の項目が「Follow Book Attribute」のチェックがある場合、章の設定値は上位階層である文書の設置値を使うので結局ページの設定値は文書の設定値を使うことになる。章で該当する項目のチェックが外れている場合、章固有の設定値を持っているので、ページの設定値はその章固有の設定値を使う。
尚、上記設定画面で設定されたチェックボックスコントロールの情報は、専用の領域に保持されてもよいが、図3に示した設定情報内に属性の1つとして保持するのが望ましい。この場合には、図5及び図6にチェックボックスコントロールの情報を保持する領域が追加される。
<本実施形態の文書処理システムの文書編集の表示例>
上位階層と重複する設定項目を上位階層の設定値を使わないようにした場合、つまり、チェックボックスコントロール1501や1701のチェックをはずした場合のアプリケーションの表示形式を、図19に示す。
図19の例では、文書は二つの章からなり、各章は9ページの原稿データを持っている。最初の章のレイアウトを4UP(4in1とも表記する)に、2番目の章の先頭ページ(文書全体では10ページ目)に回転を指定した場合の表示例である。右側のプレビューにおいて、1〜3ページ目には1ページ上に4つの原稿がそれぞれ配置されている様子が表示されている。そして、第4ページ目のデータである「A」の文字が回転している様子が表示されている。ツリービューでの章やページ固有の設定を行った場合の表示形式を説明する。最初の章に対するアイコン1901が変化して、この章に章独自の設定がなされていることを示している。2番目の章の先頭ページに対するアイコン1902が変化して、このページに特別な設定がなされていることが示されている。
<本実施形態における文書処理装置への入稿方法>
文書処理装置である製本アプリケーション104に電子原稿として文書を入稿するための方法としては、前述したように、ホストコンピュータ上の任意のアプリケーションにより生成された文書(画像ファイルも含む)を、電子原稿ライタを用いて電子原稿フォーマットに変換する方法が既に考えられている。そして、本発明では、ホストコンピュータと双方向インタフェースを介して接続されるスキャナ部を備える画像読取装置(単体のスキャナもしくは入出力機能を備える複合機)で読み取られた画像ファイルを、製本アプリケーション104で扱う電子原稿(ブックファイル)として入稿する機能を提供する。以下、紙原稿から読み取られた画像ファイルをブックファイルに変換する入稿方法について説明する。
前述したように、スキャナ部で読み取られた画像ファイルをホストコンピュータで受信する方法としては、プルスキャン方法とプッシュスキャン方法がある。プルスキャン方法は、製本アプリケーション104からスキャナドライバを介して、画像読取装置に対してスキャン指示を送信し、その応答として画像ファイルを取得する。このプルスキャン方法は既知の技術であり詳細な説明は省略する。そして、取得された画像ファイルは、電子原稿ライタを用いてブックファイルとして生成され、後述する章分割機能を用いて新規の章として入稿される。また、プッシュスキャン方法は、入出力機能を備える複合機としての画像読取装置の操作パネルで、操作者が読み取った画像を送信する先の送信先アドレス(ネットワーク上のホストコンピュータのHDの所定フォルダへのパス)を指定し、指定された送信先のアドレスに対して読み取った画像ファイルを送信することにより実現される。このプッシュスキャン方法もまた既知の技術であるので、詳細な説明は省略する。プッシュスキャン方法を用いた電子原稿の入稿は、ホストコンピュータ上で、プッシュスキャンにより画像ファイルが送信される先である所定のフォルダを、定期的に監視しており、所定のフォルダに画像ファイルが送信されたことを検知した場合に、その画像ファイルを電子原稿ライタに渡すことにより、ブックファイルとして生成され、後述する章分割機能を用いて新規の章として入稿される。
このようにして、画像読取装置で読み取られた画像ファイルを製本アプリケーション104にブックファイルとして入稿することが可能となっている。次に、本発明の特徴である画像読取装置で読み取られた画像ファイルを製本アプリケーション104にブックファイルとして入稿する際の章分割の方法について説明する。特にここでは、合紙により分割された文書の原稿をブックファイルに変換する方法を説明する。
<本実施形態における紙媒体文書の電子化方法>
(インポート時のオプション)
以下、図20を参照して紙媒体文書の電子化処理について説明するが、その前にまず紙原稿の電子化処理において利用者が設定可能なオプションについて説明する。本実施形態では、図34に示すユーザインターフェースにより操作者がインポート時の処理条件を設定することができる。これら指定項目は、指定に応じた値が所定の記憶領域に記憶されて、インポート処理時に参照される。
図34のユーザインターフェースは、たとえば図19の「Edit」欄中のプルダウンメニューの一つが選択された場合に表示される。図34において、白紙削除チェックボックス3301がチェックされると、所定記憶領域に確保された白紙削除フラグがセットされる。インポート処理時にこの白紙削除フラグがセットされている場合には、両面白紙が削除される。本実施形態では、紙原稿はその両面が連続して読み取られるため、両面白紙とは、連続する奇数ページ番号と偶数ページ番号の2ページがともに白紙の場合、当該連続する2ページをいう。さらに「連続する白紙は削除しない」チェックボックス3302が指定されると、対応するフラグがセットされる。
また、章の分割チェックボックス3303がチェックされていれば、章分割フラグがセットされる。章分割フラグがセットされていなければ、章分割の処理は行われず、インポートされる原稿画像はすべてひとつの章にまとめて挿入される。
また、章分割フラグがセットされている場合には、分割方法ボタン3304が選択可能となる。分割方法としては片面白紙(章紙)で章を分割する設定(章紙分割設定)と、白紙で分割する方法とが選択できる。さらに、章紙分割設定がされている場合には、「白紙を合紙にする」(合紙化設定)チェックボックス3305が選択可能である。これらの設定は、RAMに確保された各設定ごとの領域に、その旨を示す値として記憶される。さらにこれら設定は、一つの設定ファイルとしてハードディスクに保存されてもよい。そして、図20乃至図23の処理において参照される。ただし、本発明に直接関係しないものについては、これらフローチャートでは参照されていない。
「章紙を合紙にする」チェックボックス3305がチェックされている場合には、章が分割されると、章の先頭に挿入された章紙は削除され、その代わりに当該文書のブック属性における合紙設定(図4が設定番号13)が設定される。設定される内容は、合紙が挿入される旨の合紙フラグ、および合紙を供給する部位(カセットなど)を示す符号が含まれる。合紙を供給する部位を示す符号には、たとえば「給紙カセットと同じ」であるとか、特定の給紙カセットであるとか、あるいはオプションのインサータがプリンタに備えられていれば、そのインサータが指定できる。
さらに、章紙の表面に記載された内容(文字や図形、画像等)は、ひとまとまりの画像として、合紙に印刷されるべきアノテーションとして、ブック属性のうちの合紙属性に登録される。図4のブック属性においては、第13の属性の「合紙」に登録されて、電子原稿ファイルの一部として保存される。章紙のアノテーションは読み込まれた画像データであり、章ごとにも登録できる。登録されたアノテーションデータは、電子原稿ファイルの出力時に章紙(合紙)上に印刷される画像として章ごとに出力される。このように章紙を合紙化してその上の文字等をアノテーションとすることで、たとえば章のレイアウトをNアップに変更したり、印刷方法を両面から片面にあるいはその逆に変更したような場合であっても、章紙は章の一部ではないので、その変更の影響を受けることがない。そのため、操作者は章紙のレイアウトや印刷方法を考慮することなく、章や文書全体のレイアウトや印刷方法をまとめて変更することができる。
図36は、自動章分割を行う際の詳細設定を設定するためのダイアログボックスの一例を示すUI図である。自動章分割は、既存のブックファイルを選択して操作者が自動章分割の適用を指示することで、当該ブックファイルに対して施される処理である。図34の設定はインポート時に参照される点で図36の設定と相違するが、各チェックボックスの意味は図34に示したものと同様である。なお、図35は、図36のユーザインターフェース画面を表示させるためのメニュー画面を示している。ここでドキュメント全体または選択した章のいずれに対して章分割を行うか指示できる。たとえばインポート時に図34の「章の分割」チェックボックス3303をチェックしていなくとも、インポート完了後に章分割を行えば、白紙挿入部分などでで章を分割できる。
(インポート処理)
図20は、インポート処理の手順を示すフローチャートである。図10の手順は他のアプリケーションで生成された文書をインポートする場合の手順であったのに対して、図20は紙原稿をインポートするために、紙原稿を読み込んで文書構造を解析し合紙設定を行う際の全体的な処理を示すフローチャートである。なお本実施形態ではスキャナから読み込まれる原稿を紙原稿と呼ぶが、もちろん紙以外のシート状の媒体に印刷された原稿をも含む。図20の手順は、スキャナ108とコンピュータ100とを含むシステム全体により実行される。特にステップ2001はスキャナにより、ステップ2002〜2005は製本アプリケーション104により実行される。
ステップ2001で紙原稿を電子化する。自動化を考慮すると原稿自動送り装置付きのスキャナが望ましいが、処理としてはスキャナの種類は問わない。また、電子化されたデータの形式もTIFF, JPEG, BMP,PDF等複数のフォーマットが考えられるが、どのような形式であっても本発明を適用することができる。前述したように、原稿スキャンの処理方式は大きく2種類に分類できる。一つは、プッシュスキャンと呼ばれる方式であり、例えば、PC上のフォルダを共有設定し、スキャナが取り込んだ画像データファイルをその共有フォルダにコピーする方式である。もう一つはプルスキャンと呼ばれる方式で、TWAINやISIS等のスキャナドライバを経由してスキャナから画像データを直接受け取る方式である。プッシュスキャンの場合にはステップ2001とステップ2002の処理とは非同期に実行され得るが、プルスキャンの場合には、ステップ2001による原稿の電子化とステップ2002によるその読み込みは一連の処理としてコンピュータの管理下で同期を取りつつ実行される。
ステップ2002では、電子化されたデータ(画像データ)を本システム特に製本アプリケーション104に読み込む。プッシュスキャン方式であれば、原稿のスキャンにより作成された画像データが格納される共有フォルダを監視し、画像データファイルができたところで自動的にシステムがファイルを読み込む方法が可能である。また、プル方式であれば、スキャナドライバから直接データを取得することが可能である。読み込まれた画像データを基に、原稿の1ページに相当する画像データを1ページとする電子原稿ファイル103が作成される。
なお、本実施形態では、スキャナによる読み込みは全て両面読み込みであることを前提とする。そのために、プルスキャンの場合にはホストコンピュータ100からスキャナ108に対して「両面スキャン」の指示をしてスキャンさせる。この場合、スキャナにはADFが備えられていることが望ましい。
また、プッシュスキャンの場合、スキャン時に作成するファイル名について、片面/両面の区別をつけられるような取り決めをしておけば、製本アプリケーション104が画像データファイルを読み出す際に、そのファイル名に基づいて両面読み込みされたデータか、片面読み込みされたデータかを自動的に判定することが可能となる。例えば、片面読込みの場合にはファイル名の先頭に"S_"を付け、両面読込みの場合には、“D_”をつける事でファイル名から判定することが可能となる。また、全ページをスキャンしてデータ中の空白ページから判定する方式も可能である。例えば、「空白ページが1ページ置きに出現した場合」、「連続する奇数・偶数の2ページが共に空白ページであるようなページが存在する場合」のような条件で両面ジョブと判断し、それ以外は片面だと判定する方式である。或いは、自動判定ではなく、情報を取得するためのダイアログ画面を表示して片面読込み/両面読込みなのかを指定させる方式でも良い。いずれの方法であっても、判定結果は後の工程で参照するために、参照可能なフラグ等の値(たとえばRAMに確保した両面/片面フラグの値)として保存される。そして、ステップ2002においては、両面スキャンされた画像のファイルのフォルダに限り、読み込みの対象とする。
次にステップ2003へ進み、製本アプリケーション104は、章紙判定処理を行う。処理の詳細は図21で説明する。「章紙」とは、文書を構成する「章」の扉として挿入されているページであり、表面にはその章のタイトル等が記載され、裏面は白紙であるのが普通のスタイルである。章紙を判定したらステップ2004へ進み、製本アプリケーション104は、判定された章紙を先頭ページとする章ごとにブックファイル(文書)を分割し、紙原稿の論理的な構造を文書中のデータ構造に反映する。この処理の詳細は図22で説明する。次にステップ2005へ進み、製本アプリケーション104は、章紙を文書の「用紙挿入設定」へと変更する。この処理の詳細は図22で説明する。
以上の手順により、紙原稿から読み込まれた画像データが紙原稿の文書の構成を反映した電子ファイルに変換される。このファイルは、製本アプリケーション104によりその内容を表示することができるし、また、印刷することもできる。印刷時には、章紙として章間の合紙の設定がされている場合には、電子原稿ファイル103としては章紙が含まれていなくとも、ブック属性の合紙(図3の文書設定情報403に含まれる、図4の設定番号13)設定として、「合紙を挿入する」旨の設定がされていれば、印刷あるいは表示される文書中では、章紙が挿入される。そのために、電子原稿ファイルのデータの表示処理においては、合紙設定があれば章間に章紙を挿入して表示する。また、印刷処理においては、たとえば章紙を挿入する位置において、設定に応じたカセットやインサータからの合紙の給紙をするための命令を生成して挿入し、プリンタに送信する。さらに、本実施形態では章紙が合紙として扱われる場合でも、章紙へのアノテーションを指定することで、章紙に表題などを印刷することが可能となっている。
このようにして、読み取った紙原稿をその形式も含めて再現した電子原稿ファイルを生成でき、また、それを出力する際にも、元の紙原稿をそのまま再現した文書を出力できる。
(電子化データ読み込み処理)
ここで図20のステップ2002の電子化データ読み込み処理の手順を詳しく説明する。まず、片面読み込みか両面読み込みかの別を判定する。両面であれば、実際の画像データの読み込みを行う。ただしプルスキャンでは読み込み方法を指定できるので、判定はプッシュスキャンの場合に限っても良い。片面であれば、その画像データは章紙による分割には適さないので、そこで読み込みを中止する。あるいは、ステップ2002で読み込みのみ行い、ステップ2003以降の処理をスキップしても良い。
次に、文書の各ページに相当する画像データを順次読み込む。読み込まれた画像データを一つの章に含まれるページとして、ブックファイルを作成する。
ここで、電子原稿ファイル103中の編集情報ファイルにおいて、章にページを付加する操作を図3の例で説明する。まず、現在の章405について、インポートされる画像を新たなページデータとしてページデータリスト413に付加し、現在の章情報405のページ情報リスト408のページデータリンクに新たなページデータのためのリンクを付加し、そのページデータリンクにより、インポートされた画像のページデータを現在の章情報405にリンクする。ここで、本実施形態では紙原稿は両面スキャンされているので、文書設定情報403(図3)の印刷方法属性(図4の属性番号1)には「両面」である旨が記録される。
一方電子原稿ファイルに含まれる中間ファイルであるジョブチケット(図12参照)は、階層構造を有するものの編集情報ファイルと異なり章という構造を有していない。ジョブチケットでは共通する用紙(シートとも呼ぶ。)の束を用紙情報1102で、さらに用紙の束に属する用紙を面情報1103で、面情報に属する面を物理ページ情報で、各物理ページ情報に属する原稿ページを原稿ページ情報で定義するという構造を有する。したがって、たとえば、編集情報ファイルの「章」に対応するジョブチケットの階層は「用紙情報」に相当する。そこで本実施形態においてジョブチケットに対する新たなページの付加は、図12を参照すると以下のようになる。すなわち、現在の章に相当する用紙情報1102にリンクする新たな面情報1103を追加し、さらに面情報1103に物理ページ情報1104を追加し、さらにその物理ページ情報1104にリンクする新たな原稿ページ情報1105を追加する。そして原稿ページ情報1105のページデータリンクにインポートされる画像データを新たなページデータとしてリンクする。ここで本実施形態では、紙原稿は両面スキャンされているので、面情報面情報1103には、連続する奇数ページと偶数ページとが、その順序で物理ページ情報およびそれにつながる原稿ページ情報としてリンクされる。
以上の手順により、ステップ2003において、単一の章を有する電子原稿ファイルが作成される。なお、この手順では、電子原稿ファイルは新たに作成されるとしたが、既存の電子原稿ファイルに追加される場合もある。追加される場合には、読み込まれた画像データにより新規な章が作成される場合もあるし、既存の章に追加される場合もある。
(章紙判定処理)
図21は、章紙判定処理を詳細に説明したフローチャートである。ステップ2101で製本アプリケーション104は、カウンタiを初期化する。第1ページが先頭であれば、i=2とする。ステップ2102では製本アプリケーション104は終了判定を行う。ページリスト406を参照し、i番目のページが存在するかをチェックし、ページがあれば次のステップ2103へ進み、存在しない場合は終了する。
ステップ2103では、製本アプリケーション104は、i番目のページ空白がページであるかを調べる。空白ページの場合はさらにステップ2104へ進み、空白で無い場合はステップ2106へと進む。
ステップ2104では、製本アプリケーション104は、i番目のページが裏面かどうかを判定する。判定方法として一番単純なのは、奇数ページ(iが奇数)なら表面、偶数ページ(iが偶数)なら裏面と判定することである。また、スキャン時にファイル名の先頭に表面なら"A_"、裏面なら"B_"と付けてり、ページデータとしてスキャン時に作成したファイル名をそのまま用いていれば、表裏の情報を知ることができる。また、読み込み時に表裏の情報を別途ファイル属性として付しても良い。
ここで、i番目のページが空白ページであった場合、すなわち裏面が空白であった場合、そのページ及びその直前のページ(i−1)は章紙の表裏面であると判定する。その場合、ステップ2105へと進み、RAM等に確保された章紙テーブルに(i−1,i)の組を記録する。そして、ステップ2106へと進みカウンタを進める。表、裏の順に並んでいる場合、カウンタを2ずつ増加させればカウンタは常に偶数となり、裏面を指し示すことが可能となる。そしてステップ2102へ製本アプリケーション104は戻り次のデータの処理を行う。
なお、ステップ2106でカウンタを1ずつ進め、ステップ2104で、製本アプリケーション104は、表面が空白ページの場合にスキャンミスの可能性をユーザに報告するなどのバリエーションを実装する事も可能である。
(章分割処理)
図22は、ステップ2004の章分割処理の詳細を説明したフローチャートである。まず製本アプリケーション104は、ステップ2200で章分割フラグがセットされ、かつ、分割方法として「片面白紙(章紙)で章を分割」が選択されている判定する。セットされていなければ分割の必要はなく、また分割方法がそのほかの方法であれば図22の処理を行う必要はないために処理を終了する。章分割フラグがセットされていれば、ステップ2201でカウンタiを初期化(i←1)する。次にステップ2202へと進み、製本アプリケーション104は、終了判定を行う。終了しない場合は、ステップ2203へと進み、製本アプリケーション104は、合紙テーブルに(i,i+1)の組が記録されているかをチェックする。記録されている場合は、ステップ2204へと進み、記録されていない場合は、ステップ2207へと進む。
ステップ2204は先頭ページを例外扱いするための判定である。先頭ページの場合に章を分割する処理を行うと、ページを含まない章ができてしまう。これを防ぐために、先頭ページの場合は章紙があっても章を分割する処理をせずにステップ2107へとジャンプする。i番目のページが先頭ページで無い場合は、ステップ2205へと進む。
ステップ2405と2406は章を分割する処理を示している。ステップ2405では、製本アプリケーション104は、現収情報ファイルについては、新しい章情報405を作り、章情報リスト404の末尾に追加する処理を行う。ジョブチケットについては、新しい用紙情報を作成して文書情報の末尾に追加する。ステップ2206では、製本アプリケーション104は、編集情報ファイルについては、ページ情報リスト408をi番目のページで切り離し、第iページから最終ページまでをステップ2205で作成した新しい章のページ情報リストとする。また、ジョブチケットについては、新たに追加した用紙情報に、第iページから最終ページまでを、面情報の階層から移動する。
ステップ2207では、カウンタiを次に進める。ステップ2106同様、カウンタを2増やせば良い。そしてステップ2202へと戻り次のページを処理する。
この処理により裏面が白紙の用紙(電子データ上での用紙)を章紙とみなして、その章紙を扉とする章ごとに文書を分割する。
(章紙化処理)
図23は、ステップ2005の章紙化処理の詳細を説明したフローチャートである。章紙化処理とは、電子原稿ファイルにおいて、文書設定情報(すなわちブック属性)の「合紙」属性を利用して、章紙を合紙挿入の設定に置き換えるというものである。挿入される合紙(章紙)は、出力機器に送信される際に合紙に相当するコマンドを付加しても良いし、プリンタ等の出力機器が合紙挿入機能を備えていれば、合紙を挿入する旨及びその位置を出力機器に送信して、出力機器により挿入させることもできる。
まずステップ2301で、製本アプリケーション104は、章紙を合紙挿入設定に変更するか、すなわち、図34の「章紙を合紙にする(合紙挿入設定に変更)」の設定がされているか否かを、その操作に応じてセットされたフラグ等に基づいて判定する。変更する場合には、ユーザが章紙を原稿として残す設定をしていればそのまま終了する。章を分割した時点で、原稿の論理的な区切りと章の区切りを一致しており、印刷結果も空白用紙が有る状態になっているので、設定変更しないという選択をする事も十分考えられる。ユーザが用紙挿入設定に変更する設定をしていればステップ2302へと進む。
ステップ2302では、製本アプリケーション104は、章の区切りに用紙を挿入する設定をオンにする。すなわち、図3の文書設定情報における「合紙」挿入の設定(図4のブック属性の「合紙」設定)を、合紙を挿入する旨の設定とする。そしてステップ2303へと進み、章を順に処理するためのカウンタiを初期化する。
ステップ2304でi番目の章があるかを判定する。全ての章で処理が終わっていれば処理は終了である。まだ未処理の章が残っていればステップ2305へ進む。
ステップ2305では、製本アプリケーション104は、章の先頭ページが章紙であるかどうかを判定する。各章に含まれるページ数を足してゆけば章の先頭の通しページ番号が分かるので、章紙テーブルに登録されたページ番号と照合すれば、章の先頭が章紙であるかどうかを判定することが可能である。但し、本実施形態では、章紙で章を分割しているので、基本的に章の先頭は章紙であり、例外となるのは先頭章のみである。章紙で無い場合は、ステップ2306へ、章紙である場合はステップ2308へと進む。
ステップ2306では、現在処理している章が最初の章であるかどうかを判定する。先頭の章であれば、ステップ2307へと進み、先頭章でない場合は、ステップ2310へと進む。
ステップ2307では、製本アプリケーション104は、先頭章には章紙をつけないという設定をオンにする。この設定も、図3の文書設定情報における「合紙」挿入の設定(図4のブック属性の「合紙」設定)に含まれており、これをセットする。任意の章で章紙をつけない設定が可能であるシステムでは、ステップ2306の判定をせずに、カウンタi番めの章の章紙設定をオフにする。
ステップ2308では、製本アプリケーション104は、現在処理対象としている章の先頭ページおよびその直後のページデータを原稿から章紙上のアノテーションデータへと置き換えている。すなわち、章のページ情報409の先頭ページに対応するページデータを章紙用のアノテーションデータとしてアノテーションライブラリに登録し直し、図5に示す章属性の「合紙属性」に、当該登録したアノテーションライブラリを合紙に印刷するものとして登録する。たとえば、合紙を挿入する旨のフラグをセットし、合紙に印刷されるアノテーションのたとえば名称を印刷するアノテーションとして登録する。その際、アノテーションを挿入する位置を指定しても良い。そして章のページ情報409の先頭の2ページのページ情報およびページデータを削除する。章紙用のアノテーションは、図4に示すブック属性のうち第13番目の「合紙」の属性として、アノテーションを登録する。
ステップ2309では、製本アプリケーション104は、現在処理対象としている章の2番目のページ(空白ページ)を削除する。章のページ情報409の2番目のページ情報を削除し、対応するページデータページデータリストから削除する。
ステップ2310では、次の章を処理するためにカウンタiをインクリメントする。
以上の手順によって、電子化された電子原稿ファイルから章紙に相当するページを削除し、章紙に代えて合紙を挿入する設定をすることができる。さらに、合紙上のアノテーションとして章紙の表面の画像データを登録することで、章紙の記載を電子原稿ファイルにおいて再現することができる。
図24は、章紙が挟み込まれた原稿の一例である。この例では、先頭および2枚目と3枚目との間に章紙が存在している。図25は、図24の原稿を両面スキャンした場合に作成される電子データの例である。章紙の裏面も空白ページとしてデータ化されている。
図26は、図25のスキャン電子データを読み込んだ場合、すなわち図20のステップ2002直後における電子原稿ファイルの画面表示例である。一つの章に全てのページが所属している。章紙の表面、裏面に相当するデータも他の原稿と同じように取り込まれている。
図27は、図20のステップ2004を実行した後の画面表示例である。裏面が空白ページとなっている原稿、すなわち章紙である7ページ目から新しく作成された章に分割されている。この時点では、「A」「B」と書かれた章紙と裏面の空白ページも他の原稿ページとは同じ形式である。
図28は、図20のステップ2005を実行した後の画面表示例である。「A」「B」と書かれた章紙と裏面の白紙データの合計4ページ分のデータ(ページ1−1,1−2,1−7,1−8)が電子原稿ファイルから削除されて無くなっている。その代わりに、用紙(合紙)の挿入設定がなされている。挿入設定される合紙は、図28のユーザインターフェース画面上では、各章の先頭に挿入された状態で表示される。そして各章紙には、その表面に対応する原稿ページに記載されていた画像「A」と「B」とがそれぞれアノテーションとして出力されている。
この際の用紙挿入設定状況を示しているのが図29である。図20の手順で作成された電子原稿ファイルのブック属性として、コンボボックス2901に示されているように、章の間に用紙をはさむ設定である「合紙」の設定がなされている。
図30は、章紙であった「A」のデータを用紙挿入設定に変換する例を示している。合紙のデータにたいしてアノテーションという形で「A」のデータが追加されていることが示されている。この場合、もともとがスキャナで取り込まれた画像データであるので、画像アノテーションとして追加されている。
以上説明したように、本実施形態の文書処理システムでは、両面スキャンした紙原稿の画像データのうち、裏面が白紙の原稿を章の先頭を示す章紙と判断して、電子原稿ファイルにおいても章紙を先頭として電子化文書を章単位に分割できる。このため、紙原稿の構成を、電子原稿ファイルにおいても忠実に反映することができる。また章紙に印刷されていた画像をアノテーションとして文書設定情報に登録できるために、章紙に扉となる画像を印刷することができる。
<本実施形態における合紙化処理された文書の印刷制御方法>
次に電子原稿デスプーラ105における印刷処理の詳細を説明する。本発明を適用可能なプリンタなどの印刷装置は、ブックファイルが持つブック・章・ページの階層構造と同様に、ジョブ・バインダー・ページという階層構造をもつ。基本的に、ブックに対する設定は印刷装置のジョブに、章に対する設定は印刷装置のバインダーに対して適用することで、階層構造を持った文書の印刷設定に従った印刷装置の制御が可能となる。
電子原稿デスプーラ105は、まずジョブ開始の発行を行う。そしてジョブの印刷方法属性にブックの印刷方法(片面印刷または両面印刷)をセットする。ブックの印刷方法には製本印刷も選択肢にあるが、本実施例では片面/両面印刷制御に関して説明し、製本印刷については省略する。なお、実際には、バインダーの属性としても印刷方法を設定しているので、ブックの印刷方法設定は、この場合には意味がない。あるいは、ブックファイルでは、ブックの印刷方法属性が両面印刷の場合のみ、章の印刷方法に片面/両面(ブックと同じ)を設定できる例を示したのと同様、ブックの印刷方法にも両面を指定する必要がある場合もある。本実施例ではブックの印刷方法属性をそのままジョブの印刷方法属性に設定することで、どちらの場合でも制御可能である。
次に、印刷方法を含むジョブの属性を発行し、現在処理中の章番号を初期化する。次に、すべての章を処理済みか判定し、処理済の場合にはジョブ終了を発行して、ブックの印刷処理を終了する。未処理の章が残っている場合には、処理対称の章を一つ進め、すべての章に対して上記処理を順次実施する。
次にバインダー開始を発行し、バインダーの印刷方法属性に現在処理中の章の印刷方法を設定して、印刷方法を含むバインダー属性を発行する。続いて処理中の章の各ページの印刷処理を実行する。章内の印刷処理が終了すると、バインダー終了を発行し、すべての章が終了するまでバインダ発行の処理を繰り返し、すべての章の片面/両面印刷設定をプリンタに伝えることができる。
以下に、上記印刷処理が、電子原稿デスプーラ105、プリンタドライバ106、およびプリンタ107の間でどのように制御されるかを示す。
まず、電子原稿デスプーラ105は、OSの印刷処理手順に従って、例えばWindows(登録商標)OSであれば、CreateDC(), StartDoc()など、印刷ジョブを生成する処理を実行する。この処理は、GDIを経由して、プリンタドライバ106に通知され、プリンタドライバ106は、ジョブ生成処理およびジョブ属性設定処理を行う。具体的には、ジョブの開始、印刷方法設定などを含むジョブ属性をプリンタへ指示するコマンドを生成し、プリンタへデータを送信するためのOSの手続きを経て、プリンタ107へコマンドを送信する。
次に、電子原稿デスプーラ105は、バインダー開始の発行処理でExtEscape(BINDER_START)を実行し、プリンタドライバ106へ、独立したフィニッシング属性を指定可能なバインダーの開始を通知する。具体的には、章の印刷開始の通知を意味している。次にバインダー属性の発行処理でResetDC()を実行し、バインダー属性をプリンタドライバ106へ通知する。具体的には、章の合紙挿入(挿入すべく旨のフラグや挿入すべきページ番号、アノテーションライブラリから読み込まれた指定アノテーション等を含む)や、ステイプル設定を含むバインダー属性をプリンタドライバ106へ通知する。その場合にはプリンタドライバ106は、これらの処理を受けて、プリンタ107に対して、バインダーが開始されたことを通知するバインダー生成処理およびバインダー属性設定処理を行う。具体的には、印刷方法設定を含むバインダーの属性をプリンタへ指示するコマンドを生成し、プリンタへデータを送信するためのOSの手続きを経て、プリンタ107へコマンドを送信する。なお合紙はコンピュータによりアノテーションを印刷する通常の印刷コマンドとしてプリンタに送信しても良い。
その後、電子原稿デスプーラ105は、バインダーに含まれる各ページの描画内容すなわち現在の章に含まれる各原稿ページの描画内容をGDIを通じてプリンタドライバ106へ通知する。前述のとおり、プリンタドライバ106はGDIからDDIに変換された形で描画内容を受け取り、PDLなどのプリンタが解釈可能な描画命令に変換してプリンタ107へ送信する。
そして、電子原稿デスプーラ105は、現在のバインダーが終了すること、次のバインダーが開始することを、それぞれExtEscape ( BINDER_END ) およびExtEscape ( BINDER_START ) によってプリンタドライバ106へ通知する。この2つの通知は、バインダーの境界を通知するのが目的であるため、バインダーの境界を通知する1つの通知にまとめることも可能である。
このように、電子原稿デスプーラ105は、章の数だけ上記処理を繰り返し、最後に電子原稿デスプーラ105は、OSの印刷処理手順に従って、例えばWindows(登録商標)OSであれば、EndDoc()など、印刷ジョブを終了する処理を実行する。この処理は、GDIを経由して、プリンタドライバ106に通知され、プリンタドライバ106は、ジョブ終了処理を行う。具体的には、ジョブの終了をプリンタへ指示するコマンドを生成し、プリンタへデータを送信するためのOSの手続きを経て、プリンタ107へコマンドを送信する。
なお、ここでは、電子原稿デスプーラ105がGDI経由でプリンタドライバ106へ通知する手段として、ExtEscape()やResetDC()といった具体的なAPIを例として挙げたが、電子原稿デスプーラ105とプリンタドライバ106が同期して印刷処理を実行できるのであれば、このAPI以外の手段を用いても同様の処理が実現可能なことは言うまでもない。
このような処理により、ブックファイルで章ごとに設定された印刷方法(片面/両面)は、バインダー属性としてプリンタに発行され、片面/両面印刷を切り替えながら実施することが可能である。またブックファイルで文書単位で設定された合紙挿入およびアノテーションデータは、バインダー属性として、あるいは通常のページのコマンドとしてプリンタに発行され、指定された章の先頭位置に合紙を挿入しつつアノテーションを付加することが可能である。
[そのほかの実施の形態]
第2の実施の形態として、上記第1の実施形態をさらに改良したシステムを説明する。上記実施形態では、裏面が空白ページの原稿は、たとえそれが意図して挿入された章紙でなくとも章紙とみなしている。そのため、章の最後のページが奇数ページである場合、その裏面は空白ページとなり、章紙でないにもかかわらず章紙とみなされる。そこで本実施形態の文書処理システムでは、裏面が白紙ページの原稿が2枚続いた場合には、1枚目の原稿は章紙ではなく、章の最後の原稿であるとして処理する。
図31は、章紙の直前にある用紙が片面であるような原稿の例である。最初の章が3ページのデータであるため、3枚目の用紙の裏、すなわち章の末尾の原稿シートの裏が白紙となっている。図32は、図31の原稿をスキャナで両面スキャンして取り込んだ時に作られる画像データの例である。5ページ目から8ページ目まで、空白ページが交互に現れている。
このようなデータを図21の手順で章紙判定すると、「3」と書かれたページを章紙として判定してしまうため、文書が3つの章(図32の部分3201,3202,3203)に分割されてしまう。これを防止するための、本実施形態では図33の手順でしょう紙の判定を行う。
図33は、章紙判定処理のもう一つの例を説明したフローチャートである。すなわち、本実施形態のシステムは、第1の実施形態のうち図21を図33に置換するほか、第1の実施形態と同様の構成を有する。
まずステップ3301で製本アプリケーション104は、カウンタiを初期化する。1ページが先頭であればi=2とする。ステップ3302では終了判定を行う。ページリスト406を参照し、i番目のページが存在するかをチェックし、ページがあれば次のステップ3303へ進み、存在しない場合は終了する。
ステップ3303では、製本アプリケーション104は、i番目のページ空白がページであるかを調べる。空白ページの場合はさらにステップ3304へ進み、空白で無い場合はステップ3309へと進む。
ステップ3304では、製本アプリケーション104は、i番目のページが裏面かどうかを判定する。判定方法として一番単純なのは、奇数ページ(iが奇数)なら表面、偶数ページ(iが偶数)なら裏面と判定することである。また、スキャン時にファイル名の先頭に表面なら"A_"、裏面なら"B_"と付けていれば、画像ファイルをを読み込むときに表裏の情報を知ることができる。
ここでi番目のページが空白ページであった場合、さらに、片面印刷の用紙が連続しているかをチェックする。ステップ3305では前の用紙に相当する原稿データが存在するかを、i−3番目のページの有無でチェックする。ここで前の用紙が無い場合すなわちi−3番目のページがないと判定された場合は、現在処理中のページは文書の先頭の用紙のぺージであることを意味する。前の用紙に相当するページが存在しない場合は、ステップ3308へとジャンプし、存在する場合はステップ3306へと進む
ステップ3306では、製本アプリケーション104は、前の用紙の表裏面に相当するページデータ(i−3番目およびi−2番目のページデータ)が既に章紙と判定されているかをチェックする。章紙と判定されている場合には、表面しか印刷されていない用紙が連続しているので、ステップ3307へと進み、前の用紙に相当するページの組(i−3,i−2)を章紙テーブルの記録から削除する。章紙テーブルには、ページの並び順に章紙に相当するページの対が順番に登録されているので、この場合には最後に登録されたページの組を削除するとしてもよい。ステップ3306では、前の用紙に相当するページデータが章紙として判定されていない場合は、ステップ3308へとジャンプする。
ステップ3308では、製本アプリケーション104は、章紙テーブルに(i−1,i)の組を記録する。そして、ステップ3309へと進みカウンタを進める。表、裏の順に並んでいる場合、カウンタを2ずつ増加させればカウンタは常に偶数となり、裏面を指し示すことが可能となる。そしてステップ3302へ戻り次のデータの処理を行う。
このようにして、表面のみ印刷され、裏面が白紙の用紙が2枚連続した場合には、2枚の内の後の用紙を章紙として登録し、2枚の内の前の用紙は当該章の末尾の用紙であるとして処理する。この結果、紙原稿において章紙により区切られた章の構造を、より精確に電子化文書(すなわち電子原稿ファイル)に反映することができる。
尚、本実施形態で示したフローチャートにおいて、その前後は処理が未完成にならない限り入れ替えることが可能である。
また、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機
器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現する、図20乃至図23および図33の手順を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。