説明

画像形成装置、ジョブ処理方法及びプログラム

【課題】処理が中断した印刷ジョブを、他の印刷装置で再開したり、状況に応じて途中からの印刷再開や最初からの再印刷を行う。
【解決手段】印刷ジョブが中断されたときに、該印刷ジョブが構造化文書でなければ構造化文書に変換する(S1204)。構造化文書上に印刷の完了したページや行数等の印刷ジョブステータス更新情報を保存(S1205)し、他の印刷装置に転送して印刷したり、中断した印刷装置での印刷ジョブ再開に備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置から取得するジョブを処理する画像形成装置に関するものである。
【背景技術】
【0002】
情報処理装置と画像形成装置とが通信して取得するジョブ(以下、単にJobと呼ぶ場合がある)を処理する従来の印刷システムにおいて、印刷中のJobをなんらかの理由(エラー事象の発生や割り込み印刷Jobなどにより)で中断し再開印刷する場合がある。この場合において、従来は中断Jobと、何処まで印刷したかといった管理情報の2種類の情報で管理し、再開印刷あるいは最初から再印刷などを制御していた。
【0003】
そして、中断処理を行うデバイス(あるいはPull Print の場合はサーバも含む)が再開あるいは再印刷などを特定する必要があった。
【0004】
また、PDFやPDLなどPage毎に独立でない印刷Jobに関しては両者の切り替え制御は困難であり、中断したデバイスが中間データを活用して続きを行う等しか実現出来なかった。
【0005】
そのため、中断時のJobアーカイブや割り込み時に異なったデバイスへの印刷Job転送など必ずしも中断したデバイスで再開するとは限らないケースでは再開が困難であり、転送された側がSolutionや状況に応じて途中からの印刷再開印刷か、最初から再印刷などの制御はできなかった。
【特許文献1】特開2006−99725号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
このように従来の印刷システムでは、Jobを中断した時や、その中断したJobを異なったデバイスへ転送する場合などにおいて、中断Jobの再開時に中断箇所から印刷するのか、最初から再印刷するのかという課題がある。
【0007】
また、Jobを転送する場合には転送された側の印刷機のSolutionによってはJobの印刷すら行えない場合がある。
【0008】
さらに、中断したデバイスそのものでJobの再開をしようと、転送されたデバイスでJobの再開をしようとも、中断箇所からの印刷も、最初からの全項再印刷にも対応できないという課題があった。
【0009】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、印刷処理が中断したジョブの構造を再開印刷または再印刷を指示可能な状態に修正できる仕組みを提供することである。
【課題を解決するための手段】
【0010】
上記目的を達成する本発明の画像形成装置は以下に示す構成を備える。
【0011】
情報処理装置から取得するジョブを印刷処理する画像形成装置であって、前記ジョブの印刷処理を中断した場合、前記ジョブの構造をヘッダ情報と、ページ実体情報とを含む構造化文章形式に変換する変換手段と、前記変換手段により変換された前記構造化文章形式のジョブの前記ヘッダ情報を前記ジョブの印刷処理を中断した状況に応じて修正する修正手段と、前記修正手段により前記ヘッダ情報を修正したジョブを保持する保持手段とを備えることを特徴とする。
【発明の効果】
【0012】
本発明によれば、印刷処理が中断したジョブの構造を再開印刷または再印刷を指示可能な状態に修正できる。
【発明を実施するための最良の形態】
【0013】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【0014】
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示す印刷システムの一例を示すブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。また、本印刷システムは、情報処理装置と画像形成装置とが双方向通信可能に接続されている。ここで、双方向通信手段は、ネットワーク、双方向通信インタフェースのいずれでもよい。
【0015】
さらに、本実施形態では、画像形成装置の例としてプリンタの例を示すが、画像形成装置としては、プリント機能を備える複合機(MFP:Multi Function Peripheral)や、ファクシミリ装置等であってもよい。ここで、画像形成装置は、情報処理装置からジョブを取得して、後述する構造化文章であるかどうかの判断処理や、当該判断処理に基づいて、中断したジョブの状況、既に印刷済みのページが存在する等のように中断した時点の状況に適応して印刷を再開するために、ジョブを構造化文章への変換処理、変換した構造化文章の修正処理を行う。
【0016】
図1において、4000はホストコンピュータで、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備える。さらに、CPU1は、後述するシステムバス4に接続される各デバイスを総括的に制御する。
【0017】
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステム(以下OS)等を記憶する。また、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶する。さらに、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。なお、外部メモリ11には、アプリケーションからの印刷要求に従い、プリンタに出力する印刷情報を生成するプリンタドライバもインストールされている。
【0018】
また、本実施形態に示すプリンタドライバは、XPS(XML Paper Specification)という構造化されたJobをプリンタに出力する機能を備えている。なお、アプリケーションからいう構造化されたJobをプリンタに出力する機能を備える構成としてもよい。
【0019】
2はRAMで、CPU1の主メモリ、ワークエリア等として機能する。5はキーボードI/F(KBC)で、キーボード(KB)9や不図示のポインティングデバイスからのキー入力を制御する。
【0020】
6はディプレイI/F(CRTC)で、ディスプレイ(CRT)10の表示を制御する。7は外部メモリI/F(DKC)で、ハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。なお、外部メモリ11には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶している。
【0021】
8はプリンタI/F(PRTC)で、所定の双方向性インタフェース21を介してプリンタ5000に接続されて、プリンタ5000との通信制御処理を実行する。
【0022】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、ディスプレイ10上でのWYSIWYGを可能としている。
【0023】
また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【0024】
プリンタ5000において、12はプリンタCPU(CPU)で、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。なお、プリンタ5000は、後述するフローチャートの処理を実行することで、構造化文章形式のジョブをクライアントコンピュータ4000から受信して処理する。ここで、構造化文章形式として、XPS(XML Paper Specification)形式のジョブ処理を行うことが可能であるが、構造化文章形式としてはXPSに限定されるものではない。また、クライアントコンピュータ4000から受信するジョブが上記構造化文章形式でない場合は、後述CPU12がジョブの構造を構造化文章形式に変換して外部メモリ14に保持させる。つまり、プリンタ5000は、プリンタ5000自身で、中断したジョブを再開する場合に、ジョブを扱い易い形式に自ら変換することで、PDFやPDL等のPage毎に独立でない印刷ジョブでも、プリンタ5000の判断で、中断したジョブの印刷を開始するジョブ処理が可能となる。ここで、印刷処理を再開する場合に、継続印刷と、全項再印刷とのいずれにも対応可能であるが、その処理については後述する。また、全項再印刷とは、中断したページからではなく、最初のページから全てのページを印刷する処理であり、継続印刷とは、中断する前に正常に印刷されたページを除く、未印刷ページから印刷を再開する処理である。
【0025】
また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM13のデータ用ROMはハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【0026】
CPU12は、入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をクライアントコンピュータ4000に通知可能に構成されている。
【0027】
19はCPU12の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
【0028】
なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ20によりアクセスを制御される。16は印刷部インタフェースである。
【0029】
外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、22は操作部で、印刷機能を設定したりするスイッチ、ステータスを表示するためのLED表示器等が配されている。なお、操作部22は、大型液晶表示装置を備えたタッチパネルで構成されていてもよい。また、前述した外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【0030】
さらに、プリンタ本体内部のRAM19上に格納されているデータをコピーして格納できるようになっていても良い。また図示しないNVRAMを有し、操作部22からのプリンタモード設定情報を記憶するようにしてもよい。
【0031】
図2は、本実施形態を示す画像形成装置におけるジョブ中断処理を説明する図である。以下、図3に示すジョブステータスと構造化文書例との対応を参照しながら、ジョブ中断処理について説明する。
【0032】
図2において、201は中断箇所記憶Stepで、プリンタ5000上で印刷中のJobがその印刷機上でのエラーや、緊急優先度を持った別の後続Jobの割り込み等による何らかの理由により中断され、その時点の中断箇所を印刷機上のRAM19で記憶しておくStepである。
【0033】
図3に示す状態309は、Jobの投入時点のJob管理情報の状態を示している。このJob管理情報は、プリンタ5000上のRAM19上で管理される。Job名310はJob1でこれから印刷すべきページは1ページ目、ステータスは未印刷という情報を管理する。もちろんこれ以外の情報を管理しても良い。このこれから印刷すべきページが図2の中断箇所情報204として、図3に示す印刷ページ311やステータス312で示されている。なお、図2に示す中断箇所情報204はRAM19に管理される。
【0034】
図3に示す状態313は、2ページ目印刷完了した時点で中断されたJob管理情報の状態を示している。このJob管理情報は図3に示す状態309が遷移したものである。Job名314はJob1でこれから印刷すべきページは3ページ目、ステータスは中断という情報を管理する。もちろんこれ以外の情報を管理しても良い。
【0035】
また、図2に示す中断Job更新Step202は、中断された構造化データ形式のJobの構造部分を修正し、Jobの内部に中断したページ位置を記憶させるStepである。
【0036】
さらに、図2に示すJobステータスの更新205は、図3に示すJobステータス312を図3で示されるようなJobステータス316に遷移させることを示している。なお、302、306はヘッダ部で、構造部分303、307を指示している。また、実施形態に示す構造化文章では、構造部分303、307はページ実体部304,308へのリンクが設定される構成となっている。本実施形態では、ヘッダ部と構造部分とをまとめてヘッダ情報とし、ページ実体部を構成する各ページの情報をページ実体情報とする。
【0037】
また、図2に示す構造部分の操作206で未印刷部分を示すJobに更新というのは、構造化データ形式のJobの構造部分のリンクを手直しすることにより、ページ実体部分はそのまま残した状態で中断された箇所以降を示すJobに変換することを示す。図3に示すJob301は、Job投入時点の状態で、Job305が途中で中断された例を示している。
【0038】
Job301において、構造部分303からページ実体部304へのリンクは全てのページにおいてリンクされているが、Job301が遷移したJob305では、構造部分307からページ実体308へのリンクは、印刷済みのページにおいて切れている。
【0039】
しかし、印刷済みのページ実態はそのまま残しておく。このように構造部分のページリンクを中断したページ以降のみを指し示すように組み替えることにより、データそのものに中断箇所情報を埋め込むことが可能となるのである。
【0040】
図2に示す中断Job再開Step203は中断したJobを再度印刷するStepであり、構造部分を操作したJobを印刷207では、構造化されたJobの構造部分を組み替えて中断箇所以降を指し示すように修正されたJobを印刷する。
【0041】
Job自身が何ページ目から印刷すべきかを記憶しているので、そのまま新規Jobと同じ扱いで再印刷を行うことで、中断箇所以降のページの印刷を行うことが可能となる。
【0042】
図4は、本実施形態を示す画像形成装置で処理されるジョブの構造を説明する図である。
【0043】
図4において、401は一般的な構造化されたJobを示している。Documentsという構造部分と、n.fpageという複数のページ実体を示す部分で構成される。ここで、nはページ番号と一致し、順次カウントアップされてゆく。なお、本発明では、構造部分とページ実体部分を、ページリンクを用いてまとめた構造化文章で構成されたJobについて言及するものであり、構造化された文章であれば、図4に示す例以外にも適用されるのは言うまでもない。
【0044】
402はDocumentsの一例を示している。ここではXML形式の文章でDocumentsを表現しているが、この形式だけに限定されるものではない。
【0045】
ここで、PageContent Sourceで始まる行が各ページ実体へのリンクとなっている。1.fpageから4.fpageまでがページ実体そのものが格納されているファイルである。この図4では合計4ページで構成されるドキュメントを構造化文章の形で示している。
【0046】
図5は、図4に示したDocumentを修正することによりページリンクを切るところを示した図である。
【0047】
図5において、501、502はDocumentで、Document502はページリンクを切るための独自のTagが追加されている。
【0048】
Tag511のPrint status="Done"は、Tag512の/Printと1つの対になっており、Tag513のPrint status="None"はTag514の/Printと1つの対になっている。
【0049】
Tag521とTag522の間にあるPageContent Source行が、印刷済みのページリンクを示しており、Tag523とTag524の間にあるPageContent Source行が未印刷のページリンクを示している。
【0050】
このDocument501の例は、まだ印刷していないDocumentの例である。一方、Document502は、Tag521のPrint status="Done"とTag522の/Printとの間に1.fpageと2.fpageへのリンクが張られているPageContent Source行があるので、1、2ページ目が印刷済みであることを示している。
【0051】
更に、Tag523のPrint status="None"及びTag524の/Printの間には3.fpageと4.fpageへのリンクが張られているPageContent Source行があるので3、4ページ目が未印刷であることを示している。
【0052】
なお、図4に示したDocument402と図5に示すDocument501は全ページに対してリンクが張られているという意味において等価である。
【0053】
また、図4の例においてDocument402をDocument502で置き換えたDocument401を作成すると、そのデータは3ページ以降しか印刷しなくなる。
【0054】
一方、図4の例においてDocument402をDocument501で置き換えたDocument401を作成すると、そのデータは全ページ印刷するように戻すことが可能となる。本実施形態では、いずれの場合でもページ実体部分403〜406はそのまま残し構造部分の操作だけで実現させる。
【0055】
図6は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図5に示したDocumentの修正処理に対応する。なお、S602〜S604は各ステップを示す。図6の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0056】
Job更新からDocumentの更新処理がスタートすると、S602で、CPU12は、印刷したページ実体を示す行をサーチする。具体的には、例えば1,2ページの印刷が完了した時点で、job更新処理が起動されていたならば、その1、2ページにリンクを張っている行を探し出す。
【0057】
なお、ページ実体はn.fpage(nはページ番号)という形で表現されているので、具体的には1.fpageと2.fpageにリンクを貼っている行を見つけることになる。
【0058】
次に、S603で、CPU12は、S602で見つかったページ実体を示す行を印刷済みに変更する。具体的には、図5に示したDocument502において、Tag521のPrint status="Done"とTag522の/Printを1.fpageと2.fpageへのリンク行を包含する形で挿入する。
【0059】
そして、S604で、CPU12は、残りのページ実体を示す行を未印刷に変更して、本処理を終了する。具体的には、Tag523のPrint status="None"及びTag524の/Printを3.fpageと4.fpageへのリンク行を包含する形で挿入する。
【0060】
そして次は605終了となる。
【0061】
以上の処理により、図5に示すDocument502の作成が可能となる。これにより、印刷処理を中断したジョブ状態から、既に印刷済みのページを除いた状態から中断ジョブを再開することができる。
【0062】
図7は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、Document502の形式のDocumentをDocument501の形式のDocumentに戻すに対応する。なお、S607、S608は各ステップを示す。図6の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0063】
まず、S607で、CPU12は、印刷済みのページ実体を示す行をサーチする。具体的には、Document502の内部を検索してPrint status="Done"と/Printの対を探し出す。次に、S608で、CPU12は、見つかったページ実体を示す行を未印刷に変更して、本処理を終了する。このように、CPU12は、ジョブの状態を"Done"の状態を修正前の"None"の状態に復元することができる。
【0064】
具体的には、Print status="Done"と/Printの対の間にはページリンクを示す行を入れないようにして、全てのページリンクを示す行をPrint status="None"と/Printの対の間に入れるように変換する。この操作により、Document502はDocument501に戻すことが可能となる。つまり、Document502はDocument501に戻すことにより、印刷処理を中断する前のジョブ状態に復元して、中断したジョブの印刷を再開することができる。
【0065】
なお、図4に示す例では構造を示すDocumentsにXML文章を採用したので、図5においても未印刷及び印刷済みを示す行に当発明独自のXMLのTagを使った構文を例に挙げて説明した。しかしながら、はじめに述べたとおり、構造部分はXMLに限定されるものではない。
【0066】
従って、当然未印刷及び印刷済みを示す方法はこれに限定されるものではなく、構造部分のフォーマットにしたがった最適な方法で表現することも本発明に含んでいる。以上のことにより、構造部分とページ実体部分をページリンクで接続する構造化文章において、構造部分の操作により印刷済みページへのリンクを切ることにより、未印刷部分のみを印刷するような構造化文章への変換が可能となる。また、ページ実体はそのまま残っているのでページリンクを元に戻すだけで、元の全ページ印刷する構造化文章に戻すことが可能となる。
【0067】
更にこのシステムの特徴として、印刷済みページがどこなのかという情報は構造化文章そのものに記憶されており、他のシステム等は一切必要としていない点にも言及しておく。
【0068】
〔第2実施形態〕
図8、図9は、本実施形態を示す画像形成装置で処理される構造化文章の内部構造を説明する図である。
【0069】
図8において、701は例えば米国Microsoft社が規定しているXPSという構造化されたJobの例を示している。
【0070】
XPS(XML Paper Specification)では、.relsがFixedDocumentSequence.fdseq をリンクし、これが更に FixedDocument.fdocをリンクし、これが更にn.fpageというページ実体部分をリンクする構造をとっている。702はFixedDocumentSequence.fdseqの一例である。この中で、後述するFixedDocument.fdocへのリンクが張られている。703はFixedDocument.fdocの一例である。この中のTag731及びTag732がページ実体へのリンクとなっている。
【0071】
704及び705はページ実体を示している。このページ実体704、705は主にTextやJPEGファイルなどで構成されるがこれだけに限定されるものではない。
【0072】
図9において、801は、例えばXPSという構造化された他のJobの例を示している。XPSは作成するアプリケーションによっては構造部分の作りが異なってくる。この一例では、複数のFixedDocument.fdocがある例を示している。802はFixedDocumentSequence.fdseqの一例である。この中で複数のFixedDocument.fdocへのリンクが張られている。803及び804はFixedDocument.fdocの一例である。この各々の中、Tag831、Tag832、Tag841、Tag842がページ実体へのリンクとなっている。
【0073】
805〜808はページ実体を示している。このページ実体805〜808は、主にTextやJPEGファイルなどで構成されるがこれだけに限定されるものではない。
【0074】
図10は、図8、図9に示したXPSにおけるFixedDocument.fdocの例を示す図である。本例は、修正によって、印刷済みページに対するページリンクを切る例を示している。ここでは全5ページDocumentの中で、1、2ページが印刷済の例として以下に述べる。
【0075】
クライアントコンピュータ4000のアプリケーション又はプリンタドライバがXPS文章を作成した直後のFixedDocument.fdocは、図10に示すFixedDocument.fdoc903もしくはFixedDocument.fdoc904で示した例のような形式をしている。
【0076】
FixedDocument.fdoc903とFixedDocument.fdoc904の違いはFixedDocument.fdoc903の方にはTag931で示したコメント行が入っている。これはXPS文章を作成したドライバやアプリケーションが追加するコメントの例である。
【0077】
一方、FixedDocument.fdoc904にはドライバやアプリケーションが作成したコメントは一切入っていない。
【0078】
図10に示すFixedDocument.fdoc902は1、2ページ目が印刷済みなため、1、2ページ目へのリンクをTag921、922で示したようにコメント化して切ったところを示している。これは、FixedDocument.fdoc904を修正した結果できあがるFixedDocument.fdocであり、この中に存在するコメントはページリンクを切っているTag921、922のコメントのみである。図10に示すFixedDocument.fdoc901は1、2ページ目が印刷済みなため、1、2ページ目へのリンクをTag912、913で示したようにコメント化して切ったところを示している。これは、FixedDocument.fdoc903を修正した結果できあがるFixedDocument.fdocである。Tag912とTag913のコメントの中には、本実施形態で追加したコメントであることを示すC-LBPという文字列が、Tag912、913のコメントの先頭に追加されている。これにより、プリケーションが追加したTag911のコメントと、Tag912とTag913とを区別できるようになっている。なお、C-LBPという文字列はあくまでも一例であり、この文字列に限定するものではない。ここで、C-LBPは、プリンタドライバ等が追加したコメントと識別可能とするためのコメントである。
【0079】
このFixedDocument.fdoc901の中に存在するコメントは、XPS文章を作成したドライバやアプリケーションが追加したTag911のコメントと、本実施形態が追加したTag912、913のコメントである。しかしながら、これらは実施形態がコメント中に追加した文字列により区別することが可能である。以上の様に構造部分へのコメントを操作することにより、印刷済みページに対するページリンクを切り、未印刷部分のみを示すJobへと変換することが可能となる。つまり、一度切り離したリンクを復元することで、ページ実体部を構成する全てのページにリンクを付け加えて、リンクを修正する前の状態に復元することが可能となる。
【0080】
図11は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、Job中のFixedDocument.fdocの修正処理である。また、本処理は、図10に示すFixedDocument.fdoc904、903のいずれの形式にも対応し、更に、図8のようにFixedDocument.fdocが1つだけの場合も図9のようにFixedDocument.fdocが複数ある場合にも対応する。
【0081】
なお、S1002〜S1012は各ステップを示す。図11の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0082】
FixedDocument.fdocの修正処理が開始すると、S1002で、複数のFixedDocument.fdocへのポインタとなる変数Nを「1」に初期化しておく。そして、S1003でNが「1」の場合、まずはじめにJob中にFixedDocument.fdocが有るか否かをCPU12が判断する。ここで、CPU12がJob中にFixedDocument.fdocがあると判断した場合、S1004に進む。一方、S1003で、Job中にFixedDocument.fdocが無いとCPU12が判断した場合は、続いて、Job中にFixedDocument1.fdocがあるか否かをCPU12が判断する。ここで、CPU12がFixedDocument1.fdocがあると判断した場合は、
1004に進む。それでもFixedDocument1.fdocが無いとCPU12が判断した場合は、本処理を終了となる。以降、FixedDocument.fdocやFixedDocumentN.fdoc(Nが1から順にカウントアップされて行く)のことをまとめてFixedDocumentN.fdocと表現する。
【0083】
次に、S1004では、CPU12は、S1003で存在を確認したFixedDocumentN.fdocを開く。そして、S1005で開いたFixedDocumentN.fdocのコメントの存在をCPU12が確認する。このCheckにより、XPS文章を作成したクライアントコンピュータ4000のドライバやアプリケーションが追加したコメントが入っているかいないかの判断を行うことができる。
【0084】
次に、S1006で、FixedDocumentN.fdocのコメントがあったか否かをCPU12が判断する。ここで、コメントが無かったとCPU12が判断した場合は、XPS文章を作成したドライバやアプリケーションが追加したコメントが無いことを意味し、S1007に進む。
【0085】
一方、S1006で、追加したコメントがあるとCPU12が判断した場合には、XPS文章を作成したドライバやアプリケーションが追加したコメントがあることを意味し、S1011に進む。
【0086】
そして、S1007では、印刷済みとなっているn.fpageのある行をCPU12が検索する。ここで、n.fpageのnはページ番号を示しているので、ここの部分による判断で印刷済みのn.fpageのある行の検索が行える。
【0087】
そして、S1008では、検索できたn.fpageのある行にコメントをCPU12が挿入する。例えば図10に示すFixedDocument.fdoc904の形式のFixedDocument.fdocにおいて、2ページまで印刷済みであった場合、1.fpageのある行と2.fpageのある行をコメント化する。その結果として図10に示すFixedDocument.fdoc902におけるTag921、922のような行を作成する。
【0088】
なお、図10に示すFixedDocument.fdoc902におけるTag921、922の例では、1行1行にコメントの開始と終了を埋めているが、複数行まとめて1つのコメント開始と終了でくるんでも良い。本実施形態では、1.fpageと2.fpageのある行をコメント化できれば、その方法は問わない。
【0089】
そして、S1008の結果、FixedDocument.fdocに記述されているコメントは、本実施形態で追加したコメントだけであることが明白となっている。なお、本実施形態で追加したことを示す目印はない。
【0090】
次に、S1009では、CPU12は、コメントを追加・修正したFixedDocument.fdocを、例えば外部メモリ14に保存し、FixedDocument.fdoc をCloseする。
【0091】
そして、S1010では、複数のFixedDocument.fdocへのポインタとなる変数Nを1つカウントアップして、その後、S1003に戻る。
【0092】
一方、S1011では、S1007と同様に印刷済みとなっているn.fpageのある行をCPU12が検索する。ただし、CPU12は、FixedDocument.fdoc内部にXPS文章を作成したドライバやアプリケーションが追加したコメントが入っていることが分かっているので、その範囲を避けて検索を行う。
【0093】
そして、S1012では、S1008と同様に検索できたn.fpageのある行にコメントを挿入する。具体的には、本実施形態で追加するコメントがXPS文章を作成したドライバやアプリケーションが追加したコメントと区別できるように、コメント内部に独自の目印を埋め込んだ形でコメント追加を行う。
【0094】
図10に示すFixedDocument.fdoc903の形式のFixedDocument.fdocにおいて2ページまで印刷済みであった場合、1.fpageのある行と2.fpageのある行をコメント化する。その結果として図10に示すFixedDocument.fdoc901におけるTag912、913のような行を作成する。なお、図10に示したFixedDocument.fdoc901の例では、この目印としてC-LBPという文字列を埋め込んでいるが、本実施形態ではこの文字列に限定されるものではない。
【0095】
そして、コメント挿入後はS1009に進み、コメントを追加・修正したFixedDocument.fdocを保存し、FixedDocument.fdoc をCloseする。
【0096】
この図11に示すS1012の結果、FixedDocument.fdocに記述されているコメントは、本実施形態が追加したコメント(本実施形態が追加したことを示す目印あり)とXPS文章を作成したドライバやアプリケーションが追加したコメントが入っていることが明白となっている。
【0097】
以上の操作により、FixedDocument.fdocにページリンクを切るコメントを追加することができる。
【0098】
また、この手順では、構造部が複数のFixedDocument.fdocで構成される場合や、XPS文章を作成したドライバやアプリケーションがコメントを追加している場合にも対応することができる。
【0099】
図12は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図11に示す処理により印刷済ページへのページリンクが切られたFixedDocument.fdocを回復して、元の全ページ印刷するJobに戻す処理である。なお、S1102〜S1110は各ステップを示す。図12の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。また、本処理は、図10のFixedDocument.fdoc901、902いずれの形式にも対応し、更に、図8のようにFixedDocument.fdocが1つだけの場合も図9のようにFixedDocument.fdocが複数ある場合にも対応する。
【0100】
FixedDocument.fdoc更新処理(回復処理)がスタートすると、S1102で、CPU12は、複数のFixedDocument.fdocへのポインタとなる変数N(RAM2に保持される)を「1」に初期化する。
【0101】
次に、S1103で、変数Nが「1」の場合、まずはじめにFixedDocument.fdocが有るか否かをCPU12が判断する。ここで、CPU12がFixedDocument.fdocがあると判断した場合、S1104に進む。また、CPU12がFixedDocument.fdocが無いと判断した場合は、続いて、CPU12はFixedDocument1.fdocがあるか否かを判断する(図示しない)。ここで、FixedDocument1.fdocがあるとCPU12が判断した場合は、S1104に進み、それでも無いと判断した場合は、本処理を終了する。以降、FixedDocument.fdocやFixedDocumentN.fdoc(Nが1から順にカウントアップされて行く)のことをまとめてFixedDocumentN.fdocと表現する。
【0102】
次に、S1104で、CPU12は、S1103で存在を確認したFixedDocumentN.fdocを開く。次に、S1105で、CPU12は、開いたFixedDocumentN.fdocのコメントの中身をサーチする。具体的には、本実施形態で追加したコメントがあるか無いかをサーチする。このCheckにより、XPS文章を作成したドライバやアプリケーションが追加したコメントが混在しているのかいないのかの判断を行うことができる。
【0103】
次に、S1106でコメントサーチの結果、本実施形態で追加したコメントがあるか無いかをCPU12が判断する。ここで、CPU12が追加したコメントが無いと判断した場合には、S1107に進み、追加したコメントが有ると判断した場合にはS1110に進む。
【0104】
そして、S1107で、CPU12は、FixedDocument.fdoc内部の全てのコメントを解除して、コメントで囲まれていた場所を再び有効な記述に戻す処理を行う。
【0105】
なお、S1107に処理が移った時点で、FixedDocument.fdoc内部にあるコメントは全て本実施形態で追加したコメントであることが明白である。なお、このコメントには本実施形態で示した追加したことを示す目印はない。したがって、全てのコメントを解除すると全ページのドキュメントを印刷する構造に戻すことができることも明白である。
【0106】
よって、ここでは全てのコメントを解除し、コメントで囲まれていた場所を再び有効な記述に戻す処理を行う。
【0107】
そして、S1108で、CPU12は、修正処理の終わったFixedDocument.fdocを保存してCloseする処理を行う。次に、S1109では複数のFixedDocument.fdocへのポインタとなる変数Nを1つカウントアップして、その後、S1103に戻る。
【0108】
一方、S1110では、S1107と同様に、CPU12がFixedDocument.fdoc内部のコメントを解除するが、対象は本実施形態で追加したことを示す目印のついているコメントだけを解除する。
【0109】
なお、S1110に処理が移った時点で、FixedDocument.fdoc内部にあるコメントには本実施形態で追加したコメントとXPS文章を作成したドライバやアプリケーションが追加したコメントが混在していることが明白である。つまり、本実施形態で追加したことを示す目印を含むコメント行が存在している。
【0110】
したがって、全てのコメントを解除してしまうと、XPS文章を作成したドライバやアプリケーションが追加したコメントも解除することになってしまい、予期せぬ事態をもたらす可能性がある。
【0111】
そこで、この場合には本実施形態で追加したことを示す目印を含むコメントだけを解除して、コメントで囲まれていた場所を再び有効な記述に戻す処理を行う。この処理により、ページリンクを切っていたコメントだけ解除することができ、結果として全ページのドキュメントを印刷する構造に戻すことができる。以上の処理により、印刷済ページへのページリンクが切られたFixedDocument.fdocを回復して、元の全ページ印刷するJobに戻すことが可能となる。
【0112】
また、この手順では、複数のFixedDocument.fdocで構成される場合や、XPS文章を作成したドライバやアプリケーションがコメントを追加する場合にも対応することができる。
【0113】
以上のことにより、構造部分とページ実体部分をページリンクで接続する構造化されたXPS文章において、構造部分の操作により印刷済みページへのリンクを切ることにより、未印刷部分のみを印刷するような構造化文章への変換が可能となる。
【0114】
また、ページ実体はそのまま残っているのでページリンクを元に戻すだけで、元の全ページ印刷を行う構造化されたXPS文章に戻すことが可能となる。
【0115】
更にこのシステムの特徴として、印刷済みページがどこなのかという情報は構造化文章そのものに記憶されており、他のシステム等は一切必要としていない点にも言及しておく。
【0116】
また、第2実施形態は、第1実施形態のように独自Tagの追加など行わず、構造部分にコメントの追加・削除を行うことで構造部分を操作している。従って、第2実施形態で作成されたXPS文章はXPSの文法に準拠しているという点についても言及しておく。
【0117】
〔第3実施形態〕
図13は、本実施形態を示す画像形成装置で処理されるXPSにおけるFixedDocument.fdocの例を示す図である。本例は、後述するFixedDocumentSequence.fdseqの修正と一緒に行うことによって、印刷済みページに対するページリンクを切る例を示している。ここでは全5ページDocumentの中で、1、2ページが印刷済の例として以下に述べる。
【0118】
XPS文章を作成した直後のFixedDocument.fdocは、図13に示すFixedDocument.fdoc953もしくはFixedDocument.fdoc954で示した例のような形式をしている。
【0119】
FixedDocument.fdoc953とFixedDocument.fdoc954の違いはFixedDocument.fdoc953の方にはコメント行956が入っている。これはXPS文章を作成したドライバやアプリケーションが追加するコメントの例である。
【0120】
一方、FixedDocument.fdoc954にはドライバやアプリケーションが作成したコメントは一切入っていない。
【0121】
952はオリジナルのFixedDocument.fdocをコピーしたFixedDocument_add.fdocを修正した結果を表している。本例は、1、2ページ目が印刷済みな為、1、2ページ目へのリンク行を全て削除してリンクを切っている状態に対応する。951はオリジナルのFixedDocument.fdocをコピーしたFixedDocument_add.fdocを修正した結果を表している。本例は、1、2ページ目が印刷済みな為、1、2ページ目へのリンク行を全て削除してリンクを切っている状態に対応する。修正した結果952との違いは、唯一コメント行955が入っている点である。これはXPS文章を作成したドライバやアプリケーションが追加したコメントの例である。
【0122】
図14は、本実施形態を示す画像形成装置で処理されるXPSにおけるFixedDocumentSequence.fdseqの例を示す図である。本例は、先に説明したFixedDocument.fdocの修正と一緒に修正することによって、印刷済みページに対するページリンクを切る例を示している。
【0123】
図14において、XPS文章を作成した直後のFixedDocumentSequence.fdseqは、FixedDocumentSequence.fdseq964もしくはFixedDocumentSequence.fdseq963で示した例のような形式をしている。
【0124】
FixedDocumentSequence.fdseq964とFixedDocumentSequence.fdseq963の違いはFixedDocumentSequence.fdseq963の方にはコメント行970が入っている。これはXPS文章を作成したドライバやアプリケーションが追加するコメントの例である。一方、FixedDocumentSequence.fdseq964にはドライバやアプリケーションが作成したコメントは一切入っていない。
【0125】
FixedDocumentSequence.fdseq962はオリジナルのFixedDocument.fdocへのリンク(Tag968参照)をコメントにして、そのコピーであるFixedDocument_add.fdocへのリンクを追加している(Tag969参照)。
【0126】
先に説明したようにオリジナルのFixedDocument.fdocのコピーのFixedDocument_add.fdocの中身は印刷済みページへのリンクが削除されている。したがって、このような構造部分の修正により印刷済ページへのリンクを切ることが可能となる。
【0127】
FixedDocumentSequence.fdseq961はオリジナルのFixedDocument.fdocへのリンク(Tag966参照)をコメントにして、そのコピーであるFixedDocument_add.fdocへのリンクを追加している(Tag967参照)。
【0128】
FixedDocumentSequence.fdseq962との違いはコメント行965が入っている点である。これはXPS文章を作成したドライバやアプリケーションが追加するコメントの例である。
【0129】
コメント行966では、本実施形態で追加したことを示す目印となる文字列はコメント中に入っていない。これは、元に戻す際に、FixedDocument_add.fdoc 行を削除し、FixedDocument.fdoc行を戻すように処理すればよいためで、つまりは.fdoc行のファイル名で判別(_addが追加されているか否かにより)できるからである。
【0130】
図15は、図13、図14に示したXPS構成をまとめたXPS文章980の構造を示す図である。本例は、図14に示すFixedDocumentSequence.fdseqが新規に追加した図13に示すixedDocument_add.fdocをリンクしてオリジナルのFixedDocument.fdocへのリンクは消えた状態である。
【0131】
各ページ実体はFixedDocument_add.fdocから印刷済ページを除いた分がリンクされており、FixedDocument.fdocからは全項リンクされている。この状態の構造化文章を印刷すると、印刷済ページを除いた分が印刷されることになる。本構造の内部では、FixedDocument.fdocからページ実体へのリンクは残っているが、FixedDocument.fdocに対する上位階層からのリンクが無いので、こちらは有効にはならない。この状態の構造化文章を全項印刷Jobに変換するには、FixedDocumentSequence.fdseqにおいてFixedDocument.fdocへのリンクを復活させ、代わりにFixedDocument_add.fdocへのリンクを切ればよい。
【0132】
図16は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、FixedDocumentSequence.fdseqの更新と、FixedDocument.fdocの複製処理である。また、本処理は、図8に示した701の形式(FixedDocument.fdocが1つだけ)にも図9に示した801の形式(FixedDocument.fdocが複数)にも対応する。なお、S1022〜S1028は各ステップを示す。図16の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0133】
Job更新処理が開始されると、S1022で、CPU12はFixedDocumentSequence.fdseqを開く。そして、S1023で、CPU12は、FixedDocumentSequence.fdseqの内部を検索し、FixedDocument.fdocを順次見つけ出す。なお、最初はFixedDocument.fdocを検索し、次いで、FixedDocument1.fdoc、FixedDocument2.fdoc という具合にFixedDocumentN.fdoc(Nが1から順にカウントアップ) を検索して行く。以降FixedDocumentN.fdocと表現する。
【0134】
次に、S1024で検索対象のFixedDocumentN.fdocがあったか否かをCPU12が判断する。ここで、CPU12があると判断した場合は、S1025に進み、無いと判断した場合は、S1026に進む。
【0135】
そして、S1025では、CPU12は、見つけたFixedDocumentN.fdocを複製してFixedDocumentN_add.fdocという名称で作成して、S1023へ戻る。
【0136】
なお、ファイル名に付け足した_addは複製されたFixedDocumentN.fdocであることを示すものである。本実施形態は、複製されたFixedDocumentN.fdocの識別の為に追加する名称を_addだけに限定するものではなく、名称で区別できるようになっていれば、これ以外の文字列が採用可能であることはいうまでもない。
【0137】
次に、S1026では、CPU12は、FixedDocumentSequence.fdseq内にあるFixedDocumentN.fdocをリンクしている行をコメント化してリンクを切る作業を行う。これでオリジナルの全項印刷へのリンクである、FixedDocumentN.fdocへのリンクが切れることになる。
【0138】
そして、S1027では、CPU12は、新規に複製したFixedDocumentN_add.fdocへのリンクを追加する作業を行う。これで、印刷を中断箇所以降の文章へのリンクであるFixedDocumentN_add.fdocへのリンクが新たに追加されることになる。
【0139】
その後、S1028で、CPU12は、追加処理の終わったFixedDocumentSequence.fdseqを保存してCloseする処理を行い、本処理を終了する。
【0140】
図17は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、オリジナルのFixedDocumentN.fdocを複製して作成されたFixedDocumentN_add.fdocの修正処理である。
【0141】
また、本処理は、図13に示したFixedDocument.fdoc954、953いずれの形式にも対応し、更に、図8のようにFixedDocument.fdocが1つだけの場合も図9のようにFixedDocument.fdocが複数ある場合にも対応する。なお、S1032〜S1042は各ステップを示す。図16の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0142】
FixedDocumentN_add.fdoc修正処理がスタートすると、S1032で、CPU12は複数のFixedDocumentN_add.fdocへのポインタとなる変数Nを「1」に初期化する。次に、S1033で、Nが「1」の場合まずはじめにFixedDocument_add.fdocが有るか否かをCPU12が判断する。ここで、CPU12があると判断した場合、S1034に進み、無いと判断した場合は、続いてFixedDocument1_add.fdocがあるか否かをCPU12が判断する(図示しない)。そして、FixedDocument1_add.fdocがあるとCPU12が判断した場合、S1034に進み、それでも無いとCPU12が場合は、本処理を終了する。以降、FixedDocument_add.fdocやFixedDocumentN_add.fdoc(Nが1から順にカウントアップされて行く)のことをまとめてFixedDocumentN_add.fdocと表現する。
【0143】
次に、S1034では、CPU12は、S1033で存在を確認したFixedDocumentN_add.fdocを開く。そして、S1035で、CPU12は、開いたFixedDocumentN_add.fdocのコメント行の存在を確認する。このCheckにより、XPS文章を作成したドライバやアプリケーションが追加したコメントが入っているかいないかの判断を行うことができる。
【0144】
そして、S1036で、コメントがあったか否かをCPU12が判断する。ここで、コメントが無いとCPU12が判断した場合は、XPS文章を作成したドライバやアプリケーションが追加したコメントが無いことを意味し、S1037に進む。
【0145】
一方、S1036で、コメントがあるとCPU12が判断した場合には、XPS文章を作成したドライバやアプリケーションが追加したコメントがあることを意味し、S1041に進む。
【0146】
そして、S1037では、CPU12は、印刷済みとなっているn.fpageのある行を検索する。ここで、n.fpageのnはページ番号を示しているので、ここの部分による判断で印刷済みのn.fpageのある行の検索が行える。
【0147】
そして、S1038で、CPU12は、検索できたn.fpageのある行を削除する。
【0148】
図13に示すFixedDocument.fdoc954の形式のFixedDocumentN_add.fdocにおいて2ページまで印刷済みであった場合、1.fpageのある行と2.fpageのある行を削除する。その結果として図13に示すFixedDocument_add.fdoc952のようなFixedDocumentN_add.fdocを作成する。
【0149】
そして、S1039では、CPU12は、n.fpageへのリンクを削除したFixedDocumentN_add.fdocを保存しCloseする。そして、S1040で、CPU12は、複数のFixedDocumentN_add.fdocへのポインタとなる変数Nを1つカウントアップして、その後、S1033に戻る。
【0150】
一方、S1041では、CPU12がS1037と同様に印刷済みとなっているn.fpageのある行を検索するが、FixedDocumentN_add.fdoc内部にXPS文章を作成したドライバやアプリケーションが追加したコメントが入っていることが分かっているので、その範囲を避けて検索を行う。
【0151】
そして、S1042では、S1038と同様に検索できたn.fpageのある行を削除して、S1039へ進む。これにより、図13に示すFixedDocument.fdoc953の形式のFixedDocumentN_add.fdocにおいて2ページまで印刷済みであった場合、1.fpageのある行と2.fpageのある行を削除する。
【0152】
その結果として図13のFixedDocumentN_add.fdoc951ようなFixedDocumentN_add.fdocを作成する。なお、FixedDocumentN_add.fdocに元々あったコメント行956はそのままコメント行955として残っている。以上の操作により、オリジナルのFixedDocument.fdocをそのまま残し、そのコピーであるFixedDocument_add.fdocを印刷済みページへのリンクを切るように構成することができる。
【0153】
その上で、FixedDocumentSequence.fdseqからのリンクをオリジナルのFixedDocument.fdocから切り離し、そのコピーであるFixedDocument_add.fdocへ切り替えることにより、未印刷部分のみを印刷するような構造化文章への変換が可能となる。
【0154】
また、この手順では、構造部が複数のFixedDocument.fdocで構成される場合や、XPS文章を作成したドライバやアプリケーションがコメントを追加している場合にも対応することができる。
【0155】
図18は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図15、図16の操作により印刷済ページへのページリンクが切られたFixedDocumentSequence.fdseqを回復して、元の全ページ印刷するJobに戻す処理である。
【0156】
また、本処理は、図14に示すFixedDocumentSequence.fdseq961、962いずれの形式にも対応する。なお、S1122〜S1125は各ステップを示す。図18の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0157】
FixedDocumentSequence.fdseq更新処理(回復処理)がスタートすると、S1122で、CPU12は、FixedDocumentSequence.fdseqを開く。そして、S1123で、CPU12は、FixedDocumentSequence.fdseq内のFixedDocument_add.fdocへのリンクをはっている行を削除する。これで、印刷を中断した箇所以降を示すJob構成になっている構造部分へのリンクが切れたことになる。なお、ここでは、中断箇所以降を示すJob構成へのリンクがFixedDocument_add.fdocとなっておりオリジナルのリンクに _add が追加された形になっているが、本実施形態では、この文字列に限定するものではない。
【0158】
次に、S1124で、CPU12は、FixedDocumentSequence.fdseq内でオリジナルのFixedDocumentN.fdocへのコメントを削除して、リンクを復活させる。
【0159】
これで、オリジナルの全文印刷を行うFixedDocumentN.fdocへのリンクが復活したことになる。
【0160】
そして、S1125で、FixedDocumentSequence.fdseqを保存してCloseし、本処理が終了する。以上の処理により、印刷済ページへのページリンクが切られたFixedDocumentSequence.fdseqを回復して、元の全ページ印刷するJobに戻すことが可能となる。また、この手順では、XPS文章を作成したドライバやアプリケーションがコメントを追加している場合にも対応することができる。
【0161】
以上のことにより、構造部分とページ実体部分をページリンクで接続する構造化されたXPS文章において、構造部分の操作により印刷済みページへのリンクを切ることにより、未印刷部分のみを印刷するような構造化文章への変換が可能となる。
【0162】
また、ページ実体はそのまま残っているのでページリンクを元に戻すだけで、元の全ページ印刷を行う構造化されたXPS文章に戻すことが可能となる。
【0163】
更にこのシステムの特徴として、印刷済みページがどこなのかという情報は構造化文章そのものに記憶されており、他のシステム等は一切必要としていない点にも言及しておく。
【0164】
また、この第3実施形態は、第1実施形態のように独自Tagの追加など行わず、構造部分へのコメントの追加・削除や、リンクの削除を行うことで構造部分を操作している。
【0165】
従って、この第3実施形態で作成されたXPS文章はXPSの文法に準拠しているという点についても言及しておく。
【0166】
図19は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、構造化されていない文章の構造化処理である。
【0167】
本実施形態では、クライアントコンピュータ4000からPCLやPostScriptといった構造化されていないJobがプリンタ5000に投入された場合は、そのJobを構造化Jobに変換してから処理を行う。なお、S1202〜S1205は各ステップを示す。図19の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0168】
Jobの中断が開始されると、S1202で、CPU12は、Jobの中断処理を行い、Jobを停止する。
【0169】
そして、S1203で、そのJobが構造化文章となっているか否かをJobのヘッダ等でCPU12が判断する。ここで、PCLやPostScript、XPSなどは、Jobの先頭数バイトを確認すれば、どれなのかの判断が行うことが可能である。ここで、扱うJobが、PCLやPostScript等で構造化文章でないとCPU12が判断した場合は、S1204に進み、構造化文章であるとCPU12が判断した場合には、S1205に進む。
【0170】
そして、S1204では、CPU12は、中断したJobを構造化文章に変換する処理を行う。具体的には、各ページのページ実体を、図4に示したページ実体部分403〜406で示したように1つのファイル化する。このファイルの内部にはTextやJPEGなどの画像情報が含まれるが、これ以外の要素が含まれていても良い。
【0171】
その各ページ実体を、図4に示したようなリンク構造で構成される構造部分402を作成し、全体をZipなどのアーカイブツールにて一つにまとめて構造化文章を作成する。ここで、Zipとは、フィル・カッツが考案および開発したデータ圧縮形式およびファイルフォーマットである。
【0172】
そして、S1205で、図3に示すステータス312をステータス316に変換するような、Jobステータスの更新処理を行い、本処理を終了する。
【0173】
以上の処理により、クライアントコンピュータ4000からPCLやPostScriptといった構造化されていないJobがプリンタ5000に投入された場合でも、XPSのような構造化文章と同一の処理に乗せることが可能となる。もちろんJobが初めからXPSのような構造化文章で投入された場合には、この変換処理は不要となる。
【0174】
〔第4実施形態〕
ここでは、図1に示したプリンタ5000の操作部22に表示されるユーザインタフェースを通して、全体の処理を説明する。
【0175】
図20〜図23は、図1に示した操作部22に表示されるユーザインタフェースの一例を示す図である。本例は、上述したエラーや割り込みJobによって中断等の要因で印刷を中断したジョブに対する印刷再開指示画面の一例である。なお、操作部22は、タッチパネルを備え、後述するボタンを指示することが可能に構成されている。もちらん、本発明はタッチパネルを採用したシステムに限定されるものではない。
【0176】
図20において、1301は印刷再開画面で、プリンタ5000の操作部22に表示される。印刷再開画面1301は、Jobがエラーや割り込みJobによって中断された後の画面を示している。1302、1303はボタンで、ボタン1302は継続印刷を指示するボタンとして機能し、ボタン1303は全項再印刷を指示するボタンとして機能する。
【0177】
本実施形態では、エラー状態の解消や割り込み印刷により優先的に印刷していたJobの終了により、中断状態が解除されると、中断していたJobの再開が始まる。この印刷再開画面1301は、Jobの再開時に中断箇所から、継続して印刷するか初めから全項印刷するかのいずれであるかをユーザが選択するボタン1302、1303で決定する。つまり、このように、CPU12は、ジョブの状態を中断状態あるいは中断前の状態から印刷する指示をユーザが選択することができる。
【0178】
ここで、ボタン1302がユーザの操作で選択され、さらに、OKを示すボタン1305が押されると、図10に示したFixedDocumen.fdoc901やFixedDocumen.fdoc902のような構造をもった構造化文章をそのまま印刷することにより、中断箇所からの印刷を再開する。
【0179】
一方、ボタン1303がユーザの操作により選択され、ボタン1305が押されると、図12に示す処理を起動して、図10に示したFixedDocumen.fdoc901やFixedDocumen.fdoc902のような構造をもった構造化文章を、図10に示したFixedDocumen.fdoc903やFixedDocumen.fdoc904のような構造をもった構造化文章に変換した後印刷を行い、全項印刷を行う。
【0180】
一方、戻るを示すボタン1304をユーザが押すと、印刷再開画面1301が表示される前の画面(不図示)に処理が戻る。以下の画面において、戻るとOKの機能はこれと同様である。
【0181】
図21は、上記図20に示した印刷再開画面に対して、同時に、出力先を選択できるようにした印刷再開画面1401の一例である。なお、ボタン1402、1403は、ボタン1302、1303と同じ機能を指示するボタンである。
【0182】
図21において、ボタン1404を選択して、OKを示すボタン1407が押されると、印刷再開画面1401を表示しているデバイスで、印刷再開を行う。
【0183】
一方、ボタン1405をユーザが選択して、ボタン1407が押されると、次に図23に示す他デバイス選択画面1601を操作部22に表示して、印刷再開画面1401を表示しているデバイス以外の他のデバイスにそのJobを転送することを指示する。なお、ボタン1406は、ボタン1304と同じ戻るを指示するボタンである。
【0184】
図22は、図21に示した印刷再開画面1401を拡張した印刷再開画面1501であり、図21に示した出力先としてデバイスに付属のメモリカードへの出力が選択できるようにしたボタン1506を備える画面例である。なお、デバイス付属のメモリカードは、図1に示した外部メモリ14として示されている。また、ボタン1502,1503は、ボタン1302,1303と同じ機能を指示するボタンである。また、ボタン1504、1505は、図21に示すボタン1404、1405と同じ機能を指示するボタンである。さらに、ボタン1507は、図20に示すボタン1304と同じ機能を指示するボタンである。ボタン1508は、図20に示すボタン1305と同じ機能を指示するボタンである。
【0185】
図22に示すボタン1506を選択して、ボタン1508が押されると、図25に示すメモリカード選択画面1801を操作部22に表示して、複数備えるメモリカードデバイスのうち出力対象となるデバイスの選択を行う。
【0186】
図23は、他デバイス選択画面1601の一例であり、図21に示したボタン1405を選択した後で、操作部22に表示される画面の一例である。
【0187】
本実施形態では、ネットワーク環境からデータを転送可能なデバイスを検索して、そのデバイス名称とIPアドレスを一覧1602として表示する。
【0188】
この一覧1602から他のデバイスを選択することも可能であるし、一覧1602に表示されないデバイスに出力したい場合、ボタン1603をユーザが選択した後、ボタン1605を押す。これにより、図24に示すIPアドレス入力画面1701が操作部22に表示され、IPアドレスをユーザが直接入力することが可能となる。ボタン1604は、図20に示すボタン1304と同じ機能を指示するボタンである。
【0189】
図24に示すIPアドレス入力画面1701では、入力部1702にIPアドレスを、操作部22のキーをユーザが操作して直接設定して、ボタン1704を押すことですることで、IPアドレスの直接入力が可能に構成されている。ボタン1703は、、図20に示すボタン1304と同じ機能を指示するボタンである。
【0190】
図25は、図22に示したボタン1506をユーザが選択して、ボタン1508を押した後に、操作部22に表示される画面の一例である。ここでは、その時点で使用可能なメモリカードが選択可能である。ここに表示されているメモリカードは一例であって、ここに表示されているメモリカードに限定されるものではない。ボタン1803は、メモリカードとして、CFカードを選択する場合に押下される。ボタン1802は、メモリカードとして、SDカードを選択する場合に押下される。ボタン1804は、メモリカードとして、メモリスティックを選択する場合に押下される。ボタン1805は、メモリカードとして、スマートカードを選択する場合に押下される。ボタン1806は、メモリカードとして、USBメモリを選択する場合に押下される。
【0191】
例えばボタン1806を選択して、ボタン1808を押すと、USBメモリに対してXPSに代表される構造化されたJobが出力される。なお、USBメモリは、図示しない外部入力インタフェースに着脱可能に構成されている。ボタン1807は、ボタン1304と同じ機能を指示するボタンである。
【0192】
以上の画面処理により、中断した箇所から再印刷する場合や最初から全項再印刷という選択が可能となり、また、中断Jobを別の印刷機に転送したり、外部メモリに出力したりすることが可能となる。
【0193】
〔第5実施形態〕
ここでは、中断Jobを、図21に示したボタン1405などで他のデバイスに転送する時に、その転送されるJobの受け側のデバイスにも本実施形態に示す機能が搭載されている場合の例を説明する。
【0194】
図26は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、中断Jobを受信した側でPrintTicketを調査し、その結果全項印刷Jobとして扱う必要があると判断した場合に表示されるJob印刷画面の一例である。
【0195】
図26において、2101は、中断Jobを受信した側でPrintTicketを調査し、その結果全項印刷Jobとして扱う必要があると判断した場合に表示される画面の例である。この判断処理は、図27に示すフローチャートを参照して、詳細に説明する。
【0196】
例えばJobにStaple指定などがなされていた場合、中断した先行印刷しているJobのStaple状態も中途半端であるし、途中から再開印刷するJobのStaple状態も中途半端になる可能性が非常に高い。このような場合、全項印刷に切り替えて最初から印刷したほうが好ましい結果が得られる可能性が高い。
【0197】
そこで、図26に示すJob印刷画面では、理由2102に示すように、全項印刷に切り替えたほうが好ましい理由が表示される。本例は、「Staple指定あり」がその理由である。
【0198】
ボタン2103をユーザの操作で選択すると、好ましくはないのを承知で中断箇所から印刷再開し、ボタン2104を選択すると、より好ましい先頭からの全項印刷を行うことを指示する。ボタン2105は、図20に示すボタン1304と同じ機能を指示するボタンである。ボタン2106は、ボタン1305と同じ機能を指示するボタンである。
【0199】
図27は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、中断Jobを受信した側でPrintTicketを調査し、その結果全項印刷Jobとして扱う必要があるかどうかを判断する処理である。なお、S2302〜S2308は各ステップを示す。図27の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0200】
Print Ticket調査処理を開始すると、S2302で、CPU12は、構造化文章に付随するPrint Ticket(不図示)をRAM19上に読み込む。同時に、CPU12は中断判断フラグを初期化する。これにより、中断判断フラグがOFF状態となる。
【0201】
次に、S2303で、CPU12は、Print Ticketを確認し、全項印刷に切り替えたほうが好ましい結果が得られ得る属性が設定されているか否か確認する。例えばStaple属性、Collate属性、両面印刷属性、など途中で印刷を中断してしまうとつじつまが合わなくなる属性がこれに該当する。本実施形態では、そのような属性を予め決めておき、それをROM13、RAM19、もしくは外部メモリ14上に設定しておくことで、確認処理を実行する。
【0202】
ここで、全項印刷に切り替えたほうが好ましい結果が得られうる属性が設定されているとCPU12が判断した場合には、S2304に進み、そうでないとCPU12が判断した場合には、S2308に進む。
【0203】
そして、S2304では、全項印刷に切り替えるか否かの判断を、図26に示すJob印刷画面2101を操作部22に表示することによりユーザに問い合わせて、その結果をCPU12が判断する。
【0204】
なお、ユーザに問い合わせることは、本実施形態において必須ではなく、自動的に継続印刷の処理を行っても良いし、自動的に全項印刷の処理を行っても良い。
【0205】
ここで、CPU12が切り替えると判断した場合には、S2305に進み、切り替えないと判断した場合には、S2306に進む。
【0206】
そして、S2305では、図12に示した処理を行い、図13に示したFixedDocument.fdoc901やFixedDocument.fdoc902の形式であった、FixedDocument.fdocをFixedDocument.fdoc903やFixedDocument.fdoc904の形式に変換する。これにより、印刷Jobを全項印刷Jobに変換することができる。もしくは図18に示す処理を行い、図14に示すFixedDocumentSequence.fdseq961やFixedDocumentSequence.fdseq962の形式であった、FixedDocumentSequence.fdseqをFixedDocumentSequence.fdseq963やFixedDocumentSequence.fdseq964の形式に変換する。これにより、印刷Jobを全項印刷Jobに変換することができる。
【0207】
一方、S2308では、CPU12は、中断調査フラグをONにして、後ほど受信Jobが中断Jobなのか否かの判断処理を起動するための判断材料をセットして、S2306へ進む。
【0208】
次に、S2306では、Print Ticket(PT)上にデバイス能力に不適合な属性があるか否かの確認をCPU12が行う。例えばJobを転送する側がA3印刷可能なデバイスで、Jobを受けた側がA4までしか印刷可能でない場合、用紙サイズがデバイス能力に不適合な属性となりこれの変更が必要となる。
【0209】
また、Jobを転送する側が両面印刷可能で、Jobを受信する側が両面印刷できない場合は印刷方法(片面、両面)がデバイス能力に不適合となり、これの変更が必要となる。これらの属性は一例であって、これだけに限定されるものではない。
【0210】
ここで、デバイス能力に不適合な属性が有るとCPU12が判断した場合にはS2307に進み、無いと判断した場合には、本処理を終了となる。
【0211】
そして、S2307では、図28に示すJob印刷画面2001を操作部22に表示して、不適合な属性を表示し、ユーザにその変更を求める。そして、変更結果はPrint Ticket(PT)に反映させ、印刷処理を続行する。
【0212】
この後に中断処理フラグの判断をCPU12が行い、中断処理フラグがONであるとCPU12が判断した場合には、図29に示すJob調査処理に移り、そうでないとCPU12が判断した場合には、本処理を終了する。
【0213】
なお、図28に示すJob印刷画面2001は、Jobを受信した側でJob属性を修正する必要がある場合に、操作部22に表示される。例えばJobを送信する側がA3印刷可能なデバイスで、Jobを受けた側がA4までしか印刷可能でない場合、用紙サイズの変更が必要となる。
【0214】
また、Jobを送信する側が両面印刷可能で、Jobを受信する側が両面印刷できない場合はこれも両面印刷属性の変更が必要となる。これらの属性は一例であって、これだけに限定されるものではない。
【0215】
図28において、2002は用紙サイズ選択部で、用紙サイズの変更可能な候補が表示され、印刷方法選択部2003には、両面印刷が片面印刷に変更する必要があることが表示される。ボタン2004は、図20に示すボタン1304と同じ機能を指示するボタンである。ボタン2005は、ボタン1305と同じ機能を指示するボタンである。
【0216】
図29は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、本実施形態に示す機能がJobの受信側にあった場合に、その受信側で受信したJobをどのように扱った中断Jobであるか否かの判断する処理である。なお、S2202〜S2218は各ステップを示す。図29の各ステップを実行するプログラムはROM13に格納されており、RAM19を使ってCPU12により実行される。別の方法としては、外部メモリ14上に格納し、RAM19上に展開して実行しても良い。
【0217】
Job調査が開始されると、S2202で、CPU12は、FixedDocumentSequence.fdseqを開く。次に、S2203でFixedDocumentSequence.fdseqの内部にFixedDocument_add.fdocという形式の複製されたFixedDocument.fdocがあるか否かCPU12が判断する。ここで、FixedDocument_add.fdocという形式の複製されたFixedDocument.fdocがあるとCPU12が判断した場合は、図14に示した形式で中断箇所を記録したXPS文章であるということが判断できるので、S2217に進む。そして、S2217で、CPU12は、受信Jobは中断Jobであると判断した後、S2218に進み、FixedDocumentSequence.fdseqをColseして、本処理が終了する。
【0218】
なお、ここでは FixedDocument.fdocのファイル名の内部に_addが有るか否かで判断を行ったが、本実施形態ではこの文字列だけに限定するものではない。
【0219】
一方、S2203で、FixedDocument_add.fdocという形式の複製されたFixedDocument.fdocが無いとCPU12が判断した場合は、継続調査の為、S2204に進み、CPU12は、FixedDocumentSequence.fdseqをColseして、S2205に進む。
【0220】
そして、S2205で、CPU12は、複数のFixedDocument.fdocへのポインタとなる変数Nを1に初期化する。そして、S2206で、Nが1の場合まずはじめにFixedDocument.fdocが有るか否かCPU12が判断する。ここで、FixedDocument.fdocがあるとCPU12が判断した場合、S2207に進む。一方、S2206で、FixedDocument.fdocが無いとCPU12が判断した場合は、続いてFixedDocument1.fdocがあるか否かをCPU12が判断する(図示しない)。ここで、FixedDocument1.fdocがあるとCPU12が判断した場合は、S2207に進み(図示しない)、それでも無いとCPU12が判断した場合は、S2216へ進み、受信したJobは中断JobではないとCPU12が判断して、本処理を終了する。以降、FixedDocument.fdocやFixedDocumentN.fdoc(Nが1から順にカウントアップされて行く)のことをまとめてFixedDocumentN.fdocと表現する。
【0221】
次に、S2207では、CPU12は、S2206で存在を確認したFixedDocumentN.fdocを開く。そして、S2208で、CPU12は、開いたFixedDocumentN.fdocのコメント行の中身をサーチする。具体的には当発明が追加したコメントがあるか無いかをサーチする。
【0222】
そして、S2209で、コメント行のサーチの結果、本実施形態で追加したコメント(本実施形態で追加したということを示す目印のついたコメント)があるか無いかをCPU12が判断する。ここで、目印つきのコメントが無いとCPU12が判断した場合には、S2210に進み、目印つきのコメントが有るとCPU12が判断した場合には、S2214に進む。
【0223】
そして、S2210で、CPU12は、コメント行があるか無いかを判断する。ここで、コメント行が無いとCPU12が判断した場合には、S2211に進み、コメント行がある場合には、S2213に進む。
【0224】
これはこのS2210に処理が移った時点で、残されている可能性として、XPS文章を作成したドライバやアプリケーションが追加したコメントが入っている場合と、本実施形態でコメントを追加したがそれが、追加したという目印なしの場合のいずれかになるためである。
【0225】
そして、S2213では、コメントがn.fpageをコメントしているか否かの判断をCPU12が行う。ここで、n.fpageをコメントしているとCPU12が判断した場合、それは本実施形態で追加したコメントであり、ページリンクを切るために追加されたコメントに他ならない。この場合は、S2214に進む。
【0226】
一方、S2213でn.fpageをコメントしていないとCPU12が判断した場合は、それはXPS文章を作成したドライバやアプリケーションが追加したコメントと判断できるので、S2211に進む。
【0227】
そして、S2211ではコメントチェックを行ったFixedDocumentN.fdocを保存しCloseする。そして、S2212で、CPU12は、複数のFixedDocumentN.fdocへのポインタとなる変数Nを1つカウントアップして、その後、S2206に戻る。
【0228】
一方、S2209で目印つきのコメント有りと判断された場合、並びに、S2213で、n.fpageをコメントとしていると判断した場合は、S2214で、受信Jobは中断JobであるとCPU12が判断する。この後、S2215に進み、CPU12は、OpenしているFixedDocumentN.fdocを保存&Closeして、本処理を終了する。
【0229】
なお、CPU12がS2214で、受信Jobは中断Jobであると判断した場合には、操作部22に、図30に示すユーザインタフェースを表示して、ユーザに中断箇所から印刷するのか、全項再印刷にするのかのを問い合わせる。
【0230】
図30は、本実施形態を示す画像形成装置で表示されるユーザインタフェースの一例を示す図である。
【0231】
図30において、1901はJob受信画面であり、構造化文章の構造部分が更新されているか否か確認のうえ、変更されていることが明らかになった為その中断Jobをどう扱うべきか判断をユーザに対して促すための画面である。1902はボタンで、継続印刷を指示する場合に選択され、ボタン1902が選択された後、ボタン1905をユーザが押下した場合には、構造部分が更新されているJobをそのまま印刷する。ボタン1904は、図20に示すボタン1304と同じ機能を指示するボタンである。
【0232】
1903はボタンで、全項再印刷を指示する場合に選択され、ボタン1903が選択された後、ボタン1905をユーザが押下した場合には、図12に示す処理を起動する。そして、図10に示したFixedDocument.fdoc901やFixedDocument.fdoc902のような構造の構造化文章を、図10に示したFixedDocument.fdoc903やFixedDocument.fdoc904のような構造の構造化文章に変換した後印刷を行い、全項印刷を行う。
【0233】
なお、図21に示すボタン1405をユーザが選択した場合、もしくは図22に示すボタン1506を選択した場合に出力先として、本実施形態に示す機能を搭載していないデバイスが選択された場合には、XPSの文法に準拠したXPS文章が転送される。この場合に転送されるXPS文章は中断箇所以降を印刷するように設定されている文章である。
【0234】
以上の処理により、Jobを受ける側でPrint Ticketを確認して、全項印刷に切り替えるべきか否かの自動判別を行い、ユーザに指示を仰ぐことができる。また、自動的に継続印刷や全項印刷を行うこともできる。
【0235】
また、Jobを受けた側のデバイス能力に適合しない印刷属性が含まれている場合にもそれを自動判別して、最適な属性に変換するようにユーザに指示を仰ぐことができる。
【0236】
さらに、全項印刷に切り替えるべきPrint Ticketが含まれていない場合でも、受信側でそれが中断Jonなのか、否かの判断を行うことが可能となる。これにより、中断Jobだった場合には、中断箇所から印刷するのか、最初から全項印刷するのかの判断を仰ぐことが可能となる。
【0237】
以下、図31に示すメモリマップを参照して本発明に係る画像形成装置、画像形成装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0238】
図31は、本発明に係る画像形成装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0239】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0240】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0241】
本実施形態における図6、図7、図11、図12、図16〜図19、図27、図29に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0242】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0243】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0244】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0245】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0246】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0247】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
【0248】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0249】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0250】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0251】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0252】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【0253】
【図1】本実施形態を示す印刷システムの一例を示すブロック図である。
【図2】本実施形態を示す画像形成装置におけるジョブ中断処理を説明する図である。
【図3】本実施形態を示す画像形成装置で処理されるジョブとそのステータスを示す図である。
【図4】本実施形態を示す画像形成装置で処理されるジョブの構造を説明する図である。
【図5】図4に示したDocumentを修正することによりページリンクを切るところを示した図である。
【図6】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図7】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図8】本実施形態を示す画像形成装置で処理される文章の内部構造を説明する図である。
【図9】本実施形態を示す画像形成装置で処理される文章の内部構造を説明する図である。
【図10】図8、図9に示したXPSにおけるFixedDocument.fdocの例を示す図である。
【図11】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図12】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図13】本実施形態を示す画像形成装置で処理されるXPSにおけるFixedDocument.fdocの例を示す図である。
【図14】本実施形態を示す画像形成装置で処理されるXPSにおけるFixedDocumentSequence.fdseqの例を示す図である。
【図15】図13、図14に示したXPS構成をまとめたXPS文章の構造を示す図である。
【図16】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図17】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図18】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図19】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図20】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図21】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図22】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図23】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図24】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図25】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図26】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図27】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図28】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図29】本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図30】図1に示した操作部に表示されるユーザインタフェースの一例を示す図である。
【図31】本発明に係る画像形成装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【0254】
1 CPU
2 RAM
3 ROM
4 システムバス
5 KBC
6 CRTC
7 DKC
8 PRTC
9 KB
10 CRT
11 外部メモリ
12 CPU
13 ROM
14 外部メモリ
15 システムバス
16 印刷部インタフェース
17 印刷部
18 入力部
19 RAM
20 DKC
21 双方向性インタフェース
22 操作パネル
4000 クライアントコンピュータ
5000 プリンタ

