説明

FixedPage文書の処理装置及び方法

【課題】多量のメモリを用いなくても、FixedPage文書を適切に処理する。
【解決手段】印刷処理装置1は、外部メモリからFixedPage文書を、先頭から順に読み出してXMLの解析を行うXMLパーサ62と、XMLパーサ62の解析結果に基づいて、XPS整合性判定をするXPS整合性判定部65と、FixedPage文書内の定義情報の参照情報を記憶するインデックス記憶部64と、インデックス記憶部64の参照情報に基づいて、定義情報を外部メモリから読み出す辞書管理部63とを備えたXPS構文解析部60を有する。FixedPage文書内の定義情報が検出されると、外部メモリに参照情報を記憶され、FixedPage文書内の定義情報の参照呼出を検出すると、XMLパーサ62は、外部メモリから読み出された定義情報の解析を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、XPS(XML Paper Specification)仕様に従って記述されたFixedPage文書を処理する技術に関し、特に、同一FixedPage文書内に定義情報及びその参照情報が含まれるFixedPage文書を処理するための技術に関する。
【背景技術】
【0002】
XML(eXtensible Markup Language)を用いて印刷データを記述するXPS(XML Paper
Specification)という仕様がある。そして、XPS仕様のFixedPageでは、辞書(Resource Dictionary)を用いることで、同一文書内に記述された定義情報を、自由に参照することが可能である。
【0003】
また、従来のXMLパーサは、文書の先頭からエレメントを順次読み込んで処理を行うようになっている(例えば、特許文献1)。
【0004】
従って、このXMLパーサを用いてXPS仕様のFixedPageで記述された印刷データ(以下、FixedPage文書という)の解析を行うと、例えば、前半に辞書定義が記述され、後半でその辞書定義を参照している場合には、XMLパーサ単独ではこれをうまく処理することができない。そこで、例えば、DOM(Document
Object Model)では、XMLパーサが辞書定義を検出すれば、その辞書定義をメモリに展開しておき、後で参照可能としている(非特許文献1)。
【特許文献1】特開2005−111710号公報
【非特許文献1】http://xml.fujitsu.com/jp/tech/dom/
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、DOMのように辞書定義をメモリに展開しておくためには、多量のメモリを必要とする。従って、潤沢にメモリを搭載していない機器では従来の手法を用いることは難しい。
【0006】
そこで、本発明の目的は、多量のメモリを用いなくても、FixedPage文書を適切に処理することである。
【課題を解決するための手段】
【0007】
本発明の一実施態様に従う、XPS(XML Paper Specification)仕様に従って記述された、FixedPage文書の処理装置は、外部メモリに記憶されているFixedPage文書を、先頭から順に読み出して、XMLの解析を行うXMLパーサと、前記XMLパーサの解析結果に基づいて、XPS仕様の整合性を判定する整合性判定部と、前記FixedPage文書内の定義情報を参照するための参照情報を記憶する記憶部と、前記記憶部に記憶されている前記参照情報に基づいて、前記FixedPage文書内の前記定義情報を外部メモリから読み出す手段と、を備える。そして、前記XMLパーサにより、前記FixedPage文書内の定義情報が検出されると、当該FixedPage文書から抽出された当該定義情報の参照情報が前記記憶部に記憶される一方で、前記整合性判定手段は当該定義情報の整合性判定を行わない。また、前記XMLパーサにより、前記FixedPage文書内の前記定義情報の参照呼出が検出されると、前記XMLパーサは、前記読み出し手段が外部メモリから読み出した前記定義情報の解析を行い、前記整合性判定手段が当該定義情報の整合性判定を行う。
【0008】
好適な実施形態では、前記XMLパーサは、前記FixedPage文書の先頭から順に、エレメント単位に順次読み出して解釈を実行するものであり、前記参照情報は、前記FixedPage文書内の定義情報の開始位置及び終了位置を示す情報であり、前記読み出し手段は、少なくとも、前記FixedPage文書の前記開始位置から終了位置までを外部メモリから読み出しを行うようにしてもよい。
【発明を実施するための最良の形態】
【0009】
以下、本発明の一実施形態に係る印刷データの処理システムについて、図面を参照して説明する。
【0010】
図1は、本発明の一実施形態に係る印刷データの処理システムの構成図である。本システムは、FixedPage文書を処理して、プリンタに印刷を実行させるものである。
【0011】
本システムは、図1に示すように、印刷処理装置1と、印刷処理装置1に接続されたプリンタ5とを備える。
【0012】
以下に説明する印刷処理装置1の構成要素または機能は、例えば汎用的なコンピュータシステムにおいて、所定のコンピュータプログラムを実行して実現することもできるし、またはASIC(Application
Specific Integrated Circut)などのハードウェア回路で実現することもできる。あるいは、コンピュータプログラムとハードウェア回路の組み合わせにより実現することもできる。
【0013】
印刷処理装置1は、印刷要求を行うAP10と、印刷条件などの設定を受け付ける印刷設定部20と、フィルタ処理に関するフィルタパイプラインマネージャ30と、フィルタパイプライン40と、XPS構文解析部60と、レンダリング処理部70と、XPSスプールファイル記憶部80とを備える。
【0014】
XPSスプールファイル記憶部80には、AP10の指示及び印刷設定部20での印刷設定に従って作成されたFixedPage文書100が格納される。XPSスプールファイル記憶部80は、ハードディスクなどの外部メモリに設けられている。
【0015】
XPS構文解析部60は、XPS構文解析部60を制御するコントローラ61と、FixedPage文書のXMLを解析するXMLパーサ62と、FixedPage文書に含まれる辞書(リソースディクショナリ)に関する情報を管理する辞書管理部63と、辞書に関する情報を記憶するインデックス記憶部64と、FixedPage文書のXPS仕様の整合性判定部65とを備える。
【0016】
XMLパーサ62は、外部メモリに設けられたXPSスプールファイル記憶部80からFixedPage文書100を印刷処理装置1内部のメモリに読み出して、XMLの解釈を行う。XMLパーサ62は、FixedPage文書を、先頭から所定の単位で順次読み出して処理を行う。ここで、XMLパーサ62自体は、FixedPage文書を逆順に読んだり、既に読み込んだ任意の位置へ戻って、再びその箇所を読み出したりする機能を有していない。
【0017】
ここで、図2にFixedPage文書100の一例を示す。これを参照して、XMLパーサ62の機能をさらに説明する。
【0018】
同図に示すFixedPage文書100には、辞書定義110と、この辞書を参照する参照呼び出し120が含まれている。辞書定義110は、定義情報であって、参照呼び出し120によって呼び出されたときに実行される。
【0019】
また、同図の例では、辞書定義110の方が参照呼び出し120よりも前に記述されている。従って、XMLパーサ62は、FixedPage文書100を先頭から順に読み込んで解釈するのであるから、参照呼び出し120よりも先に辞書定義110が読み込まれるが、この時点では実行されない。XMLパーサ62がさらに読み進めて、参照呼び出し120を読み込んだ時点で定義情報110の内容が実行される。
【0020】
従って、XMLパーサ62は、辞書定義110の先頭である<ResourceDictionary>111を検出すると、コントローラ61へ通知する。そして、XMLパーサ62は、辞書定義110の終了である</ResourceDictionary>112までを読み飛ばす。また、このとき、XMLパーサ62は、FixedPage文書100内での辞書定義110の開始位置及び終了位置を検出する。そして、この辞書定義110の識別情報であるx:KeyAttribute113と開始位置及び終了位置を、辞書定義110の参照情報として辞書管理部63へ通知する。
【0021】
一方、XMLパーサ62が参照呼び出し120を読み出すと、以下に説明するような手順で、内部メモリへ読み出された辞書定義110のXMLを解釈する。
【0022】
インデックス記憶部64には、定義情報を参照するための情報が格納される。インデックス記憶部64は、内部メモリに設けられている。
【0023】
辞書管理部63は、XMLパーサ62から辞書定義110の参照情報、つまり識別情報、開始位置及び終了位置の通知を受けると、インデックス記憶部64に格納する。また、辞書管理部63は、辞書定義110の読み出し指示を受けると、インデックス記憶部64から参照情報を取得する。そして、辞書管理部63は、少なくとも、参照情報で定まる開始位置から終了位置までのFixedPage文書100を、外部メモリのXPSスプールファイル記憶部80から内部メモリへ読み込む。
【0024】
XMLパーサ62が、FixedPage文書100の参照呼び出し120を検出すると、上述のようにして定義情報110が内部メモリへ読み込まれる。そして、XMLパーサ62が、内部メモリの定義情報110を解釈する。
【0025】
コントローラ61は、XMLパーサ62の解釈結果を取得して、XPS文書整合性判定部65へ通知する。ただし、コントローラ61は、XMLパーサ62から定義情報110が検出された旨の通知を受けたとき、定義情報110については、XPS文書整合性判定部65へ通知しない。一方、コントローラ61は、参照呼び出し120が検出された旨の通知を受けると、辞書管理部63へ、XPSスプールファイル記憶部80から定義情報110の読み出しを指示する。この読み出し指示に従って辞書管理部63が読み出した定義情報110をXMLパーサ62が解釈したときは、コントローラ61は、その結果を受け取って、XPS文書整合性判定部65へ通知する。
【0026】
XPS文書整合性判定部65は、コントローラ61から解釈結果の情報を順次受け付けて、受け付けた順にXPSとしての文書の整合性を判定する。この整合性判定で問題がなければ、XPS文書整合性判定部65は、順次レンダリング処理部70へ出力する。
【0027】
レンダリング処理部70は、XPS構文解析部60から構文解析結果を受け取って、レンダリングを行う。レンダリングされたデータは、プリンタ5へ出力されて、印刷が実行される。
【0028】
図3は、上述のような構成を備えた印刷処理装置1のXPS構文解析部60での詳細な処理手順を示すフローチャートであり、これに沿ってXPS構文解析部60の処理を説明する。
【0029】
コントローラ61は、XMLパーサ62へFixedPage文書100のパース開始命令を送る(S11)。
【0030】
XMLパーサ62は、先頭から順にFixedPage文書100を読み込んで以下の処理を行い、最後まで処理を行った終了する(S12)。
【0031】
XMLパーサ62は、FixedPage文書100をエレメント単位にXPSスプールファイル記憶部80から読み出して、読み出した部分の解釈を行う(S13)。
【0032】
このとき、XMLパーサ62は、解釈したエレメントが、辞書定義であるか、または、辞書定義の参照呼び出しであるかを判定する(S14,S15)。
【0033】
XMLパーサ62が解釈した部分が、辞書定義でも、辞書定義の参照呼び出しでもないときは(S14:No、S15:No)、XPS文書整合性判定部65はFixedPage文書の整合性判定を行う(S16)。そして、FixedPage文書のXPSの整合性が取れているときは、XPS文書整合性判定部65はレンダリング処理部70へ出力し、その後ステップS12へ戻る(S17)。
【0034】
また、ステップS14で、XMLパーサ62が解釈した部分が辞書定義であると判定されときは(S14:Yes)、辞書管理部63は、インデックス記憶部64へ、辞書定義110の識別情報及び開始位置を登録する(S21)。そして、XMLパーサ62は、引き続きFixedPage文書の読み出しを行って(S22)、辞書定義110の終了位置を検出する(S23)。そして、辞書管理部63がその終了位置をインデックス記憶部64へ登録する(S24)。その後、ステップS12へ戻る。
【0035】
また、ステップS15で、XMLパーサ62が解釈した部分が参照呼び出しであると判定されたときは、図4に示す参照呼出処理を行って、ステップS12へ戻る(S30)。
【0036】
参照呼び出し処理では、図4に示すように、まず、辞書管理部63がコントローラ61から辞書定義の識別情報とともに参照呼び出しの指示を受けると、その識別情報に係る辞書定義を、XPSスプールファイル記憶部80から内部メモリへ読み出す(S31)。
【0037】
そして、XMLパーサ62が、定義情報の先頭から終了まで、以下の処理を行う(S32)。すなわち、XMLパーサ62が定義情報のエレメントを読み込んで解釈を行う(S33)。そして、その解釈結果をコントローラ61を介して受け取ったXPS文書整合性判定部65が整合性判定を行い、FixedPage文書の整合性が取れているときは、レンダリング処理部70へ出力する(S34,S35)。
【0038】
XMLパーサ62が定義情報の終了まで解釈を行うと、参照呼び出し処理を終了する(S32:Yes)。
【0039】
上述した実施形態によれば、定義情報とその参照呼び出しとを含むFixedPage文書を適切に処理することができる。とくに、FixedPage文書を先頭から順に処理するXMLパーサを用いたときに、定義情報が参照呼び出しよりも前段にあるときに、多量のメモリを用いることなく処理することができる。
【0040】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施形態に係る印刷データの処理システムの構成図である。
【図2】FixedPage文書の一例を示す。
【図3】XPS構文解析部での詳細な処理手順を示すフローチャートである。
【図4】参照呼び出し処理のフローチャートである。
【符号の説明】
【0042】
1…印刷処理装置、5…プリンタ、20…印刷設定部、60…XPS構文解析部、61…コントローラ、62…XMLパーサ、63…辞書管理部、64…インデックス記憶部、65…XPS文書整合性判定部、70…レンダリング処理部、80…XPSスプールファイル記憶部。

