ファイル内にフォントが内蔵されていない場合には、上記特許文献1乃至3のような技術を用いることも可能である。しかし、上記特許文献1の技術では、プリンタに内蔵されていないフォントを印刷サーバが用意できない場合には、結局のところ代替フォントを使用せざるをえない。また、上記特許文献2の技術では、ネットワーク上にフォントサーバを用意しなければならない。このため、例えば、日本語フォントを使用する文書を海外のプリンタで印刷するような場合には、日本その他の遠隔地のフォントサーバにアクセスする必要があり、通信負荷や処理時間の増大を招くことになる。さらに、上記特許文献3の技術においても、フォントがない場合には、印刷指示者が意図したフォントとは異なるフォントで印刷が行われることとなる。なお、フォントについての問題は、印刷のみならず、表示装置で表示を行う場合にも生じうる。
本発明の目的は、ある画像形成に使用するフォントが画像形成システムに内蔵されていない場合にも、外部から専らこの画像形成のためにフォントを調達することなく、この画像形成を実施することにある。
なお、画像形成装置においては、出力対象のファイルを出力するだけでなく、このファイルに関連した情報を出力する場合もある。
本発明の別の目的は、出力対象のファイルの属性情報を出力する場合に、その文字化けを防ぐための新たな技術を開発することにある。
本発明の画像形成制御データは、画像形成装置における出力対象として、フォント埋め込み可能なファイルを指示する出力対象指示データと、前記画像形成装置における付随的な出力対象として、前記ファイルにかかる属性値を指示する付随的出力対象指示データと、
前記属性値の出力に用いるフォントとして、前記ファイルに埋め込まれたフォントを指示するフォント指示データと、を備える。
画像形成制御データは、画像形成装置における画像形成を制御するデータである。画像形成制御データは、画像形成要求元が画像形成装置あるいはその制御装置に画像形成要求を行う際に用いられるものであってもよいし、画像制御装置を制御する制御装置がこの画像形成装置に印刷指示を行う際に用いられるものであってもよい。画像形成制御データのデータ形式は特に限定されるものではなく、画像形成装置あるいはその制御装置において解釈可能であればよい。また、画像形成制御データは、典型的には単体のファイルとして構成されるが、ファイル化されていないデータ列として構成されてもよいし、複数のファイルやデータ列として構成されてもよい。一例としては、出力対象指示データと、付随的出力対象指示データ及びフォント指示データとを別形成し、一連の処理の中で両者を共に使用して制御を行う態様を挙げることができる。
出力対象指示データは、画像形成装置から出力されるべき電子ファイルを指示するためのデータである。出力対象指示データにおいては、例えば、ファイル名やURLなどを記載することでファイルが特定される。出力対象指示データで特定されるファイル(以下では出力対象ファイルと呼ぶ場合がある)としては、フォント埋め込み可能な形式をもつファイルが設定される。このようなファイルの例としては、PDFやDocuWorks(登録商標)などを例示することができる。
付随的出力対象指示データは、出力対象ファイル以外の出力対象を指示するためのデータである。付随的出力対象指示データにおいては、出力対象ファイルについての属性値が特定される(属性を特定することで、間接的に属性値が特定される場合を含む)。つまり、画像形成装置の側では、付随的出力対象指示データを解釈して、属性値を出力することになる。属性値の出力は、出力対象ファイルとは別に行われてもよいし、出力対象ファイルの出力イメージに合成されて行われてもよい。ここで出力イメージとは、画像形成装置から出力され、ユーザによって視覚的に認識されるイメージをいう。出力イメージは、画像形成装置が表示装置であれば画面上に表示された画像(表示イメージ)であり、画像形成装置がプリンタであれば用紙上に印刷された画像(印刷イメージ)である。なお、属性値とは、出力対象ファイルについての属性の値であり、出力対象ファイルについての属性としては、例えば、ファイル自体に関する属性(ファイル名、ファイル作成日、ファイル作成ユーザ名など)や、ファイルの画像形成に関する属性(例えば、画像形成要求ユーザ名、画像形成日時など)を例示することができる。
フォント指示データは、属性値の出力に用いるフォントとして、出力対象ファイルに埋め込まれたフォントを指示するデータである。出力対象ファイルは、出力対象ファイル自体の出力のために画像形成装置やその制御装置に入力される。このため、画像形成装置あるいはその制御装置は、出力対象ファイルに埋め込まれたフォントを容易に参照することができる。また、出力対象ファイル中には、出力対象ファイルについての属性値を表現するフォントが埋め込まれている可能性も高いと考えられる。そこで、フォント指示データにおいては、フォントの参照先として出力対象ファイルを指定している。
この構成によれば、出力対象ファイルの画像形成に付随して、出力対象ファイルの属性値の画像形成を行う場合に、出力対象ファイルのフォントを参照する。したがって、画像形成装置やその制御装置にフォントが内蔵されていない場合にも、外部からフォントを取得する必要がない。また、フォントを取得困難な画像形成環境であっても、文字化けを防ぐことが可能となる。
本発明の画像形成制御データの一態様においては、前記属性値は、前記ファイルのファイル名である。また、本発明の画像形成制御データの一態様においては、前記属性値は、前記ファイルの作成者、所有者、または出力指示者を示すユーザ名である。
本発明の画像形成制御データの一態様においては、前記属性値は、前記ファイルの出力イメージと合成されて出力される。具体的には、ヘッダ、フッダ、スタンプなどの形式で合成される態様を挙げることができる。
本発明の画像形成制御データの一態様においては、前記属性値は、前記ファイルの直前または直後に出力されるバナーにおいて出力される。バナーとは、ファイル出力結果の理解を助けるためのものである。画像形成が印刷である場合には、ファイルの印刷結果に重ねて出力されるカバーシートがバナーシートに相当する。バナーには、典型的には、出力対象ファイル名や、出力要求ユーザ名などが含まれる。
本発明の画像形成制御データの一態様においては、前記属性値は、前記画像形成装置の出力ログレポートにおいて出力される。出力ログレポートとは、過去のファイル出力の履歴を記したものであり、定期的にあるいはユーザ指示に基づいて出力される。出力ログレポートには、典型的には、ファイル名や出力日時などのリストが含まれる。
本発明の画像形成制御データの一態様においては、フォント指示データが指示するフォントが存在しない場合に、前記属性値の出力に用いるグリフ情報を指示する代替グリフ指示データを備える。グリフ情報とは、字形を具体的に記したデータであり、たとえばフォントデータを展開してビットマップ化することで作成される。また、本発明の画像形成制御データの一態様においては、フォント指示データが指示するフォントが存在しない場合に、前記属性値の出力に用いるフォントとして、前記ファイルに埋め込まれた別のフォント、または別のファイルに埋め込まれた同じ若しくは別のフォントを指示する代替フォント指示データを備える。また、本発明の画像形成制御データの一態様においては、フォント指示データが指示するフォントが存在しない場合に、前記属性値に代わって出力対象となる文字列を指示する代替印刷対象指示データを備える。代替する文字列の出力用のフォントを適宜指示することも有効である。なお、複数の代替処理態様を指示する場合には、どれを優先的に採用するかについて順位づけを行うことも効果的である。
本発明の画像形成制御データの一態様においては、前記属性値の出力におけるフォントの色またはサイズを指示するフォント出力指示データを備える。この場合、フォントがスケーラブルフォントであれば、出力時にフォントサイズを変えればよい。また、フォントが固定サイズフォントであれば、当初からそのサイズのフォントを参照することになる。
本発明の画像形成制御データの一態様においては、前記画像形成装置は、画面上に画像を表示する表示装置である。また、本発明の画像形成制御データの一態様においては、前記画像形成装置は、用紙上に画像を印刷するプリンタである。プリンタは、別の画像処理機能も備えた複合機であってもよい。印刷を制御する画像形成制御データは、しばしば、ジョブチケットと呼ばれる。一般にプリンタによる印刷出力は、表示装置による表示出力よりも高解像度で行われること、また、出力結果が長く残ることから、適切なフォントを用いて出力することが特に望ましい。
本発明のプリンタは、前記画像形成制御データを受信する手段と、前記出力対象指示データにより指示されたファイルを印刷する手段と、前記付随的出力対象指示データにより指示された属性値を、前記フォント指示データにより指示されたフォントに基づいて印刷する手段と、を備える。ファイルの印刷イメージと属性値が合成されて印刷されてもよい。なお、画像形成制御データによって設定された出力対象の印刷出力は、この画像形成制御データ自体をトリガーとしてなされてもよいが、別の制御データをトリガーとしてなされるようにすることもできる。例えば、属性値を出力ログデータとして出力する場合、その出力タイミングは、出力対象ファイルの出力タイミングとは異なる。そこで、付随的な出力対象の出力タイミングを別の制御データによって指示することが有効となる。同様に、出力対象ファイルの出力タイミングが、画像形成制御データとは別の制御データによって指示されてもよい。
本発明の印刷サーバ装置は、前記画像形成制御データを前記プリンタに送信して、前記プリンタの印刷を制御する。
本発明のクライアント装置は、前記画像形成制御データを生成する手段と、前記プリンタ対し、または前記プリンタを制御する印刷サーバ装置に対し、前記画像形成制御データを送信する送信手段と、を備える。
なお、本発明は、上記プリンタ、印刷サーバ装置、又はクライアント装置が実行する方法として、あるいは、このいずれかの装置を実現するためのアプリケーションプログラムやその記憶媒体として捉えることもできる。また、上記印刷サーバ装置と上記クライアント装置とが統合された印刷システムの発明、あるいは、印刷システムについての方法、プログラム、記憶媒体の発明として捉えることも可能である。
図1は、本実施の形態にかかるシステム構成を説明する図である。このシステムには、クライアントとしてのユーザ端末10と、ユーザ端末からの印刷要求を受け付ける印刷サーバ20と、印刷サーバ20の指示に従って印刷を実行するプリンタ40とが含まれ、これらはインターネット等のネットワーク30に接続されている。
ユーザ端末10は、PC(パーソナルコンピュータ)に対し、印刷要求用のソフトウエアをインストールすることで構築される。ユーザ端末10は、ユーザが操作を行う装置であり、ユーザ操作に基づいて、PDF文書その他の印刷データの印刷要求を印刷サーバ20に対して行う。PDF文書の印刷要求や印刷設定は、典型的には、ジョブチケットと呼ばれる印刷制御データの送信によって行われる。ジョブチケットには、印刷部数指定、片面・両面印刷指定、Nup指定などの各種印刷制御データを記載することができる。なお、印刷対象となるPDF文書は、ジョブチケットとともに印刷サーバ20に送信されてもよいし、ジョブチケットに記された格納先情報(URLなど)に従って、印刷サーバ20により格納先から取得されるようにしてもよい。
ユーザ端末10は、ジョブチケットを用いて、単に印刷データの印刷要求を行うことも可能であるが、さらに、付随的な印刷要求を行うこともできる。付随的な印刷要求の例としては、バナーシートの印刷要求、ログレポートの印刷要求、PDF文書に重畳させたスタンプの印刷要求を例示することができる。付随的な印刷要求においては、典型的には、PDF文書についての属性値(ファイル名や印刷要求ユーザ名など)が印刷対象として設定され、さらに、属性値の印刷に使用するフォントの設定がPDF文書に埋め込まれたフォントを参照することで行われる。こられの設定は、ユーザ指示により、あるいはプログラミングされた設定に基づいて、ジョブチケットを編集することで行われる。
印刷サーバ20は、PCやワークステーションに印刷制御用のソフトウエアをインストールすることで構築される装置である。印刷サーバ20では、ユーザ端末10からジョブチケットを受け付けて、その解析を行い、印刷を実行させるべきプリンタ40に印刷指示を行う。印刷指示は、典型的には、ジョブチケットと印刷データを送信することで行われる。なお、印刷サーバ20を設けず、ユーザ端末10からプリンタ40に対して直接印刷指示を行うようにシステムを構成することも可能である。
プリンタ40は、用紙に画像を印刷する装置である。プリンタ40には、内部通信路としてのバス41が設けられており、このバス41に各種の構成要素が接続されている。操作部/表示部42は、ディスプレイを備えたユーザインターフェースである。また、画像蓄積部44は、ハードディスク等の記憶装置からなり、画像データを長期間蓄積することができる。そして、画像蓄積部44には、PDF文書を保存するためのPDF蓄積部46も設けられている。一般には、印刷指示されたPDF文書はPDF蓄積部46には保存されないが、ログレポートの作成において必要がある場合には、このPDF蓄積部46に蓄積されることになる。
RAM48は、プログラムや印刷データなどを一時的に記憶するために使用される。データ受信部50は、ネットワーク30に接続され、印刷サーバ20からジョブチケットやPDF文書を受信する。また、制御部52は、CPUを備え、プリンタ40の全体の動作制御を行う。そして、出力部54は、ラスタライズされた画像を用紙に印刷する装置である。
ジョブチケット解析部56は、データ受信部50が受信したジョブチケットを読み取って、PDF文書の印刷をどのように印刷すべきか、付随する印刷要求があるかなどの解析を行う。解析の結果、付随的な印刷要求があり、属性値の印刷にPDF文書の埋め込みフォントを使用する設定がなされている場合には、フォント決定部58と印刷データ解析部60によって、そのフォントが参照される。具体的には、フォント決定部58は、PDF文書の解析を行う印刷データ解析部60に対し、ジョブチケットに記載されたフォントが含まれているか否かを問い合わせる。そして、フォント決定部58は、フォントが含まれている場合にはそのフォントを使用するよう決定し、含まれていない場合にはジョブチケットの設定あるいはあらかじめプログラミングされた設定に従って、代替的に使用するフォントを決定する。
バナーシート作成部62、ログレポート作成部64、スタンプ作成部66は、それぞれ、バナーシートの作成、ログレポートの作成、PDF文書に合成するスタンプの作成を行う。これらの作成にあたっては、典型的には、フォント決定部58により決定されたフォントが使用される。データラスタライズ部68は、PDF文書や、バナーシートなどを出力部54で印刷させるために、出力部54が解釈可能なラスタ画像を生成する。
続いて、図2を用いて、図1に記したプリンタ40における処理の流れを説明する。図2は、付随的な印刷要求として、バナー印刷のみを考慮した場合における処理の流れを示すフローチャートである。
プリンタ40のデータ受信部50が、印刷サーバ20からジョブチケット及びPDF文書を受信して印刷指示を受け付けると(S10)、ジョブチケット解析部56は、ジョブチケットの解析を行う(S12)。具体的には、PDF文書の印刷態様が解析される他、バナー印刷指示があるか否かが解析される(S14)。指示がない場合には、単にPDF文書の印刷が行われる(S36)。すなわち、データラスタライズ部68でPDF文書がラスタ画像化され、出力部54で印刷される。他方、バナー印刷の指示がある場合には、PDF文書についての属性(値)の印刷指示があるか否かを判定し(S16)、属性の印刷指示がなければただちにバナーを印刷する(S34)。具体的には、バナーシート作成部62でバナーシートを作成し、データラスタライズ部68でラスタ画像化して、出力部54で印刷を行う。これに対し、属性の印刷指示がある場合には、属性のフォント参照先がジョブチケットに記述されているか判定する(S18)。そして、記述されていない場合には、通常の印刷態様でバナーを印刷する(S34)。
属性のフォント参照先がジョブチケットに記載されている場合には、PDF文書内にフォントがあるか否かを判定する(S20)。PDF文書内にフォントがあれば、ただちにそのフォント情報を取得して(S32)、バナーを印刷する(S34)。しかし、PDF文書内にフォントがない場合には、ジョブチケットにフォントがない場合の代替方法が指示されているか判定する(S22)。そして、代替方法の記述がない場合には、システムが用意する文字列及びフォントで代替する決定がなされ(S24)、そのフォント情報が取得される(S32)。他方、フォントがない場合の代替方法が記載されている場合には、その代替方法が、当初とは別の文字列及びフォントを用いる指示であるか否か判定する(S26)。この判定がYesの場合には、PDF文書内の代替フォントを検索し(S28)、代替フォントがある場合にはそのフォントを取得する(S32)。他方、代替フォントがない場合、あるいは、ステップS26の判定がNoの場合には、ジョブチケット内にフォントのグリフ情報があるか否かを判定する(S30)。そして、グリフ情報がある場合にはそのグリフ情報を使用し、グリフ情報がない場合にはシステムが用意する文字列とフォントで代替する(S24)。
次に、図3乃至図6を用いて、具体的な態様について説明を行う。
図3は、印刷対象となるPDF文書の例を示す図である。図示したPDF文書80は「仕様書.pdf」というファイル名を付与されている。PDF文書80には、PDFファイルであることを示す「%PDF-1.4」というヘッダ82が設定され、さらに、「<< /Font <<・・・>>>>」のように埋め込まれた埋め込みフォント84や、「12 0 obj ...endobj」のように記載された文書情報についてのオブジェクト86などが設けられている。
図4は、図3に示したPDF文書80を印刷するためのジョブチケット90である。ジョブチケット90には、例えば、プリンタ名や、印刷部数、カラー設定など一般的な印刷設定を記載することが可能である。しかし、図においては、このような一般的な印刷設定の記載は省略し、主としてバナー印刷に必要となる設定を示している。
ジョブチケット90は、マークアップ言語であるXML(Extensible Markup Language)によって記述されており、<JobTicket>や<Document>などのタグによって、テキストデータの構造化と意味づけがなされている。例えば、<Document>のタグは、主たる印刷対象となる印刷データについて設定するものであり、この中には、印刷データの名称が「仕様書.pdf」であることを設定する<FileName>のタグと、送信(印刷要求)ユーザ名が「富士太郎」であることを設定する<SendUser>のタグが設けられている。
ジョブチケット90には、さらに、付随的な印刷としてのバナー印刷の設定を行う<Banner>タグが設けられている。この<Banner>タグでは、「Flag='true'」を設定することでバナー印刷の実施が指示され、「Flag='false'」を設定することでバナー印刷の不実施が指示される。<Banner>のタグ内には、二つの<BannerPrint>タグが設けられている。この<BannerPrint>タグは、バナー印刷における印刷項目となる属性を設定するタグであり、一つには「Attribute='FileName'」が設定され、もう一つには「Attribute='SendUser'」が設定されている。前者は、<Document>欄で定義された属性「FileName」の値「仕様書.pdf」をバナーシートに印刷するための設定であり、後者は、<Document>欄で定義された属性「SendUser」の値「富士太郎」をバナーシートに印刷するための設定である。
属性「FileName」が設定された<BannerPrint>タグ内には、<参照ファイル>、<参照フォント名>、<代替手段>、<フォントサイズ>の各タグが設けられている。このうち、<参照ファイル>は、属性の印刷に使用するフォントを、どのファイルを参照して取得するか定義するタグであり、ここでは「仕様書.pdf」が設定されている。また、<参照フォント名>は、どのフォントを参照するか定義するタグであり、ここでは「Mincho」が設定されている。したがって、属性「FileName」の値「仕様書.pdf」を印刷する場合には、ファイル「仕様書.pdf」の中に埋め込まれた「Mincho」というフォントを参照することになる。具体的には、図3に示したPDF文書80の埋め込みフォント84が「Mincho」であるか否かを検査し、「Mincho」である場合にそれを参照することになる。
続く<代替手段>のタグは、<参照ファイル>及び<参照フォント名>のタグによって定められたフォントが見つからない場合の代替処理方法を定義するものである。ここでは、「Flag='true'」が与えられて、代替処理方法を設定する旨が宣言されている。そして、最も優先順位が高い「priority='1'」の代替処理方法として、「Gothic」というフォントを使用する旨の処理方法が<フォント名>タグによって定義されている。つまり、ファイル「仕様書.pdf」内に「Mincho」のフォントが無い場合には、まず、同じファイル内の「Gothic」というフォントを探して使用する旨が設定されている。次に優先順位が高い「priority='2'」の代替処理方法は、<属性値>タグによって設定されている。この<属性値>タグは、<BannerPrint>タグにより設定されている「FileName」という属性の値として別の値を設定するタグであり、「Specification.pdf」の値が与えられている。したがって、バナーシートのファイル名欄には、「仕様書.pdf」の代わりに、「Specification.pdf」という値が印刷されることになる。優先順位が3位である「priority='3'」の代替処理方法は、<グリフ>タグによって設定されている。この<グリフ>タグには、具体的なグリフ情報「xxxxxxxxxxxxxxx」が設定されており、別のファイルを参照することなく、このグリフ情報に基づいた印刷がなされる。
残る<フォントサイズ>のタグは、フォントの印刷サイズを15ポイントにする旨を定義している。また、属性「SendUser」を設定した<BannerPrint>タグにおいても、同様にして、標準的に使用するフォントと、代替的な処理方法とが設定されている。なお、ここでは、標準的に参照するPDF文書にフォントが見つからない場合の代替処理方法として、三つの処理を設定する例を示したが、いずれか一つの処理方法のみを定義するようにしてもよい。なお、このように代替処理方法を設定する場合には、文字化けを起こさない、あるいは文字化けを起こす可能性が低い処理方法を少なくとも一つ用意しておくことが有効であろう。
図5は、図4に示したジョブチケット90により行われるバナー印刷の結果を示す図である。図示したバナーシート100は、図3に示したPDF文書80(仕様書.pdf)が印刷される直前に印刷され、PDF文書80の印刷結果の上に重ねて出力されるシートである。このバナーシート100は、ジョブチケット90の設定をテンプレートに反映させて作成されている。このため、バナーシート100には、ジョブチケット90で指示したように、属性「FileName」の値「仕様書.pdf」と、属性「Sender」の値「富士太郎」が、「仕様書.pdf」に埋め込まれていた明朝体のフォントによって印刷されている。明朝体のフォントは、日本国内ではありふれたものであるが、海外では必ずしも標準的に用意されているわけではない。しかし、「仕様書.pdf」に埋め込まれたフォントを使用することで、フォントのインストール状況によらず、確実に印刷を実行することが可能となっている。
図6は、属性の印刷を行う別の例を示す図である。図示した仕様書110は、図3に示したPDF文書80の印刷結果を示している。すなわち、仕様書110には、オブジェクト86に対応した文書112が印刷されている。この仕様書110において特徴的な点は、右上付近にスタンプ114が印刷されていることである。このスタンプ114は、図4のジョブチケット90に類似したジョブチケットに基づいて、PDF文書80に合成され、出力されたものである。スタンプ114には、属性「Sender」の値である「富士太郎」と、印刷日時属性の値である「2006.4.10」と、属性「FileName」の値である「仕様書.pdf」とが含まれている。つまり、スタンプ114は、いつ誰が何を印刷したものかを記録する役割を果たしている。
スタンプ114においても、通常の印刷では、プリンタや印刷サーバにフォントがインストールされていなければ、文字化けが発生する。また、文字化けを防ぐために、印刷時に外部からフォントを取得することも考えられるが、印刷の所要時間が延びてしまうことになる。これに対し、主たる印刷対象であるPDF文書80からフォントを取得する本態様では、迅速かつ適切な印刷を行うことが可能である。
10 ユーザ端末、20 印刷サーバ、30 ネットワーク、40 プリンタ、41 バス、42 操作部/表示部、44 画像蓄積部、46 PDF蓄積部、48 RAM、50 データ受信部、52 制御部、54 出力部、56 ジョブチケット解析部、58 フォント決定部、60 印刷データ解析部、62 バナーシート作成部、64 ログレポート作成部、66 スタンプ作成部、68 データラスタライズ部、80 PDF文書、90 ジョブチケット、100 バナーシート、110 仕様書。