説明

ページ記述データ処理装置、方法及びプログラム

【課題】破線を含む画像データに対してラスタライズ処理を行う際に生じ得る印刷不具合を防止できるページ記述データ処理装置、方法及びプログラムを提供する。
【解決手段】ページ記述データDp中にパス48、50をストロークするオブジェクトがあるか否かを確認し、当該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認し、パス48、50を構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、パス48、50に沿って形成される線素A1〜A5の始点{Q1、Q3、Q5、Q7、Q9}の位置を推定し、始点{Q1、Q3、Q5、Q7、Q9}とパス48、50の終点PB(P3)との距離が所定の閾値以下である場合に、該距離を長くするために、パス48、50の終点PB(P3)の位置をパス48、50に沿った別の位置に変更する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ページ記述言語(Page Description Language;PDL)で記述されたページ記述データのうち、所定の属性を有するページ記述データに対して特定の処理を行い、よりロバスト性を有するページ記述データ(この明細書において、ロバスト化ページ記述データという。)に変換するページ記述データ処理装置、方法及びプログラムに関する。
【背景技術】
【0002】
近時、印刷製版の分野において、オペレータがコンピュータを利用して作った文字や画像を、DTP(DeskTop Publishing)アプリケーションソフトウエアが組み込まれた前記コンピュータを使って電子的なページに組み込むDTP処理が普及している。
【0003】
上記のDTPアプリケーションソフトウエアでは、作業者によって編集された文字や画像等の要素を基に、ページ毎のイメージを表現するページ記述データが作成される。
【0004】
ページ記述データは、プリンタやプレートセッタ等の出力機の解像度等に依存しないベクトルデータであり、このままでは出力機から出力することができない。そこで、ページ記述データをRIP(Raster Image Processor)でラスタライズ処理(標本化)することにより、ページを構成する文字や画像等の要素を画素(ドット)の集合として表すラスタイメージデータに変換する。
【0005】
ラスタイメージデータが、プリンタあるいはプレートセッタ等の出力機に供給されると、出力機は、ラスタイメージデータに基づく画像を形成したハードコピーあるいは刷版を出力する(特許文献1参考)。
【0006】
ところで、ページ記述データの一種であるPDF(Portable Document File)version1.3には、線状のパスをストロークする際に、線素と隙間(非線素)のパターンを制御する「破線パターン」オペレータが実装されている。ここで、「パス」とはそれ自体線幅を有しない、始点と終点とを結ぶ経路であり、「ストローク」とはパスに所定の線幅を付することをいう。
【0007】
なお、この「破線パターン」オペレータにより設定自在な変数として、交互に現われる線素と隙間の長さを指定する「破線配列」と、周期性を有する破線の始点における描画状態を指定する「破線フェーズ」とが定義されている(非特許文献1参照)。以下、この「破線配列」及び「破線フェーズ」を総称して「破線形状パラメータ」という場合がある。
【0008】
以下、破線形状パラメータと実際に描画される破線パターンとの関係について、直線状のパスの始点から終点までの間を11単位長でストロークする場合を例に挙げて、図11Aを参照しながら詳細に説明する。
【0009】
例えば、[4 2]{0}は、破線配列[4 2]と、破線フェーズ{0}とのパラメータの結合を意味する。そのうち、破線配列[4 2]は、連続して4単位長をONにし、その後、連続して2単位長をOFFにすることに対応する。つまり、破線パターンの周期単位は6単位長である。換言すれば、この破線パターンは、線素が4単位長、隙間が2単位長の繰り返しで構成される。
【0010】
一方、破線フェーズ{0}は、前記破線の周期パターンの位相ずれ量が0単位長であることに対応する。図11Aに示すように、{0}の破線パターンを上段のように予め定めた場合、{1}の破線パターンは中段にように決定される。これは、{1}の破線パターンは、{0}の破線パターンに対して各単位長を左側(パスの始点側)に1個ずつシフトした結果に対応する。同様に、{2}の破線パターンは、{0}の破線パターンに対して各単位長を左側(パスの始点側)に2個ずつシフトした結果に対応する。
【0011】
このように、PDF仕様では、始点から終点までの間、所定の周期の繰り返しパターンに基づいて破線の描画形状を順次決定するという特徴を有する。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2005−70957号公報([0003])
【非特許文献】
【0013】
【非特許文献1】PDFリファレンス 第2版、 Adobe Portable Document Format Version1.3、2008年11月20日初版第5刷発行、著者;アドビシステムズ、発行所;株式会社ピアソン・エデュケーション、ISBN4−89471−338−1、119ページ、124−126ページ等参照。
【発明の概要】
【発明が解決しようとする課題】
【0014】
ところが、PDFの上記仕様を用いて、線状のパスに沿って破線パターンを生成した後、ラスタライズ処理する場合に予期しない問題が生じ得る。
【0015】
例えば、各線素の始点及び終点(各隙間の終点及び始点)を決定する際、その始点又は終点の位置がRIP毎に異なり、位置ずれ誤差を生じる場合がある。この誤差は、RIPの演算アルゴリズムやソフトウエアバージョンの差異によって発生する、いわゆる演算誤差である。そのため、図11B及び図11Cに示すように、同じパス長であっても、生成される線素の数が異なる場合がある。
【0016】
図11Bの例によると、上記演算誤差の影響により、線素200aの終点202aの位置と、線素200bの終点202bの位置が異なっているとする。すると、次の線素204aの始点206aはパスの終点位置208を超えた位置(右方側)に存在し、次の線素204bの始点206bはパスの終点位置208を超えない位置(左方側)に存在する。
【0017】
図11Cは、図11Bに示す上段の破線(線素200a、次の線素204a)及び下段の破線(線素200b、次の線素204b)にそれぞれ所定の線幅を付してストロークした結果を表す概略説明図である。
【0018】
予め指定された線幅とキャップ形式(端部処理形式)に従って、線素200aを中心軸とした塗り潰し領域210aが形成される。線素200bについても、線素200aと同様に、塗り潰し領域210bが形成されている。
【0019】
ところが、パスの範囲外にある始点206a(上段の破線)には、次の線素204aを中心軸とした塗り潰し領域は形成されない。一方、パスの範囲内にある始点206b(下段の破線)には、次の線素204bの一部を中心軸とした長円形状の塗り潰し領域212が形成される。
【0020】
このように、線状のパスに沿って破線パターンを生成する際、RIPの演算アルゴリズムやソフトウエアバージョンに起因する演算誤差と、破線パターンの形状パラメータ等との組み合わせに応じて、パスの終点近傍における線素が不定に発生するので、目論見と異なる破線形状に変換される場合がある。そのため、破線を含む画像データに対してラスタライズ処理する場合、発生原因の特定が困難である予期しない印刷不具合の一因となり得る。特に、線幅が大きい場合にこの問題が顕在化する。
【0021】
本発明は上記した問題を解決するためになされたもので、破線を含む画像データに対してラスタライズ処理を行う際に生じ得る印刷不具合を防止できるページ記述データ処理装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0022】
本発明に係るページ記述データ処理装置は、ページ記述データ中にパスをストロークするオブジェクトがあるか否かを確認するオブジェクト確認部と、パスをストロークするオブジェクトが含まれていた場合に、該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認するオペレータ有無確認部と、破線パターン決定オペレータが含まれていた場合に、前記パスを構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、前記パスに沿って形成される線素の始点の位置を推定する線素始点位置推定部と、前記線素の始点と前記パスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更するパス終点位置変更部とを有することを特徴とする。
【0023】
このように、線素の始点とパスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更するパス終点位置変更部を設けたので、RIPによるラスタライズ処理の過程で、演算処理による誤差等の影響を受けることなく、パスの終点近傍において常に線素を発生させ、あるいは常に線素を発生させない。すなわち、線素が不定に発生する現象を未然に防止可能である。これにより、破線を含む画像データに対してラスタライズ処理を行う際に生じ得る印刷不具合を防止できる。
【0024】
また、前記線素始点位置推定部は、曲線状のパスに沿って形成される線素の始点の位置を推定することが好ましい。特に、曲線形状を特定するための演算は複雑であり、パスの終点近傍において線素が不定に発生する可能性が高くなるので、より一層効果的である。
【0025】
さらに、前記パス終点位置変更部は、前記パスを外挿して予測された位置を前記別の位置とすることが好ましい。
【0026】
さらに、前記パス終点位置変更部は、前記ページ記述データをラスタライズする際の解像度に応じて前記所定の閾値を決定することが好ましい。これにより、パスの終点近傍における線素の長さを適切に制御できる。
【0027】
本発明に係るページ記述データ処理方法は、ページ記述データ中にパスをストロークするオブジェクトがあるか否かを確認するステップと、パスをストロークするオブジェクトが含まれていた場合に、該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認するステップと、破線パターン決定オペレータが含まれていた場合に、前記パスを構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、前記パスに沿って形成される線素の始点の位置を推定するステップと、前記線素の始点と前記パスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更するステップとを備えることを特徴とする。
【0028】
本発明に係るプログラムは、コンピュータを、ページ記述データ中にパスをストロークするオブジェクトがあるか否かを確認する手段、パスをストロークするオブジェクトが含まれていた場合に、該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認する手段、破線パターン決定オペレータが含まれていた場合に、前記パスを構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、前記パスに沿って形成される線素の始点の位置を推定する手段、前記線素の始点と前記パスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更する手段として機能させることを特徴とする。
【発明の効果】
【0029】
本発明に係るページ記述データ処理装置、方法及びプログラムによれば、ページ記述データ中にパスをストロークするオブジェクトがあるか否かを確認し、該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認し、前記パスを構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、前記パスに沿って形成される線素の始点の位置を推定し、前記線素の始点と前記パスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更するようにしたので、RIPによるラスタライズ処理の過程で、演算処理による誤差等の影響を受けることなく、パスの終点近傍において常に線素を発生させ、あるいは常に線素を発生させない。すなわち、線素が不定に発生する現象を未然に防止可能である。これにより、破線を含む画像データに対してラスタライズ処理を行う際に生じ得る印刷不具合を防止できる。
【図面の簡単な説明】
【0030】
【図1】本実施の形態に係るページ記述データ処理方法を実施する出版システムの概略構成図である。
【図2】図1に示すページ記述データ処理装置の機能ブロック図である。
【図3】直線ストロークオペレータにより生成された直線のパスの説明図である。
【図4】曲線ストロークオペレータにより生成された三次ベジェ曲線のパスの説明図である。
【図5】本実施の形態に係るページ記述データ処理装置の動作説明に供されるフローチャートである。
【図6】パス構築オペレータの置換方法を説明するフローチャートである。
【図7】図7Aは、破線形状パラメータの一例を示す図である。図7Bは、図3に示す直線状のパスに沿って形成された破線パターンの説明図である。
【図8】図4に示す曲線状のパスに沿って形成された破線パターンの説明図である。
【図9】図9A〜図9Eは、パスの終点の位置を変更する具体例に関する概略説明図である。
【図10】図10A〜図10Cは、パスの終点の位置を変更する別の具体例に関する概略説明図である。
【図11】図11Aは、破線形状パラメータと実際に描画される破線パターンとの関係を示す説明図である。図11B及び図11Cは、直線状のパスに所定の線幅を付してストロークし、破線パターンを形成した結果を表す説明図である。
【発明を実施するための形態】
【0031】
以下、本発明に係るページ記述データ処理装置、方法及びプログラムの実施形態について、これを実施する出版システムを例として、添付の図面を参照しながら説明する。
【0032】
図1は、本実施の形態に係るページ記述データ処理方法を実施する出版システム10の概略構成図を示している。
【0033】
出版システム10は、プリプレス工程と印刷工程並びに図示しない製本工程とから構成される。
【0034】
プリプレス工程には、DTPコンピュータ12と、パーソナルコンピュータ等により構成されるページ記述データ処理装置14と、RIP16と、プリンタ20と、プレートセッタ22が備えられる。
【0035】
DTPコンピュータ12は、オペレータによって編集された文字や画像等の要素を基に、ページ毎のイメージを表現するページ記述言語で記述されたページ記述データDpを作成する。
【0036】
ページ記述データ処理装置14は、DTPコンピュータ12から出力されたページ記述データDpの内容(属性)を調べ、調査結果に応じて、所定の属性を有するページ記述データDpに対して特定の処理を行い、処理後のロバスト化ページ記述データDp´を作成するか、所定の属性を有さないページ記述データDpをそのまま出力する。なお、ページ記述データ処理装置14による処理機能は、DTPコンピュータ12に一体的に組み込み、ページ記述データ処理装置14を省略することもできる。
【0037】
RIP16は、ページ記述データ処理装置14から出力されたページ記述データDp又はロバスト化ページ記述データDp´を、例えばCMYK4版それぞれのラスタイメージデータDrに変換する。
【0038】
プリンタ20は、ラスタイメージデータDrに基づきハードコピーであるプルーフ18を出力する。
【0039】
プレートセッタ22は、プリンタ20によりプリントされたプルーフ18がオペレータによってOKであると判断された場合に、オペレータによる開始スイッチの操作後、RIP16の出力であるラスタイメージデータDrからCMYK4版のそれぞれの刷版PPを作成して出力する。
【0040】
印刷工程には、印刷機24が備えられる。印刷機24には、CMYK4版の刷版PPが装着され、刷版PPに担持されたCMYKのインキが本紙上に転移されて多色(4色)刷りが行われることで印刷物26が完成する。
【0041】
図2は、ページ記述データ処理装置14のCPUがROMに記録されたプログラムを実行することで達成される機能のブロック図を示している。
【0042】
ページ記述データ処理装置14は、入力インタフェース(入力I/F)32を通じて入力したページ記述データDpを分析処理したロバスト化ページ記述データDp´を作成し又は手を加えない元のままのページ記述データDpを作成し、出力インタフェース(出力I/F)34を通じて出力する。
【0043】
ページ記述データ処理装置14は、上記の入出力インタフェース32、34の他、分析処理に係わるオブジェクト確認部36(構造解析部37と、パスオブジェクト有無確認部38と、パスペイントオペレータ属性確認部40とを含む。)と、破線パターン決定オペレータ有無確認部42と、線素始点位置推定部44と、パス終点位置変更部46とを備える。
【0044】
なお、本明細書における「パスオブジェクト」は、直線、矩形、曲線(例えば3次ベジェ曲線)で構成される任意の形状である。
【0045】
また、本明細書における「パスペイントオペレータ」は、パスオブジェクトを終了させるオペレータであり、カレントパスに線幅を付して線を描くオペレータ(以下、便宜のため「ストローク系オペレータ」という。)、又はカレントパスが生成する閉空間を塗りつぶすオペレータ(以下、便宜のため「塗りつぶし系オペレータ」という。)のうちいずれかの属性を有する。
【0046】
さらに、本明細書における「破線パターン決定オペレータ」は、パスをストロークするときの破線パターンの記述方法を設定するオペレータである。PDFでは、「d」の1種類のオペレータが定義されている。「d」オペレータにより設定可能な変数として、交互に現れる個々の線素と隙間との長さを指定する「破線配列」と、破線の開始位置となる先頭の位置を指定する「破線フェーズ」とが定義されている。以下、「破線パターン決定オペレータ」が含まれない(存在しない)ことには、該オペレータ自体が存在しない場合のみならず、該オペレータには実線を表す変数が設定されており、実質的に破線パターンではないことが含まれる。
【0047】
さらに、本明細書における「パス構築オペレータ」は、パスの物理的形状を定義するオペレータをいう。PDFでは、「m」「l」「c」「v」「y」「h」「re」の7種類のオペレータが定義されている。
【0048】
さらに、本明細書における「曲線パス構築オペレータ」は、パス構築オペレータのうち、カレントパスに曲線を追加するオペレータをいう。PDFでは、「c」「v」「y」の3種類のオペレータが定義され、いずれのオペレータも3次ベジェ曲線を追加するものである。
【0049】
さらに、本明細書における「直線パス構築オペレータ」は、パス構築オペレータのうち、カレントパスに直線を追加するオペレータをいう。PDFでは、「l」の1種類のオペレータが定義されている。
【0050】
図3は、「l」オペレータが生成する直線を示すグラフである。この直線状のパス48は、始点PA(x1,y1)及び終点PB(x2,y2)により定義されている。
【0051】
変数tの値を0〜1まで変化させることにより、始点PAと終点PBとを結ぶパス48が生成される。ここで、変数tにおけるパス48上の点の座標P(x(t),y(t))は、次の(1)式及び(2)式で算出される。
x(t)=(1−t)x1+tx2 ……(1)
y(t)=(1−t)y1+ty2 ……(2)
【0052】
ここで、(1)式及び(2)式より、x(0)=x1、y(0)=y1、x(1)=x2、y(1)=y2であることから諒解されるように、変数tが0〜1に変化すると、パス48上の点Pは、矢印E1の方向に始点PAから終点PBまで連続的に移動する。
【0053】
図4は、「c」オペレータが生成する3次ベジェ曲線を示すグラフである。この曲線状のパス50は、2つの端点P0(x0,y0)及びP3(x3,y3)並びに2つの制御点P1(x1,y1)及びP2(x2,y2)により定義されている。
【0054】
変数tの値を0〜1まで変化させることにより、始点P0と終点P3とを結ぶパス50が生成される。ここで、変数tにおけるパス50上の点の座標P(x(t),y(t))は、次の(3)式及び(4)式で算出される。
x(t)=(1−t)30+3t(1−t)21+3t2(1−t)x2+t33 ……(3)
y(t)=(1−t)30+3t(1−t)21+3t2(1−t)y2+t33 ……(4)
【0055】
ここで、(3)式及び(4)式より、x(0)=x0、y(0)=y0、x(1)=x3、y(1)=y3であることから諒解されるように、変数tが0〜1に変化すると、パス50上の点Pは、矢印E2の方向に始点P0から終点P3まで連続的に移動する。なお、破線で示す線分P01は点P0におけるパス50の接線である。また、破線で示す線分P23は点P3におけるパス50の接線である。
【0056】
基本的には、以上のように構成される出版システム10のページ記述データ処理装置14の動作について、図5のフローチャート及び図2の機能ブロック図を参照して説明する。
【0057】
ステップS1において、ページ記述データ処理装置14は、DTPコンピュータ12から出力されるページ記述データDpをページ毎に取り込む。
【0058】
ステップS2において、構造解析部37は、ページ記述データDpの構造を解析してページに含まれるオブジェクトを抽出する。その後、パスオブジェクト有無確認部38は、抽出されたオブジェクトにパスオブジェクトが含まれているか否かを確認する。パスオブジェクトが含まれていない場合には、ページ記述データDpを、変更せずそのまま出力インタフェース34を通じて出力する(ステップS8)。
【0059】
ステップS3において、パスペイントオペレータ属性確認部40は、ステップS2により確認された前記パスオブジェクトにストローク系オペレータ、例えば、オペレータ「S」「s」等が含まれているか否かを確認する。ストローク系オペレータが含まれていない(すなわち、塗りつぶし系オペレータ「f」「F」等が含まれている)場合には、ページ記述データDpを、変更せずそのまま出力インタフェース34を通じて出力する(ステップS8)。
【0060】
ステップS4において、破線パターン決定オペレータ有無確認部42は、ステップS2により確認された前記パスオブジェクトに破線パターン決定オペレータ、すなわちオペレータ「d」が含まれているか否かを確認する。破線パターン決定オペレータが含まれていない場合には、ページ記述データDpを、変更せずそのまま出力インタフェース34を通じて出力する(ステップS8)。
【0061】
ステップS5において、線素始点位置推定部44は、ステップS2により確認された前記パスオブジェクトと、ステップS4により確認された前記破線パターン決定オペレータとに基づいて、パスに沿って形成される線素の始点の位置を推定する。ここで、この推定方法について、図6のフローチャートを参照しながら詳細に説明する。
【0062】
ステップS51において、線素始点位置推定部44は、パス構築オペレータからパスを決定するパラメータを取得する。図3の例では、オペレータ属性(「l」)、始点PA(x1,y1)及び終点PB(x2,y2)である。図4の例では、オペレータ属性(「c」、「v」、又は「y」)、始点P0(x0,y0)、終点P3(x3,y3)、制御点P1(x1,y1)及び制御点P2(x2,y2)である。
【0063】
また、ユーザ空間(装置独立座標系)とデバイス空間(装置依存座標系)との対応付けを行うために、縦横のラスタライズ解像度も併せて取得する。この解像度の単位として、dpi(dot per inch)やppi(pixel per inch)等が用いられる。
【0064】
ステップS52において、線素始点位置推定部44は、破線パターンを決定するパラメータを取得する。ここでは、「d」オペレータに設定される「破線配列」及び「破線フェーズ」(破線形状パラメータ)に相当する。
【0065】
ステップS53において、線素始点位置推定部44は、複数の線素としての始点・終点の位置を推定する。以下、ユーザ空間上で線素の始点の位置を推定する方法について詳細に説明する。
【0066】
パス48、50上の点Pの座標を(x(t),y(t))とするとき、区間[u,v]でのパス48、50の線分の長さI(u,v)は、次の(5)式で算出される。
【数1】