【特許請求の範囲】
【請求項1】
情報処理装置から取得するジョブを印刷処理する画像形成装置であって、
前記ジョブの印刷処理を中断した場合、前記ジョブの構造をヘッダ情報と、ページ実体情報とを含む構造化文章形式に変換する変換手段と、
前記変換手段により変換された前記構造化文章形式のジョブの前記ヘッダ情報を前記ジョブの印刷処理を中断した状況に応じて修正する修正手段と、
前記修正手段により前記ヘッダ情報を修正したジョブを保持する保持手段と、
を備えることを特徴とする画像形成装置。
【請求項2】
前記情報処理装置から取得するジョブの構造が構造化文章形式であるかどうかを判断する判断手段と、
前記判断手段により前記情報処理装置から取得するジョブの構造が構造化文章形式であると判断した場合は、前記修正手段は、前記変換手段による変換を行うことなく、前記情報処理装置から取得するジョブのヘッダ情報を前記ジョブの印刷処理を中断した状況に応じて修正することを特徴とする請求項1記載の画像形成装置。
【請求項3】
前記情報処理装置から取得するジョブの構造が構造化文章形式であるかどうかを判断する判断手段と、
前記判断手段により前記情報処理装置から取得するジョブの構造が構造化文章形式でないと判断した場合は、前記変換手段は、前記ジョブの印刷処理を中断した場合、前記ジョブの構造をヘッダ情報と、ページ実体情報とを含む構造化文章形式に変換することを特徴とする請求項1記載の画像形成装置。
【請求項4】
前記情報処理装置から取得するジョブの構造が構造化文章形式であるかどうかを判断する判断手段と、
前記判断手段が前記情報処理装置から取得するジョブの構造が構造化文章形式であると判断した場合、前記ヘッダ情報にコメントを示す情報が含まれているかどうかを判別する判別手段とを備え、
前記判別手段により前記ヘッダ情報にコメントを示す情報が含まれていると判別した場合、前記修正手段は、前記コメントと識別可能なコメントを前記ヘッダ情報に追加する修正を行い、
前記判別手段により前記ヘッダ情報にコメントを示す情報が含まれていないと判別した場合、前記修正手段は、前記ヘッダ情報にコメントを追加する修正を行うことを特徴とする請求項1記載の画像形成装置。
【請求項5】
前記保持手段に保持されたジョブのヘッダ情報に基づいて、当該ジョブの状態を修正前の状態に復元する復元手段を備えることを特徴とする請求項1記載の画像形成装置。
【請求項6】
前記保持手段に保持されるジョブに対して、中断箇所から再開印刷するか、最初から再印刷するかを指示する指示手段と、
前記指示手段により再開印刷が指示されている場合は、前記保持手段に保持されているジョブを中断した箇所からページ実体情報の印刷を再開し、前記指示手段により再印刷が指示されている場合は、前記復元手段により前記保持手段に保持されているジョブのヘッダ情報を中断前の状態に復元してから、前記ジョブのページ実体情報の再印刷を開始する再開手段と、
を備えることを特徴とする請求項5記載の画像形成装置。
【請求項7】
前記指示手段により再開印刷又は再印刷が指示された場合、前記保持手段に保持されているジョブの出力先を選択する選択手段と、
前記選択手段により選択される出力先に前記保持手段により保持されているジョブを転送する転送手段と、
を有することを特徴とする請求項6記載の画像形成装置。
【請求項8】
前記修正手段は、前記ヘッダ情報に設定されている前記ページ実体情報へのリンクのうち、印刷済みのページへのリンクを削除して印刷済み状態に修正することを特徴とする請求項1記載の画像形成装置。
【請求項9】
前記復元手段は、前記ヘッダ情報に設定されている前記ページ実体情報へのリンクのうち、印刷済みのページへのリンクを復元して印刷可能な状態に復元することを特徴とする請求項5記載の画像形成装置。
【請求項10】
情報処理装置から取得するジョブを印刷処理する画像形成装置におけるジョブ処理方法であって、
前記ジョブの印刷処理を中断した場合、前記ジョブの構造をヘッダ情報と、ページ実体情報とを含む構造化文章形式に変換する変換ステップと、
前記変換ステップにより変換された前記構造化文章形式のジョブの前記ヘッダ情報を前記ジョブの印刷処理を中断した状況に応じて修正する修正ステップと、
前記修正ステップにより前記ヘッダ情報を修正したジョブを保持手段に保持する保持ステップと、
を備えることを特徴とするジョブ処理方法。
【請求項11】
前記情報処理装置から取得するジョブの構造が構造化文章形式であるかどうかを判断する判断ステップと、
前記判断ステップにより前記情報処理装置から取得するジョブの構造が構造化文章形式であると判断した場合は、前記修正ステップは、前記変換ステップによる変換を行うことなく、前記情報処理装置から取得するジョブのヘッダ情報を前記ジョブの印刷処理を中断した状況に応じて修正することを特徴とする請求項10記載のジョブ処理方法。
【請求項12】
前記情報処理装置から取得するジョブの構造が構造化文章形式であるかどうかを判断する判断ステップと、
前記判断ステップにより前記情報処理装置から取得するジョブの構造が構造化文章形式でないと判断した場合は、前記変換ステップは、前記ジョブの印刷処理を中断した場合、前記ジョブの構造をヘッダ情報と、ページ実体情報とを含む構造化文章形式に変換することを特徴とする請求項10記載のジョブ処理方法。
【請求項13】
前記情報処理装置から取得するジョブの構造が構造化文章形式であるかどうかを判断する判断ステップと、
前記判断ステップが前記情報処理装置から取得するジョブの構造が構造化文章形式であると判断した場合、前記ヘッダ情報にコメントを示す情報が含まれているかどうかを判別する判別ステップとを備え、
前記判別ステップにより前記ヘッダ情報にコメントを示す情報が含まれていると判別した場合、前記修正ステップは、前記コメントと識別可能なコメントを前記ヘッダ情報に追加する修正を行い、
前記判別ステップにより前記ヘッダ情報にコメントを示す情報が含まれていないと判別した場合、前記修正ステップは、前記ヘッダ情報にコメントを追加する修正を行うことを特徴とする請求項10記載のジョブ処理方法。
【請求項14】
前記保持手段に保持されたジョブのヘッダ情報に基づいて、当該ジョブの状態を修正前の状態に復元する復元ステップを備えることを特徴とする請求項10記載のジョブ処理方法。
【請求項15】
前記保持手段に保持されるジョブに対して、中断箇所から再開印刷するか、最初から再印刷するかを指示する指示ステップと、
前記指示ステップにより再開印刷が指示されている場合は、前記保持手段に保持されているジョブを中断した箇所からページ実体情報の印刷を再開し、前記指示ステップにより再印刷が指示されている場合は、前記復元ステップにより前記保持手段に保持されているジョブのヘッダ情報を中断前の状態に復元してから、前記ジョブのページ実体情報の再印刷を開始する再開ステップと、
を備えることを特徴とする請求項14記載のジョブ処理方法。
【請求項16】
前記指示ステップにより再開印刷又は再印刷が指示された場合、前記保持手段に保持されているジョブの出力先を選択する選択ステップと、
前記選択ステップにより選択される出力先に前記保持手段により保持されているジョブを転送する転送ステップと、
を有することを特徴とする請求項15記載のジョブ処理方法。
【請求項17】
前記修正ステップは、前記ヘッダ情報に設定されている前記ページ実体情報へのリンクのうち、印刷済みのページへのリンクを削除して印刷済み状態に修正することを特徴とする請求項10記載のジョブ処理方法。
【請求項18】
前記復元ステップは、前記ヘッダ情報に設定されている前記ページ実体情報へのリンクのうち、印刷済みのページへのリンクを復元して印刷可能な状態に復元することを特徴とする請求項14記載のジョブ処理方法。
【請求項19】
請求項10〜18のいずれか1項に記載のジョブ処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項20】
ページ実体情報とページ実体情報へのリンクが設定される構造部分とを含む構造化文章に基づき印刷を実行する印刷手段と、
前記構造化文章の印刷の中断が指示された場合、印刷されたページの実体へのリンクがなくなるように構造化文章の構造部分を修正する修正手段とを有することを特徴とする画像形成装置。
【請求項21】
前記修正手段は、コメント化してリンクを切ることにより、前記構造化文章の印刷の中断が指示された場合、印刷されたページの実体へのリンクがなくなるように構造化文章の構造部分を修正することを特徴とする請求項20記載の画像形成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2009−271745(P2009−271745A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−121986(P2008−121986)
【出願日】平成20年5月8日(2008.5.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】