【特許請求の範囲】
【請求項1】
XPS(XML Paper Specification)仕様に従って記述された、FixedPage文書の処理装置であって、
外部メモリに記憶されているFixedPage文書を、先頭から順に読み出して、XMLの解析を行うXMLパーサと、
前記XMLパーサの解析結果に基づいて、XPS仕様の整合性を判定する整合性判定部と、
前記FixedPage文書内の定義情報を参照するための参照情報を記憶する記憶部と、
前記記憶部に記憶されている前記参照情報に基づいて、前記FixedPage文書内の前記定義情報を外部メモリから読み出す手段と、を備え、
前記XMLパーサにより、前記FixedPage文書内の定義情報が検出されると、当該FixedPage文書から抽出された当該定義情報の参照情報が前記記憶部に記憶される一方で、前記整合性判定手段は当該定義情報の整合性判定を行わず、
前記XMLパーサにより、前記FixedPage文書内の前記定義情報の参照呼出が検出されると、前記XMLパーサは、前記読み出し手段が外部メモリから読み出した前記定義情報の解析を行い、前記整合性判定手段が当該定義情報の整合性判定を行う、ことを特徴とするFixedPage文書の処理装置。
【請求項2】
前記XMLパーサは、前記FixedPage文書の先頭から順に、エレメント単位に順次読み出して解釈を実行するものであり、
前記参照情報は、前記FixedPage文書内の定義情報の開始位置及び終了位置を示す情報であり、
前記読み出し手段は、少なくとも、前記FixedPage文書の前記開始位置から終了位置までを外部メモリから読み出しを行う、請求項1記載のFixedPage文書の処理装置。
【請求項3】
XPS(XML Paper Specification)仕様に従って記述された、FixedPage文書の処理方法であって、
外部メモリに記憶されているFixedPage文書を、先頭から順に読み出して、XMLの解析を行うステップと、
前記XMLの解析を行って、前記FixedPage文書内の定義情報を検出すると、当該FixedPage文書から当該定義情報の参照情報を抽出して、当該抽出された参照情報を記憶部に記憶するステップと、
前記XMLの解析を行って、前記FixedPage文書内の定義情報を参照するための参照呼出を検出すると、前記記憶部に記憶されている前記参照情報に基づいて、前記FixedPage文書内の前記定義情報を外部メモリから読み出すステップと、
前記外部メモリから読み出された前記定義情報のXML解析を行うステップと、
前記XMLの解析を行い、前記定義情報及び前記定義情報の参照情報のいずれでもないときは、当該解析結果に基づいてXPS仕様の整合性を判定するステップと、を行う方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−49568(P2008−49568A)
【公開日】平成20年3月6日(2008.3.6)
【国際特許分類】
【出願番号】特願2006−227262(P2006−227262)
【出願日】平成18年8月24日(2006.8.24)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】