【0067】
なお、0≦u≦1、0≦v≦1である。この(5)式に基づいて、線素の始点・終点位置を推定することができる。
【0068】
以下、図3に示す直線状のパス48の例に基づいて、線素始点位置推定部44が線素の始点・終点の位置を推定する手順について説明する。
【0069】
図7Aに示すように、破線形状パラメータが[D L−D]{S}で設定されたものとする。ここで、D、L及びSはいずれも正数であって、整数値のみならず、実数値を採ることができる。
【0070】
すると、図7Bに示すように、パス48の始点PA(x1,y1)と、終点PB(x2,y2)と、上記破線形状パラメータに基づいて、5つの線素A1〜A5の形状、具体的には、始点{Q1、Q3、Q5、Q7、Q9}及び終点{Q2、Q4、Q6、Q8、Q10}の位置をそれぞれ推定できる。以下、その推定方法について詳細に説明する。
【0071】
先ず、描画開始位置としての線素A1(長さL1)の始点Q1の位置は、パス48の始点PAの位置(t1=0)と推定される。そして、I(t1,t2)=D−Sを満たすt2を算出し、(1)式及び(2)式に基づいてt=t2に相当する位置を算出する。線素A1の終点Q2の位置は、位置(x(t2),y(t2))であると推定される。
【0072】
次いで、I(t2,t3)=L−Dを満たすt3を算出し、(1)式及び(2)式に基づいてt=t3に相当する位置を算出する。線素A2(長さL2)の始点Q3の位置は、算出された位置(x(t3),y(t3))であると推定される。そして、I(t3,t4)=Dを満たすt4を算出し、(1)式及び(2)式に基づいてt=t4に相当する位置を算出する。線素A2の終点Q4の位置は、位置(x(t4),y(t4))であると推定される。
【0073】
以下同様にして、始点{Q1、Q3、Q5、Q7、Q9}及び終点{Q2、Q4、Q6、Q8、Q10}の座標がそれぞれ推定される。なお、本実施の形態では、線素の始点・終点の位置の両方を推定しているが、終点の位置を求めることなく始点の位置のみを推定してもよいことはいうまでもない。
【0074】
次いで、図4に示す曲線状のパス50の例に基づいて、線素始点位置推定部44が線素の始点・終点の位置を推定する手順について説明する。特に、曲線形状を特定するための演算は複雑であり、パス50の終点近傍において線素が不定に発生する可能性が高くなるので、より一層効果的である。なお、破線形状パラメータは、図7Aと同様に設定されたものとする。
【0075】
パス50の始点P0(x0,y0)と、終点P3(x3,y3)と、上記破線形状パラメータに基づいて、5つの線素A1〜A5の形状、具体的には、始点{Q1、Q3、Q5、Q7、Q9}及び終点{Q2、Q4、Q6、Q8、Q10}の座標をそれぞれ推定できる。以下、その推定方法について詳細に説明する。
【0076】
先ず、描画開始位置としての線素A1(長さL1)の始点Q1の位置は、パス50の始点PAの位置(t1=0)と推定される。そして、I(t1,t2)=D−Sを満たすt2を算出し、(3)式及び(4)式に基づいてt=t2に相当する位置を算出する。線素A1の終点Q2の位置は、位置(x(t2),y(t2))であると推定される。
【0077】
次いで、I(t2,t3)=L−Dを満たすt3を算出し、(3)式及び(4)式に基づいてt=t3に相当する位置を算出する。線素A2(長さL2)の始点Q3の位置は、算出された位置(x(t3),y(t3))であると推定される。そして、I(t3,t4)=Dを満たすt4を算出し、(3)式及び(4)式に基づいてt=t4に相当する位置を算出する。線素A2の終点Q4の位置は、位置(x(t4),y(t4))であると推定される。
【0078】
以下同様にして、始点{Q1、Q3、Q5、Q7、Q9}及び終点{Q2、Q4、Q6、Q8、Q10}の座標がそれぞれ推定される。
【0079】
なお、1つの曲線パス構築オペレータを折れ線状のパスに対応する複数の直線パス構築オペレータに置き換えた後に、上記推定を行ってもよい。これにより、演算を容易にして処理時間を短縮できる。
【0080】
以上のようにして、パスに沿って形成される複数の線素としての始点・終点の位置を推定することができる(ステップS5)。
【0081】
図5に戻って、ステップS6において、線素の始点とパスの終点との距離が所定の閾値以下であるか否かを判定する。この距離が所定の閾値を超える場合には、ページ記述データDpを、変更せずそのまま出力インタフェース34を通じて出力する(ステップS8)。
【0082】
ステップS7において、パス終点位置変更部46は、線素の始点とパスの終点との距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更する。その具体例と作用効果について、図9A〜図9Eを参照しながら説明する。
【0083】
図9Aに示すように、終点70まで延在するパス72を破線パターンでストロークする場合、「ON」と表示された範囲内で線素74、76が形成されるものとする。それ以外の範囲では、互いに隣接する線素の隙間としての非線素77が形成される。一例として、線素74の始点78及び終点80と、線素76の始点82及び終点70(パス72の終点と一致する。)の周辺にラウンドキャップを付加する処理を行う場合を考える。ここで、「ラウンドキャップ」とは、線幅に等しい直径の半円弧を端点の周囲に描き、内部を塗り潰すキャップ方式である(非特許文献1の123ページを参照のこと)。
【0084】
上述したステップS6(図5参照)では、複数の線素74、76の始点78、82が判定領域84内の点であるか否かにより判定される。なお、破線を構成するすべての線素74、76について前記判定を行ってもよい。また、複数の線素74、76のうち、始点の位置がパス72の終点70に最も近い線素、この場合は線素76を抽出して、その始点82のみに対して前記判定を行ってもよい。
【0085】
判定領域84は、パス72の終点70を中心とする半径δrの円領域である。図9Aに示す場合には、線素74、76の始点78、82はいずれも判定領域84外の点であるので、パス72を変更することなくストローク処理及びキャップ処理がなされる。
【0086】
その結果、図9Bに示すように、パス72に沿ってストロークされ、線素74、76に所定の線幅を付されることで、塗り潰し領域86、88が形成される。なお、始点78、82、終点80、70の一端に半円型のキャップがそれぞれ付されている。
【0087】
一方、図9Cに示すように、線素76の始点82が判定領域84内の点である場合について説明する。例えば、図9A及び図9Bで説明した場合と同様にストローク処理等を行うと、図9Dのような描画結果が得られる。
【0088】
始点82と終点70とは極めて近接しているので、線素76は短くなるとともに、塗り潰し領域92の面積は小さくなる。このような場合、演算処理の誤差等の影響により、始点82と終点70との位置関係が変化し、始点82の位置がパス72の範囲外に存することが生じ得る。そうすると、線素76(塗り潰し領域92)が不定に発生する可能性がある。
【0089】
そこで、この問題を解消するため、線素76の始点82とパス72の終点70との距離を長くするために、もとの終点70の位置を新たな終点90の位置に変更する。具体的には、終点の位置をパス72の延在方向(始点から終点に向かう方向)に対して所定の長さだけ移動することで、パス72を延長する。例えば、前記所定の長さは、判定領域84を画定する円の直径(=2・δr)とすることができる。
【0090】
ここで、δrの値は、RIP16による演算処理の誤差等を考慮して決定されている。例えば、2400〜4800dpi程度の高い解像度を有する画像データに対して、δrの値を7200dpi相当の値に設定しておくことが好ましい。また、ラスタライズ解像度Δの値に応じてδrの値を決定してもよい。パス72の終点70近傍における線素76の長さを適切に制御できるからである。
【0091】
その結果、図9Eに示すように、新たな線素94の長さは、線素76(図9D参照)と比較して2・δrだけ長く設けられている。そうすると、RIP16による演算処理の誤差等の影響により、新たな線素94の長さが変動した(特に、短くなった)としても、破線パターンの要素としての新たな線素94は必ず存在するので、塗り潰し領域96が常に形成される。これにより、線素76(塗り潰し領域92)が不定に発生することを未然に防止できる。
【0092】
なお、図9Cに例示する方法では、パス72を終点70側に外挿して予測された位置を新たな終点90として決定する。この外挿方法は、公知のアルゴリズムを適用することができる。
【0093】
例えば、新たな終点90の座標として、(1)〜(4)式に対して、t=1+δt(δtは、微小の正値)を代入して得られた(x,y)を用いてもよい。これにより、パス48、50の形状に沿った適切な線素が形成される。
【0094】
なお、線素の終点の位置を変更する具体例としては、図9A〜図9Eに限ることなく、図10A〜図10Cの構成であってもよい。
【0095】
例えば、図10Aに示すように、新たな終点98をパス72上の位置に設定することで、パス72を短縮してもよい。この場合は、短縮された新たなパスの範囲内に始点82が存しないので、図9Eに示す塗り潰し領域96は常に形成されない(図10B参照)。これにより、線素(塗り潰し領域)が不定に発生することを未然に防止できる。
【0096】
あるいは、図10Cに示すように、円形状の判定領域84(図9A及び図9C参照)ではなく、矩形状の判定領域100であってもよい。また、x軸方向、y軸方向に対応する閾値δx、δyは、同一の又は異なる値にしてもよい。さらに、判定領域84、100のように、終点70に対して点対称ではなく、非対称な領域として設けてもよい。
【0097】
以上のようにして、パス終点位置変更部46は、パスの終点を変更する(ステップS53)。具体的には、パス構築オペレータの終点70を、上述した方法で決定された別の終点90の座標に置換する(図9C参照)。
【0098】
図5に戻って、ステップS8において、パス終点位置変更部46によりパスの終点が変更されたページ記述データDp’を、出力インタフェース34を通じて出力する。
【0099】
このようにして、図1に示すように、ページ記述データ処理装置14に入力されたページ記述データDpは、そのまま(Dp)又はパス構築オペレータ置換処理が施された後(Dp’)、RIP16側に供給される。その結果、塗り潰し領域96有りの状態(図9E参照)又は塗り潰し領域無しの状態(図10B参照)のいずれか一方になるように、安定して出力することができる。
【0100】
以上のように、ページ記述データDp中にパス48、50をストロークするオブジェクトがあるか否かを確認し、前記オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認し、パス48、50を構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、パス48、50に沿って形成される線素A1〜A5の始点{Q1、Q3、Q5、Q7、Q9}の位置を推定し、始点{Q1、Q3、Q5、Q7、Q9}とパス48、50の終点PB(P3)との距離が所定の閾値以下である場合に、該距離を長くするために、パス48、50の終点PB(P3)の位置をパス48、50に沿った別の位置に変更するようにしたので、RIP16によるラスタライズ処理の過程で、演算処理による誤差等の影響を受けることなく、パス48、50の終点近傍において常に線素を発生させ、あるいは常に線素を発生させない。すなわち、線素(特にA5)が不定に発生する現象を未然に防止可能である。これにより、破線を含む画像データに対してラスタライズ処理を行う際に生じ得る印刷不具合を防止できる。
【0101】
なお、この発明は、上述した実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。
【0102】
本実施の形態ではPDFを中心に説明したが、ページ記述言語はこれに限定されることはない。例えば、AdobeSystems社のPostScript(登録商標)やXPS(XML Paper Specification)等に対しても本発明を適用できる。
【0103】
また、本実施の形態では、パス48、50の終点の位置を変更するようにしたが、パス48、50の始点PA(P0)の位置をパス48、50に沿った別の位置に変更しても、同様の作用効果を得ることができる。
【符号の説明】
【0104】
10…出版システム 12…DTPコンピュータ
14…ページ記述データ処理装置 16…RIP
18…プルーフ 20…プリンタ
22…プレートセッタ 24…印刷機
26…印刷物 36…オブジェクト確認部
37…構造解析部 38…パスオブジェクト有無確認部
40…パスペイントオペレータ属性確認部
42…破線パターン決定オペレータ有無確認部
44…線素始点位置推定部 46…パス終点位置変更部
48、50、72…パス
70、80、202a、202b、PB、P3、Q2、Q4、Q6、Q8、Q10…終点
74、76、94、200a、200b、204a、204b、A、A1〜A5…線素
78、82、206a、206b、PA、P0、Q1、Q3、Q5、Q7、Q9…始点
84、100…判定領域
86、88、92、96、210a、210b、212…塗り潰し領域
90、98…新たな終点 96…新たな線素
208…終点位置

