(57)【特許請求の範囲】
【請求項１】
印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納するステップと、
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、当該図形の描画命令を実行することなく、当該図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、当該図形の描画命令によって生成されることとなる描画オブジェクトが、文字の可能性が高いとされる所定の状態にあるか判断する判断ステップと、
前記図形の描画命令によって生成されることとなる描画オブジェクトが前記所定の状態にあると判断された場合、前記図形の描画命令に係る描画レコードに従って描画処理を実施し、前記記憶装置に格納するステップと、
前記描画処理の描画結果に対して文字認識処理を実施するステップと、
をコンピュータに実行させるための印刷データ処理プログラム。
【請求項２】
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードがイメージの描画命令を含む場合、当該イメージに対して文字認識処理を実施することなく、当該イメージ中の成分が所定の状態にあるか判断する第２判断ステップと、
前記イメージ中の成分が所定の状態にある場合には、前記イメージに対して文字認識処理を実施するステップと、
をさらに前記コンピュータに実行させるための請求項１記載の印刷データ処理プログラム。
【請求項３】
前記判断ステップが、
前記図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、前記図形の描画命令によって生成されることとなる前記描画オブジェクトが、直線状に並んで配置されている状態であるか判断するステップ
を含む請求項１記載の印刷データ処理プログラム。
【請求項４】
前記判断ステップが、
前記図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、前記図形の描画命令によって生成されることとなる前記描画オブジェクトの線幅の変化が、一定範囲内という状態であるか判断するステップ
を含む請求項１記載の印刷データ処理プログラム。
【請求項５】
前記第２判断ステップが、
前記イメージ中の線成分の傾き角が、９０度又は実質的に９０度間隔で分布するか判断するステップ
を含む請求項２記載の印刷データ処理プログラム。
【請求項６】
印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納するステップと、
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、当該図形の描画命令を実行することなく、当該図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、当該図形の描画命令によって生成されることとなる描画オブジェクトが、文字の可能性が高いとされる所定の状態にあるか判断する判断ステップと、
前記図形の描画命令によって生成されることとなる描画オブジェクトが前記所定の状態にあると判断された場合、前記図形の描画命令に係る描画レコードに従って描画処理を実施し、前記記憶装置に格納するステップと、
前記描画処理の描画結果に対して文字認識処理を実施するステップと、
を含み、コンピュータに実行される印刷データ処理方法。
【請求項７】
印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納する手段と、
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、当該図形の描画命令を実行することなく、当該図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、当該図形の描画命令によって生成されることとなる描画オブジェクトが、文字の可能性が高いとされる所定の状態にあるか判断する判断手段と、
前記図形の描画命令によって生成されることとなる描画オブジェクトが前記所定の状態にあると判断された場合、前記図形の描画命令に係る描画レコードに従って描画処理を実施し、前記記憶装置に格納する手段と、
前記描画処理の描画結果に対して文字認識処理を実施する手段と、
を有する印刷データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データの監視技術に関する。
【背景技術】
【０００２】
近年、文書データの情報漏洩が問題となっている。例えば２００６年度の個人情報漏洩インシデント調査結果によると、情報漏洩経路別事故発生件数比率では、紙媒体経由が４３．８％とトップを占めている。従って、多くの情報が電子化された現在でも、依然、紙文書による情報漏洩は無視できない。すなわち、機密文書の印刷の監視も、依然重要である。
【０００３】
従来の機密文書印刷の監視は、印刷を行う人のユーザＩＤで行われていた。具体的には、プリンタでの印刷時に、印刷者のユーザＩＤと印刷文書名や印刷日時をログとして記録する。また、元となる電子ファイルにアクセス権情報として、印刷許可／不許可を設定できるようにし、ユーザＩＤ毎に、印刷出来る電子ファイルを制限するという方法が取られていた。
【０００４】
また、ユーザＩＤとアクセス権に頼らない方法として、印刷データからテキスト情報を抽出し、その中に、個人情報などの機密情報が存在するかどうかを検出する方式もある。この場合、印刷データからテキスト情報を抽出し、予め設定された文字列、例えば人名等が入っていると、管理者に警告が発せられたり、ログとして記録されたりする。
【０００５】
なお、特開平８−２２１５１７号公報には、切出し確度の高い文字候補パターンのみに対して文字認識処理を実行することによって、認識処理時間を短縮する技術が開示されている。具体的には、画像メモリに蓄積されている画像データから黒連結成分の外接方形の座標を求める外接方形演算処理部と、個々の外接方形の統合及び統合後の強制切断を行って文字として認識される可能性がある複数の領域を文字候補パターンとして抽出する文字候補パターン抽出部と、文字候補パターンを格納する候補領域格納メモリと、個々の文字候補パターンに対して文字列中の文字としての確からしさを確率的に表す切出し確度を演算する切出し確度設定部とを備えて文字切出し装置を構成するものである。しかし、印刷データの監視という観点は開示されていない。
【０００６】
また、特開平８−２０２８８３号公報には、正確な図形認識ができるようにする技術が開示されている。具体的には、イメージスキャナ等により２値画像化する入力処理を行う。この２値画像化されたデータに対して輪郭ベクトル群の抽出とその情報圧縮になる輪郭ベクトル処理を行う。得られたベクトルデータから外周輪郭ベクトルだけでベクトル間距離が１ｍｍ以上の線幅があるかどうかを判断し、条件を満足したときには次の処理を行って、塗り潰しとなるベクトルを選択する。選択されたデータは塗り潰し図形変換を行う。図形変換データを基に編集修正を行う。なお、条件を満足しなかったときには、一括ポリゴン、ポリライン認識を行う。しかし、印刷データの監視という観点は開示されていない。
【０００７】
さらに、特開昭５５−８２３８１号公報には、原パターンである２次元パターンを周辺追跡してパターン判定を行う装置が開示されている。具体的には、本装置は、２次元パターンを処理して互いに包含関係にある複数個の閉曲線を抽出する手段と、閉曲線の個々についてその周辺追跡を行って得られる軌跡から閉曲線の形態分類を行う手段を有し、抽出された閉曲線の包含関係と、得られた閉曲線の形態分類結果から原パターンを判定する。しかし、印刷データの監視という観点は開示されていない。
【０００８】
また、特開平６−１５００６４号公報には、タブレット上に描かれたストロークや文字のサイズをもとに、図形か文字かを認識し、更に入力が文字の場合には表示する文字フォントのサイズを自動的に決定する手書き文字図形入力装置が開示されている。具体的には、タブレット（入力手段）からの手書き入力データからそのストロークや文字のサイズを判定するストローク、文字サイズ判定手段と、この判定結果をもとに、入力が文字か図形かを判断し、文字の場合には表示フォント格納手段内に格納されているフォントのなかから表示する文字フォントを選択し、これを表示手段に表示するよう指示する表示制御手段とを備える。しかし、印刷データの監視という観点は開示されていない。
【０００９】
さらに、特開平６−１４１１７６号公報には、参照エリアを大きくしないで、写真／文字判別の精度を上げるための技術が開示されている。具体的には、記憶部より注目画素を含む４×４の参照エリアの画素データが出力される。補正テーブル部は、この参照エリアの１ライン目の画素値変化箇所と隣接ライン間の画素値変化箇所の個数Ａ、並びに１列目の画素値変化箇所と隣接列間の画素値変化箇所の個数Ｂを計数し、Ａ，Ｂ両方が規定値以上のときにａ＝”１”を出力する。領域判定部は、ａ＝”１”の画素の連続出現個数を計数し、計数値が規定値以上のときに写真画像と判定しｂ＝”１”を出力する。補正テーブル部はｂ＝”１”の時に写真画像用スムージング補正を選び、ｂ＝”０”のときに文字画像用スムージング補正を選ぶ。しかし、文字の可能性を具体的に描画命令を実行してイメージを生成することなく判断するような技術は開示されていない。
【特許文献１】特開平８−２２１５１７号公報
【特許文献２】特開平８−２０２８８３号公報
【特許文献３】特開昭５５−８２３８１号公報
【特許文献４】特開平６−１５００６４号公報
【特許文献５】特開平６−１４１１７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
文書の印刷内容から、その文書が機密書類であるか否かを正しく判定するには、その文書の印刷データからテキスト情報を抽出しなければならない。しかし、印刷データ中の文字は、全て標準文字コードとして埋め込まれているわけではなく、図形や画像として存在する場合がある。この場合、印刷データから文字コードを抽出するだけでは、全ての文字を正しく抽出することはできない。特に、CONFIDENTIAL等、文書の背景に描画される透かし文字等を抽出できない。
【００１１】
従って、本発明の目的は、印刷データの監視を効率的且つ有効に実施するための新規な技術を提供することである。
【課題を解決するための手段】
【００１２】
本発明に係る印刷データ処理方法は、印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納するステップと、記憶装置に格納されている印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、当該図形の描画命令を実行することなく、当該図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、当該図形の描画命令によって生成されることとなる描画オブジェクトが、文字の可能性が高いとされる所定の状態にあるか判断する判断ステップと、図形の描画命令によって生成されることとなる描画オブジェクトが所定の状態にあると判断された場合、図形の描画命令に係る描画レコードに従って描画処理を実施し、記憶装置に格納するステップと、描画処理の描画結果に対して文字認識処理を実施するステップとを含む。
【００１３】
このように図形の描画命令をそのまま実行することなく文字の可能性が高いか否かを判断して、文字の可能性が高い場合に図形の描画命令を実行してさらに文字認識処理を実施することにより、効率的且つ有効に印刷データの監視を行うことができるようになる。
【００１４】
本発明に係る印刷データ処理方法は、記憶装置に格納されている印刷メタデータに含まれる描画レコードがイメージの描画命令を含む場合、当該イメージに対して文字認識処理を実施することなく、当該イメージ中の成分が所定の状態にあるか判断する第２判断ステップと、イメージ中の成分が所定の状態にある場合には、上記イメージに対して文字認識処理を実施するステップとをさらに含むようにしても良い。ビットマップなどのイメージデータにも文字が含まれている場合もあるので、このようにすれば効率的且つ有効に印刷データの監視を行うことができるようになる。
【００１５】
さらに、本発明に係る印刷データ処理方法は、文字認識処理の処理結果に所定の文字が含まれることを検出した場合、印刷処理を中断させるステップをさらに含むようにしても良い。このような制御を行うことによって、情報の漏洩を事前に防止することができるようになる。
【００１６】
また、上で述べた判断ステップが、図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、図形の描画命令によって生成されることとなる描画オブジェクトが、直線状に並んで配置されている状態であるか判断するステップを含むようにしてもよい。文字列は通常直線状に並んでいることが多いためである。
【００１７】
さらに、上で述べた判断ステップが、図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、図形の描画命令によって生成されることとなる描画オブジェクトの線幅の変化が、一定範囲内という状態であるか判断するステップを含むようにしてもよい。文字には様々なフォントが存在しているが、線幅の変化はそれほど大きくないので、このような処理を実施することにより判断することができる。
【００１８】
さらに、上で述べた第２判断ステップが、イメージ中の線成分の傾き角が、９０度又は実質的に９０度間隔で分布するか判断するステップを含むようにしてもよい。漢字などでは、線が比較的直角に交わることが多いので、このような条件を満たせば文字が含まれている可能性が高いと判断できる。
【００１９】
さらに、上で述べた判断ステップが、図形の描画命令に関連する描画レコードに含まれる描画点の座標値の変化量を算出するステップと、描画点の座標値の変化量が所定の閾値以上となる描画区間を特定するステップと、各描画区間について、当該描画区間における描画点の近似直線を算出するステップと、各描画区間について、当該描画区間における描画点を近似直線に投影して描画点の近似直線上の移動量を算出するステップと、各描画区間について、近似直線上の移動量の分布におけるピークのうち移動量最大のピークについての移動量である推定文字間隔移動量を特定するステップと、各描画区間について、特定された推定文字間隔移動量が発生する描画点が等間隔又は実質的に等間隔に発生しているか判断するステップとを含むようにしてもよい。
【００２０】
また、上で述べた判断ステップが、図形の描画命令に関連する描画レコードに含まれる描画点の座標値から閉曲線毎に曲線長を算出するステップと、閉曲線毎に、当該閉曲線内の面積を算出するステップと、閉曲線毎に、閉曲線内の面積と曲線長とから単位曲線長あたりの面積を算出するステップと、単位曲線長あたりの面積の変動幅が所定範囲内の閉曲線の区間を特定するステップとを含むようにしてもよい。
【００２１】
さらに、上で述べた第２判断ステップが、イメージを二値化し、さらに細線化処理を実施するステップと、細線化されたイメージにおいて、各細線の端点及び分岐点を抽出し、当該端点及び分岐点間を結ぶ直線の傾きの分布を特定するステップと、直線の傾きの分布において頻出する傾き角の上位２つを特定するステップと、特定された傾き角の上位２つが、９０度又は実質的に９０度間隔で配置されているか判断するステップとを含むようにしてもよい。
【００２２】
なお、本印刷データ処理方法は、コンピュータと当該コンピュータによって実行されるプログラムとの組み合わせにて実行される場合があり、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【発明の効果】
【００２３】
本発明によれば、印刷データの監視を効率的且つ有効に実施することができるようになる。
【発明を実施するための最良の形態】
【００２４】
図１に、パーソナルコンピュータなどの従来のコンピュータのシステム構成及び印刷処理のフローを模式的に示す。従来のコンピュータは、ワードプロセッサー・プログラムなどのアプリケーション１０、Ｗｉｎｄｏｗｓ（登録商標）などのオペレーティング・システム（ＯＳ：Operating System）１１、プリンタ・ドライバ１２及びプリンタ１３を有している。そして、ユーザから印刷を指示されると、アプリケーション１０は、描画命令をＯＳ１１に出力する。ＯＳ１１の所定のモジュールは、印刷メタデータを生成してプリンタ・ドライバ１２に出力する。印刷メタデータは、例えばＥＭＦ（Enhanced Meta File）、ＸＰＳ（XML Paper Specification）、PostScript、ＰＤＦ（Portable Document Format）などが該当する。プリンタ・ドライバ１２は、コンピュータに接続されているプリンタ１３のためのプリンタ固有データを生成して、プリンタ１３に出力する。プリンタ１３は、プリンタ固有データを受信して、当該プリンタ固有データに従って印刷処理を実施する。
【００２５】
印刷メタデータには、文字描画のためのデータが含まれているが、その文字描画の方法には、１）標準文字コードによる文字描画、２）Ｔｙｐｅ３フォントを用いた文字描画、３）図形としての文字描画、４）ビットマップ画像としての文字描画といったものがある。標準文字コードによる文字描画の場合には、印刷メタデータには標準文字コードが含まれているので、この標準文字コードを抽出すればどのような情報が印刷されるかを把握することができる。しかし、２乃至４の方法が採用されている場合には、標準文字コードは印刷メタデータには含まれておらず、標準文字コードだけに着目していては印刷データの監視という意味では有効性が低くなる。
【００２６】
そこで、本発明の実施の形態では、図２に示すようなシステムを採用することとする。すなわち、アプリケーション１０、ＯＳ１１、プリンタ・ドライバ１２及びプリンタ１３については図１と同様であるが、ＯＳ１１から出力される印刷メタデータを処理するプリントマネージャ２００を導入する。プリントマネージャ２００は、ＯＳ１１から出力された印刷メタデータをフックして、以下で述べるような処理を実施し、印刷される情報に問題がなければ、ＯＳ１１から受け取った印刷メタデータをそのままプリンタ・ドライバ１２に出力する。一方、印刷される情報に問題があれば、印刷処理を停止又は中止したり、管理者などに警告などを出力する。単にログを生成して記録するようにするだけでも良い。
【００２７】
次に、プリントマネージャ２００によって実現される機能の機能ブロック図を図３に示す。図３に示されるようにプリントマネージャ２００により、印刷メタデータ取得部２０１と、印刷メタデータ取得部２０１により取得された印刷メタデータを格納する印刷メタデータ格納部２０３と、印刷メタデータ格納部２０３に格納されている印刷メタデータから処理単位毎に描画レコードを抽出する描画レコード抽出部２０５と、描画レコード抽出部２０５によって抽出された描画レコードを格納する抽出描画レコード格納部２０７と、抽出描画レコード格納部２０７に格納された描画レコードについて判断処理を実施する描画命令判断部２０９と、描画命令判断部２０９の指示により抽出描画レコード格納部２０７に格納された描画レコードについて処理を実施する描画命令処理部２１１と、描画命令処理部２１１又は描画命令判断部２０９の指示により抽出描画レコード格納部２０７に格納されている描画レコードの実行処理を行う描画命令実行部２１３と、描画命令処理部２１１から出力されたイメージ・データ又は描画命令実行部２１３により生成された描画結果を格納する画像格納部２１７と、画像格納部２１７に格納されたデータについて周知の文字認識処理を実施する文字認識部２１９と、描画命令判断部２０９によって抽出された標準文字コード又は文字認識部２１９によって抽出された文字コードを格納する文字コード格納部２１５と、描画レコード抽出部２０５からの指示に応じて文字コード格納部２１５に格納されている文字コードに対して判定処理を実施し、問題がなければ印刷メタデータ格納部２０３に格納された印刷メタデータをプリンタ・ドライバ１２に出力する文字判定部２２１とが実現される。
【００２８】
以下、図４乃至図２０を用いて図３に示した機能ブロックの処理について説明する。まず、印刷メタデータ取得部２０１は、ＯＳ１１が印刷メタデータを出力すると、当該印刷メタデータをフックして印刷メタデータ格納部２０３に格納する（ステップＳ１）。このようにして、印刷メタデータを一旦プリンタ・ドライバ１２に出力しないようにする。印刷メタデータは、例えば図５に示すような構造を有する。
【００２９】
図５に示すように、印刷メタデータは、複数の描画レコードで構成される。描画レコードには、描画ペンの作成、描画開始位置（描画座標）の設定、各種描画命令（直線描画、円弧描画、ベジェ曲線描画、文字の描画など）、描画ペンの破棄などであって、印刷に必要なデータが複数の描画レコードにて規定されている。描画レコードの順番に特に規則はないので、例えば描画ペンの作成と描画開始位置の設定の順番は、逆転する場合もある。標準文字コードでの文字描画であれば、標準文字コード及びフォント種別が含まれており、Ｔｙｐｅ３フォントを用いた文字描画であれば、グリフ（Ｇｒｙｐｈ）ＩＤとフォントデータが含まれており、図形による文字描画の場合には、１又は複数の輪郭線の描画命令及び描画開始位置が含まれており、イメージによる文字描画の場合には、ビットマップ画像及び描画開始位置等が含まれている。これらを用いて以下の処理を行う。
【００３０】
図６に示すような一般的な印刷物を印刷する場合、全てが標準文字コードで文字が印刷されるのではなく、図７に示すように、「新入社員の研修日程について」については例えば文節毎にイメージとして文字を描画し、「第１日目」から「運用コスト試算」までの文字については標準文字コードによる文字描画（テキスト文字として描画）を行い、「関係者外秘」については、図形（ポリゴン）として描画し、右下の絵については図形（ポリゴン）として描画する。このように様々な描画方法が採用されている場合には、印刷メタデータには、各描画方法についての描画レコードが全て含まれる。各文字は複数の描画レコードで構成される場合もある。
【００３１】
図４の処理の説明に戻って、描画レコード抽出部２０５は、印刷メタデータ格納部２０３から、例えば描画命令の種別が変化するまで未処理の描画レコードを読み出し、抽出描画レコード格納部２０７に格納する（ステップＳ３）。図７に示した例でも、１つイメージを描画した後に、標準文字コードの文字を１つ描画するということも可能であるが、通常はある程度のかたまりでイメージを連続して描画し、標準文字コードの文字を連続して描画し、図形を連続して描画するため、ステップＳ３では、描画方法が同じ描画レコードについては一括して処理する。
【００３２】
そして、描画命令判断部２０９は、抽出描画レコード格納部２０７を参照して、格納されている描画レコードが、標準文字コードによる文字描画を指示するものであるか判断する（ステップＳ５）。抽出描画レコード格納部２０７に格納されている描画レコードが、標準文字コードによる文字描画を指示するものである場合には、当該標準文字コードを描画レコードから抽出し、文字コード格納部２１５に格納する（ステップＳ７）。そして処理は、端子Ａを介して図２０に移行する。
【００３３】
一方、標準文字コードによる文字描画を指示するものではない場合には、描画命令判断部２０９は、抽出描画レコード格納部２０７に格納されている描画レコードが、Ｔｙｐｅ３フォントによる文字描画を指示するものであるか判断する（ステップＳ９）。抽出描画レコード格納部２０７に格納されている描画レコードが、Ｔｙｐｅ３フォントによる文字描画を指示するものである場合には、描画命令判断部２０９は、描画命令実行部２１３に指示を出力し、描画命令実行部２１３は、抽出描画レコード格納部２０７に格納されている描画レコードの描画命令を実行して画像として実体化し、画像格納部２１７に格納する（ステップＳ１１）。そして、文字認識部２１９は、画像格納部２１７に格納されているイメージ・データに対して周知の文字認識処理を実施する（ステップＳ１３）。そして、端子Ａを介して図２０の処理に移行する。
【００３４】
一方、Ｔｙｐｅ３フォントによる文字描画を指示するものではない場合には、描画命令判断部２０９は、図形（ポリゴン）の描画であるか判断する（ステップＳ１５）。図形の描画である場合には、描画命令判断部２０９は、描画命令処理部２１１に指示して、第１文字包含判断処理を実施する（ステップＳ１７）。
【００３５】
第１文字包含判断処理については、図８乃至図１８を用いて説明する。なお、本実施の形態では、２つの第１文字包含判断処理について説明するが、これらのうちいずれかを実施するようにしても良いし、両方を重複して実施するようにしても良い。
【００３６】
まず図８乃至図１５を用いて１つ目の第１文字包含判断処理（第１文字包含判断処理Ａ）について説明する。第１文字包含判断処理Ａは、文字は等間隔に直線状に配置されることが多いという性質を用いて文字の可能性が高いか否かを判断するものである。
【００３７】
まず、描画命令処理部２１１は、抽出描画レコード格納部２０７に格納されている描画レコードから、描画点の描画座標を抽出する（ステップＳ３１）。そして、描画座標の変化量を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ３３）。例えば、１番目の描画座標と２番目の描画座標との距離を変化量として算出し、２番目の描画座標と３番目の描画座標との距離を変化量として算出し、といったように、順番に変化量を算出する。
【００３８】
例えば、図９に示すように、１乃至６が第１のサイズで図形により描画される文字であり、７乃至１１が第２のサイズで図形により描画される文字であり、右下には数千個の図形がランダムに配置されているような場合を考える。このような場合、通常であれば、１乃至６の文字を描画した後に、７乃至１１の文字を描画し、さらに数千個の図形をランダムに描画する。このように、１乃至６の文字を左から順番に描画する場合には、その輪郭線の描画開始位置の変化量は、大小はあるもののそれほど大きく変化はしない。同様に、７乃至１１の文字を左下から右上に順番に描画する場合には、その輪郭線の描画開始位置の変化量は、大小はあるもののそれほど大きくは変化しない。文字が大きいので１乃至６の文字の場合に比して相対的に大きくなる。但し、６の文字から７の文字の描画に遷移する際に描画開始位置の変化量は大きくなる。同様に、１１の文字から数千個の図形のうち最初の図形の描画に遷移する際にも描画開始位置の変化量は大きくなる。移動量をグラフ化して模式的に示せば、図１０に示すようになる。図１０では、横軸は、描画の順番を示しており、縦軸は、描画開始位置の移動量を示している。このように、☆印で示すように移動量のピークが２つ現れ、３つの区間に分かれていることを特定できるようになる。
【００３９】
図８の説明に戻って、描画命令処理部２１１は、描画座標の変化量（例えば図１０のようなグラフ）に対して周知の平滑化処理を実施し、例えばメインメモリなどの記憶装置に格納する（ステップＳ３５）。このような平滑化処理によって、図１０のグラフにおいて小さなピークが丸められ、２つの大きなピークを特定しやすくなる。そして、平滑化後の描画座標の変化量が閾値を超える箇所を検出し、描画区間を特定する（ステップＳ３７）。図１０のようなグラフの場合には、２つのピークから、第１乃至第３の区間を特定する。すなわち、第１の区間が、最初からＸ１番目の描画開始位置までであり、第２の区間がＸ１＋１番目からＸ２番目の描画開始位置までであり、第３の区間がＸ２＋１から最後の描画開始位置までである。ほぼ１乃至６の文字が第１の区間になり、７乃至１１の文字が第２の区間になり、残りが第３の区間になる。
【００４０】
そして、描画命令処理部２１１は、各区間において、描画点付近を通る直線を例えば最小自乗法にて算出する（ステップＳ３９）。例えば７乃至１１がＣＯＮＦＩＤＥＮＴＩＡＬのような文字であれば、図１１に模式的に示すような直線が算出される。小さい点は描画点である。なお、数千個の図形の部分にも、直線が算出されるが、以下の処理で文字の可能性小と判断される。
【００４１】
その後、描画命令処理部２１１は、１つの未処理区間を特定し（ステップＳ４１）、描画点移動判定処理を実施する（ステップＳ４３）。描画点移動判定処理については、図１２を用いて説明する。なお、描画点移動判定処理の後には端子Ｄを介して図１５の処理に移行する。まず、描画命令処理部２１１は、描画点を、ステップＳ３９で算出された直線に投影した際の位置及び移動量を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ６１）。例えば、第１の描画点の投影位置と、第２の描画点の投影位置との距離を移動量として算出し、第２の描画点の投影位置と、第３の描画点の投影位置との距離を移動量として算出し、といったように直線上における移動量を算出してゆく。
【００４２】
例えば、図１１の例では、図１３に示すような移動量の変化を得られる。図１３では、横軸は描画点の移動順番を示し、縦軸は直線上の描画点の移動量を示す。このように、文字内の移動量（例えば「Ｃ」「Ｏ」「Ｎ」を描画中の移動量）の絶対値はあまり大きくないが、文字間を移動する際には移動量の絶対値は大きくなる。もし、文字列でない区間であれば、移動量はばらばらであって、ピークが規則的に現れることはなく、ピークはばらばらで特徴的な規則はない。
【００４３】
そして、描画命令処理部２１１は、移動量のヒストグラムを生成し、例えばメインメモリなどの記憶装置に格納する（ステップＳ６３）。図１１の例では、例えば図１４に示すようなヒストグラムが得られる。図１４では、横軸は描画点の移動量を表し、縦軸は頻度を表す。図１１のような例では、文字内の移動量を代表する小さい移動量のピークと、文字間の移動量を代表する大きい移動量のピークの２つのピークが現れる。もし、文字列でない区間であれば、移動量がばらばらなので意味のあるピークは現れない。
【００４４】
その後、描画命令処理部２１１は、ヒストグラムにおけるピーク位置から、文字間移動時の推定移動量を特定する（ステップＳ６５）。具体的には、ヒストグラムにおけるピークのうち移動量が最も大きいピークを特定し、当該ピークの移動量を、文字間移動時の推定移動量として特定する。
【００４５】
さらに、描画命令処理部２１１は、文字間移動時の推定移動量に一致する又はほぼ一致する描画位置（ここでは直線上に投影した際の位置）を特定する（ステップＳ６７）。具体的には、
｜描画位置の移動量−文字間移動時の推定移動量｜／（文字間移動時の推定移動量）＜α
を満たすような描画点の位置を特定する。なお、αは、微小の閾値である。図１１の例では、図１３に示すグラフにおける☆印の位置で、上記の条件を満たすようになるので、その描画点の直線上の投影位置を特定する。
【００４６】
そして、描画命令処理部２１１は、ステップＳ６７で特定された描画位置間の距離（ここでは直線上に投影した際の距離）を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ６９）。
【００４７】
このようにして、直線上の描画点の移動状況を特定する。
【００４８】
そして、端子Ｄの後の図１５の処理の説明に移行して、描画命令処理部２１１は、ステップＳ６９で算出された距離が一致又はほぼ一致しているか判断する（ステップＳ４５）。すなわち、文字がほぼ等間隔で並んでいるか判断する。例えば、距離の差が、予め定められた閾値未満であるか判断する。距離がほぼ一致すると判断された場合には、処理対象区間について文字の可能性大と設定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ４７）。一方、距離がほぼ一致するとは判断できない場合には、処理対象区間について文字の可能性小と設定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ４９）。そして、ステップＳ４７又はＳ４９の後に、全ての区間について処理したか判断し（ステップＳ５１）、未処理の区間が存在する場合には端子Ｅを介してステップＳ４１に戻り、未処理の区間が存在しない場合には元の処理に戻る。
【００４９】
このようにすれば、描画オブジェクトがほぼ等間隔に直線状に並んでいる区間を特定することができ、その区間について文字の可能性大と判定することができるようになる。
【００５０】
次に、図１６乃至図１８を用いて、２つ目の第１文字包含判断処理（第１文字包含判断処理Ｂ）について説明する。図１６（ａ）には文字の一例として「関」という漢字が示されている。文字の場合フォントの種類にもよるが、図形の線幅（例えば閉曲線で囲まれる領域の面積／閉曲線の長さ又は２×（閉曲線で囲まれる領域の面積）／閉曲線の長さ）はあまり変動することはない。一方、図１６（ｂ）には文字以外のポリゴンの一例を示しているが、このようなポリゴンの場合、図形の線幅については様々に変化する。第１文字包含判断処理Ｂでは、このような特徴を用いて文字の可能性の高い部分を特定する。
【００５１】
まず、描画命令処理部２１１は、抽出描画レコード格納部２０７から、閉曲線単位で、描画レコードを抽出する（ステップＳ７１）。そして、閉曲線毎に曲線長を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ７３）。描画点の間については直線近似して距離を求めるようにしても良い。その後、閉曲線毎に、当該閉曲線内の面積を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ７５）。面積については、例えば描画点で構成される三角形や四角形に分割して、加算減算を行うことによって算出することができる。このような手法は周知であるからここでは詳細な説明を省略する。
【００５２】
さらに、描画命令処理部２１１は、閉曲線毎に、単位曲線長あたりの面積を算出し、例えばメインメモリなどの記憶装置に格納する（ステップＳ７７）。具体的には、ステップＳ７５で算出された面積／ステップＳ７３で算出された閉曲線の曲線長で算出される。そして、単位曲線長あたりの面積を列挙して、その変動幅が所定範囲内の区間を抽出する（ステップＳ７９）。図１８に一例を示す。図１８の例では、横軸は描画の順番を表し、縦軸は単位曲線長あたりの面積を表す。図１８に示すように、小さい文字の文字列では、単位曲線長あたりの面積は、低位安定でばらつきは少なく、大きい文字の文字列では、単位曲線長あたりの面積、高位安定でばらつきは少ない。一方、文字列でない区間では、単位曲線長あたりの面積は、大きくばらつく。従ってステップＳ７９では、単位曲線長あたりの面積の変動幅が所定範囲内の区間（閉曲線の区間）を特定する。
【００５３】
そして、描画命令処理部２１１は、抽出された閉曲線の区間については文字の可能性大を設定し、抽出された閉曲線の区間以外の区間については文字の可能性小を設定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ８１）。
【００５４】
このようにすれば、線幅に基づき文字の可能性が大である区間を抽出することができるようになる。
【００５５】
図４の処理フローの説明に戻って、ステップＳ１７の後に、描画命令処理部２１１は、文字の可能性大とされた区間又は部分が存在するか判断する（ステップＳ２１）。文字の可能性大とされた区間又は部分が存在しない場合には、端子Ｂを介して図２０のステップＳ１１３に移行する。一方、文字の可能性大とされた区間又は部分が存在した場合には、描画命令処理部２１１は、描画命令実行部２１３に指示を出力し、描画命令実行部２１３は、抽出描画レコード格納部２０７に格納されている描画レコードについての描画命令を実行して画像として実体化し、画像格納部２１７に格納する（ステップＳ２３）。なお、文字の可能性大とされた区間又は部分についてのみ画像として実体化するようにしてもよいし、念のため全体を画像として実体化させるようにしてもよい。一方、ステップＳ１５で図形の描画ではないと判断された場合には、イメージの描画であるから、描画命令処理部２１１は、第２文字包含判断処理を実行する（ステップＳ１９）。この第２文字包含判断処理の後にステップＳ２１に移行する。第２文字包含判断処理を経てステップＳ２３に到達した場合には、ステップＳ２３で、描画命令処理部２１１は、抽出描画レコード格納部２０７から、ビットマップ画像を抽出して、画像格納部２１７に格納する。そして、ステップＳ１３に移行する。
【００５６】
図１９を用いて第２文字包含判断処理について説明する。本実施の形態では、主に漢字であれば直交する直線が多数存在するという性質を用いて、ビットマップ画像に文字が含まれる可能性が高いか否かを判断するものである。
【００５７】
まず、描画命令処理部２１１は、抽出描画レコード格納部２０７から描画レコードに含まれるビットマップ画像のデータを抽出する（ステップＳ９１）。そして、当該ビットマップ画像を周知の手法にて二値化し（ステップＳ９３）、さらに周知の細線化処理を実施する（ステップＳ９７）。二値化及び細線化の処理結果は、例えばメインメモリなどの記憶装置に格納する。さらに、細線化されたビットマップ画像中の細線における端点及び分岐点を抽出し（ステップＳ９７）、端点同士、分岐点同士、及び端点と分岐点を結ぶ直線の傾き角度を特定する（ステップＳ９９）。
【００５８】
そして、描画命令処理部２１１は、ステップＳ９９で特定された傾き角度についてヒストグラムを生成し、頻出角度の上位２つを特定する（ステップＳ１０１）。ここで、頻出角度の上位２つの差が直角又はほぼ直角であれば文字の可能性大と設定し、そうでなければ文字の可能性小と設定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１０３）。そして元の処理に戻る。
【００５９】
このようにして、ビットマップ画像において文字が含まれる可能性について判断することができる。但し、他の手法を用いるようにしても良い。
【００６０】
次に、図４の端子Ａ以降の処理（図２０）について説明する。図４の端子Ａの前に、文字認識処理を実施しているので、文字認識部２１９は、当該文字認識処理の処理結果である文字コードを文字コード格納部２１５に格納する（ステップＳ１１１）。その後、描画レコード抽出部２０５は、全ての描画レコードを処理したか判断する（ステップＳ１１３）。未処理の描画レコードが存在する場合にはステップＳ３（図４）に戻る。一方、全ての描画レコードについて処理した場合には、描画レコード抽出部２０５は、文字判定部２２１に指示を出力し、文字判定部２２１は、文字コードが文字コード格納部２１５に格納されているか判断する（ステップＳ１１５）。上で述べた処理を実施しても全て絵だけで、文字が含まれていない場合もあるので、ここで判断する。文字コードが含まれていない場合にはステップＳ１１９に移行する。一方、文字コードが含まれている場合には、文字判定部２２１は、文字コードを解析する処理を実施する（ステップＳ１１７）。例えば、特定すべき文字列についての文字コードを予め格納したファイル等（図示せず）を用意しておき、当該ファイルを参照して一致するか否かを判断する。
【００６１】
そして、文字判定部２２１は、文字コードの解析処理の結果として印刷停止を行うべきか判断する（ステップＳ１１９）。例えば重要な書類に付される文字列（厳秘など）が含まれると判断された場合には、印刷停止にする（ステップＳ１２３）。すなわち、印刷メタデータ格納部２０３に格納されている印刷メタデータをプリンタ・ドライバ１２に出力することなく、処理を終了する。印刷停止と併せて又は印刷停止ではなく、管理者などに警告を出力するようにしても良い。その後処理を終了する。
【００６２】
一方、文字コードが含まれていない等の印刷停止する必要がないケースでは、文字判定部２２１は、印刷メタデータ格納部２０３に格納されている印刷メタデータを、プリンタ・ドライバ１２に出力する（ステップＳ１２１）。そして処理を終了する。
【００６３】
以上のように、印刷メタデータに含まれる描画命令を実際に実行することなく文字が含まれる可能性について適切に判断し、その結果文字が含まれる可能性が大きい場合には描画命令を実際に実行して文字認識を実行している。従って、効率的に文字の有無を判断して、印刷メタデータから文字コードを抽出することができ、適切に印刷の可否を判断することができるようになる。印刷の可否ではなく、警告の有無を判断するようにしても良い。
【００６４】
以上本発明の実施の形態について説明したが、本発明はこれに限定されるものではない。例えば、上で述べた処理フローは一例であって、処理結果が同じであれば、処理ステップの順番を入れ替えたり、並列実行するように変更することも可能である。
【００６５】
さらに図３に示した機能ブロック図については一例であって、必ずしもプリントマネージャ２００のプログラム・モジュールに対応しない場合もある。
【００６６】
さらに、第１文字包含判断処理についても、文字又は文字列が有する特徴を、イメージではなく図形の描画命令等から抽出する他の処理で代替することも可能である。さらに、上で述べた処理に加えて実施するようにしても良い。
【００６７】
なお、図２に示したコンピュータは、例えばコンピュータ装置であって、図２１に示すように当該コンピュータ装置においては、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７と、プリンタ２５２１とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ）及びＷｅｂブラウザを含むアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。このようなコンピュータは、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６８】
（付記１）
印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納するステップと、
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、当該図形の描画命令を実行することなく、当該図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、当該図形の描画命令によって生成されることとなる描画オブジェクトが、文字の可能性が高いとされる所定の状態にあるか判断する判断ステップと、
前記図形の描画命令によって生成されることとなる描画オブジェクトが前記所定の状態にあると判断された場合、前記図形の描画命令に係る描画レコードに従って描画処理を実施し、前記記憶装置に格納するステップと、
前記描画処理の描画結果に対して文字認識処理を実施するステップと、
をコンピュータに実行させるための印刷データ処理プログラム。
【００６９】
（付記２）
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードがイメージの描画命令を含む場合、当該イメージに対して文字認識処理を実施することなく、当該イメージ中の成分が所定の状態にあるか判断する第２判断ステップと、
前記イメージ中の成分が所定の状態にある場合には、前記イメージに対して文字認識処理を実施するステップと、
をさらに前記コンピュータに実行させるための付記１記載の印刷データ処理プログラム。
【００７０】
（付記３）
前記文字認識処理の処理結果に所定の文字が含まれることを検出した場合、前記印刷処理を中断させるステップ
をさらに実行させるための付記１記載の印刷データ処理プログラム。
【００７１】
（付記４）
前記判断ステップが、
前記図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、前記図形の描画命令によって生成されることとなる前記描画オブジェクトが、直線状に並んで配置されている状態であるか判断するステップ
を含む付記１記載の印刷データ処理プログラム。
【００７２】
（付記５）
前記判断ステップが、
前記図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、前記図形の描画命令によって生成されることとなる前記描画オブジェクトの線幅の変化が、一定範囲内という状態であるか判断するステップ
を含む付記１記載の印刷データ処理プログラム。
【００７３】
（付記６）
前記第２判断ステップが、
前記イメージ中の線成分の傾き角が、９０度又は実質的に９０度間隔で分布するか判断するステップ
を含む付記２記載の印刷データ処理プログラム。
【００７４】
（付記７）
前記判断ステップが、
前記図形の描画命令に関連する描画レコードに含まれる描画点の座標値の変化量を算出するステップと、
前記描画点の座標値の変化量が所定の閾値以上となる描画区間を特定するステップと、
各前記描画区間について、当該描画区間における前記描画点の近似直線を算出するステップと、
各前記描画区間について、当該描画区間における前記描画点を前記近似直線に投影して前記描画点の近似直線上の移動量を算出するステップと、
各前記描画区間について、前記近似直線上の移動量の分布におけるピークのうち移動量最大のピークについての移動量である推定文字間隔移動量を特定するステップと、
各前記描画区間について、特定された前記推定文字間隔移動量が発生する前記描画点が等間隔又は実質的に等間隔に発生しているか判断するステップと、
を含む付記１記載の印刷データ処理プログラム。
【００７５】
（付記８）
前記判断ステップが、
前記図形の描画命令に関連する描画レコードに含まれる描画点の座標値から閉曲線毎に曲線長を算出するステップと、
前記閉曲線毎に、当該閉曲線内の面積を算出するステップと、
前記閉曲線毎に、前記閉曲線内の面積と前記曲線長とから単位曲線長あたりの面積を算出するステップと、
前記単位曲線長あたりの面積の変動幅が所定範囲内の前記閉曲線の区間を特定するステップと、
を含む付記１記載の印刷データ処理プログラム。
【００７６】
（付記９）
前記第２判断ステップが、
前記イメージを二値化し、さらに細線化処理を実施するステップと、
細線化された前記イメージにおいて、各細線の端点及び分岐点を抽出し、当該端点及び分岐点間を結ぶ直線の傾きの分布を特定するステップと、
前記直線の傾きの分布において頻出する傾き角の上位２つを特定するステップと、
特定された前記傾き角の上位２つが、９０度又は実質的に９０度間隔で配置されているか判断するステップと、
を含む付記２記載の印刷データ処理プログラム。
【００７７】
（付記１０）
印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納するステップと、
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、当該図形の描画命令を実行することなく、当該図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、当該図形の描画命令によって生成されることとなる描画オブジェクトが、文字の可能性が高いとされる所定の状態にあるか判断する判断ステップと、
前記図形の描画命令によって生成されることとなる描画オブジェクトが前記所定の状態にあると判断された場合、前記図形の描画命令に係る描画レコードに従って描画処理を実施し、前記記憶装置に格納するステップと、
前記描画処理の描画結果に対して文字認識処理を実施するステップと、
を含み、コンピュータに実行される印刷データ処理方法。
【００７８】
（付記１１）
印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納する手段と、
前記記憶装置に格納されている前記印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、当該図形の描画命令を実行することなく、当該図形の描画命令に関連する描画レコードに含まれる描画点の座標値から、当該図形の描画命令によって生成されることとなる描画オブジェクトが、文字の可能性が高いとされる所定の状態にあるか判断する判断手段と、
前記図形の描画命令によって生成されることとなる描画オブジェクトが前記所定の状態にあると判断された場合、前記図形の描画命令に係る描画レコードに従って描画処理を実施し、前記記憶装置に格納する手段と、
前記描画処理の描画結果に対して文字認識処理を実施する手段と、
を有する印刷データ処理装置。
【図面の簡単な説明】
【００７９】
【図１】従来技術の問題を説明するための図である。
【図２】本発明の実施の形態に係るシステム概要を示す図である。
【図３】プリントマネージャ２００により実現される機能ブロックを表す図である。
【図４】本発明の実施の形態におけるメインの処理フローを示す図である。
【図５】印刷メタデータの構造例を示す図である。
【図６】印刷物の一例を示す図である。
【図７】印刷物の描画方法例を示す図である。
【図８】第１文字包含判断処理Ａの処理フローを示す図である。
【図９】図形による文字描画の例を示す図である。
【図１０】描画開始位置の移動量変化の一例を示す図である。
【図１１】傾いている文字列の近傍を通る直線の一例を示す図である。
【図１２】描画点移動判定処理の処理フローを示す図である。
【図１３】直線上に対する描画点の投影位置の移動量の変化を示す図である。
【図１４】描画点の移動量のヒストグラムの一例を示す図である。
【図１５】第１文字包含判断処理Ａの処理フローを示す図である。
【図１６】（ａ）は、漢字の一例を示す図であり、（ｂ）は図形（絵）の一例を示す図である。
【図１７】第１文字包含判断処理Ｂの処理フローを示す図である。
【図１８】単位曲線長あたりの面積の変化を示す図である。
【図１９】第２文字包含判断処理の処理フローを示す図である。
【図２０】本発明の実施の形態におけるメインの処理フローを示す図である。
【図２１】コンピュータの機能ブロック図である。
【符号の説明】
【００８０】
１０  アプリケーション    １１  ＯＳ    １２  プリンタ・ドライバ
１３  プリンタ    ２００  プリンタマネージャ
２０１  印刷メタデータ取得部    ２０３  印刷メタデータ格納部
２０５  描画レコード抽出部    ２０７  抽出描画レコード格納部
２０９  描画命令判断部    ２１１  描画命令処理部
２１３  描画命令実行部    ２１５  文字コード格納部
２１７  画像格納部    ２１９  文字認識部
２２１  文字判定部
【図１】
0004915337.tif 000002
【図２】
0004915337.tif 000003
【図３】
0004915337.tif 000004
【図４】
0004915337.tif 000005
【図５】
0004915337.tif 000006
【図６】
0004915337.tif 000007
【図７】
0004915337.tif 000008
【図８】
0004915337.tif 000009
【図９】
0004915337.tif 000010
【図１０】
0004915337.tif 000011
【図１１】
0004915337.tif 000012
【図１２】
0004915337.tif 000013
【図１３】
0004915337.tif 000014
【図１４】
0004915337.tif 000015
【図１５】
0004915337.tif 000016
【図１６】
0004915337.tif 000017
【図１７】
0004915337.tif 000018
【図１８】
0004915337.tif 000019
【図１９】
0004915337.tif 000020
【図２０】
0004915337.tif 000021
【図２１】
0004915337.tif 000022