(57)【要約】【課題】  必要最小限の文字情報を埋め込んだ文書（文字化けを起こさず、かつファイルサイズを抑制した文書）に変換すること。【解決手段】  文書に使用されている文字のフォントが置換え可能か否かを判別し、文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行うことを特徴とする。【選択図】  図９
2006178622.tif 000002
【特許請求の範囲】
【請求項１】
文書に使用されている文字のフォントが置換え可能か否かを判別する判別ステップと、
前記判別ステップにより文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別ステップにより文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理ステップとを有することを特徴とする文書変換方法。
【請求項２】
文書の出力環境を指定する指定ステップを有し、
前記判別ステップは、前記指定ステップにより指定された出力環境の言語と文書に使用されているフォントの言語が一致しない場合、文書に使用されている文字のフォントが置換え可能か否かを判別することを特徴とする請求項１記載の文書変換方法。
【請求項３】
前記判別ステップは、文書に使用されているフォントの言語に存在する文字コードと出力環境の言語に存在する文字コードとに基づき判別することを特徴とする請求項１記載の文書変換方法。
【請求項４】
前記判別ステップは、文書に使用されているフォントの言語に存在する文字コードテーブルと出力環境の言語に存在する文字コードテーブルとに基づき判別することを特徴とする請求項１記載の文書変換方法。
【請求項５】
前記判別ステップは、文書に使用されているフォントの言語と出力環境の言語とに存在する文字コードを特定するテーブルに基づき判別することを特徴とする請求項１記載の文書変換方法。
【請求項６】
文書に使用されている文字のフォントが置換え可能か否かを判別する判別手段と、
前記判別手段により文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別手段により文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理手段とを有することを特徴とする文書変換装置。
【請求項７】
文書の出力環境を指定する指定手段を有し、
前記判別手段は、前記指定手段により指定された出力環境の言語と文書に使用されているフォントの言語が一致しない場合、文書に使用されている文字のフォントが置換え可能か否かを判別することを特徴とする請求項６記載の文書変換装置。
【請求項８】
前記判別手段は、文書に使用されているフォントの言語に存在する文字コードと出力環境の言語に存在する文字コードとに基づき判別することを特徴とする請求項６記載の文書変換装置。
【請求項９】
前記判別手段は、文書に使用されているフォントの言語に存在する文字コードテーブルと出力環境の言語に存在する文字コードテーブルとに基づき判別することを特徴とする請求項６記載の文書変換装置。
【請求項１０】
前記判別手段は、文書に使用されているフォントの言語と出力環境の言語とに存在する文字コードを特定するテーブルに基づき判別することを特徴とする請求項６記載の文書変換装置。
【請求項１１】
文書に使用されている文字のフォントが置換え可能か否かを判別する判別ステップと、
前記判別ステップにより文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別ステップにより文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理ステップとを有することを特徴とするコンピュータ読み取り可能なプログラム。
【請求項１２】
文書の出力環境を指定する指定ステップを有し、
前記判別ステップは、前記指定ステップにより指定された出力環境の言語と文書に使用されているフォントの言語が一致しない場合、文書に使用されている文字のフォントが置換え可能か否かを判別することを特徴とする請求項１１記載のコンピュータ読み取り可能なプログラム。
【請求項１３】
前記判別ステップは、文書に使用されているフォントの言語に存在する文字コードと出力環境の言語に存在する文字コードとに基づき判別することを特徴とする請求項１１記載のコンピュータ読み取り可能なプログラム。
【請求項１４】
前記判別ステップは、文書に使用されているフォントの言語に存在する文字コードテーブルと出力環境の言語に存在する文字コードテーブルとに基づき判別することを特徴とする請求項１１記載のコンピュータ読み取り可能なプログラム。
【請求項１５】
前記判別ステップは、文書に使用されているフォントの言語と出力環境の言語とに存在する文字コードを特定するテーブルに基づき判別することを特徴とする請求項１１記載のコンピュータ読み取り可能なプログラム。
【請求項１６】
文書変換装置と出力装置とを備える文書変換システムであって、
前記文書変換手段は、文書に使用されている文字のフォントが置換え可能か否かを判別する判別手段と、前記判別手段により文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別手段により文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理手段とを有し、
前記出力装置は、フォントの埋め込まれた文字の場合、埋め込まれたフォントを用いてイメージデータを生成し、フォントの埋め込まれていない文字の場合、出力装置のフォントを用いてイメージデータを生成する生成手段と、前記生成手段により生成されたイメージデータに基づき文字を出力する出力手段とを有することを特徴とする文書変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書を変換する文書変換方法、文書変換装置、及びプログラムに関するものである。
【背景技術】
【０００２】
近年、コンピュータやモニタの機種、ＯＳ、搭載フォントの違いを吸収し、プラットフォームが違っても同じ体裁でページが表示・印刷することが可能な中間フォーマットが広く普及している。中間フォーマットの代表例としてはＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）が挙げられる。
【０００３】
次に、中間フォーマットにおける、搭載フォントの違いを吸収するための技術について述べる。他言語フォントを搭載していないＯＳ上で、他言語フォントを埋め込んでいない中間フォーマットファイルを開くと、文字化けを起こすことがある。例えば、中国語フォントを含む中間フォーマットファイルを、中国語フォントを搭載していない日本語ＯＳ上で開くと、中国語フォントが文字化けを起こすことがある。このような搭載フォントの違いを吸収するための技術として、フォントのグラフィック形状を規定するグリフ記述形状を中間フォーマットファイル内に埋め込む「フォント埋め込み」という技術が知られている。（特許文献１）
【０００４】
「フォント埋め込み」を施した中間フォーマットファイルは、フォントのグリフ記述を中間フォーマットファイル内に保持させるため、文字化けの可能性はないがファイルサイズが大きくなってしまう。一方、「フォント埋め込み」を施していない中間フォーマットファイルは、文字化けの可能性があるがファイルサイズは小さくなる。このように、「ファイルサイズ」と「文字化け」はトレードオフの関係にあるといえる。
【特許文献１】特開２００２−３３０２７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ネットワークを介して中間フォーマットファイルを送信・受信する際に重要なことは、ファイルサイズが小さいこと、かつ閲覧環境において文字化けを起こさずに閲覧が可能なこと、である。つまり、前述のトレードオフの関係を最適化することが重要である。
【０００６】
以下、中国語フォント（例：宋体フォント）にて書かれた文書を日本語フォントしか搭載されていないＯＳ上で閲覧できる中間フォーマットファイルへ変換する場合を例に、説明する。
【０００７】
既存のフォント埋め込み技術では、宋体フォントをすべて埋め込んだ中間フォーマットファイルを作成することができる。しかし、文書内に含まれる宋体フォントすべてを中間フォーマットファイル内に埋め込むため、ファイルサイズが大きくなってしまうという問題点があった。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明の文書変換方法は、
文書に使用されている文字のフォントが置換え可能か否かを判別する判別ステップと、
前記判別ステップにより文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別ステップにより文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理ステップとを有することを特徴とする。
【０００９】
また、本発明の文書変換装置は、
文書に使用されている文字のフォントが置換え可能か否かを判別する判別手段と、
前記判別手段により文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別手段により文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理手段とを有することを特徴とする。
【００１０】
また、本発明のプログラムは、
文書に使用されている文字のフォントが置換え可能か否かを判別する判別ステップと、
前記判別ステップにより文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別ステップにより文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理ステップとを有することを特徴とするコンピュータ読み取り可能なプログラム。
【００１１】
また、本発明の文書変換システムは、
文書変換装置と出力装置とを備える文書変換システムであって、
前記文書変換手段は、文書に使用されている文字のフォントが置換え可能か否かを判別する判別手段と、前記判別手段により文書に使用されている文字のフォントが置換え可能でないと判別された場合、置換え可能でないと判別された文字に対応するフォントの埋め込み処理を行い、前記判別手段により文書に使用されている文字のフォントが置換え可能であると判別された場合、置換え可能と判別された文字に対するフォントの置換え処理を行う処理手段とを有し、
前記出力装置は、フォントの埋め込まれた文字の場合、埋め込まれたフォントを用いてイメージデータを生成し、フォントの埋め込まれていない文字の場合、出力装置のフォントを用いてイメージデータを生成する生成手段と、前記生成手段により生成されたイメージデータに基づき文字を出力する出力手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、必要最小限の文字情報を埋め込んだ文書（文字化けを起こさず、かつファイルサイズを抑制した文書）に変換することができる。
【００１３】
たとえば、中国語フォントを搭載していない日本語オペレーティングシステム上で文書を閲覧可能な、必要最小限の文字を埋め込んだ文書データを生成することができる。
【発明を実施するための最良の形態】
【００１４】
（第一の実施の形態）
本発明の実施形態では、他国語フォントにて書かれた文書を、他国語フォントを搭載していないＯＳ上で閲覧できる「最適な中間フォーマットファイル」へ変換する方法を提案する。上記「最適な中間フォーマットファイル」とは、「文字化けの可能性が無く、かつファイルサイズを最小限におさえた中間フォーマットファイル」を指す。以下、中国語フォント（例：宋体フォント）にて書かれた文書を日本語フォントしか搭載されていないＯＳ上で閲覧できる中間フォーマットファイルへ変換する場合を例に、説明する。
【００１５】
Ｕｎｉｃｏｄｅ（単一の２Ｂｙｔｅｓの文字コードによって世界の文字の多くを表現しようとする文字コードシステム）のような文字コードでは、中国語でも日本語でも、同一とみなしうる文字には同じコードを割り当てている。例えば、「亜」という文字は中国語フォントにも、日本語フォントにも存在し、Ｕｎｉｃｏｄｅでは「０ｘ４Ｅ９Ｃ」で表される。つまり、中国語フォントの中には、日本語フォントへ置き換え可能な文字が多数存在するといえる。
【００１６】
そこで、日本語フォントへ置き換え可能な文字（中国語、日本語双方に存在する文字）は、日本語フォントへ置き換え、置き換え不可能な文字（日本語フォントにしは存在しない文字）は、宋体フォントのまま埋め込む。このようにすることによって「文字化けの可能性が無く、かつファイルサイズを最小限におさえた中間フォーマットファイル」である「最適な中間フォーマットファイル」を生成することが可能となる。
【００１７】
上記置き換えの可・不可の判定は、予め言語毎に用意しておいた文字コード情報テーブルを用いる。詳細については後述する。
（その言語でも存在すれば置き換え可と判断し、存在しなければ置き換え不可と判断する。）
なお、上記例では、中国語と日本語の関係を例に説明したが、例えば、韓国語と日本語、韓国語と中国語、というように他国語間の関係であれば、同様のことが言える。
【００１８】
＜ソフトウェアの構成例＞
図６（Ａ）は、本発明の第一実施形態に係るファイル変換システムにおけるソフトウェアブロック図である。図６（Ａ）において、ホストコンピュータ６０１は、パーソナルコンピュータ等の情報処理装置である。ホストコンピュータ６０１には、ディスプレイ６０７が接続された画像表示部６０２、中間言語解析部６０３、ファイル変換部６０４、データ入出力部６０５、データ格納部６０６等が含まれる。
【００１９】
中間言語解析部６０３は、中間言語ファイルを解析し、画像表示部６０２を介してディスプレイ６０７に表示する。あるいは印刷出力を、データ入出力部６０５を介してホストコンピュータに接続されたプリンタへ出力する。具体的には、中間言語ファイルとしてＰＤＦファイルを用いた場合におけるアドビ社のアクロバットリーダなどが中間言語解析部６０３に相当する。
【００２０】
ファイル変換部６０４では、ホストコンピュータ６０１から変換対象の文書ファイルを中間フォーマットファイルに変換する。ファイル変換部６０４は、図６（Ｂ）に示すように、アプリケーションデータファイルを印刷処理可能なアプリケーション６０４−１、グラフィックエンジン６０４−２、プリンタドライバ６０４−３から構成される。ここでプリンタドライバは、物理的なデバイスとしてのプリンタを制御するドライバではなく、グラフィックエンジン６０４−２から入力されるデータ（コマンド）を中間フォーマットのコマンド列に変換して中間フォーマットファイルとして出力するソフトウェアである。
【００２１】
データ入出力部６０５は、電話回線やＬＡＮ等のネットワーク６０８を介して他のホストコンピュータやプリンタとデータを通信する処理を行う。また、図６（Ａ）ではキーボードやポインティングデバイス等の入出力デバイスもデータ入出力部６０５に接続されるものとしている。
【００２２】
ホストコンピュータ６０１と他のホストコンピュータやプリンタとを接続するネットワーク６０８の形態としては、ＬＡＮ、インターネットあるいは無線等、通信ができるものであれば、その種類は問わない。
【００２３】
データ格納部６０６には、不図示の文書処理アプリケーションなどのアプリケーションプログラムにより作成されたアプリケーションデータファイルが保持されている。そのほか、ホストコンピュータのオペレーティングシステムが保持するシステム情報が保存されている。またホストコンピュータの有するこれらソフトウェア資源およびハードウェア資源のデータベースや、本実施形態においてホストコンピュータが参照するデータも保存されている。
【００２４】
＜ハードウェアの構成例＞
図７はホストコンピュータとして使用可能な情報処理装置の構成を示すハードウェア構成図である。図６（Ａ）のホストコンピュータ６０１の構成は、図７の構成において、メモリ６０１ｂに格納されたプログラムを、ＣＰＵ６０１ａにより実行することで実現される。また、図７の構成を実現するためのプログラムは、ハードディスク等の外部メモリ６０１ｃに格納される。外部メモリ６０１ｃは、フレキシブルディスクやＣＤＲＯＭ等の取り外し可能な記憶媒体を用いるものであっても良い。また、データ格納部６０６は、外部メモリ６０１ｃの一部領域として実現することができる。
【００２５】
ディスプレイ６０７には画像が表示され、Ｉ／Ｏインターフェース６０１ｄを介してネットワーク６０８等に接続される。また、キーボードやポインティングデバイス６０１ｅにより、オペレータは必要な入力を行う。
【００２６】
＜本実施形態の概要＞
まず、本実施形態の概要について説明する。ユーザは、まずワードプロセッサや表計算のようなアプリケーションソフトウェアから印刷命令をかける。次に画像処理部６０２を介してディスプレイ６０７に図３に示すようなユーザインターフェース３０１を表示し、ユーザは仕向け地選択ダイアログ３０２を用いて、仕向け地の決定を行う。ここで示した仕向け地とは、変換後の文書を閲覧する環境を指す。ユーザがＯＫボタン３０３を押下することで、ファイル変換処理を開始する。
【００２７】
ファイル変換処理では、ファイル変換部６０４にて文書を中間フォーマットファイルへの変換する処理を行う。以下、本実施の形態で必要となる「プリンタドライバを用いた印刷制御方法および処理方法」、「一般的な文字描画処理方法」について述べた後、本実施形態の詳細なファイル変換処理について詳細に述べる。
【００２８】
本実施形態によれば、例えば中国語フォントを含む文書を日本語環境にて閲覧したい場合、図３に示すユーザインターフェースにて仕向け地を日本と設定することで、文字コードが日本語に存在する文字はすべて日本語フォントへ置き換え、存在しない文字はすべて中国語フォントのまま埋め込んだ中間フォーマットを、作成することができる。
【００２９】
＜プリンタドライバを用いた印刷制御方法および処理方法＞
本実施の形態では、ファイル変換の手段として、ＯＳに備わっている印刷機能を利用する。そこで、まずプリンタドライバを用いた印刷制御方法および処理の流れについて説明する。
【００３０】
図１は従来、直接、あるいはネットワーク経由で接続されているプリンタ１０４に対して印刷指示を行う印刷制御装置としてのパーソナルコンピュータ等の汎用情報処理装置（以下、ホストコンピュータ）において、印刷処理に関わる機能構成を大まかに示した図である。
【００３１】
ホストコンピュータ側では、ワードプロセッサや表計算のようなアプリケーションソフトウェア１０１（以下、アプリケーション）がＷｉｎｄｏｗｓ（登録商標）のようないわゆる基本ソフト（オペレーティングシステム、以下、ＯＳ）の上で動作している。アプリケーション１０１において印刷を行う場合は、そのプログラム内から、基本ソフトが提供するいくつかのサブシステムのうち、グラフィックエンジン１０２の機能を用いて行う。グラフィックエンジン１０２は、例えばＷｉｎｄｏｗｓ（登録商標）では、ＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）と呼ばれておりディスプレイやプリンタに対する画像情報の処理を司っている。ＧＤＩは、ディスプレイやプリンタといった各デバイスの依存性を吸収するためにデバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。プリンタ１０４に対するこのモジュールはプリンタドライバ１０３と呼ばれる。プリンタドライバ１０３では、その能力や機能などに応じてあらかじめデバイスドライバに実装することが決められているＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれる関数群を用意する必要がある。アプリケーション１０１のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）コールをＧＤＩがデバイスドライバ用にデータ変換を行い、このＤＤＩ関数群が適宜ＧＤＩからコールされ所定の印刷処理が実行されるような仕組みになっている。ＧＤＩでは、このようにプリンタドライバ１０３を介してアプリケーション１０１からの印刷要求をシーケンシャルに処理している。
【００３２】
プリンタドライバ１０３はその使用用途によりプリンタ出力系とファイル出力系に大別できる。プリンタ出力系とは、システムからＤＤＩ関数を介して渡される描画命令を、ＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）とよばれる中間フォーマットに変換するものである。プリンタ出力系の中間フォーマット（ＰＤＬ）は、印刷装置側にＰＤＬの制御コマンドを処理可能なコントローラを搭載するもの向けで、印刷装置側のプリンタ機器で印刷を行う。
【００３３】
一方、ファイル出力系では、印刷装置側にデータを送ることが直接的な目的ではなく、ＤＤＩ関数から受け取った描画命令を予め定義された中間フォーマット形式に変換し、ホストコンピュータのディスクシステム上に中間フォーマットファイルとして蓄積するものである。この代表的な中間フォーマットにはＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）等が存在する。中間フォーマットファイルはホストコンピュータ上のファイルシステム上に保存され、中間フォーマットファイルを解釈可能な特定のアプリケーション１０１によりホストコンピュータ上で表示され、ユーザの指示により再びグラフィックエンジン１０２を介して印刷装置に印刷を行うことが可能である。
【００３４】
前述したＤＤＩ関数には、印刷の開始を宣言する「ジョブ開始要求」、ページの開始を宣言する「ページ開始要求」、ページ内に記述された文字、図形等を表す「論理描画要求」、ページの終了を宣言する「ページ終了要求」等がある。複数ページの印刷の場合、ページ数の分だけ「ページ開始要求」、「ページ終了要求」が出され、ページ内に含まれる論理描画の分だけ「論理描画要求」が出される。プリンタドライバ１０３は各要求に対して、ＰＤＬ，ＰＤＦ等の中間フォーマット形式に沿ったコマンドを生成する。
【００３５】
＜一般的な文字描画方法＞
中間フォーマットファイルは、文書を構成するオブジェクトを記述する描画コマンドとオブジェクトの位置やサイズ等を示すオペランドとを含む。描画コマンドは通常、オブジェクトの種類に応じて、文字を出力する「文字系」、ビットマップ等の画像を出力する「イメージ系」、直線や円、四角形等の図形を出力する「グラフィック系」の３種類に大別される。
【００３６】
ここでＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）システムの、「文字系」描画コマンドについて説明を行う。図４は、文字描画に必要な情報を表す模式図である。図４は一例であるが、一般的にも文字描画コマンドにはオペランドとして以下の４つのフォント情報が必要である。
【００３７】
（１）文字コード
文字を特定するための情報である。ＡＳＣＩＩ、ＳｈｉｆｔＪＩＳ、Ｕｎｉｃｏｄｅ等、予め定められたコード体系に従ったコードが用いられる。
【００３８】
（２）フォント属性
文字描画に適応するフェース名、グリフへの修飾を表すイタリック／ボールド指定有無、文字の大きさを表すポイント数等の情報を含む。
【００３９】
（３）描画属性
文字の描画位置や、色、クリップの状態等を表す情報を含む。
【００４０】
（４）フォント形状情報
ゴシックや明朝等のフェース名で指定される文字描画形状を表す情報を含む。文字毎の描画形状情報（グリフと呼ぶ）を有する。フォントの情報形式としては、大きくビットマップフォントとアウトラインフォントに分かれ、ＴｒｕｅＴｙｐｅ（登録商標）、ＯｐｅｎＴｙｐｅ（登録商標）等の各種フォーマットが定義されている。
【００４１】
そして、これらの情報全てが揃わなければ、ユーザが意図した通りの文字描画は成立しない。中間フォーマットファイル内の文字描画データには、文字コード・フォント属性・描画属性の３つのフォント情報を用いた文字描画コマンドが含まれるのが普通である。そしてコンピュータ等において文字描画を実行する際、すなわち中間ファーマットファイルを再生する際には、文字描画コマンドに含まれるフォントフェース名をもとに、当該コンピュータを管理するＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）が保持している同じフォントフェース名のフォント形状情報を参照し、文字を描画するのが普通である。
【００４２】
しかし、指定されたフォント形状情報が、すべてのコンピュータ環境（ＯＳにより提供される資源と言うこともできる）に存在するとは限らない。言い換えるとユーザが中間フォーマットファイルを作成したコンピュータ環境（中間フォーマットファイル作成環境と呼ぶ。）に存在したフォント形状情報が、文字描画が行われるコンピュータ環境（文字描画実行環境という。）で存在していない場合もあり得る。描画が行われるコンピュータ環境に、アプリケーションデータを作成したユーザが意図したフォントが存在しない場合でも、ユーザが意図したフォントもしくはそれに近い形状のフォントで文字描画を行うために、従来、（１）フォント置き換え、（２）ビットマップ置き換え及び、（３）フォント埋め込みという仕組みが知られている。以下、それぞれの仕組みを用いた場合の描画結果を示す図５を参照して、それぞれの仕組みについて説明する。
【００４３】
（１．フォント置き換え）
文字描画実行環境において、文字描画データ（中間フォーマットファイル）中のフォント属性に近い別のフォントを用いて描画を行う方法である。別のフォントを指定する方法としては、文字描画を行うアプリケーションが予め定義した変換テーブルを用いる方法や、ＯＳが予め定義した変換テーブルを用いる方法が一般的である。文字描画データを作成する際に、通常どおりの文字描画コマンド（文字コード、フォント属性、描画属性）を作成するが、最もデータ量の多いフォント形状情報は必要ないため文字描画データは小さいという利点がある。欠点としては、別のフォントを用いるため図５右最上段に示すように、ユーザが意図していたものとは全く違った形状の文字描画が行われる可能性がある。意図した文字コードに対応したフォントが文字描画実行環境において存在しない場合には、文字として識別不可能な描画が行われることもある。例えば、一般的に欧米で用いられているコンピュータ環境には日本語フォントは存在しない。そのため、中間フォーマットファイルが一般的な日本語対応のＯＳの下で作成され、中間フォーマットファイルの再生が一般的な欧米の例えば英語対応のＯＳの下で行われる場合、中間フォーマットファイル作成環境における文字コードに対応したフォントが文字描画実行環境には存在せず、結果として識別不可能な描画が行われてしまう。
【００４４】
（２．ビットマップ置き換え）
文字描画データ（中間フォーマットファイル）を作成する時点で文字描画をビットマップに変換して、文字描画をビットマップ描画に変換する方法である。通常の見た目はユーザが意図した文字描画と同じになる。しかしビットマップであるために図５右中段に示すように拡大／縮小時にビットマップの解像度の影響で文字品位が落ちる場合がある。
【００４５】
（３．フォント埋め込み）
文字描画データ（中間フォーマットファイル）内に、文字描画コマンド（文字コード、フォント属性、描画属性）以外に、フォント形状情報を埋め込ませ、文字描画で使用されるフォント形状情報を文字描画実行環境に持ち込む方法である。文字描画データに埋め込まれたフォント形状情報は、文字描画実行環境において、当該環境により提供されるフォントとして登録され、文字描画データはそのフォントを用いて文字描画される。このため、フォント埋め込みは、文字描画データ内の文字描画コマンドで指定されたフォントが描画実行環境に存在しなくてもユーザが意図した出力を得られるという利点がある。しかし、フォント形状情報を文字描画データ内に埋め込むため、文字描画データ量が大きくなる傾向にある。特に日本語フォントのような文字種の多いフォントを埋め込む場合にこの問題が顕著である。
【００４６】
上記３つの仕組みのうち、（１）のフォント置き換えは、文字描画実行環境で為される処理である。一方、（２）のビットマップ置き換え、（３）のフォント埋め込みは、文字描画データ作成時に為される処理である。また、上記３つの仕組みのうち、どの方法を用いるかは、例えば、ユーザインターフェース上で文字描画データ作成側のユーザがフォント毎指定するのが普通である。
【００４７】
＜本実施形態の詳細＞
次に、中間フォーマットファイルへの変換を行う本実施形態について図８に示したフローチャートを用いて詳しく述べる。
【００４８】
ファイル変換処理はファイル変換部６０４にて行われる。まず、アプリケーション６０４−１が、グラフィックエンジン６０４−２を介してプリンタドライバ６０４−３に、対象ファイルを中間フォーマットへ変換する要求を出すことによって変換を開始する（Ｓ８００）。
【００４９】
アプリケーション６０４−１は変換ジョブが開始することを、ＧＤＩ関数を介してグラフィックエンジン６０４−２に通知する。グラフィックエンジン６０４−２は通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ６０４−３へ引き渡す（Ｓ８０１）。
【００５０】
プリンタドライバ６０４−３は、画像処理部６０２を介してディスプレイ６０７に図３に示すようなユーザインターフェース３０１を表示する。仕向け値の選択欄３０２には、国・地域一覧が表示されており、ユーザは仕向け地の決定を行う。ここで示した仕向け地とは、変換後の文書を閲覧する環境を指す。ユーザがＯＫボタン３０３を押下すると、次の処理へ移行する（Ｓ８０２）。その際、プリンタドライバ６０４−３は、例えば図２に示したようなＬａｎｇｕａｇｅＩＤ一覧テーブル２０１を用いて選択された国名のＬａｎｇｕａｇｅＩＤ２０３を取得し、保持しておく。ＯＳはそのシステムの、現在の国設定情報を保持している。例えばＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムであれば、ＯＳはシステムロケールを必ず保持している。このロケールには、言語環境のほか、日付や時刻などの表記方法、通貨の単位などが含まれている。このロケール情報の一つとして国・地域毎に一意に与えられたＩＤがある。これを本発明ではＬａｎｇｕａｇｅＩＤと呼ぶ。
【００５１】
次に、プリンタドライバ６０４−３はジョブ開始コマンドを生成する（Ｓ８０３）。
【００５２】
アプリケーション６０４−１はページが開始することを、ＧＤＩ関数を介してグラフィックエンジン６０４−２に通知する。グラフィックエンジン６０４−２は通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ６０４−３へ引き渡す（Ｓ８０４）。プリンタドライバ６０４−３は、ページ開始コマンドを生成する（Ｓ８０５）。
【００５３】
アプリケーション６０４−１は論理描画要求を、ＧＤＩ関数を介してグラフィックエンジン６０４−２に通知する。グラフィックエンジン６０４−２は通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ６０４−３へ引き渡す（Ｓ８０６）。プリンタドライバ６０４−３は、論理描画コマンドを生成する（Ｓ８０７）。
【００５４】
ステップＳ８０６、Ｓ８０７は、アプリケーション６０４−１からのページの終了要求が通知されるまで繰り返される。アプリケーション６０４−１が、ページが終了することを、ＧＤＩ関数を介してグラフィックエンジンに通知し、グラフィックエンジン６０４−２が通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ６０４−３へ引き渡すと、プリンタドライバ６０４−３は、ページ終了コマンドを生成する（Ｓ８０９）。
【００５５】
また、ステップＳ８０４〜Ｓ８０９は、アプリケーション６０４−１からのジョブ終了要求が通知されるまで繰り返される。アプリケーション６０４−１が、ジョブが終了することを、ＧＤＩ関数を介してグラフィックエンジンに通知し、グラフィックエンジン６０４−２が通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ６０４−３へ引き渡すと、プリンタドライバ６０４−３は、ジョブ終了コマンドを生成する（Ｓ８１１）。
【００５６】
＜文字描画の処理手順＞
次にステップＳ８０６、Ｓ８０７における論理描画処理の内、文字描画コマンドについて図９に示したフローチャートを用いて説明する。図９において、ステップＳ９０１はアプリケーションおよびグラフィックスエンジンで行われるステップＳ８０６の一部であり、ステップＳ９０２〜Ｓ９１１はプリンタドライバで行われるステップＳ８０７の一部である。グラフィックスやイメージについても同様に描画処理が行われるが、図９ではそれらは省略した。
【００５７】
アプリケーション６０４−１は文字描画要求を出す際、文字コード、フォント属性、描画属性を、ＧＤＩ関数を介してグラフィックエンジン６０４−２に通知する。グラフィックエンジン６０４−２は通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ６０４−３へ引き渡す（Ｓ９０１）。
【００５８】
次に、プリンタドライバ６０４−３は、ＧＤＩ関数のパラメータとして受け取ったフォント属性に含まれるフォントフェース名をもとにして、フォントＬａｎｇｕａｇｅＩＤをグラフィックエンジン６０４−２に問い合わせる。フォントＬａｎｇｕａｇｅＩＤは、例えば、ＴｒｕｅＴｙｐｅ（商標登録）フォントであれば、ＴｒｕｅＴｙｐｅフォントテーブル内のＮａｍｅテーブルに格納されている。Ｗｉｎｄｏｗｓ（登録商標）でいえば、Ｗｉｎｄｏｗｓ（登録商標）で利用できるフォントの表である、フォントテーブル内にＴｒｕｅＴｙｐｅフォントテーブルがあり、それを参照することで取得可能である（Ｓ９０２）。
【００５９】
次にプリンタドライバ６０４−３は、ステップ８０２で取得し、保持しておいた仕向け地ＬａｎｇｕａｇｅＩＤを参照することで、仕向け値ＬａｎｇｕａｇｅＩＤを取得する（Ｓ９０３）。フォントＬａｎｇｕａｇｅＩＤと仕向け値ＬａｎｇｕａｇｅＩＤは、ロケールが一致していれば、同一の値となる。例えば、日本を示すＬａｎｇｕａｇｅＩＤの値は１０４１であり、日本語フォントを示すフォントＬａｎｇｕａｇｅＩＤも同様に１０４１と定められている。
【００６０】
次にプリンタドライバ６０４−３は、フォントＬａｎｕｇａｇｅＩＤと仕向け地ＬａｎｇｕａｇｅＩＤとを比較し、一致していなければ、フォントの置き換え、もしくは埋め込みが必要となるためステップＳ９０５へ移行する。一方、一致していればフォントを置き換える必要、埋め込む必要がないためステップＳ９１１へ移行する（Ｓ９０４）。
【００６１】
プリンタドライバ６０４−３は、図１０（Ａ）、図１０（Ｂ）に示すような文字コード情報テーブルを、フォント言語用、仕向け地言語用に２つ取得する（Ｓ９０５）。文字コード情報テーブルとは、言語（ＬａｎｇｕａｇｅＩＤ）毎に予め用意しておいたものであり、文字コード毎に１か０の値を保持している。その言語に含まれている文字コードであれば１を、含まれていなければ０を保持している。例えば、「亜」という文字（Ｕｎｉｃｏｄｅでは文字コード０ｘ４Ｅ９Ｃ）は日本語には含まれているため、日本語の文字コード情報テーブルの「０ｘ４Ｅ９Ｃ」には１が、英語には含まれていないため、英語の文字コード情報テーブルの「０ｘ４Ｅ９Ｃ」には０が格納されている。
【００６２】
次にプリンタドライバ６０４−３は、取得した２つの文字コード情報テーブルから、フォント置き換え可否判定処理を行う。描画する文字の文字コードが、フォント言語用に取得した文字コード情報テーブルと、仕向け地言語用に取得した文字コード情報テーブル双方において１だった場合、置き換え可能と判定する。逆にどちらか一方が０であった場合、置き換え不可能と判定する（Ｓ９０６）。この方法で判定することによって、描画する文字が仕向け地言語のフォントに含まれるかどうかの判定を行うことができる。本実施の形態では、上記方法によって文字置き換えの可・不可判定を行っているが、例えば図１１に示したような文字置き換え判定テーブルを予め用意しておき、それを参照することによって文字置き換えの可・不可を判定しても良い。文字置き換え判定テーブルは、異なる２つの言語間毎に一つ作成する必要がある。例えば、中国語と日本語間の文字置き換え判定テーブルは、前述の日本語用文字コード情報テーブルと中国語用文字コード情報テーブルから作成するものであり、双方の文字コード情報テーブルにおいて１である文字コードには１を、逆にどちらか一方が０であった場合０を保持したテーブルである。文字置き換え判定テーブルを使用する場合、ステップＳ９０５、Ｓ９０６の処理の代わりに、該当言語間の文字置き換え判定テーブルを取得し、文字置き換え判定テーブルにおいて１である文字コードを置き換え可能と判定し、０である文字コードを置き換え不可と判定する処理が必要となる。
【００６３】
次にプリンタドライバ６０４−３は、仕向け値言語のフォントに置き換え不可能であった場合、フォント形状情報の埋め込み処理を行うためにステップＳ９０８へ移行し、置き換え可能であった場合、フォント置き換え処理を行うためステップＳ９０９へ移行する（Ｓ９０７）。
【００６４】
プリンタドライバ６０４−３は、フォント属性のフェース名および文字コードをもとに、フォント形状情報をグラフィックエンジン６０４−２に問い合わせ取得する（Ｓ９０８）。
【００６５】
一方、埋め込み処理の必要がないと判断された文字の場合、置き換えるフォントを指定する必要がある。指定方法としては、予め仕向け値言語毎に決めておく方法や（例：日本語フォントへ置き換える場合はＭＳ明朝、中国語フォントへ置き換える場合は宋体、など）、ユーザインターフェースに言語毎の置き換えフォント候補を表示して、ユーザに決定してもらう方法等が考えられるが、特に方法は問わない（Ｓ９０９）。
【００６６】
次に、プリンタドライバ６０４−３は、フォント属性のフェース名を、置き換えるフォント名に変更することで、フォントの置き換え行う（Ｓ９１０）。
【００６７】
プリンタドライバ６０４−３は、埋め込み処理が必要な場合、取得した文字コード、フォント属性、描画属性とフォント形状情報を用いて中間フォーマットに沿った文字描画コマンドを生成する。一方、埋め込み処理の必要がないと判断されたフォントの場合、上記フォント形状情報の取得が必要ないため、文字コード、フォント属性、描画属性を用いて中間フォーマットに沿った文字描画コマンドを生成する（Ｓ９１１）。
【００６８】
以上のようにして、本実施形態の文書処理システムでは、文書ファイル（中間フォーマットファイル）を構成するフォントのフォントＬａｎｇｕａｇｅＩＤと、仕向け地のＬａｎｇｕａｇｅＩＤの文字コード情報テーブルを取得し比較することによって、置き換え可・不可を判定し、置き換え可能であれば、フォント置き換え処理を行い、フォント形状情報を中間フォーマットファイルに埋め込まない。これにより中間フォーマットファイルのサイズを小さく抑えることが可能となる。
【００６９】
＜中間フォーマットファイルの再生＞
中間フォーマットファイルを再生する再生装置の一般的な動作について述べる。中間フォーマットファイルを再生する再生装置において、中間フォーマットファイルに埋め込まれていないフォントは、文字コード、フェース名を基にシステム（ＯＳ）からフォント形状情報を取得し、描画する。その際、指定されたフェース名のフォントがシステムに存在しない場合、前述のフォント置き換え処理が為される。置換え処理で置き換えられたフォントを用いて文字コードをイメージデータに変換する描画処理を行なう。変換されたイメージデータはディスプレイで表示されるか、プリンタエンジンでプリントされる。フォント置き換え処理では、前述のように文字として識別不可能な描画が為されることがある。しかし、本システムによって生成された中間フォーマットファイルにおいて、フォント置き換え処理が為される可能性のあるフォントは、仕向け地ＬａｎｇｕａｇｅＩＤとフォントＬａｎｇｕａｇｅＩＤが同一のフォントのみであるため、識別不可能な描画になることはない（同一言語間のフォント置き換え処理では、識別不可能な描画になることはない）。
【００７０】
一方、中間フォーマットファイルにフォントが埋め込まれている場合、埋め込まれているフォントデータを用いてイメージデータへ変換する描画処理を行なう。変換されたイメージデータはディスプレイで表示されるか、プリンタエンジンでプリントされる。システムにそのフォントが存在しなくてもフォント形状情報を中間フォーマットファイル内に保持しているため、描画が可能となる。
【００７１】
以上説明したように本発明の実施の形態によれば、中間フォーマットファイルの生成と閲覧が他国語間にわたる場合において、フォント埋め込みを最適化した中間フォーマットファイルを生成することができる。最適化した中間フォーマットファイルとは、閲覧環境にて文字化けを起こすことがなく、かつファイルサイズを最小限に抑えた中間フォーマットファイルである。そのため、他国語間での、送受信に適した中間フォーマットファイルを生成することが可能となる。
【図面の簡単な説明】
【００７２】
【図１】従来の、アプリケーションからの印刷命令をプリンタ制御コマンドへ変換する形式の印刷制御装置の代表的な機能ブロック図である。
【図２】本実施の形態における、アプリケーションから中間フォーマットファイルへ変換する処理の一連の流れを示すフローチャートを示す図である。
【図３】本実施の形態において用いた、仕向け地の選択を行うための選択画面例を示す図である。
【図４】文字描画に必要な情報と、印刷結果を説明する図である。
【図５】文字描画においてフォント置き換え処理、ビットマップ置き換え処理が生じた場合の印刷結果の例を示した図である。
【図６】本発明の実施形態における文書変換システムのソフトウェアブロック図、ファイル変換部内部のソフトウェアブロック図である。
【図７】ホストコンピュータとして使用可能な情報処理装置のハードウェア構成例を示した図である。
【図８】本発明の実施形態における、文書変換システムの一連の流れを示すフローチャートを示す図である。
【図９】本発明の実施形態における、アプリケーションから文字描画要求かあった時の、プリンタドライバにおける処理について示したフローチャートである。
【図１０】本発明の実施形態において用いた、文字コード情報テーブル（日本語）（中国語）の一例を示す図である。
【図１１】本発明の実施形態において用いた、文字置き換え判定テーブル（日本語−中国語間）の一例を示す図である。
【図１】
2006178622.tif 000003
【図２】
2006178622.tif 000004
【図３】
2006178622.tif 000005
【図４】
2006178622.tif 000006
【図５】
2006178622.tif 000007
【図６】
2006178622.tif 000008
【図７】
2006178622.tif 000009
【図８】
2006178622.tif 000010
【図９】
2006178622.tif 000011
【図１０】
2006178622.tif 000012
【図１１】
2006178622.tif 000013