以下、添付図面に従って、本発明の実施形態を詳細に説明する。
[本実施形態の文書処理システムの概要]
本実施形態の文書処理システムでは、スキャナで読み取られた画像データだけでなく、様々なアプリケーションプログラムで作成した電子ファイルも扱うことが可能である。実施形態の説明に先立ち、本実施形態の文書処理システムが必要となった背景を説明する。
文字や表、デジタルカメラやスキャナで取り込まれた画像など、データの種類が異なると、データを定義する構造やそれらデータに対する編集操作が異なるために、データの種類に応じた様々なアプリケーションプログラムが提供されている。利用者は、文字を編集するためには文字処理プログラム、表を編集するためには表計算プログラム、画像を編集するためには画像編集プログラムといった具合に、データの種類別にアプリケーションを使い分けている。
このように、利用者はデータの種類ごとにアプリケーションプログラムを使い分けるのが一般的である。しかし、利用者が作成しようとする文書としては、例えば文字のみや、表のみ、画像のみといった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は、ブックファイルの形式の一例を模式的に示す図である。このブックファイルの形式は、編集情報ファイルにより表される。すなわち、図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項目に対応するのではなく、関連する複数の項目を含むものもある。
ブック属性に固有の項目は、製本詳細、表紙/裏表紙、インデックス紙、合紙、章区切りの5項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の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パーセントに縮小した領域となる。
ブック、章、ページについて共通な属性として、ウォーターマーク属性及びヘッダ・フッタ属性がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウォーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できる。
<本実施形態の文書処理システムの操作手順例>
(ブックファイルの生成手順例)
ブックファイルは、上述したような構造及び内容を有している。次に、製本アプリケーション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を参照して紙媒体文書の電子化処理について説明するが、その前にまず紙原稿の電子化処理において利用者が設定可能なオプションについて説明する。本実施形態では、図33及び図34に示すユーザインターフェースにより操作者がインポート時の処理条件を設定することができる。これら指定項目は、指定に応じた値が所定の記憶領域に記憶されて、インポート処理時に参照される。
図33は、プッシュスキャン方法を用いた場合に、スキャンされた画像ファイルの送信先フォルダに投入される画像ファイルに対するインポート方法を設定するためのダイアログボックスの一例を示すUI図である。このダイアログは、たとえば図19のメニューの「Print(印刷設定)」欄に用意された「インポート」項目を選択することで表示され、設定可能となる。図33においては、インポート方法3201により、スキャンされた画像データを製本アプリケーション(図33ではPMと表記)によりブックファイルへインポートするか、あるいはフォルダ内に格納しておくかいずれかを選択できる。図33では示されていないが、フォルダに格納する場合には、フォルダを指定することもできる。ブックファイルへインポートする旨の指定がされている場合には、製本アプリケーション104は、画像データをスキャナから取り込んで処理を施す。またフォルダに格納する旨の指定がされている場合には、製本アプリケーション104は処理対象の画像データを所定のフォルダから取り込む。
またインポート方法3202により、スキャンされた画像データを既存のドキュメント(すなわちブックファイル)に追加するか、あるいは新規のブックファイルを作成するかが選択できる。既存のドキュメントに追加する場合には、追加されるドキュメントを指定できる。インポートされる画像データを既存のドキュメントに追加する旨の指定がされている場合には、既存のブックファイルが指定されてオープンされ、その後にそのブックファイルに対して図20の処理が実行されてインポートされる画像データ新たなページとして追加される。また、インポートされる画像データを新規のドキュメントとするする旨の指定がされている場合には、図20の手順に先立って、新規のブックファイルが作成され、その後にその新規なブックファイルに対して図20の処理が実行される。
図34は、プルスキャン方法を用いる場合に、製本アプリケーションに投入されたブックファイルに対する自動章分割を行う設定をするためのメニューバーの一例を示すUI図である。図34は、図33と同じウインドウではあるが、「インポート時の処理」タブを選択することで入力可能となる。図34において、白紙削除チェックボックス3301がチェックされると、所定記憶領域に確保された白紙削除フラグがセットされる。そして、本実施形態では、インポート処理時にこの白紙削除フラグがセットされている場合には、白紙ページが削除される。ここで白紙ページとは、片面読み込みの場合には1ページの白紙であり、両面読み込みの場合には、連続する奇数ページ番号と偶数ページ番号の2ページがともに白紙の場合、当該連続する2ページをいうものとする。さらに「連続する白紙は削除しない」チェックボックス3302が指定されると、対応するフラグがセットされる。これがセットされている場合には、複数枚の白紙が連続している場合にも、その白紙をそのままブックファイルにインポートする。白紙削除フラグがセットされており、かつこのチェックボックス3302がチェックされていない場合には、たとえば1枚だけ白紙をインポートする。
また、章の分割チェックボックス3303がチェックされていれば、章分割フラグがセットされる。章分割フラグがセットされていなければ、章分割の処理は行われず、インポートされる原稿画像はすべてひとつの章にまとめて挿入される。
また、章分割フラグがセットされている場合には、分割方法ボタン3304が選択可能となる。分割方法としては白紙ページで章を分割する設定(白紙分割設定)と、原稿が片面/両面の切り替わりで分割する方法とが選択できる。さらに、「白紙を合紙にする」(合紙化設定)チェックボックス3305が、白紙ページでの章の分割が選択されている場合には選択可能である。これらの設定は、RAMに確保された各設定ごとの領域に、その旨を示す値として記憶される。さらにこれら設定は、一つの設定ファイルとしてハードディスクに保存されてもよい。
「白紙を合紙にする」チェックボックス3305がチェックされている場合には、章が分割されると、章の間に挿入された白紙は削除され、その代わりに当該文書のブック属性における合紙設定(図4が設定番号13)が設定される。設定される内容は、合紙が挿入される旨の合紙フラグ、および合紙を供給する部位を示す符号が含まれる。合紙を供給する部位を示す符号には、たとえば「給紙カセットと同じ」であるとか、特定の給紙カセットであるとか、あるいはオプションのインサータがプリンタに備えられていれば、そのインサータが指定できる。したがって、白紙を合紙化する場合には、「白紙削除」チェックボックス3301の設定に無関係に白紙ページは削除される。
図36は、自動章分割を行う際の詳細設定を設定するためのダイアログボックスの一例を示すUI図である。自動章分割は、既存のブックファイルを選択して操作者が自動章分割の適用を指示することで、当該ブックファイルに対して施される処理である。図34の設定はインポート時に参照される点で図36の設定と相違するが、各チェックボックスの意味は図34に示したものと同様である。なお、図35は、図36のユーザインターフェース画面を表示させるためのメニュー画面を示している。ここでドキュメント全体または選択した章のいずれに対して章分割を行うか指示できる。たとえばインポート時に図34の「章の分割」チェックボックス3303をチェックしていなくとも、インポート完了後に章分割を行えば、白紙挿入部分などで章を分割できる。
(インポート処理)
図20は、インポート処理の手順を示すフローチャートである。図10の手順は他のアプリケーションで生成された文書をインポートする場合の手順であったのに対して、図20は紙原稿をインポートするために、紙原稿を読み込んで文書構造を解析し合紙設定を行う際の全体的な処理を示すフローチャートである。なお本実施形態ではスキャナから読み込まれる原稿を紙原稿と呼ぶが、もちろん紙以外のシート状の媒体に印刷された原稿をも含む。図20の手順は、スキャナ108とコンピュータ100とを含むシステム全体により実行される。特にステップ2001はスキャナにより、ステップ2002〜2006は製本アプリケーション104により実行される。
ステップ2001で紙原稿を電子化する。自動化を考慮すると原稿自動送り装置付きのスキャナが望ましいが、処理としてはスキャナの種類は問わない。また、電子化されたデータの形式もTIFF, JPEG, BMP,PDF等複数のフォーマットが考えられるが、どのような形式であっても本発明を適用することができる。前述したように、原稿スキャンの処理方式は大きく2種類に分類できる。一つは、プッシュスキャンと呼ばれる方式であり、例えば、PC上のフォルダを共有設定し、スキャナが取り込んだ画像データファイルをその共有フォルダにコピーする方式である。もう一つはプルスキャンと呼ばれる方式で、TWAINやISIS等のスキャナドライバを経由してスキャナから画像データを直接受け取る方式である。プッシュスキャンの場合にはステップ2001とステップ2002の処理とは非同期に実行され得るが、プルスキャンの場合には、ステップ2001による原稿の電子化とステップ2002によるその読み込みは一連の処理としてコンピュータの管理下で同期を取りつつ実行される。
次にステップ2002へ進み、読込み方式を示す情報を製本アプリケーション104が取得する。ここでは、合紙を判定するための参考情報となる片面読込みであるか、両面読込みであるかが分かれば十分である。プル方式であれば、ドライバとI/Fを取り決めておくことでこの情報を取得することができる。たとえば、コンピュータ100からスキャナ108へと片面/両面の別を示す指示を与えてプルスキャンするために、製本アプリケーション104ではその片面/両面指定のための情報を読み取ることで判定できる。
また、プッシュスキャンの場合は、スキャン時に作成するファイル名について、片面/両面の区別をつけられるような取り決めをしておけば、製本アプリケーション104が画像データファイルを読み出す際に、そのファイル名に基づいて両面読み込みされたデータか、片面読み込みされたデータかを自動的に判定することが可能となる。例えば、片面読込みの場合にはファイル名の先頭に"S_"を付け、両面読込みの場合には、“D_”をつける事でファイル名から判定することが可能となる。また、全ページをスキャンしてデータ中の空白ページから判定する方式も可能である。例えば、「空白ページが1ページ置きに出現した場合」、「連続する奇数・偶数の2ページが共に空白ページであるようなページが存在する場合」のような条件で両面ジョブと判断し、それ以外は片面だと判定する方式である。或いは、自動判定ではなく、情報を取得するためのダイアログ画面を表示して片面読込み/両面読込みなのかを指定させる方式でも良い。いずれの方法であっても、判定結果は後の工程で参照するために、参照可能なフラグ等の値(たとえばRAMに確保した両面/片面フラグの値)として保存される。
ステップ2003では、電子化されたデータ(画像データ)を本システム特に製本アプリケーション104に読み込んでいる。プッシュスキャン方式であれば、原稿のスキャンにより作成された画像データが格納される共有フォルダを監視し、画像データファイルができたところで自動的にシステムがファイルを読み込む方法が可能である。また、プル方式であれば、スキャナドライバから直接データを取得することが可能である。読み込まれた画像データを基に、原稿の1ページに相当する画像データを1ページとする電子原稿ファイル103が作成される。この手順の詳細は図21で説明する。
次にステップ2004へ進み、製本アプリケーション104は、合紙判定処理を行う。処理の詳細は、図22、図23、図24で説明する。合紙ページを判定したらステップ2005へ進み、製本アプリケーション104は、判定された合紙ページの前後でブックファイルの章を分割し、原稿の論理的な構造を文書中のデータ構造に反映する。この処理の詳細は図25で説明する。次にステップ2006へ進み、空白ページを文書の「用紙挿入設定」へと変更する。この処理の詳細は図26で説明する。
以上の手順により、紙原稿から読み込まれた画像データが紙原稿の文書の構成を反映した電子ファイルに変換される。このファイルは、製本アプリケーション104によりその内容を表示することができるし、また、印刷することもできる。印刷時には、章間の合紙の設定がされている場合には、電子原稿ファイル103としては合紙である白紙ページが含まれていなくとも、ブック属性の合紙(図3の文書設定情報403に含まれる、図4の設定番号13)設定として、「合紙を挿入する」旨の設定がされていれば、印刷あるいは表示される文書中では、合紙が白紙として出力される。そのために、電子原稿ファイルのデータの表示処理においては、合紙設定があれば章間に白紙ページを挿入して表示する。また、印刷処理においては、たとえば合紙を挿入する位置において、設定に応じたカセットやインサータからの合紙の給紙をするための命令を生成して挿入し、プリンタに送信する。
このようにして、読み取った紙原稿をその形式も含めて再現した電子原稿ファイルを生成でき、また、それを出力する際にも、元の紙原稿をそのまま再現した文書を出力できる。
(電子化データ読み込み処理)
図21は、図20のステップ2003の電子化データ読み込み処理の手順を示すフローチャートである。まずステップ2011で、製本アプリケーション104は、紙原稿の電子化データ(画像データ)を全て読み込んだか判定する。ここで画像データは、紙原稿の1ページ分が1ファイルを構成している。したがってプッシュスキャンの場合には、所定フォルダ内のすべての画像ファイルを読み終えたかが判定される。またプルスキャンの場合には、たとえば読み取り終了の信号がスキャナから入力されたかが判定される。また、画像データは、原稿のページの順序を判別できるように構成される。たとえばそのファイル名を時系列に付しても良い。あるいは、ファイル属性の作成時刻によりファイルの作成された系列を判定し、その順序をページ順とみなすこともできる。そして、ステップ2012、ステップ2014での読み込みは、その順序に従って行われる。
ステップ2012では、製本アプリケーション104は、1ページ(すなわち1つのファイル)の画像データを読み込む。読み込みの順序はたとえば先頭のページに相当するファイルから生成された時系列である。ファイルにページ番号を示す名称が与えられていれば、その番号に従う。ステップ2013では、製本アプリケーション104は、片面読み込みか両面読み込みかの別を、図20のステップ2002で判別した結果を基に判定する。両面であれば、ステップ2014でさらにもう1ページ分の画像データを読む。
ステップ2015では、製本アプリケーション104は、読み込んだ画像データが白紙であるか判定する。ここでは、両面読み込みならば、ステップ2012およびステップ2014で読み込んだ2ページ共に白紙であるかが判定され、片面ならば1ページのみについて白紙であるかが判定される。
白紙である場合には、ステップ2017において白紙削除フラグをテストする。白紙削除フラグは、図34の「白紙削除」チェックボックス3301のチェックに応じてセットされる。白紙削除フラグがセットされている場合には、次にステップS2018で、製本アプリケーション104は、章分割フラグがセットされ、かつ、分割方法として「白紙分割」設定がされているかを判定する。章分割フラグは図34の「章の分割」チェックボックス3303がチェックされた際に、「白紙分割」設定は、分割方法選択欄3304において、「白紙ページで章を分割」が選択されている場合に設定される。
ステップ2018の判定の結果、章分割フラグがセットされていないか、あるいはセットされていても「白紙で章分割」が選択されていなければ、白紙を削除するために、白紙ページは読み捨てられる。したがって、読み込んだページは放置し、ステップ2011に進んで次のページを読む。
一方、白紙削除フラグがセットされていても、章分割フラグがセットされており、かつ、「白紙で章分割」が選択されていれば、白紙を後のステップにおける章分割に使用するために、ここでは削除せず、ステップ2016で読み込んだページを現在の着目章に追加する。先頭ページの読み込み直後では着目章が存在しないので、この場合には章を新たに生成してそれを着目章とする。読み込んだページが白紙ページでない場合や白紙削除フラグがセットされていない場合にも同様にステップ2016において読み込んだページを現在の着目章に付加する。
ここで、電子原稿ファイル103中の編集情報ファイルにおいて、章にページを付加する操作を図3の例で説明する。まず、現在の章405について、インポートされる画像を新たなページデータとしてページデータリスト413に付加し、現在の章情報405のページ情報リスト408のページデータリンクに新たなページデータのためのリンクを付加し、そのページデータリンクにより、インポートされた画像のページデータを現在の章情報405にリンクする。
一方電子原稿ファイルに含まれる中間ファイルであるジョブチケット(図12参照)は、階層構造を有するものの編集情報ファイルと異なり章という構造を有していない。ジョブチケットでは共通する用紙(シートとも呼ぶ。)の束を用紙情報1102で、さらに共通する用紙の束中において共通する面の設定(たとえば両面印刷と片面印刷)を有する部分的な用紙の束を面情報1103でまとめるという構造を有する。したがって、たとえば1文書中に異なる複数の用紙サイズが含まれる場合にはそれぞれのサイズごとの用紙情報が含まれ、用紙サイズや紙質が1つであれば、印刷方法が異なっても用紙情報は1つあれば十分である。本実施形態では、スキャナのADF機能等を用いてまとめて読み込まれる原稿画像は一定のサイズなので、用紙情報1102に関しては、最初の1ページに対応する用紙情報を1つ作成しておけばそれで十分である。そのため、本実施形態では、編集情報ファイルの「章」に対応するジョブチケットの階層は「面情報」に相当する。もちろんこれは本実施形態では用紙の設定は一定としているからであって、章ごとに用紙サイズ等の用紙設定が異なるのであれば、章に相当するジョブチケットの階層は用紙情報となる。このように、編集情報ファイルにおいて章ごとに相異なる属性の種類に応じて、ジョブチケットにおいて章に対応する階層は決定される。そこで本実施形態においてジョブチケットに対する新たなページの付加は、図12を参照すると次のようになる。すなわち、現在の章に相当する面情報1103にリンクする新たな物理ページ情報1104を追加し、さらにその物理ページ情報1104にリンクする新たな原稿ページ情報1105を追加する。そして原稿ページ情報1105のページデータリンクにインポートされる画像データを新たなページデータとしてリンクする。
以上の手順により、ステップ2003において、電子原稿ファイルが作成されるとともに、このステップ以降で使用されずしかも削除が指示されている白紙ページは削除される。なお、この手順では、電子原稿ファイルは新たに作成される場合もあるし、既存の電子原稿ファイルに追加される場合もある。追加される場合には、読み込まれた画像データにより新規な章が作成される場合もあるし、既存の章に追加される場合もある。ただし、図20では新規な章が追加されるものとして説明した。
(合紙判定処理)
図22はステップ2004の合紙判定処理の大きな流れを示すフローチャートである。まずステップ2101で片面読込みであるか両面読込みであるかを判定する。この判定は、ステップ2002の処理結果をフラグとして保持しておき、そのフラグを参照することで高速に判定することができる。片面読込みの場合はステップ2103へ、両面読込みの場合はステップ2102へと進む。ステップ2102は両面データの場合の判定処理であり、詳細は図24で説明する。ステップ2103は片面読込みの場合の判定処理である、詳細は図23で説明する。なお、図22の手順は、合紙により章分割するためのものなので、章分割フラグがセットされていない場合にはスキップした方が処理負荷の軽減のためには望ましい。
図23は、片面読込み時の合紙判定処理を詳細に説明したフローチャートである。ステップ2201で、カウンタiを初期化する。ここでは、1ページ目が先頭ページであるとする。ステップ2202では終了判定を行う。i番目のページが存在すれば次のステップへ、存在しない(最終ページを超えている)場合は終了する。ステップ2203はi番目のページが白紙であるかを判定する。スキャン画像が空白であるかの判定方式は、本発明では特に限定しない。空白ページである場合ステップ2204へ、そうでない場合はステップ2205へと進む。ステップ2204では、合紙判定を行う。片面印刷の場合、白紙が検知されたらその空白ページは無条件で合紙と判定し、合紙テーブルにカウンタiを記録する。そしてステップ2205へと進み、カウンタを1進め、再びステップ2203へ戻り終了判定を行う。合紙テーブルはRAMなどの書き換え可能な記憶領域に設けられたテーブルである。
図24は、両面読込み時の合紙判定処理を詳細に説明したフローチャートである。ステップ2301でカウンタiを初期化する。図23同様、1ページが先頭とする。ステップ2302では終了判定を行う。i番目のページが存在すれば次のステップ2303へ進み、存在しない場合は終了する。ステップ2303では、i番目のページ空白ページであるかを調べる。空白ページの場合はさらにステップ2304へ進み、空白で無い場合はステップ2306へと進む。ステップ2304では、(i+1)番目のページが空白かを判定する。ここで、i番目、(i+1)番目のページが両方とも空白ページであった場合、表面、裏面が両方空白であるので合紙であると判定し、ステップ2305へと進み、合紙テーブルに(i,i+1)の組を記録する。そして、ステップ2306へと進みカウンタを2進める。こうすることでカウンタは常に奇数となり、表面を指し示すことが可能となる。そしてステップ2302へ戻り次のデータの処理を行う。
なお、ステップ2306でカウンタを1ずつ進め、ステップ2305で連続する奇数・偶数ページが空白であった場合、スキャンミスの可能性をユーザに報告するなどのバリエーションを実装してもよい。
このようにして、ステップ2003で作成した電子原稿ファイル中を先頭から走査して白紙ページがあれば、そのページ番号を合紙テーブルに登録する。
(章分割処理)
図25は、ステップ2005の章分割処理の詳細を説明したフローチャートである。ステップ240Aで、章分割フラグをテストする。章分割フラグがセットされていなければ章分割は行わない。セットされていれば、次に分割方法として「白紙分割」設定がされているかステップ240Bで判定する。白紙分割でなければ、ステップ240Cにおいて両面と片面との境界で章を分割する。本発明は白紙分割に係るものであるので、この処理についてはこれ以上の説明は省略する。
一方、白紙分割設定がされている場合には、ステップ2401でカウンタiを初期化する。iは着目している章の番号を示す。次にステップ2402へと進み、i番目のページがあるか判定してなければ処理を終了する。終了しない場合は、ステップ2403へと進み、合紙テーブルに(i,i+1)の組が記録されているかをチェックする。記録されている場合は、ステップ2405へと進む。記録されていない場合は、さらにステップ2404へと進み、合紙テーブルにiが記録されているかをチェックし、記録されていればステップ2405へ、記録されていない場合はステップ2408へと進む。
ステップ2405は、先頭ページを例外扱いするための判定である。先頭ページの場合に章を分割する処理を行うと、ページを含まない章ができてしまう。これを防ぐために、先頭ページの場合は章を分割する処理をせずにステップ2408へとジャンプする。
ステップ2406と2407は、章を分割する処理を示している。まず、ステップ2406で新しい章を作成する。章情報405をつくり、章情報リスト404の末尾に追加する。そしてステップ2407へ進み、ページ情報リスト408をi番目で切り離し、ステップ2406で作成した新しい章のページ情報リストとする。
次にステップ2408へと進み片面読込みの処理であったかを判定し、片面読込みの場合はステップ2409へと進んでカウンタを1増やし、両面読込みの場合はステップ2410へと進みカウンタを2増やす。両面の場合にカウンタを倍速で増やさなくてもよければ、2408〜2410はステップ2409の1ステップで置き換えることができる。また、ステップ2403〜2404は、連続したステップではなく、片面読込みの場合はステップ2404、両面読込みの場合はステップ2403だけを行ってもよい。
ここで、ステップ2406およびステップ2407における章の分割の際における電子原稿ファイル103に対する操作を、図3及び図12を参照して説明する。
まずステップ2406においては、図3に示す編集情報ファイルに対して、新たな章情報を作成して着目章の属する文書情報の文書情報リスト404にリンクする。図12に示す中間ファイルは、前述のように、ジョブチケットにおいては編集情報ファイルに対応する章という構造は有していない。そのため、章に対応する階層は必ずしも一定ではない。しかし、本例では用紙属性は異なる章間で同一であるとすれば、面情報1103の階層を章に対応させることができる。したがって、ジョブチケットについては、ステップ2406において、新たな面情報1103を作成して、現在の面情報が属する用紙情報1102にリンクする。
また、ステップ2407については以下のようになる。まず編集情報ファイルについては、現在の章情報にリンクされたページ情報のうち、第iページから最終ページまでのデータを、作成した新たな章情報にリンクするよう移動する。
一方ジョブチケットについては、現在の章に相当する面情報にリンクされる物理ページ情報以下のデータを、作成した新たな面情報にリンクするように移動する。
このようにして、白紙での章分割が選択されている場合には、紙原稿に挿入された白紙ごとに、電子化された文書においても章が分割される。
(合紙化処理)
図26は、ステップ2006の合紙化処理の詳細を説明したフローチャートである。ステップ2500において、章分割フラグをテストし、セットされていなければ処理を終了する。一方、章分割フラグがセットされていれば、ステップ2501で、合紙化設定が設定されているか、すなわち合紙を白紙ページから用紙挿入設定に変更するかを判定する。合紙化設定がされていない場合、すなわちユーザが空白ページを原稿として残す設定をしていればそのまま終了する。章を分割した時点で、原稿の論理的な区切りと章の区切りを一致しており、印刷結果も空白用紙が有る状態になっているので、設定変更しないという選択をする事も十分考えられるからである。
一方、合紙化設定がされている場合、すなわちユーザが空白ページを合紙挿入設定に変更する設定をしていればステップ2502へと進む。ステップ2502では、章の区切りに空白用紙を挿入する設定をオンにする。この設定は、図3の文書設定情報403に含まれ、図4の属性情報番号13の「合紙」属性に含まれる。この属性において、合紙設定がセットされる。合紙をどこから供給するかについても指定可能であるが、本実施形態では、印刷用の給紙カセットから供給されるよう、給紙口が設定される。
そしてステップ2503へと進み、章を順に処理するためのカウンタiを初期化する。カウンタiは着目章を示す。ステップ2504でi番目の章があるかを判定する。全ての章で処理が終わっていれば処理は終了である。
まだ未処理の章が残っていればステップ2505へ進み、片面読込みであるかを判定する。片面読込みであればステップ2506へ進み、章の先頭ページが空白ページであるかを調べる。この分岐は、文章の最初には合紙を組み込んでいない場合に対応するための処理である。章の先頭ページが空白ページでなければページを削除してはならない。ステップ2506で空白ページの場合はステップ2507へと進み、章の先頭の空白ページを削除する処理を行う。ステップ2507では、編集情報ファイルの章のページ情報リスト406の先頭ページ情報409とページデータリスト413から該当する原稿データを削除する。またジョブチケットにおいては、白紙ページの原稿ページを含む物理ページ情報以下を削除する。ステップ2506で空白ページでは無いと判定された場合はステップ2510へとジャンプする。
ステップ2505で両面読込みであった場合、ステップ2508へと進み、ステップ2506同様、章の先頭用紙に相当するページが空白であるかを判定する。空白ページで無い場合は、ステップ2510へとジャンプする。ステップ2508で空白ページだと判定された場合は、章の先頭から2ページ分のデータを削除する。これもステップ2507同様、章のページ情報リストから先頭のページ情報409を2ページ分削除し、対応するページデータリストを文書から削除する。ジョブチケットについてもステップ2507と同様である。
ステップ2510は着目章が文書の先頭の章であるかを判定する。先頭章の場合は、ステップ2511へとすみ、先頭の章には合紙を挿入しない設定を記録する。すんわち、図4のブック属性の内、属性番号13の「合紙」設定には、文書の先頭の章には合紙を挿入しない旨の設定情報を含み、ステップ2510ではそれをオンに設定する。図26では先頭章ではない場合は特に何もしていないが、任意の位置で合紙を挿入しない設定が可能であれば、合紙を挿入しない章の番号としてカウンタiを記録してもよい。
そしてステップ2512へと進み、カウンタiを1増やし、再びステップ2504に戻り終了判定を行う。
以上のようにして、章の先頭の白紙ページを削除してその代わりに、文書設定(ブック属性)について、章間における「合紙挿入」の設定をセットすることができる。
図27の符号2601は、空白ページが挟み込まれた片面原稿の一例を示す。この例では、先頭および3ページ目と4ページ目との間に空白ページが存在している。図27の符号2602は、原稿2601の原稿を片面スキャンした場合に作成される電子データの例を示す。
図28の符号2701は、空白ページが挟み込まれた両面原稿の一例を示す。この例では、先頭および原稿の2枚目と3枚目の間に空白ページが存在している。図28の符号2702は、原稿2701の原稿を両面スキャンした場合に作成される電子データの例である。なお、以下の例では、空白ページによる章分割および合紙化設定がされている場合の例である。
図29は、図27の原稿を読み込んだ場合の画面表示例である。一つの章に全てのページが所属している。符号2801は空白ページに相当する電子原稿ページ(ページ番号1−1と1−5)である。
図30は、図20のステップ2005を終えた時点の画面表示例である。3ページ目と4ページ目の間にある空白ページ1−5で章が分割され、二つの章ができている。この時点では、空白ページ2901が残っている。
図31は、図20のステップ2006を終えた時点の画面表示例である。原稿からは2701に相当する空白ページが削除され、合紙の設定に置き換わっている。
図32は、図31における用紙挿入設定画面の例である。コンボボックス3101で白紙原稿の代わりに合紙を挿入する設定が有効になっている事が示されている。この設定の表示は、文書設定情報(ブック属性)のうち、「合紙」属性に基づいて表示されている。図26のステップ2511で先頭の章に白紙用紙が無いことが記録された場合、先頭の章に合紙を挿入しない設定となるため、その設定値がチェックボックス3102において表示される。そのためチェックボックス3102にはチェックが入る。
<本実施形態における合紙化処理された文書の印刷制御方法>
次に電子原稿デスプーラ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以外の手段を用いても同様の処理が実現可能なことは言うまでもない。
このような処理により、ブックファイルで章ごとに設定された印刷方法(片面/両面)は、バインダー属性としてプリンタに発行され、片面/両面印刷を切り替えながら実施することが可能である。またブックファイルで文書単位で設定された合紙挿入は、バインダー属性として、あるいは白紙ページが再生されてプリンタに発行され、章ごとに合紙を挿入しつつ実施することが可能である。
このようにして、本実施形態の文書処理システムでは、スキャン時には合紙を含めてスキャンすることで、紙原稿の文書をそのまま電子化することができ、同時に白紙を削除することでデータ量を削減することができる。
尚、本実施形態で示したフローチャートにおいて、その前後は処理が未完成にならない限り入れ替えることが可能である。
また、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機
器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェア(図20〜図26の手順)のプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
また、本実施形態では白紙を合紙として章を分割したが、一定の画像を記載した用紙や、あるいは異なるサイズの原稿を連続的に読み込めるスキャナであれば、他の部分と異なるサイズの用紙など、境界であることを示すページを章の境界に挿入することもできる。
また、本実施形態では電子文書が章という構造を有するために、個別の章を作成することで原稿の構造を表している。しかし、たとえば章などの部分の最終ページの情報に一定のフラグをセットするなどして章の構造を示す文書であれば、合紙によりそのフラグをセットして紙原稿の文書の構造を電子文書で表すことができる。
このようにして、文書中に合紙を検出した場合に、合紙の位置で文書の階層構造を区切って章を作成する事で、電子原稿ファイルに文書の階層構造を再現する事ができる。さらに、空白ページ原稿を合紙挿入設定に置き換える事で、印刷時に何も印刷されないページや用紙への課金を防ぐことができる。さらに、空白ページ原稿を合紙挿入設定に置き換えることで、文書の構造的に不要である空白原稿を取り除くことができる。