(57)【要約】      （修正有）【課題】ＭＸＤＣでオブジェクトの属性がテキスト属性から非テキスト属性に置き換えられることによる弊害が生じないようにする。【解決手段】文書の描画データを構成する描画コマンドの形式を所定の形式に変換して、変換後の描画コマンドをドライバに渡し、前記変換後の描画コマンドに基づいて、所定フォーマットの電子文書を生成するドライバを有し、前記文書の描画データを構成する描画コマンドのうち、所定の条件を満たすテキスト属性のオブジェクトについて、テキスト属性以外の属性の描画コマンドに変更して前記変換を行い、当該所定の条件を満たすテキスト属性のオブジェクトに関するテキスト情報と当該変換後の描画コマンドとをプリンタドライバに渡す。前記ドライバは、該変換後の描画コマンドとテキスト情報とに基づいて、前記テキスト属性以外の属性に変更されたオブジェクトをテキスト属性のオブジェクトで表現した電子文書を生成する。【選択図】図５
2018190157.tif 000002
【特許請求の範囲】
【請求項１】
文書の出力指示に応じてアプリケーションから出力される前記文書の描画データを受け取って、当該文書の描画データを構成する描画コマンドの形式を、所定の形式に変換して、当該変換後の描画コマンドをプリンタドライバに渡す変換手段と、
前記変換手段から受け取った前記変換後の描画コマンドに基づいて、所定フォーマットの電子文書を生成するプリンタドライバと、
を有する情報処理装置であって、
前記変換手段は、前記文書の描画データを構成する描画コマンドのうち、所定の条件を満たすテキスト属性のオブジェクトについて、テキスト属性以外の属性の描画コマンドに変更して前記変換を行い、当該所定の条件を満たすテキスト属性のオブジェクトに関するテキスト情報と当該変換後の描画コマンドとを前記プリンタドライバに渡し、
前記プリンタドライバは、前記受け取った変換後の描画コマンドと前記テキスト情報とに基づいて、前記テキスト属性以外の属性に変更されたオブジェクトを、テキスト属性のオブジェクトで表現した前記所定フォーマットの電子文書を生成する
ことを特徴とする情報処理装置。
【請求項２】
前記変換手段は、前記所定の条件を満たすテキスト属性のオブジェクトについて、前記テキスト情報を記述したメタデータを含む、前記テキスト属性以外の属性の描画コマンドに変更することによって前記変換を行い、当該テキスト情報を記述したメタデータを含む前記変換後の描画コマンドを前記プリンタドライバに渡し、
前記プリンタドライバは、前記メタデータに記述されたテキスト情報を用いて、前記テキスト属性以外の属性に変更されたオブジェクトを、テキスト属性のオブジェクトで表現した前記所定のフォーマットの電子文書を生成する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定の条件は、前記テキスト属性のオブジェクトで指定されているフォントファイルが埋め込み禁止フォントである場合であり、
前記メタデータには、前記埋め込み禁止フォントが指定されていることを示す情報が少なくとも含まれることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記所定の条件は、前記テキスト属性のオブジェクトについて所定の装飾指定がなされている場合であり、
前記メタデータには、前記所定の装飾指定がなされていることを示す情報が少なくとも含まれることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記所定の装飾指定は、透過率の指定であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
文書の出力指示に応じて、前記文書の描画データを出力するアプリケーションと、
前記アプリケーションから前記文書の描画データを受け取って、当該描画データを構成する描画コマンドの形式を所定の形式に変換して、当該変換後の描画コマンドをプリンタドライバに渡す変換手段と、
前記変換手段から受け取った前記変換後の描画コマンドに基づいて、所定フォーマットの電子文書を生成するプリンタドライバと、
を有する情報処理装置であって、
前記アプリケーションは、前記文書内のオブジェクトが所定の条件を満たすテキスト属性のオブジェクトを含む場合、当該所定の条件を満たすテキスト属性のオブジェクトに関するテキスト情報を、テキスト属性以外の属性のオブジェクトとして扱って前記文書の描画データを生成して出力し、
前記プリンタドライバは、前記変換後の描画コマンドと前記テキスト属性以外の属性のオブジェクトに含まれる前記テキスト情報とに基づいて、前記所定の条件を満たしたオブジェクトをテキスト属性のオブジェクトで表現した前記所定フォーマットの電子文書を生成する
ことを特徴とする情報処理装置。
【請求項７】
前記アプリケーションは、前記文書内のオブジェクトが所定の条件を満たすテキスト属性のオブジェクトを含む場合、当該所定の条件を満たすテキスト属性のオブジェクトに関するテキスト情報を記述したメタデータを含む、テキスト属性以外の属性の描画コマンドを発行し、当該発行した描画コマンドを含む前記文書の描画データを生成して出力し、
前記プリンタドライバは、前記メタデータに記述されたテキスト情報を用いて、前記所定の条件を満たしたオブジェクトをテキスト属性のオブジェクトで表現した前記所定フォーマットの電子文書を生成する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記所定の条件は、前記テキスト属性のオブジェクトで指定されているフォントファイルが埋め込み禁止フォントである場合であり、
前記メタデータには、前記埋め込み禁止フォントが指定されていることを示す情報が少なくとも含まれることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記所定の条件は、前記テキスト属性のオブジェクトについて所定の装飾指定がなされている場合であり、
前記メタデータには、前記所定の装飾指定がなされていることを示す情報が少なくとも含まれることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記所定の装飾指定は、透過率の指定であることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記テキスト属性以外の属性とは、パス属性又はイメージ属性であることを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記プリンタドライバに対応する描画コマンドの形式はＸＰＳ形式であり、
前記変換手段は、前記アプリケーションからＧＤＩ形式の描画データを受け取り、当該描画データを構成する描画コマンドの形式をＸＰＳ形式へと変換する、
ことを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記所定フォーマットは、ＰＤＬ又はＰＤＦであることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
コンピュータを、請求項１乃至５のいずれか１項に記載の変換手段として機能させるためのプログラム。
【請求項１５】
コンピュータを、請求項６乃至１０のいずれか１項に記載のアプリケーションとして機能させるためのプログラム。
【請求項１６】
コンピュータを、請求項１乃至１３のいずれか１項に記載のプリンタドライバとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書フォーマットの変換技術に関する。
【背景技術】
【０００２】
従来からプリンタドライバを利用して文書フォーマットを変換する技術が知られている。例えば、任意形式の文書データをＰＤＦ（Portable Document Format）形式の文書データに変換するプリンタドライバ（以下、「ＰＤＦ変換ドライバ」）がある。このＰＤＦ変換ドライバは、帳票作成や文書管理のアプリケーションにおいて印刷と同様の操作を行うことでＰＤＦデータとして出力することができる。
【０００３】
ところで、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）ＯＳのプリンティングシステムでは、グラフィックスエンジンとしてＧＤＩ（Graphics Driver Interface）が使用されてきた。ＧＤＩを用いた従来の印刷処理フローは、ＧＤＩプリントパスと呼ばれる。このＧＤＩプリントパスでは、アプリケーションがＧＤＩのサービス関数群を呼び出して発行したＧＤＩ形式の描画命令がＶｅｒｓｉｏｎ３プリンタドライバ（以下「Ｖ３ドライバ」）によってＰＤＬデータに変換されて印刷装置に出力される。ＰＤＬデータとは、印刷装置が解釈可能なページ記述言語（Page Description Language）で記述されたデータである。そして、Ｗｉｎｄｏｗｓ８（登録商標）以降は、これにＸＰＳプリントパスと呼ばれる新しい印刷処理フローが加わった。ＸＰＳは、ＸＭＬベースの電子文書フォーマットで、XML Paper Specificationの略である。ＸＰＳプリントパスでは、アプリケーションでＸＰＳ形式の描画データが生成され、Ｖｅｒｓｉｏｎ４プリンタドライバ（以下、「Ｖ４ドライバ」）にてＰＤＬデータに変換されて印刷装置に出力される。
【０００４】
ＧＤＩプリントパスとＸＰＳプリントパスとは排他的な関係にあるわけではなく、例えばアプリケーションがＧＤＩを使って生成したＧＤＩ形式の描画データをＸＰＳ形式に変換してＶ４ドライバでＰＤＬデータにすることが可能である。このとき、ＧＤＩ形式からＸＰＳ形式への変換は、ＭＸＤＣ（Microsoft XPS Document Converter）と呼ばれる変換モジュールによってなされる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】https://technet.microsoft.com/en-us/library/cc958172.aspx?f=255&MSPPError=-2147217396
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＭＸＤＣでのＧＤＩ形式からＸＰＳ形式への変換において、テキストオブジェクトが、パスオブジェクト（もしくはイメージオブジェクト）に置き換えられることがある。ここで、テキストオブジェクトとは、フォント情報と文字コードで特定されるテキスト属性のオブジェクトを指す。また、パスオブジェクトとはパス座標値と描画方法で特定されるパス属性のオブジェクトを指し、イメージオブジェクトとはサイズと各画素の色情報で特定されるイメージ属性のオブジェクトを指す。テキストオブジェクトがパスオブジェクトやイメージオブジェクトに置き換えられるということは、アプリケーション側ではテキスト属性で指示した描画内容が、Ｖ４ドライバにはパス（図形）属性やイメージ属性の描画として伝わるということである。このような置き換えは、例えば、テキストオブジェクトの描画に使用するフォントが、電子文書への埋め込みが禁止されている埋め込み禁止フォントである場合に起こり得る。ＸＰＳ形式ではフォントを埋め込むことがそのフォーマットとして規定されているところ、埋め込み禁止フォントは埋め込むことができない。そのため、埋め込み禁止フォントを使用したテキストオブジェクトは、パスオブジェクトもしくはイメージオブジェクトに変換されるわけである。ユーザが意図しないこのようなオブジェクト属性の置き換えは、テキストオブジェクトに透過率などの装飾指定がなされている場合にも起こることが分かっている。
【０００７】
そして、例えばＶ４ドライバであるＰＤＦ変換ドライバにてＰＤＦデータを生成する際に上述した置き換えが起こると、その該当箇所がテキストとして検索することができなくなったり、画質が劣化したりするといった問題が発生する。
【０００８】
そこで本発明は、ＭＸＤＣでオブジェクト属性がテキスト属性から非テキスト属性に置き換えられても、上述のような問題が生じないようにすることを目的とする。具体的には、ＭＸＤＣにて生成された変換後のＸＰＳ形式の描画データにおける、元々はテキスト属性であったオブジェクト部分を、テキスト属性で描画するように指示したＰＤＬデータ（或いはＰＤＦデータ）をＶ４ドライバにおいて生成できるようにする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、文書の出力指示に応じてアプリケーションから出力される前記文書の描画データを受け取って、当該文書の描画データを構成する描画コマンドの形式を、所定の形式に変換して、当該変換後の描画コマンドをプリンタドライバに渡す変換手段と、前記変換手段から受け取った前記変換後の描画コマンドに基づいて、所定フォーマットの電子文書を生成するプリンタドライバと、を有する情報処理装置であって、前記変換手段は、前記文書の描画データを構成する描画コマンドのうち、所定の条件を満たすテキスト属性のオブジェクトについて、テキスト属性以外の属性の描画コマンドに変更して前記変換を行い、当該所定の条件を満たすテキスト属性のオブジェクトに関するテキスト情報と当該変換後の描画コマンドとを前記プリンタドライバに渡し、前記プリンタドライバは、前記受け取った変換後の描画コマンドと前記テキスト情報とに基づいて、前記テキスト属性以外の属性に変更されたオブジェクトを、テキスト属性のオブジェクトで表現した前記所定フォーマットの電子文書を生成することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ＭＸＤＣでオブジェクトの属性がテキストから非テキストに置き換えられても、変換後のＸＰＳ形式の描画データにおける該当箇所をテキスト属性で描画指示したＰＤＬデータ（或いはＰＤＦデータ）をＶ４ドライバで生成することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】印刷システムにおけるＰＣのハードウェア構成の一例を示すブロック図。
【図２】Ｖ４ドライバを用いた文書フォーマットの変換処理に関わるソフトウェア構成の一例を示す図。
【図３】フォーマット変換対象となる文書の一例を示す図。
【図４】（ａ）は従来のＭＸＤＣで変換された描画データのデータ構造の一例を示す図。（ｂ）は実施例１に係るＭＸＤＣで変換された描画データのデータ構造の一例を示す図。
【図５】実施例１に係る、ＭＸＤＣにおける変換処理の流れを示すフローチャート。
【図６】実施例１に係る、ＰＤＦ化処理の流れを示すフローチャート。
【図７】実施例２に係る、アプリケーションで行う描画コマンドの発行処理の流れを示したフローチャート。
【図８】画像フォーマットにＰＮＧを用いたメタイメージのデータ構造を示す図。
【図９】メタデータを格納するパッケージ形式の一例を示す図。
【図１０】実施例２に係る、Ｖ４ドライバにおけるＰＤＦ化処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【実施例１】
【００１３】
図１は、ＰＣとプリンタからなる印刷システムにおける、ＰＣのハードウェア構成の一例を示すブロック図である。ＰＣ１０は、コントローラ１００、入力デバイス１１０、ディスプレイ１２０、外部メモリ１３０で構成される。コントローラ１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ネットワークＩ／Ｆ１０５、入力Ｉ／Ｆ１０６、ディスプレイＩ／Ｆ１０７、外部メモリＩ／Ｆ１０８で構成され、システムバス１０４を介して相互に接続される。
【００１４】
コントローラ１００は、情報処理装置としてのＰＣ１０を統括的に制御する。ＣＰＵ１０１は、ＲＡＭ１０２に記憶されているプログラムに従って、システムバス１０４に接続される各部を制御する。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等としても機能する。ＲＯＭ１０３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ１０３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ１０３ｂ、及び各種データを記憶するデータＲＯＭ１０３ｃに区分けして構成される。ネットワークＩ／Ｆ１０５は、ＬＡＮ３０を介してプリンタ２０等の外部装置と通信処理を行なうインタフェースである。入力Ｉ／Ｆ１０６は、キーボードやポインティングデバイス（マウス）といった入力デバイス１１０を使用したユーザ入力を受け付けるインタフェースである。ディスプレイＩ／Ｆ１０７は、ディスプレイ１２０への表示処理を制御するインタフェースである。外部メモリＩ／Ｆ１０８は、例えばＨＤＤやＳＳＤといった外部メモリ１３０とのアクセス制御を行うインタフェースである。外部メモリ１３０には、オペレーティングシステム（ＯＳ）や印刷処理を担う各種ソフトウェア、さらに、ユーザファイル、編集ファイル等の各種データが格納される。なお、ＯＳは本実施例ではＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓを使用するものとする。
【００１５】
図２は、ＰＣ１０における、Ｖ４ドライバを用いた文書フォーマットの変換処理に関わるソフトウェア構成の一例を示す図である。アプリケーション２０１は、ユーザが文書を作成し、印刷指示やＰＤＦ形式への変換指示（以下、「出力指示」）を与えるためのソフトウェアである。ユーザによって出力指示が与えられると、アプリケーション２０１はＧＤＩを利用して、指定された文書についてのＧＤＩ形式の描画データを生成する。生成されたＧＤＩ形式の描画データはＭＸＤＣ２０２に送られる。ＭＸＤＣ２０２は、受け取ったＧＤＩ形式の描画データをＸＰＳ形式に変換し、Ｖ４ドライバ２０３に送る。Ｖ４ドライバ２０３は、ＸＰＳプリントフィルタパイプライン（以下、「フィルタパイプライン」）と呼ばれるプログラミングモデルに従って、出力指示に応じたＰＤＬデータ或いはＰＤＦデータを生成する。フィルタパイプライン２１０における印刷処理の単位はフィルタと呼ばれ、単一または複数のフィルタが、フィルタパイプライン２１０によって順にリンクされて実行される。すなわち、あるフィルタの出力がその次に連結されたフィルタの入力となり、各フィルタが順次処理を実行することによって最終的な出力物であるＰＤＬデータ或いはＰＤＦデータを生成する仕組みになっている。
【００１６】
本実施例においては、Ｖ４ドライバ２０３としてＰＤＦ変換ドライバを例に説明を行うものとする。そして、ＸＰＳ形式の描画データからＰＤＦデータを生成する単一のレンダリングフィルタ２１１でフィルタパイプライン２１０が構成されるものとする。レンダリングフィルタ２１１では、ＭＸＤＣ２０２から入力されたＸＰＳ形式の描画コマンドを解析し、各オブジェクトに対して拡大、縮小、回転などの画像処理を必要に応じて施した上で後述の変換処理を行って、ＰＤＦデータを生成する。レンダリングフィルタ２１１によって生成されたＰＤＦデータは、ポートモニタ２０４を介して外部メモリ１３０に保存される。このように本明細書ではＶ４ドライバとしてのＰＤＦ変換ドライバを例に説明を行うが、その適用範囲がＰＤＦ変換ドライバに限定されるものでないことはいうまでもない。すなわち、アプリケーション２０１からの印刷指示に応じて、所定フォーマットの電子文書（例えばＰＤＬデータ）を生成して印刷装置に出力するＶ４ドライバにも本発明は幅広く適用されるものである。
【００１７】
ここで、本発明の課題を確認しておく。図３は、ＰＤＦ形式へのフォーマット変換対象となる文書の一例を示している。アプリケーション２０１で生成された文書３００には、フォントの異なる２種類のテキストオブジェクト３０１及び３０２が存在している。テキストオブジェクト３０１は、“embedding-permitted font text”の文字列からなり、埋め込み許可フォントの一種である“ヒラギノ”が用いられている。また、テキストオブジェクト３０２は、“embedding-prohibited font text”の文字列からなり、埋め込み禁止フォントの一種である“ＭＳ明朝”が用いられている。埋め込み禁止フォントは、埋め込み禁止属性が付与されたフォントと定義される。これは、フォントファイル内に含まれるグリフ情報（字体情報）を、電子文書内に埋め込んではならないことを意味する。つまり、埋め込み禁止フォントは、非埋め込みフォント（グリフ情報を除いたフォント情報）として描画データ内に格納する必要があるフォントと言い換えることができる。これに対し、埋め込み許可フォントは、埋め込み禁止属性が付与されていない（描画データ内にグリフ情報を格納してもよい）フォントと定義される。
【００１８】
なお、OpenTypeフォントの場合、埋め込みに関する情報として、「埋め込み不許可」、「表示と印刷可」、「編集可」、「インストール可」のフラグが設定可能になっている。本明細書では、「埋め込み不許可」のフラグが設定されているOpenTypeフォントを「埋め込み禁止フォント」として扱うこととする。そして、「表示と印刷可」、「編集可」、「インストール可」のいずれかのフラグが設定されているOpenTypeフォントを「埋め込み許可フォント」として扱うこととする。
【００１９】
図３の例の場合、テキストオブジェクト３０１と３０２が、描画対象のオブジェクトとしてそれぞれＭＸＤＣ２０２に入力されることになる。上述のとおり、テキストオブジェクトに埋め込み禁止フォントが使用されている場合、フォントファイル内に含まれるグリフ情報は、その描画データの中に埋め込むことができない。しかしながら、ＸＰＳはその仕様上、グリフ情報を含むフォントファイルを必ず描画データの中に埋め込む必要がある。そのため、ＭＸＤＣ２０２では、アプリケーション２０１から受け取った描画データをＧＤＩ形式からＸＰＳ形式に変換する際、埋め込み禁止フォントを用いたテキストオブジェクトを、イメージオブジェクト化もしくはパスオブジェクト化する。
【００２０】
図４（ａ）は、従来のＭＸＤＣにてＸＰＳ形式に変換された、図３に示した文書３００の描画データのデータ構造を示している。図４（ａ）において、符号４０１で示した部分は、埋め込み許可フォントが使用されたテキストオブジェクト３０１に対応しており、ＸＰＳ形式の描画コマンドがテキスト属性のままで表現されている。一方、符号４０２で示した部分は、埋め込み禁止フォントが使用されたテキストオブジェクト３０２に対応しており、ＸＰＳ形式の描画コマンドが、パス属性に変更されて表現されている。このように、従来のＭＸＤＣでは、埋め込み禁止フォントを用いたテキストオブジェクトは、その属性がテキスト以外の属性のオブジェクトに変更されてしまう。
【００２１】
＜ＭＸＤＣにおける変換処理＞
続いて、上述のような課題に対処するための、本実施例のＭＸＤＣ２０２で行う変換処理について説明する。図５は、本実施例に係る、ＭＸＤＣ２０２における変換処理の流れを示すフローチャートである。この一連の処理は、処理対象文書を構成するページ単位で実行される。以下、図５のフローに沿って詳しく説明する。
【００２２】
ステップ５０１では、アプリケーション２０１から受信した１ページ分のＧＤＩ形式の描画データが取得される。そして、続くステップ５０２では、取得した１ページ分の描画データの中から、処理対象とする注目するオブジェクトが決定される。
【００２３】
ステップ５０３では、注目オブジェクトに係る描画コマンドを参照して当該注目オブジェクトの属性がテキスト属性かどうか判定される。属性判定の結果、テキスト属性であればステップ５０４に進む。一方、テキスト属性以外の属性であれば、ステップ５０８に進む。
【００２４】
ステップ５０４では、テキスト属性の注目オブジェクトが、パス属性またはイメージ属性に変更する必要があるオブジェクトかどうか判定される。本実施例では、属性変更の必要があると判定する場合の所定の条件を、テキストオブジェクトで指定されているフォントファイルが埋め込み禁止フォントである場合、或いは、当該オブジェクトについて透過率等の装飾指定がなされている場合とする。判定の結果、属性変更の必要がある場合は、ステップ５０５へ進む。属性変更の必要がなければ、ステップ５０８へ進む。
【００２５】
ステップ５０５では、注目オブジェクトとしてのテキストオブジェクトの詳細（テキスト情報）を記述したメタデータが生成される。このメタデータには、例えば、フォント名、フォントサイズ、描画座標位置、文字コードのほか、埋め込み禁止フォントが指定されていること或いは透過率等の装飾指定がなされていることを示す情報（例えばフラグ）が含まれる。そして、続くステップ５０６では、注目オブジェクトに係るＧＤＩ形式の描画コマンドが、非テキスト属性の描画コマンドに変換される。つまり、注目オブジェクトの属性がテキスト属性からパス属性またはイメージ属性に変更される。そして、ステップ５０７では、属性変更がなされた注目オブジェクトの描画を指示するＸＰＳ形式の描画コマンドが生成される。このときのＸＰＳ形式の描画コマンドには、ステップ５０５で生成したメタデータが含まれる。
【００２６】
注目オブジェクトの属性がテキスト属性ではなかったり、属性変更の必要がなかった場合のステップ５０８では、注目オブジェクトに係るＧＤＩ形式の描画コマンドが、その属性に応じたＸＰＳ形式の描画コマンドに変換される。
【００２７】
ステップ５０９では、ステップ５０７又はステップ５０８で生成されたＸＰＳ形式の描画コマンドが、レンダリングフィルタ２１１に送られる。そして、ステップ５１０では、ステップ５０１で取得した１ページ分の描画データ内に未処理のオブジェクトがあるか判定される。未処理のオブジェクトがあれば、ステップ５０２に戻って次の注目オブジェクトが決定され処理が続行される。一方、すべてのオブジェクトの処理が完了していれば、本処理を終える。
【００２８】
図４（ｂ）は、本実施例のＭＸＤＣ２０２にてＸＰＳ形式に変換された、図３に示した文書３００の描画データのデータ構造を示している。図４（ｂ）において、符号４０１で示した部分は、図４（ａ）と共通であり、埋め込み許可フォントが指定されたテキストオブジェクト３０１に対応するＸＰＳ形式の描画コマンドがテキスト属性で表現されている。符号４０３で示した部分は、埋め込み禁止フォントが指定されたテキストオブジェクト３０２に対応している。テキスト属性からパス属性に変更されたＸＰＳ形式の描画コマンドになっている点は、図４（ａ）と同じであるが、さらにメタデータ４０４が追加されているのが分かる。そして、メタデータ４０４には、テキスト属性であることを示す情報として例えばフォント名がＭＳ明朝であることを示す「Font name=“MS-mincho”」といった情報が格納されている。
【００２９】
以上が、本実施例のＭＸＤＣ２０２で行う変換処理の内容である。このような変換処理により、ＧＤＩ形式の描画データがＸＰＳ形式の描画データへとページ単位で変換される。
【００３０】
＜プリンタドライバにおけるＰＤＬ／ＰＤＦ化処理＞
続いて、上述した変換処理を経て生成されたＸＰＳ形式の描画データを、Ｖ４ドライバ２０３としてのＰＤＦ変換ドライバにてＰＤＦ化する処理について説明する。図６は、本実施例に係る、ＰＤＦ化処理の流れを示すフローチャートである。この一連の処理は、レンダリングフィルタ２１１において、ＭＸＤＣ２０２で生成したＸＰＳ形式の描画コマンド群を入力としてページ単位で実行される。以下、図６のフローに沿って詳しく説明する。
【００３１】
ステップ６０１では、ＭＸＤＣ２０２から受信した１ページ分のＸＰＳ形式の描画データが取得される。そして、続くステップ６０２では、取得した１ページ分の描画データの中から、処理対象となる注目するオブジェクトが決定される。
【００３２】
ステップ６０３では、注目オブジェクトに係る描画コマンドを参照して当該注目オブジェクトの属性がテキスト属性以外の属性であるか（ここでは、パス属性又はイメージ属性のいずれかに該当するか）が判定される。属性判定の結果、パス属性かイメージ属性のいずれかであればステップ６０４に進む。一方、テキスト属性であれば、ステップ６０６に進む。
【００３３】
ステップ６０４では、注目オブジェクトに係る描画コマンドにメタデータが含まれるかどうかが判定される。描画コマンドにメタデータが含まれるか否かは、注目オブジェクトに係る描画コマンド内に「MetaData」タグ４０５が存在するかどうかをチェックすることで判断可能である（前述の図４（ｂ）を参照）。メタデータが含まれる場合はステップ６０５へ進み、メタデータが含まれない場合はステップ６０６へ進む。
【００３４】
ステップ６０５では、メタデータの情報に基づき、テキスト用のＰＤＦコマンドが生成される。前述したように、メタデータにはテキスト用ＰＤＦコマンドを生成するために必要な情報（フォント名、フォントサイズ、描画座標位置、文字コード等）が含まれているので、これらの情報を用いてテキスト用ＰＤＦコマンドが生成される。
【００３５】
一方、注目オブジェクトがパス属性でもイメージ属性でもなく、或いは、そのいずれかの属性であるがメタデータが存在しない場合のステップ６０６では、当該注目オブジェクトの属性に応じたＰＤＦコマンドが生成される。
【００３６】
ステップ６０７では、ステップ６０５又はステップ６０６で生成されたＰＤＦコマンドがポートモニタ２０４に送られる。そして、ステップ６０８では、ステップ６０１で取得した１ページ分の描画データ内に未処理のオブジェクトがあるか判定される。未処理のオブジェクトがあれば、ステップ６０２に戻って次の注目オブジェクトが決定され処理が続行される。一方、すべてのオブジェクトの処理が完了していれば、本処理を終える。そして、処理対象文書の全ページについての処理が終了すると、生成されたＰＤＦコマンド群からなるＰＤＦデータが、ポートモニタ２０４によって外部メモリ１３０に保存される。
【００３７】
以上の通り、本実施例によれば、ＭＸＤＣにおけるＧＤＩ−ＸＰＳ変換でオブジェクトの属性がテキスト属性から非テキスト属性に置き換えられても、Ｖ４ドライバにおいてテキスト属性のオブジェクトとして認識することができる。この結果、Ｖ４ドライバは、当該オブジェクトをテキスト属性のオブジェクトとして表現したＰＤＬデータ（ＰＤＦ変換ドライバの場合はＰＤＦデータ）を生成することが可能となる。
【実施例２】
【００３８】
実施例１では、テキストオブジェクトがパスやイメージのオブジェクトに意図せず置き換えられるという問題に対処するため、ＭＸＤＣでのＸＰＳへの変換時に、テキストの情報を記述したメタデータを描画コマンド内に格納していた。そして、レンダリングフィルタにて、当該メタデータを解析することでパス化またはイメージ化された元々はテキスト属性のオブジェクトを、テキスト属性のオブジェクトに再変換してＰＤＬデータ（或いはＰＤＦデータ）を生成していた。次に、ＭＸＤＣでの変換は従前のまま、ＧＤＩ形式の描画コマンドを発行するアプリケーションとＶ４ドライバ側で対処することで、実施例１と同様の効果を得る態様を実施例２として説明する。なお、実施例１と共通する部分（図２に示したＰＣ１０のソフトウェア構成など）については説明を省略し、以下では本実施例の特徴となる、アプリケーションにおける描画コマンドの発行と、Ｖ４ドライバにおけるフォーマット変換を中心に説明するものとする。
【００３９】
＜アプリケーションにおける描画コマンド発行処理＞
図７は、本実施例に係る、アプリケーション２０１で行う描画コマンドの発行処理の流れを示したフローチャートである。この一連の処理は、処理対象文書を構成するページ単位で実行される。以下、図７のフローに沿って詳しく説明する。
【００４０】
ステップ７０１では、ページ内の描画対象のオブジェクトが決定される。続くステップ７０２では、決定された描画対象オブジェクトの属性が、テキスト属性かどうかが判定される。属性判定の結果、テキスト属性であればステップ７０３に進む。一方、テキスト属性以外の属性であれば、ステップ７０７に進む。
【００４１】
ステップ７０３では、描画対象オブジェクトが、テキスト属性からパス属性またはイメージ属性に変更する必要があるオブジェクトかどうか判定される。本実施例では、テキストオブジェクトのフォントファイルで指定されたフォントが埋め込み禁止フォントである場合、或いは、当該オブジェクトについて透過率等の装飾指定がなされている場合に、属性変更の必要があると判定する。判定の結果、属性変更の必要がある場合は、ステップ７０４へ進む。属性変更の必要がなければ、ステップ７０７へ進む。
【００４２】
ステップ７０４では、描画対象オブジェクトが、テキストオブジェクトであることを示すメタデータが生成される。このメタデータには、フォント名、フォントサイズ、描画座標位置、文字コードのほか、埋め込み禁止フォントが指定されていること或いは透過率等の装飾指定がなされていることを示すフラグ、などの情報が含まれる。続くステップ７０５では、生成したメタデータに基づき、テキスト属性以外の属性で表現されたオブジェクトデータが生成される。本実施例では、「メタイメージ」というイメージ属性のオブジェクトデータを生成する場合を例に説明する。ここで、メタイメージとは、画像フォーマットの拡張領域に任意データとしてのメタデータを保存した画像データを意味する。本実施例ではメタイメージの画像フォーマットとしてＰＮＧを用いるが、例えばＪＰＥＧなど拡張領域が定義された他の画像フォーマットでもよい。図８は、画像フォーマットにＰＮＧを用いたメタイメージのデータ構造を示す図である。ＰＮＧの画像フォーマットは、８バイトのファイルヘッダーと、チャンクと呼ばれる複数のデータブロックとで構成される。各チャンクは、チャンクサイズ（４バイト）、チャンク種類（４バイト）、データ部（任意長）、ＣＲＣ（４バイト）からなり、画像に関する様々な情報を格納することができる。さらに、チャンクは必須チャンクと補助チャンクの２つに分類される。必須チャンクには“ＩＨＤＲ”、“ＰＬＴＥ”、“ＩＤＡＴ”、“ＩＥＮＤ”の４種類がある。補助チャンクは任意に定義することができ、解釈するかどうかはプログラムの仕様に依存する。補助チャンクとして広く使用されているものとしては、ＩＣＣプロファイルやガンマ補正値を指定するものなどが存在する。本実施例においては、“ｎａＮｏ”という独自の補助チャンクを定義して、任意データとしてのメタデータを格納できるようにする。このとき、メタデータの情報はいったん別のパッケージ形式に格納されて“ｎａＮｏ”チャンクに格納される。図９は、メタデータを格納するパッケージ形式の一例を示す図である。アプリケーションからプリンタドライバへ任意データを送信するには、受信側のプリンタドライバがデータ種類を識別できるよう、識別情報を任意データに関連付けておく必要がある。そこで、可変長のパッケージ形式を定義し、それを“ｎａＮｏ”チャンクに格納する。図９に示すように、パッケージ形式はヘッダー（６バイト）、識別子クラス（１６バイト）、識別子（４バイト）、データサイズ（４バイト）、データ部（任意長）から構成される。識別子は任意データの送信側と受信側とで取り決める値である。本実施例では、上述のメタデータをＶ４ドライバ２０３に送信するので、それを識別する値をアプリケーション２０１とレンダリングフィルタ２１１とで取り決めておく。識別子の値は任意であるため、識別子をユニークにするためＵＵＩＤで表現される識別子クラスも同時に指定する。識別子クラスの値についても、アプリケーション２０１とレンダリングフィルタ２１１で取り決めておく。そして、図示されるようにデータ部の領域にメタデータ９０１が格納される。なお、本実施例においてメタイメージを生成する目的は、任意データであるメタデータをＶ４ドライバ２０３に伝送することである。そこで、画像として最低限の体裁を保持しつつ印刷結果や印刷パフォーマンスへ影響を与えないようにするため、大きさは１×１ピクセル、色は透過率１００％の２４ビットカラーを指定するものとする。このように２４ビットカラーを指定する場合は、必須チャンクである“ＰＬＴＥ”が省略される。よって、本実施例におけるメタイメージは、図８に示すように“ＩＨＤＲ”、“ＩＤＡＴ”、“ｎａＮｏ”、“ＩＥＮＤ”の４つのチャンクから構成されることになる。
【００４３】
ステップ７０６では、ステップ７０５で生成されたメタイメージの描画を指示するＧＤＩ形式の描画コマンドが生成される。この際には、例えば、ＰＮＧフォーマットの印刷がサポートされているＧＤＩ+のＩｍａｇｅクラスおよびＧｒａｐｈｉｃｓクラスが利用される。一方、ステップ７０７では、描画対象オブジェクトの属性に沿ったＧＤＩ形式の描画コマンドが生成される。この際には、例えば、ＧＤＩのＴｅｘｔＯｕｔ（文字）、Ｐｏｌｙｇｏｎ（多角形）、ＳｔｒｅｔｃｈＤＩＢｉｔｓ（ビットマップ）といったＡＰＩが利用される。
【００４４】
そして、ステップ７０８では、ステップ７０６又はステップ７０７で生成されたＧＤＩ形式の描画コマンドが、ＭＸＤＣ２０２に送られる。そして、ステップ７０９では、描画対象となるオブジェクトがあるか判定される。未処理の描画対象オブジェクトがあれば、ステップ７０２に戻って次の描画対象オブジェクトが決定され処理が続行される。一方、未処理の描画対象オブジェクトがなければ、本処理を終える。
【００４５】
以上が、本実施例に係る、アプリケーション２０１で行う描画コマンドの発行処理の内容である。上述のようにしてアプリケーション２０１で発行されたＧＤＩ形式の描画コマンドを、本実施例のＭＸＤＣ２０２は、忠実にＸＰＳ形式の描画コマンドに変換する。すなわち、受け取った描画コマンドに係るオブジェクトがメタイメージであった場合、ＭＸＤＣ２０２は、通常のイメージオブジェクトの描画を指示するものとして扱い、特別な処理を施すことなくＸＰＳ形式の描画コマンドに変換する。そして、ＸＰＳ形式に変換された描画コマンド群からなる描画データは、Ｖ４ドライバ２０３に送られる。
【００４６】
＜Ｖ４ドライバにおけるＰＤＦ変換＞
続いて、ＭＸＤＣ２０２からＸＰＳ形式の描画データを受け取ったＶ４ドライバ２０３において、レンダリングフィルタ２１１がＰＤＦ化する処理について説明する。図１０は、本実施例に係る、Ｖ４ドライバ２０３におけるＰＤＦ化処理の流れを示すフローチャートである。この一連の処理は、レンダリングフィルタ２１１において、ＭＸＤＣ２０２で生成したＸＰＳ形式の描画コマンド群を入力としてページ単位で実行される。以下、図１０のフローに沿って詳しく説明する。
【００４７】
ステップ１００１では、ＭＸＤＣ２０２から受信した１ページ分のＸＰＳ形式の描画データが取得される。そして、続くステップ１００２では、取得した１ページ分の描画データの中から、処理対象とする注目するオブジェクトが決定される。
【００４８】
ステップ１００３では、注目オブジェクトの描画コマンドを解析して当該注目オブジェクトが、メタイメージのオブジェクトであるかどうかが判定される。本実施例の場合、注目オブジェクトの属性がイメージ属性であって、ＰＮＧフォーマット、かつ、補助チャンクとして“ｎａＮｏ”チャンクが存在すれば、メタイメージオブジェクトであると判定されることになる。判定の結果、注目オブジェクトがメタイメージオブジェクトであればステップ１００４に進む。一方、注目オブジェクトがメタイメージオブジェクト以外のオブジェクトであれば、ステップ１００６に進む。
【００４９】
ステップ１００４では、メタイメージの描画コマンドに含まれるパッケージ形式からメタデータ（図９の例ではメタデータ９０１）が抽出される。次に、ステップ１００５では、抽出されたメタデータに基づき、テキスト属性のＰＤＦコマンドが生成される。具体的には、メタデータに含まれる、フォント名、フォント名、フォントサイズ、描画座標位置、文字コード等の情報を取得して、当該取得した情報に対応したテキスト属性のＰＤＦコマンドが生成される。
【００５０】
一方、注目オブジェクトがメタイメージオブジェクト以外のオブジェクトであると判定された場合のステップ１００６では、当該注目オブジェクトの属性に応じたＰＤＦコマンドが生成される。
【００５１】
ステップ１００７では、ステップ１００５又はステップ１００６で生成されたＰＤＦコマンドが、ポートモニタ２０４に送られる。そして、ステップ１００８では、ステップ１００１で取得した１ページ分の描画データ内に未処理のオブジェクトがあるか判定される。未処理のオブジェクトがあれば、ステップ１００２に戻って次の注目オブジェクトが決定され処理が続行される。一方、すべてのオブジェクトの処理が完了していれば、本処理を終える。そして、処理対象文書の全ページについての処理が終了すると、生成されたＰＤＦコマンド群からなるＰＤＦデータが、ポートモニタ２０４によって外部メモリ１３０に保存される。
【００５２】
以上の通り、本実施例によれば、アプリケーションがテキストオブジェクトについての描画コマンドを発行する際に便宜的にメタイメージオブジェクトとして扱うことで、Ｖ４ドライバでは該当箇所をテキストオブジェクトと認識することが可能となる。この結果、Ｖ４ドライバは、当該オブジェクトをテキストで表現したＰＤＬデータ（ＰＤＦ変換ドライバの場合はＰＤＦデータ）を生成することが可能となる。
【００５３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018190157.tif 000003
【図２】
2018190157.tif 000004
【図３】
2018190157.tif 000005
【図４】
2018190157.tif 000006
【図５】
2018190157.tif 000007
【図６】
2018190157.tif 000008
【図７】
2018190157.tif 000009
【図８】
2018190157.tif 000010
【図９】
2018190157.tif 000011
【図１０】
2018190157.tif 000012