(57)【要約】【課題】電子文書データを構造化文書データに変換する際、および変換した構造化文書を閲覧する際に、それぞれの装置に含まれる文字フォント情報によらずに構造化文書データに変換することができる装置を提供することを目的とする。【解決手段】この文書変換装置は、第１の文字フォント情報を含む第１の文書データを取得する取得手段と、第１の文字フォント情報と異なる第２の文字フォント情報を用いて、取得された第１の文書データを第２の文書データに変換する変換手段と、第２の文字フォント情報と、第２の文字フォント情報が第１の文字フォント情報の代替であることを示す代替情報とを、変換された第２の文書データに格納する格納手段と、を有することを特徴とする。【選択図】図８
2014225085.tif 000002
【特許請求の範囲】
【請求項１】
第１の文字フォント情報を含む第１の文書データを取得する取得手段と、
前記第１の文字フォント情報と異なる第２の文字フォント情報を用いて、前記取得された第１の文書データを第２の文書データに変換する変換手段と、
前記第２の文字フォント情報と、前記第２の文字フォント情報が前記第１の文字フォント情報の代替であることを示す代替情報とを、前記変換された第２の文書データに格納する格納手段と、
を有することを特徴とする文書変換装置。
【請求項２】
複数の文字フォント情報を記憶する記憶手段と、
前記第１の文字フォント情報が前記記憶された複数の文字フォント情報に含まれるかを判定する判定手段と、
をさらに有し、
前記変換手段は、前記判定手段で前記第１の文字フォント情報が前記記憶された複数の文字フォント情報に含まれると判定された場合に、前記第１の文字フォント情報を用いて、前記取得された第１の文書データを第２の文書データに変換し、前記判定手段で前記第１の文字フォント情報が前記記憶された複数の文字フォント情報に含まれないと判定された場合に、前記第２の文字フォント情報を用いて、前記取得された第１の文書データを第２の文書データに変換する
ことを特徴とする請求項１に記載の文書変換装置。
【請求項３】
前記変換された第２の文書データを装置で表示させるための表示コマンドを生成する手段をさらに有し、
前記格納手段は、前記生成された表示コマンドを前記第２の文書データに格納すること
を特徴とする請求項１または２に記載の文書変換装置。
【請求項４】
前記表示コマンドは前記第２の文書データを表示する前記装置に、
前記代替情報が前記第２の文書データに格納されているか判定させる工程と、
前記代替情報が前記第２の文書データに格納されていると判定された場合に、前記第１の文字フォント情報を用いて、前記第２の文書データを表示させ、前記代替情報が前記第２の文書データに格納されていないと判定された場合に、前記第２の文字フォント情報を用いて、前記第２の文書データを表示させる工程と、
を実行させることを特徴とする請求項３に記載の文書変換装置。
【請求項５】
前記表示コマンドは前記第２の文書データを表示する前記装置に、
前記代替情報が前記第２の文書データに格納されていると判定された場合に、前記装置に記憶されている複数の文字フォント情報に前記第１の文字フォント情報が含まれるかを判定させる工程と、
前記装置に記憶されている複数の文字フォント情報に前記第１の文字フォント情報が含まれると判定された場合に、前記第１の文字フォント情報を用いて、前記第２の文書データを表示させ、前記装置に記憶されている複数の文字フォント情報に前記第１の文字フォント情報が含まれないと判定された場合に、前記第２の文字フォント情報を用いて、前記第２の文書データを表示させる工程と、
を実行させることを特徴とする請求項４に記載の文書変換装置。
【請求項６】
前記第２の文字フォント情報から文字画像データを生成する手段と、
前記生成された文字画像データを、前記変換された第２の文書データとは異なる場所に格納し、該格納先を示す格納先情報を生成する手段と、
をさらに有し、
前記格納手段は、前記格納先情報を、前記変換された第２の文書データに格納すること
を特徴とする請求項１乃至５の何れか１項に記載の文書変換装置。
【請求項７】
前記表示コマンドは前記第２の文書データを表示する前記装置に、
前記装置に記憶されている複数の文字フォント情報に前記第２の文字フォント情報が含まれるかを判定させる工程と、
前記装置に記憶されている複数の文字フォント情報に前記第２の文字フォント情報が含まれると判定された場合に、前記第２の文字フォント情報を用いて、前記第２の文書データを表示させ、前記装置に記憶されている複数の文字フォント情報に前記第２の文字フォント情報が含まれないと判定された場合に、前記第２の文書データに格納された前記格納先情報で示される格納先から前記文字画像データを取得させ、前記取得させた文字画像データを用いて、前記第２の文書データを表示させる工程と、
を実行させることを特徴とする請求項６に記載の文書変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書データを構造化文書データへ変換する文書変換装置および文書変換方法に関する。
【背景技術】
【０００２】
従来から、任意の電子文書データをＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）に代表される構造化文書データに変換するシステムが存在する。例えば、クライアント端末から電子文書データをサーバー端末にアップロードし、サーバー端末にて構造化文書データに変換し、変換後の構造化文書データをクライアント端末（または指定された別のクライアント端末）に返信する（送信する）変換システムである。このような変換システムでは、ネットワークの負荷を軽減するため、変換後の構造化文書データのデータサイズを極力小さくすることが求められている。その一例として、構造化文書データを構成する文字フォント情報のうち、比較的データサイズが大きいグリフ情報（文字の字体を表す情報、単にグリフとも呼ぶ）を構造化文書データ内に含めないことが一般的に行われている。しかしながら、この方法で生成した構造化文書データは、クライアント端末とサーバー端末とに含まれる文字フォント情報との違いから構造化文書データを閲覧する時に構造化文書データ内の文字が意図した字体で表示されない場合がある。
【０００３】
変換した構造化文書データ内の文字を意図した字体で表示するために特許文献１が開示されている。特許文献１では、構造化文書データを生成する際に閲覧先の文字フォントの言語情報を取得し、その言語情報と、電子文書データ内に含まれる文字フォントの言語情報とを比較する。そして、双方の言語情報における言語の種類が一致した場合は、グリフをファイルに含めない構造化文書を生成し、言語の種類が一致しない場合は、グリフを文字フォント情報に含めた構造化文書データを生成する。これにより、閲覧環境に応じて、可読性とファイルサイズの抑制とを両立させた構造化文書を生成することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３３２０８８号公報
【０００５】
近年、クラウドサービスなどにより不特定多数の閲覧環境が存在するため、特許文献１のように電子文書データを構造化文書データに変換する際にそれぞれの閲覧先の閲覧環境の情報を取得し、比較することは現実的ではない。そのため、閲覧先の閲覧環境の情報を事前に取得することなく構造化文書データを生成することが望まれている。
【０００６】
また、閲覧のために構造化文書データには文字フォント情報が格納されており、生成される構造化文書データに格納される文字フォント情報は、変換元の電子文書データに格納されている文字フォント情報であることが望ましい。しかしながら、変換元の電子文書データに格納された文字フォント情報が、変換を行うサーバー端末において取得できない場合、変換元の電子文書データに格納されている文字フォント情報と異なる他の文字フォント情報が構造化文書データに格納されることになる。そのため、閲覧先の閲覧環境に変換元の電子文書データに格納されていた文字フォント情報があったとしても、生成された構造化文書データにはその文字フォント情報とは異なる文字フォント情報が格納されることになる。そのため、構造化文書データを閲覧した際に変換元の電子文書データの文字フォントとは異なる文字フォントで閲覧することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで、本発明は、電子文書データを構造化文書データに変換する際、および変換した構造化文書を閲覧する際に、それぞれの装置に含まれる文字フォント情報によらずに構造化文書データに変換することができる装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の文書変換装置は、第１の文字フォント情報を含む第１の文書データを取得する取得手段と、第１の文字フォント情報と異なる第２の文字フォント情報を用いて、取得された第１の文書データを第２の文書データに変換する変換手段と、第２の文字フォント情報と、第２の文字フォント情報が第１の文字フォント情報の代替であることを示す代替情報とを、変換された第２の文書データに格納する格納手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、電子文書データを構造化文書データに変換する際、および変換した構造化文書を閲覧する際に、それぞれの装置に含まれる文字フォント情報によらずに構造化文書データに変換することができる装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るシステム全体の概要図である。
【図２】本発明の一実施形態にかかる構成の概要図である。
【図３】本発明の一実施形態に係る処理全体を説明するフローチャートである。
【図４】Ｗｅｂブラウザの表示画面の一例を示す図である。
【図５】印刷制御装置の代表的な機能ブロック図である。
【図６】変換処理の一連の流れを示すフローチャートである。
【図７】文字フォント情報に含まれる情報を表す模式図である。
【図８】構造化文書データ変換処理の一連の流れを示すフローチャートである。
【図９】構造化文書データ内に格納する制御プログラムに基づく構造化文書を表示する際の一連の流れを示すフローチャートである
【図１０】本発明の第１実施形態に係る構造化文書データに含まれる情報の模式図である。
【図１１】本発明の第２実施形態に係る構造化文書データに含まれる情報の模式図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面等を参照して説明する。
【００１２】
（第１実施形態）
まず、本発明の一実施形態に係るシステム全体の構成を説明する。図１は、本発明の一実施形態に係るシステム全体の概要図である。本実施形態では、クライアント端末およびサーバー端末ともに１台ずつ採用する場合を示すが、それぞれの台数は１台に限定することなく、複数台であってもよい。クライアント端末１００は、パーソナルコンピュータ等の情報処理装置であって、Ｗｅｂブラウザ１０１と、画像表示部１０２と、データ入出力部１０３と、構造化文書処理部１０４とを含む。また、サーバー端末１１０は、少なくともＨＴＴＰ及びＦＴＰをサポートするＷｅｂサーバーであり、クライアント端末１００と同様に、パーソナルコンピュータ等の情報処理装置である。サーバー端末１１０は、ネットワーク通信制御部１１１、データ格納部１１２、ファイル変換管理部１１３、ファイル変換部１１４を含む。
【００１３】
Ｗｅｂブラウザ１０１は、サーバー端末１１０から受信したＨＴＭＬ文書を表示することができる。また、表示したＨＴＭＬ文書データに、画面上でデータを入力するプログラムが含まれている場合、ユーザは、データを入力する欄への入力をすることができる。さらに、ユーザが入力したデータをサーバー端末１１０に送信するプログラムを含んでもよく、そのプログラムに従ってユーザが操作を行う場合、入力したデータがサーバー端末１１０に送信される。なお、これらのプログラムは、例えば、一般に入手可能なＷｅｂブラウザによりサポートされている。また、Ｗｅｂブラウザ１０１は、データ入出力部１０３を介してサーバー端末１１０から受信したＨＴＭＬ文書を、画像表示部１０３を介してディスプレイ１２０で表示させる。ここで、データ入出力部１０３は、ネットワーク１３０を介してサーバー端末１１０と通信し、データ等を交換する。ネットワーク１３０の形態としては、電話回線、ＬＡＮ、インターネットあるいは無線等のＷｅｂ環境の通信手順に対応するものであれば、その種類は問わない。
【００１４】
構造化文書処理部１０４は、構造化文書データを解析し、画像表示部１０３を介してディスプレイ１２０に表示させる。なお、サーバー端末１１０から受信したＨＴＭＬ文書が、構造化文書データであった場合は、Ｗｅｂブラウザ１０１でなく、構造化文書処理部１０４を介してディスプレイ１２０に表示する機能を有する。
【００１５】
サーバー端末１１０は、Ｗｅｂブラウザ１０１からデータを受信したり、変換指示を受信する。受信した変換指示に応じて、例えば、電子文書データ（第１の文書データ）を構造化文書データ（第２の文書データ）へ変換し、変換後の構造化文書データをＷｅｂブラウザ１０１へ返信する。もしくは、指定された不図示他のクライアントに送信する。この時、ＨＴＭＬ文書に、Ｗｅｂブラウザ１０１からユーザがボタンによる入力し、その結果をサーバー端末１１０に送信するようプログラムしておく。そのプログラムに従って、Ｗｅｂブラウザ１０１は、ボタンを表示し、ユーザがＷｅｂブラウザ１０１のボタンを押す等の操作をした時に、サーバー端末１１０へデータを送信したり、変換指示の送信する。サーバー端末１１０では、クライアント端末１００に送信したＨＴＭＬ文書に基づいて受信データを解析し、必要があればＷｅｂブラウザ１０１へ応答する。
【００１６】
ネットワーク通信制御部１１１は、サーバー端末１１０がＷｅｂサーバーとして機能するために、クライアント端末１００へデータを送信、あるいはクライアント１００からデータを受信する処理を行う。データ格納部１１２は、データベース等であり、変換対象の電子文書データや変換後の構造化文書データが格納される。本実施形態では、この変換対象の電子文書データは、Ｗｅｂブラウザ１０１を介してクライアント端末１００からアップロードされたものとする。しかしながら、これに限定することなく、変換対象の電子文書データは、予め格納されていてもよい。ファイル変換管理部１１３では、クライアント端末１００から変換対象として指定された電子文書データを、サーバー端末１１０上で変換できるアプリケーションがあるかどうかの判定を行う。そして、変換できるアプリケーションがあれば、ファイル変換部１１４へ変換指示を行う。ファイル変換部１１４は、変換対象の電子文書データを構造化文書データに変換する。ファイル変換部１１４は、後述の図５に示すように、アプリケーション５０１、グラフィックエンジン５０２、プリンタドライバ５０３を含む。
【００１７】
次に、図２を参照して、クライアント端末１００およびサーバー端末１１０として使用可能な情報処理装置の構成を示すハードウェアの構成について説明する。図１におけるクライアント端末１００およびサーバー端末１１０の処理は、メモリ１００ｂに格納されたプログラムを、ＣＰＵ１００ａにより実行することで実現される。図１の処理を実現するためのプログラムは、ハードディスク等の外部メモリ１００ｃに格納される。外部メモリ１００ｃは、フロッピディスクやＣＤＲＯＭ等の取り外し可能な記憶媒体を用いるものであっても良い。また、データ格納部１１２は、外部メモリ１００ｃの一部領域として実現することができる。ディスプレイ１２０（クライアント端末１００の場合）には、画像が表示され、Ｉ／Ｏインターフェース１００ｄを介してネットワーク１３０に接続される。また、キーボードやポインティングデバイスなどの入力装置１００ｅにより、ユーザは、必要な入力を行う。
【００１８】
次に、図３のフローチャートおよび図４を参照してファイル変換システムの処理について説明する。まず、ステップＳ３０１で、クライアント端末１００上でＷｅｂブラウザ１０１を起動する。この時のＷｅｂブラウザは、一般的に用いられているＷｅｂブラウザでよい。ここで、図４は、Ｗｅｂブラウザ１０１に表示されたファイル変換処理に係るＨＴＭＬ文書の一例である。図４において、ウインドウ４００は、ディスプレイ１２０に表示されるＷｅｂブラウザ１０１のウインドウである。タイトルエリア４０１には表示されるＨＴＭＬ文書に付されたタイトルが表示される。エリア４０２およびエリア４０３にはＷｅｂブラウザ１０１に表示されている内容を印刷するなどのコマンドがツールバーやボタン等の形式で表示されている。エリア４０４は、接続するＷｅｂサーバーのアドレスや文書のＵＲＬなどを入出力するＵＲＬフィールドである。ＨＴＭＬ文書はここで入力されるＵＲＬにより指定される。Ｗｅｂブラウザ１０１が起動されると、タイトルエリア４０１〜ＵＲＬフィールド４０４迄が表示され、その他の欄（エリア）は予めブラウザに設定されたＵＲＬで指定される文書が表示される。
【００１９】
次に、ステップＳ３０２で、ユーザがキーボード等の入力装置１００ｅによってファイル変換処理を実行するためのＷｅｂページのＵＲＬを打ち込む。ＵＲＬが打ち込まれると、ファイルパス入力欄４０５と、参照ボタン４０６と、配信先選択欄４０７と、変換ボタン４０８とを含むＨＴＭＬ文書がサーバーから読み出されてウインドウ４００に表示される。ファイルパス入力欄４０５は、ユーザが変換対象として指定する電子文書データのファイルパス（クライアント端末１００上の格納場所）を入力するためのフィールドであり、ユーザは、入力装置１００ｅによって、ファイルパスを入力することができる。また、参照ボタン４０６は、ユーザが変換対象の電子文書データを選択しやすいようにするボタンであり、ユーザが参照ボタン４０６を押下すると、不図示のダイアログが表示され、クライアント端末１００内の電子文書データの一覧が表示される。この中から、ユーザが入力装置１００ｅによって、変換対象とする電子文書データを指定するために、該当のファイルパスをファイルパス入力欄４０５に入力する。配信先選択欄４０７は、変換後の構造化文書データの配信先の候補リストを表示するとともに、ユーザは、入力装置１００ｅ使用し、配信先として指定する（複数の指定が可能である）。本実施形態において、この配信先の候補リストは予めユーザ毎に紐づけられているものとし、候補リストはメールアドレスとする。また、このＨＴＭＬ文書には、ファイル変換処理を開始させるための変換ボタン４０８が含まれている。
【００２０】
次に、ステップＳ３０３で、ユーザが入力装置１００ｅを使用して、ファイルパス入力欄４０５に、変換対象の電子文書データのファイルパスを入力し、配信先選択欄４０７で配信先を決定し、変換ボタン４０８を押下する。ここで、本実施形態では、サーバー端末１１０から送信されたＨＴＭＬ文書には、予め、変換ボタン４０８が押されると後述のステップＳ３０４〜ステップＳ３０７の処理を行うようにプログラムしておく。
【００２１】
まず、変換ボタン４０８が押下されると、ステップＳ３０４で、Ｗｅｂブラウザ１０１は、ネットワーク制御部１１１を介して、変換対象として指定された電子文書データをサーバー端末１１０にアップロードする。さらに、併せて、選択された配信先リストの情報をサーバー端末１１０に通知する。
【００２２】
次に、ステップＳ３０５で、ファイル変換管理部１１３は、アップロードされた電子文書データを変換するアプリケーションに対して、電子文書データの変換命令を出す。電子文書データを変換するアプリケーションの特定は、通常、装置に含まれる基本ソフト（オペレーティングシステム、以下、ＯＳ）に備わっている機能を利用する。
【００２３】
次に、ステップＳ３０６で、ファイル変換管理部１１３からの変換命令を受けたファイル変換部１１４は、電子文書データを構造化文書データに変換する処理を行う。変換された構造化文書データはデータ格納部１１２に格納され、その格納先はＵＲＬによって一意に特定される。この変換処理に詳細については図６を用いて後述する。
【００２４】
次に、ステップＳ３０７で、サーバー端末１１０は、変換した構造化文書データを、ネットワーク制御部１１１を介して、クライアント端末１００へ送信する。本実施形態では、説明を簡単にするために変換後の構造化文書データをクライアント端末１００に送信する。なお、実際には作成されたデータそのものをクライアント端末１００に送信せず、作成された構造化文書データのＵＲＬをクライアント端末１００に送れば、サーバー端末１１０から送信されるデータ量を抑えられる。また、指定された配信先リストのメールアドレスに対しては、ファイル変換管理部１１３は、ネットワーク通信制御部１１１を介して、構造化文書データのＵＲＬをメールで送信する。
【００２５】
次に、ステップＳ３０８で、クライアント端末１００は、サーバー端末１１０から受信した構造化文書データを、構造化文書処理部１０４で解析し、画像表示部１０２を介してディスプレイ１２０上に表示する。これにより、ユーザは、Ｗｅｂブラウザ１０１を用いて、構造化文書データをクライアント端末１００上にダウンロードすることができる。なお、構造化文書データは構造化文書データのＵＲＬからも取得できる。
【００２６】
次に、ステップＳ３０６の詳細について説明する。本実施形態における構造化文書データへの変換方法（文書変換方法）として、プリンタドライバを介して印刷するために、アプリケーションを制御し構造化文書データを得る、という方法を用いる。変換の手段として、予めサーバー端末１１０のＯＳに備わっている印刷機能を利用して変換する。図５は、ファイル変換部１１４をより詳細化した概略図である。
【００２７】
サーバー端末１１０では、ワードプロセッサや表計算などのアプリケーションソフトウェア（以下、アプリケーション）５０１がＯＳ上で動作する。アプリケーション５０１で印刷を行う場合、アプリケーション５０１のプログラム内から、ＯＳが提供するいくつかのサブシステムのうち、グラフィックエンジン５０２の機能を用いて行う。
【００２８】
グラフィックエンジン５０２は、例えば、ディスプレイやプリンタに対する画像情報の処理を行う。グラフィックエンジン５０２は、ディスプレイやプリンタといった各デバイスの依存性を吸収するためにデバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。このモジュールをプリンタドライバ５０３とする。
【００２９】
プリンタドライバ５０３では、その能力や機能などに応じてあらかじめデバイスドライバに実装することが決められているＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれる関数群を用意する必要がある。アプリケーション５０１のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）コールをグラフィックエンジン５０２がデバイスドライバ用にデータ変換を行う。そして、このＤＤＩ関数群が適宜グラフィックエンジン５０２からコールされ所定の印刷処理が実行されるような仕組みになっている。グラフィックエンジン５０２では、このようにプリンタドライバ５０３を介してアプリケーション５０１からの印刷要求をシーケンシャルに処理している。
【００３０】
プリンタドライバ５０３はその使用用途によりプリンタ出力系とファイル出力系に大別できる。プリンタ出力系とは、システムからＤＤＩ関数を介して送られる描画命令を、ＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）とよばれる中間フォーマットに変換するものである。プリンタ出力系の中間フォーマット（ＰＤＬ）は、印刷装置にＰＤＬの制御コマンドを処理可能なコントローラを搭載するものであり、この場合、印刷装置のプリンタ機器で印刷を行う。
【００３１】
一方、ファイル出力系では、印刷装置にデータを送ることが直接的な目的ではなく、ＤＤＩ関数を介して送られる描画命令を予め定義された構造化文書データ形式に変換し、ホストコンピュータのディスクシステム上に構造化文書データとして蓄積するものである。一般的な構造化文書データのフォーマットとしてＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）等が存在する。構造化文書データは、ホストコンピュータ上のファイルシステム上に保存される。
【００３２】
前述のＤＤＩ関数には、印刷の開始を宣言する「ジョブ開始要求」、ページの開始を宣言する「ページ開始要求」、ページ内にプログラムされた文字、図形等のオブジェクトの描画を表す「論理描画要求」、ページの終了を宣言する「ページ終了要求」が含まれる。複数ページを印刷する場合、ページの数だけ「ページ開始要求」、「ページ終了要求」が出され、ページ内に含まれるオブジェクトの数だけ「論理描画要求」が出される。プリンタドライバ５０３は各要求に対して、ＰＤＬ，ＰＤＦ等の中間フォーマット形式に沿ったコマンドを生成する。本実施例においては、この「ファイル出力系としてのプリンタドライバ」を用いて電子文書データを構造化文書データに変換する。
【００３３】
図６は、ファイル変換部１１４内部で動作する、アプリケーション５０１、グラフィックエンジン５０２、プリンタドライバ５０３で行う処理の流れを説明するための図である。ステップＳ６００で、ファイル変換部１１４は、ファイル変換管理部１１３からファイル変換命令を受ける。ファイル変換命令を受けたファイル変換部１１４では、アプリケーション５０１が、グラフィックエンジン５０２を介してプリンタドライバ５０３に、対象の電子文書データを構造化文書データへ変換する要求を出すことによってファイル変換を開始する。
【００３４】
次に、ステップＳ６０１で、アプリケーション５０１は、変換要求を出して、変換のジョブが開始することを、ＧＤＩ関数を介してグラフィックエンジン５０２に通知する。グラフィックエンジン５０２は、通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ５０３へ引き渡す。
【００３５】
次に、ステップＳ６０３で、プリンタドライバ５０３は、ジョブ開始コマンドを生成する（ステップＳ６０２）。アプリケーション５０１は、ページが開始することを、ＧＤＩ関数を介してグラフィックエンジン５０２に通知する。グラフィックエンジン５０２は通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ５０３へ引き渡す。
【００３６】
ステップＳ６０４で、プリンタドライバ５０３は、ページ開始コマンドを生成する。ステップＳ６０５で、アプリケーション５０１は、論理描画要求を、ＧＤＩ関数を介してグラフィックエンジン５０２に通知し、グラフィックエンジン５０２は、通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ５０３へ引き渡す。次に、ステップＳ６０６で、プリンタドライバ５０３は、論理描画コマンドを生成する。論理描画コマンドの内、文字描画コマンドの生成についての詳細は図８を用いて後述する。
【００３７】
次に、ステップＳ６０７で、アプリケーション５０１からの要求がページ終了要求か論理描画要求かどうかを判定する。アプリケーション５０１からの要求がページ終了要求である場合（ＹＥＳ）、アプリケーション５０１はページが終了することを、ＧＤＩ関数を介してグラフィックエンジン５０２に通知する。グラフィックエンジン５０２は、通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ５０３へ引き渡し、ステップＳ６０８へ移行する。そして、ステップＳ６０８で、プリンタドライバ５０３は、ページ終了コマンドを生成する。一方、アプリケーション５０１からの要求が論理描画要求である場合（ＮＯ）、ステップＳ６０５へ戻る。
【００３８】
次に、ステップＳ６０９で、アプリケーション５０１からの要求がジョブ終了要求かページ開始要求かを判定する。アプリケーション５０１からの要求がジョブ終了要求である場合（ＹＥＳ）、アプリケーション５０１は、ジョブが終了することを、ＧＤＩ関数を介してグラフィックエンジン５０２に通知する。そして、グラフィックエンジン５０２は、通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ５０３へ引き渡し、ステップＳ６１０へ移行する。ステップＳ６１０で、プリンタドライバ５０３は、ジョブ終了コマンドを生成する。一方、アプリケーション５０１からの要求がページ開始要求である場合（ＮＯ）、ステップＳ６０３へ戻る。
【００３９】
次に、一般的な文字の描画（表示）方法について説明する。図７は、文字フォント情報に含まれる一般的な情報を示す模式図である。フォントフェース名７０１は、ゴシックなどのユーザがフォントの種類を識別するために必要な情報である。各種テーブル７０２は、文字フォントの文字幅の情報や文字コード、ならびに各文字フォントの形状とのマッピング情報などの情報である。フォント形状情報７０３は、文字の描画形状を示す情報であり、その中に文字毎の描画形状情報（以下グリフと呼ぶ）を有する。
【００４０】
文字フォント情報の形式としては、ビットマップフォントとアウトラインフォントに分かれ、ＴｒｕｅＴｙｐｅ、ＯｐｅｎＴｙｐｅなどの各種フォーマットが定義される。一般的には、アプリケーション５０１は、フォントフェース名、文字コード、および描画属性などを指定することで、所望の文字描画を実現する。ここで、文字コードは、ＡＳＣＩＩ、ＳｈｉｆｔＪＩＳ、Ｕｎｉｃｏｄｅなどの予め定義されたコード体系であり、描画属性は、文字の大きさや描画位置、色などの情報である。
【００４１】
文字を描画する際に、構造化文書データ内の文字描画コマンドを使用する。本実施形態において、文字コード、描画属性、フォントフェース名、各種テーブル、を用いた文字描画コマンドが構造化文書データ内に含まれる。そして、グリフについては文字描画を実行する際に、文字描画コマンドに含まれるフォントフェース名を基に、クライアント端末１００のＯＳが保持している該フォントフェース名のグリフを参照し、文字を描画するものとする。
【００４２】
次に、図８〜１０を参照して、構造化文書データ内の描画コマンドの生成方法（ステップＳ６０６の詳細）および生成した描画コマンドに基づいて構造化文書データを表示させる方法（ステップＳ３０８の詳細）について説明する。
【００４３】
まず、図１０は、構造化文書データに含まれる情報の内、描画コマンドに関する模式図である。図１０において、「Ｏｂｊ１」（１０−１）は、ヒント情報（詳細は後述）を示し、本実施形態では、変換後の構造化文書データ内では「ＦｏｎｔＢ」だが、変換元の電子文書データ内での文字フォントは、「ＦｏｎｔＡ」であったことを示す。
【００４４】
「Ｏｂｊ３」（１０−３）は、構造化文書データ内で使用する文字フォントの情報であり、「／Ｎａｍｅ」は構造化文書内で一意に用いられるフォント名を指す。また、「／ＢａｓｅＦｏｎｔ」は、フォントフェース名を示し、「〜Ｆｏｎｔ情報〜」は、文字フォントの各種テーブルを示す。
【００４５】
「Ｏｂｊ２」（１０−２）は、構造化文書データにおけるページのリソース、および描画コマンドを示すものである。リソースとしては、Ｒｅｓｏｕｒｃｅ  Ｆｏｎｔである「Ｏｂｊ３」、Ａｌｔｅｒｎａｔｉｖｅ  Ｃｏｎｔｅｎｔｓである「Ｏｂｊ４」、を指し、それぞれのＯｂｊを参照することを示している。また、描画コマンドは「／Ｃｏｎｔｅｎｔｓ」内に含まれる。本実施形態では、「ＢＴ」とはテキスト文字出力開始を意味し、「ＦＢ」（即ちＯｂｊ３）のフォントを使用し、「４８」ポイントの大きさ（描画属性）で、ＡＢＣ（文字コード）である文字を出力する、ということを示している。そして「ＥＴ」は、テキスト文字出力終了を意味する。
【００４６】
「Ｏｂｊ４」（１０−４）は、代替ファイルを格納したものであり、「Ｏｂｊ２」に記載の「／Ｃｏｎｔｅｎｔｓ」の内容を無視する場合、「Ｏｂｊ４」に格納されている文字画像を出力する。
【００４７】
「Ｏｂｊ５」は、制御プログラム（表示コマンド）であり、構造化文書データをクライアント端末１００が閲覧（表示）する際に、クライアント端末１００の閲覧アプリケーションによって実行される。この制御プログラムのプログラミング言語として、例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）などを用いてよい。また、この制御プログラムには上記「／Ｃｏｎｔｅｎｔｓ」の内容を無視するか否かの制御情報も含まれている。詳細については、図９を用いて後述する。
【００４８】
次に、図８を参照して文字描画コマンドの生成方法について説明する。まず、ステップＳ８０１で、アプリケーション５０１は、ステップＳ６００で、文字描画要求として、変換元の電子文書データにおける文字コード、描画属性、フォントフェース名、各種テーブルを、ＧＤＩ関数を介してグラフィックエンジン５０２に通知する。そして、ステップＳ６０１でグラフィックエンジン５０２は、通知されたＧＤＩ関数をＤＤＩ関数に変換してプリンタドライバ５０３へ引き渡す。
【００４９】
次に、ステップＳ８０２で、プリンタドライバ５０３は、受け取ったフォントフェース名がサーバー端末１１０内の（複数の）文字フォント情報に存在するかどうかを判定する（判定手段）。このとき、サーバー端末１１０のＯＳに予め備わっている機能（例えば、ＥｎｕｍＦｏｎｔｓと呼ばれる関数を利用することで実現可能）を使用して判定する。該フォントフェース名がサーバー端末１１０内に存在する場合（ＹＥＳ）、ステップＳ８０３へ移行する。ステップＳ８０３で、プリンタドライバ５０３は、サーバー端末１１０に存在する、ステップＳ８０１で通知されたフォントフェース名の文字フォント情報（第１の文字フォント情報）を読み込む。このとき、ＯＳに予め備わっている機能（例えば、ＧｅｔＦｏｎｔＤａｔｅと呼ばれる関数）を利用することで実現可能である。
【００５０】
一方、該フォントフェース名がサーバー端末１１０内に存在しない場合（ＮＯ）、ステップＳ８０４へ移行する。ステップＳ８０４で、プリンタドライバ５０３は、クライアント端末１００にある他の文字フォント情報の中から代替する文字フォント情報（代替情報：第２の文字フォント情報）を選ぶ（例えば、ＧｅｔＦｏｎｔＤａｔａと呼ばれる関数で選ぶ）。そして、プリンタドライバ５０３は、選んだ代替フォント情報を読み込む。
【００５１】
次に、ステップＳ８０５で、プリンタドライバ５０３は、ステップＳ８０１で通知されたフォントフェース名と、ステップＳ８０４で選択した代替フォント情報とを紐づけるヒント情報を構造化文書データ内に格納する。これにより、通知された文字フォント情報が、代替フォント情報に代替されることを示す。具体的には、前述の図１０の「Ｏｂｊ１」の情報を構造化文書データ内に格納する。
【００５２】
次に、ステップＳ８０６で、プリンタドライバ５０３は、文字フォント情報を用いて構造化文書データのフォーマットに沿った文字描画コマンドを生成する（描画コマンド生成手段）。このときの文字フォント情報は、ステップＳ８０３で読み込んだ文字フォント情報またはステップＳ８０４で読み込んだ代替フォント情報であり、文字コード、描画属性、フォントフェース名、各種テーブルなどのであってよい。また、生成した文字描画コマンドは、構造化文書データ内に格納する。具体的には、前述の図１０の「Ｏｂｊ２」および「Ｏｂｊ３」の情報を構造化文書データ内に格納する。
【００５３】
次に、ステップＳ８０７で、プリンタドライバ５０３は、文字コード、描画属性、フォントフェース名、各種テーブルからグリフを取得し、レンダリングを行い、文字画像データを生成（画像生成手段）し、データ格納部１１２に格納する。格納する文字画像データの形式としては、ＰＮＧやＪＰＥＧなどの一般に使用される画像形式であってよい。
【００５４】
次に、ステップＳ８０８で、プリンタドライバ５０３は、ステップＳ８０７で格納した画像の格納先（例えば、ＵＲＬなどのリンク情報）を、構造化文書データ内に代替ファイルとして格納する。具体的には、前述の図１０の「Ｏｂｊ４」および「Ｏｂｊ２」のＡｌｔｅｒｎａｔｉｖｅ  Ｃｏｎｔｅｎｔｓに該当する情報を構造化文書データ内に格納する。
【００５５】
次に、ステップＳ８０９で、プリンタドライバ５０３は、制御プログラム（表示コマンド）を構造化文書データ内に格納する（表示コマンド格納手段）。具体的には、前述の図１０の「Ｏｂｊ５」の情報を構造化文書データ内に格納する。制御プログラムとは、構造化文書データを閲覧する際の閲覧環境において閲覧アプリケーションが実行するものであり、後述の図９で具体的に説明する。ここで、閲覧アプリケーションとは、電子文書などを閲覧するために、閲覧する端末（不図示）に予め備わっているアプリケーションであってよい。また、構造化文書データ内に格納する文字フォント情報は、グリフ（描画形状情報）を除く文字フォントに関する情報である。
【００５６】
次に、図９を参照して、構造化文書データの制御プログラムに基づいて構造化文書を閲覧端末で閲覧する際の、表示方法について説明する。閲覧処理は、図３におけるステップＳ３０８の処理の詳細であり、ステップＳ９０１からＳ９０９の処理はすべてクライアント端末１００、構造化文書処理部１０４内で行われるものである。また、制御プログラム１０−５内には、Ｓ９０１からＳ９０９の処理を実行するためのプログラムが含まれている。なお、ここでは、クライアント端末１００内の処理として説明するが、ステップＳ３０７において、構造化文書データのＵＲＬをメールで送信した場合、メールを受け取った端末においても同様の処理を行うものとする。
【００５７】
まず、ステップＳ９０１で、構造化文書データ内のヒント情報（図１０における「Ｏｂｊ１」）を取得する。次に、ステップＳ９０２で構造化文書データ内の「Ｏｂｊ１」にヒント情報があるか否かを判定する（ヒント情報判定手段）。ここで、ヒント情報の有無の判定は、図１０の構造化文書データ内の、「＼Ｔｙｐｅ  Ｈｉｎｔ」の記載が含まれているか否かで行う。
【００５８】
ヒント情報がある場合（ＹＥＳ）は、ステップＳ９０３に移行し、「Ｏｂｊ１」内の変換元の電子文書データの文字フォントのフォントフェース名（図１０における「ＦｏｎｔＡ」）が閲覧する端末の文字フォント情報の中にある否かを判定する。判定の際は、閲覧する端末のＯＳに備わっている機能を使用する（例えば、ＥｎｕｍＦｏｎｔｓと呼ばれる関数を利用することで実現可能）。
【００５９】
閲覧する端末の文字フォント情報の中に該フォントフェース名が存在する場合（ＹＥＳ）は、ステップＳ９０４に移行し、該フォントフェース名に対応する文字フォント情報を読み込む（文字フォント情報取得手段）。
【００６０】
次に、ステップＳ９０５で、構造化文書データ内の文字フォント情報を、該当する文字フォント情報に置き換える。具体的には、図１０の「Ｏｂｊ３」で「ＦｏｎｔＢ」であった「ＢａｓｅＦｏｎｔ」を元々の文字フォントである「ＦｏｎｔＡ」に書き換える。さらに、「〜Ｆｏｎｔ情報〜」に格納されている「ＦｏｎｔＢ」の各種テーブルを閲覧する端末から取得した「ＦｏｎｔＡ」の各種テーブルに書き換える。
【００６１】
次に、ステップＳ９０６で、閲覧する端末における文字フォント情報から該文字フォントのグリフを取得し、ディスプレイなどの表示装置（不図示）に表示する（文書データ表示手段）。
【００６２】
一方、ステップＳ９０２で、ヒント情報が無い場合（ＮＯ）、またはステップＳ９０３で閲覧する端末の文字フォント情報の中に該フォントフェース名が存在しない場合（ＮＯ）、ステップＳ９０７に移行する。ステップＳ９０７で、構造化文書データ内に格納された代替フォント（図１０の「ＦｏｎｔＢ」）が閲覧する端末の文字フォント情報の中に存在するか否かを閲覧する端末のＯＳに備わっている機能を使用して判定する（文字フォント情報判定手段）。
【００６３】
該代替フォントが存在する場合（ＹＥＳ）は、ステップＳ９０８に移行し、該代替フォントの文字フォント情報を読み込む。そして、ステップＳ９０６で閲覧する端末における文字フォント情報から該文字フォントのグリフを取得し、ディスプレイなどの表示装置（不図示）に表示する。
【００６４】
該代替フォントが存在しない場合（ＮＯ）は、ステップＳ９０９に移行する。ステップＳ９０９で、代替フォントの文字画像データを文字画像データのＵＲＬ（格納先情報）から取得する（文字画像取得手段）。具体的には、図１０の「Ｏｂｊ４」の「Ａｌｔｅｒｎａｔｉｖｅ」に記述されたＵＲＬ先から文字画像データをダウンロードする。そして、ステップＳ９０６で、ディスプレイなどの表示装置（不図示）に表示する。
【００６５】
以上により、閲覧する際の端末における文字フォント情報を、構造化文書データ生成時に把握することができない場合においても、可読性とファイルサイズの抑制とを両立させた構造化文書データを生成することができる。また、構造化文書データを生成する端末において変換元の電子文書データ内で使用している文字フォントが存在しない場合でも、閲覧する端末において該文字フォントが存在すれば、該文字フォントで閲覧可能な構造化文書データを生成することができる。また、本実施形態では、電子文書データを構造化文書データに変換する際は、クライアント端末１００に含まれる機能で説明したが、例えば、文書変換装置として、クライアント端末１００と異なる装置で変換してもよい。
【００６６】
（第２実施形態）
第１実施形態では、ステップＳ８０９において制御プログラムを構造化文書データ内に格納したが、第２の実施例においては、この制御プログラムを格納しない。つまり、サーバー１１０が生成する構造化文書データは、図１１に示すように図１０と比較して制御プログラムに該当する「Ｏｂｊ５」がないものとなる。「Ｏｂｊ５」がない代わりに、構造化文書を閲覧する端末（例えば、本実施形態では、クライアント端末１００）における構造化文書処理部１０４に、図９を参照して説明した制御プログラムが含まれるものとする。すなわち、構造化文書処理部１０４は、ステップＳ９０６で、構造化文書を表示する際、図１１に示す構造化文書データを解析し、図９で示した表示方法で構造化文書を表示する。また、その他の構成は、第１実施形態と同様である。
【００６７】
以上により、第１実施形態と同様に、閲覧する際の端末における文字フォント情報を、構造化文書データ生成時に把握することができない場合においても、可読性とファイルサイズの抑制とを両立させた構造化文書データを生成することができる。また、構造化文書データを生成する端末において変換元の電子文書データ内で使用している文字フォントが存在しない場合でも、閲覧する端末において該文字フォントが存在すれば、該文字フォントで閲覧可能な構造化文書データを生成することができる。
【００６８】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【００６９】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2014225085.tif 000003
【図２】
2014225085.tif 000004
【図３】
2014225085.tif 000005
【図４】
2014225085.tif 000006
【図５】
2014225085.tif 000007
【図６】
2014225085.tif 000008
【図７】
2014225085.tif 000009
【図８】
2014225085.tif 000010
【図９】
2014225085.tif 000011
【図１０】
2014225085.tif 000012
【図１１】
2014225085.tif 000013