【特許請求の範囲】
【請求項1】
ページ記述データ中にパスをストロークするオブジェクトがあるか否かを確認するオブジェクト確認部と、
パスをストロークするオブジェクトが含まれていた場合に、該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認するオペレータ有無確認部と、
破線パターン決定オペレータが含まれていた場合に、前記パスを構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、前記パスに沿って形成される線素の始点の位置を推定する線素始点位置推定部と、
前記線素の始点と前記パスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更するパス終点位置変更部と
を有することを特徴とするページ記述データ処理装置。
【請求項2】
請求項1記載のページ記述データ処理装置において、
前記線素始点位置推定部は、曲線状のパスに沿って形成される線素の始点の位置を推定する
ことを特徴とするページ記述データ処理装置。
【請求項3】
請求項1又は2に記載のページ記述データ処理装置において、
前記パス終点位置変更部は、前記パスを外挿して予測された位置を前記別の位置とする
ことを特徴とするページ記述データ処理装置。
【請求項4】
請求項1〜3のいずれか1項に記載のページ記述データ処理装置において、
前記パス終点位置変更部は、前記ページ記述データをラスタライズする際の解像度に応じて前記所定の閾値を決定する
ことを特徴とするページ記述データ処理装置。
【請求項5】
ページ記述データ中にパスをストロークするオブジェクトがあるか否かを確認するステップと、
パスをストロークするオブジェクトが含まれていた場合に、該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認するステップと、
破線パターン決定オペレータが含まれていた場合に、前記パスを構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、前記パスに沿って形成される線素の始点の位置を推定するステップと、
前記線素の始点と前記パスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更するステップと
を備えることを特徴とするページ記述データ処理方法。
【請求項6】
コンピュータを、
ページ記述データ中にパスをストロークするオブジェクトがあるか否かを確認する手段、
パスをストロークするオブジェクトが含まれていた場合に、該オブジェクト中に破線パターンを決定する破線パターン決定オペレータが含まれているか否かを確認する手段、
破線パターン決定オペレータが含まれていた場合に、前記パスを構築するパス構築オペレータと前記破線パターン決定オペレータとに基づいて、前記パスに沿って形成される線素の始点の位置を推定する手段、
前記線素の始点と前記パスの終点との距離が所定の閾値以下である場合に、該距離を長くするために、該パスの終点の位置を該パスに沿った別の位置に変更する手段
として機能させるためのプログラム。

【図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