(57)【特許請求の範囲】
【請求項１】
マークアップ言語で記述されている印刷データを解析して印刷対象である対象データを印刷媒体に印刷する印刷装置であって、
前記印刷データによって指定された、前記対象データを配置するレイアウト領域を示すレイアウト領域情報を取得するレイアウト領域情報取得手段と、
前記印刷装置に依存する印刷用領域を示す描画有効領域情報を取得する描画有効領域情報取得手段と、
前記対象データの縦および横のいずれか一方が、前記レイアウト領域のそれと等しくなるように、前記対象データの拡大率または縮小率を算出する第１拡大縮小率算出部、
前記第１拡大縮小率算出部によって算出された拡大率または縮小率で前記対象データを前記レイアウト領域へ配置する第１配置部、
前記レイアウト領域の縦および横のいずれか一方が、前記描画有効領域のそれと等しくなるように、前記レイアウト領域の拡大率または縮小率を算出する第２拡大縮小率算出部、
および前記第２拡大縮小率算出部によって算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置する第２配置部を有するレイアウト手段と、
前記レイアウト手段によって前記描画有効領域に配置された前記対象データを印刷する印刷手段と
を備えることを特徴とする印刷装置。
【請求項２】
前記印刷装置は、さらに、
余白なし印刷指示を検出する余白なし印刷指示検出手段を備え、
前記描画有効領域情報取得手段は、余白なし印刷指示が検出された際には、前記描画有効領域として余白なし印刷に必要なデータ領域を取得する
ことを特徴とする請求項１記載の印刷装置。
【請求項３】
前記印刷装置は、さらに、
余白あり印刷指示を検出する余白あり印刷指示検出手段を備え、
前記描画有効領域情報取得手段は、余白あり印刷指示が検出された際には、前記描画有効領域として印刷可能なデータ領域を取得する
ことを特徴とする請求項１記載の印刷装置。
【請求項４】
マークアップ言語で記述されている印刷データを解析して印刷対象である対象データを印刷媒体に印刷する印刷装置であって、
前記印刷データによって指定された、前記対象データを配置するレイアウト領域を示すレイアウト領域情報を取得するレイアウト領域情報取得手段と、
前記印刷装置に依存する印刷用領域を示す描画有効領域情報を取得する描画有効領域情報取得手段と、
前記対象データの縦および横のいずれか一方が、前記レイアウト領域のそれと等しく、かつ、他方が前記レイアウト領域のそれと等しいか大きくなるように、前記対象データの拡大率または縮小率を算出する第１拡大縮小率算出部、
前記第１拡大縮小率算出部によって算出された拡大率または縮小率で前記対象データを前記レイアウト領域へ配置する第１配置部、
前記レイアウト領域の縦および横のいずれか一方が、前記描画有効領域のそれと等しく、かつ、他方が前記描画有効領域のそれと等しいか大きくなるように、前記レイアウト領域の拡大率または縮小率を算出する第２拡大縮小率算出部、
および前記第２拡大縮小率算出部によって算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置する第２配置部を有するレイアウト手段と、
前記レイアウト手段によって前記描画有効領域に配置された前記対象データを印刷する印刷手段と
を備えることを特徴とする印刷装置。
【請求項５】
前記第２配置部は、前記第２拡大縮小率算出部によって算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置する際に、前記描画有効領域からはみだすレイアウト領域の縦方向における上下または横方向における左右が概ね均等になるように配置する
ことを特徴とする請求項４記載の印刷装置。
【請求項６】
前記第２拡大縮小率算出部は、前記レイアウト領域の中心と前記描画有効領域の中心とを重ね、前記レイアウト領域を縦横等倍した結果、前記描画有効領域をその中に含む最大の縮小率または最小の拡大率を前記レイアウト領域の拡大率または縮小率として算出する
ことを特徴とする請求項４記載の印刷装置。
【請求項７】
前記第２配置部は、前記印刷媒体と前記描画有効領域との相似関係に基づいて、描画有効領域より小さく印刷用紙と相似なるよう前記描画有効領域情報を補正し、
前記第２拡大縮小率算出部は、前記レイアウト領域が前記第２配置部によって補正された描画有効領域を含んで最小となるように、前記レイアウト領域の拡大率または縮小率を算出する
ことを特徴とする請求項４記載の印刷装置。
【請求項８】
前記印刷装置は、さらに、
前記印刷データによって指定された、前記対象データの上に文字列を合成する位置を示す位置情報を取得する位置取得手段を備え、
前記レイアウト手段は、さらに、
前記位置取得手段によって取得された前記位置情報と、前記第１拡大縮小率算出部によって算出された拡大率または縮小率と、前記第２拡大縮小率算出部によって算出された拡大率または縮小率とに基づいて、前記文字列を合成する位置を判定する文字列合成位置判定部と、
前記文字列合成位置判定部によって判定された前記文字列を合成する位置が前記印刷媒体からはみ出す、または前記印刷媒体の端から所定の範囲内に接近する場合には、前記文字列が前記印刷媒体から所定の範囲内に印刷されるように、前記文字列を合成する位置を補正する文字列補正部と、
前記対象データ上の、前記文字列補正部によって補正された前記文字列を合成する位置に前記文字列を合成して配置する文字列配置部とを備える
ことを特徴とする請求項４記載の印刷装置。
【請求項９】
前記レイアウト手段は、さらに、
前記対象データの上に合成する文字列を、前記第１拡大縮小率算出部によって算出された拡大率または縮小率、および前記第２拡大縮小率算出部によって算出された拡大率または縮小率とは異なる拡大率または縮小率で拡大または縮小し、前記対象データ上に合成して配置する文字列配置部を備える
ことを特徴とする請求項４記載の印刷装置。
【請求項１０】
前記印刷装置は、さらに、
前記印刷データまたは印刷実行指示によって指定された前記印刷媒体の大きさを取得する指定サイズ取得手段と、
前記印刷装置で使用される前記印刷媒体の大きさを取得する媒体サイズ取得手段とを備え、
前記文字列配置部は、前記印刷データまたは印刷実行指示によって指定された前記印刷媒体の大きさと、前記印刷装置で使用される前記印刷媒体の大きさとが相違する場合、それぞれの前記印刷媒体の大きさに基づいて前記文字列の前記拡大率または縮小率を算出し、前記文字列を前記対象データ上に合成して配置する
ことを特徴とする請求項９記載の印刷装置。
【請求項１１】
前記印刷データは、文字情報をさらに含み、
前記印刷装置は、さらに、
前記文字情報を前記レイアウト領域に配置する文字列レイアウト手段と、
前記文字列レイアウト手段によって配置された位置および大きさを保存して前記描画有効領域の座標に変更する文字列レイアウト補正手段とを備え、
前記印刷手段は、前記レイアウト手段によって前記描画有効領域に配置された前記対象データと、前記文字列レイアウト補正手段によって座標に変更された前記文字情報とを合成して印刷する
ことを特徴とする請求項１記載の印刷装置。
【請求項１２】
前記マークアップ言語はＸＭＬ言語である
ことを特徴とする請求項１記載の印刷装置。
【請求項１３】
マークアップ言語で記述されている印刷データを解析して印刷対象である対象データを印刷媒体に印刷する印刷方法であって、
前記印刷データによって指定された、前記対象データを配置するレイアウト領域を示すレイアウト領域情報を取得するレイアウト領域情報取得ステップと、
前記印刷装置に依存する印刷用領域を示す描画有効領域情報を取得する描画有効領域情報取得ステップと、
前記対象データの縦および横のいずれか一方が、前記レイアウト領域のそれと等しくなるように、前記対象データの拡大率または縮小率を算出し、算出された拡大率または縮小率で前記対象データを前記レイアウト領域へ配置するとともに、前記レイアウト領域の縦および横のいずれか一方が、前記描画有効領域のそれと等しくなるように、前記レイアウト領域の拡大率または縮小率を算出し、算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置するレイアウトステップと、
前記レイアウトステップによって前記描画有効領域に配置された前記対象データを印刷する印刷ステップと
を含むことを特徴とする印刷方法。
【請求項１４】
マークアップ言語で記述されている印刷データを解析して印刷対象である対象データを印刷媒体に印刷するためのプログラムであって、
前記印刷データによって指定された、前記対象データを配置するレイアウト領域を示すレイアウト領域情報を取得するレイアウト領域情報取得ステップと、
前記印刷装置に依存する印刷用領域を示す描画有効領域情報を取得する描画有効領域情報取得ステップと、
前記対象データの縦および横のいずれか一方が、前記レイアウト領域のそれと等しくなるように、前記対象データの拡大率または縮小率を算出し、算出された拡大率または縮小率で前記対象データを前記レイアウト領域へ配置するとともに、前記レイアウト領域の縦および横のいずれか一方が、前記描画有効領域のそれと等しくなるように、前記レイアウト領域の拡大率または縮小率を算出し、算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置するレイアウトステップと、
前記レイアウトステップによって前記描画有効領域に配置された前記対象データを印刷する印刷ステップとをコンピュータに実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬ形式等のマークアップ言語で記述されている印刷データを解析して対象データを印刷する印刷装置に関する。
【背景技術】
【０００２】
従来、プリンタでの印刷というと、ほとんどの場合がパーソナルコンピュータ（以下ＰＣとする）からの印刷を指している。ＰＣからの印刷の場合、オフィスなどでよく使われるレーザビームプリンタでは、ページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：以下ＰＤＬとする）といわれるプリンタ独自の言語を用いて印刷を実現していることが多い。この場合、例えば図１に示すようにプリンタ３０５にＰＤＬ３０２を解釈して印刷用のデータに変換するコントローラ３０３を搭載することにより実現している。ＰＤＬ３０２の場合には、文字情報は文字コードとして送られ、プリンタ３０５に搭載されているフォントデータを使われることが多い。
【０００３】
また、一般家庭で多く使われているインクジェット方式のプリンタなどでは、例えば図２に示すようにコントローラを搭載しないプリンタ３１３が多い。この場合には、そのプリンタ専用のドライバ３１２をＰＣ３１０にインストールして、ＰＣ３１０で印刷用のビットマップデータを生成しているものがほとんどである。プリンタ３１３側は、単に印刷コマンドと印刷用ビットマップデータ３１０を受け取って、紙などの印刷媒体に出力するだけである。これは、フォントデータやコントローラを搭載しないで、プリンタではデータ処理をほとんどしなくてもいいようにすることにより、プリンタを安価に実現するためである。
【０００４】
ところで、近年デジタルカメラ（以下ＤＳＣとする）の普及に伴い、例えば図３に示すようにメモリカードスロットを備えたり、ＤＳＣと直接接続したりして、ＰＣを介さずに印刷できるプリンタも広まりつつある。メモリカードスロットから印刷するプリンタの場合、プリンタ自体に簡単な液晶モニタなどを搭載してそのユーザインターフェースから印刷命令３２１を送っている。また、ＤＰＯＦといわれる、メモリカードの特定のファイルに印刷制御情報を記載する規格も標準化されていて、プリンタが自動的にＤＰＯＦを解釈して内部で印刷命令３２１を作り出し印刷するものもある。ＤＳＣと直接接続して印刷できるプリンタとしては、ＵＳＢケーブルで接続して、ＤＳＣのユーザインターフェースを用いて印刷命令３２１を送信して印刷を行うＰｉｃｔＢｒｉｄｇｅなどが規格化されている。これらの印刷方式は、いずれもＤＳＣで撮影されメモリカードに記録されたデータをプリンタ側のコントローラ３２３で印刷用のデータに変換している。また、これらの印刷は写真印刷に特化されていて日付などの文字列も印刷することができるが、限られた文字情報に限定されている。そのため、文字情報が多く含まれるような印刷データを扱うことは難しい。
【０００５】
一方、印刷されるコンテンツのほうを見てみると、印刷コンテンツを持つホスト機器はこれまではＰＣだけであったのが、携帯電話やディジタルテレビなど様々な機器の高機能化に伴い、これらの機器からの印刷も可能になりつつある。これらの機器はいずれもＤＳＣで撮影した静止画を表示したり、インターネットに接続したりすることなども可能になっており、様々な印刷コンテンツになりうる情報を扱えるようになっている。インターネット接続環境はＡＤＳＬなどの普及により一般の家庭でも普通に使われるようになっている。そのため、印刷コンテンツは、静止画だけにとどまらず、インターネットに流れる様々な情報、サービスへも広がりを見せ始めている。インターネットでは、ＨＴＭＬなどのＸＭＬ系の言語が多く使われている。
【０００６】
さらに、インターネット接続が一般化するに伴い様々な機器がネットワークにつながるようになってきている。そして、ＰＣのように高機能ではない一般の組込み機器が容易にネットワークへの接続ができるように、例えばＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）という規格も提案されている。ＵＰｎＰでは、プリントする場合の印刷コンテンツの標準フォーマットについても明記されており、ＸＭＬ系の言語の一種であるＸＨＴＭＬ−Ｐｒｉｎｔという規格を標準でサポートすることを求めている。
【０００７】
このように、ＸＭＬ系の言語は様々な分野で広まりつつあり、印刷コンテンツについてもＸＭＬ化の流れは徐々に動きつつある。これは、コンテンツを作成する側からみると、ＸＭＬ系の言語はデータの再利用性が高く、編集しやすいというのも広く利用される理由のひとつでもある。
【０００８】
しかしながら、例えばＸＨＴＭＬ−Ｐｒｉｎｔコンテンツの印刷を実現するためには、ＸＨＴＭＬ−Ｐｒｉｎｔ言語を解釈して印刷用ビットマップデータに変換する機能を実現する必要がある。そのためには、インクジェットプリンタのようにホスト機器で処理するか、レーザビームプリンタのようにプリンタのコントローラで処理するかのいずれかの構成になる。最近では、サーバで印刷用ビットマップデータに変換してプリンタに送るという方式も提案されている。しかし、近年のプリンタは印刷解像度が高まっており、必要になる印刷用ビットマップデータ量は非常に大きくなっている。したがって、ホスト機器やサーバで印刷用ビットマップデータに変換してプリンタに送信すると、ＬＡＮ上で大きなデータが流れることになり、そこがボトルネックになって、印刷パフォーマンスが低下してしまうという懸念がある。
【０００９】
また、印刷用ビットマップデータへの変換をホスト機器で処理する場合、プリンタは機器によって機械的な特性が違うため、それら個別の機器の特性を吸収する必要がある。従来、ＰＣでは、プリンタに応じたドライバをプリンタが変わるごとにインストールすることにより実現している。ところが、携帯電話やディジタルＡＶ機器などソフトをインストールして周辺機器の特性を吸収するという仕組みのないホスト機器の場合、このような方法で実現することは困難である。
【００１０】
一方、プリンタ側で処理する例として、プリンタで変換処理を行うことが提案されている（例えば、特許文献１参照）。この特許文献１では、ＳＴＢ（ＳｅｔＴｏｐＢｏｘ）で受信した放送データをプリンタで認識できる記述に変換する例が示されている。さらに、プリンタ側でコンテンツ情報の変換処理を行うことが記載されている。
【特許文献１】特開２００１−２３７７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
プリンタでＸＨＴＭＬ−Ｐｒｉｎｔを印刷用ビットマップデータに変換する場合、通常のＨＴＭＬブラウザでもブラウザにより表示結果が微妙に違うように、ＸＨＴＭＬ−Ｐｒｉｎｔでも解釈する装置により微妙に印刷結果が異なることが発生しうる。テキストが中心のコンテンツの場合、少々表示結果が違っていても問題ないが、写真印刷のように印刷するオブジェクトがただひとつしかないものや、レイアウトの一意性を求めるようなコンテンツの場合、印刷結果が機器によって異なってしまうのは好ましくない。しかしながら、特許文献１によると、表示データに対する処理は開示しているが、プリンタの差異を吸収する方式までは提案されていない。
【００１２】
また、コンテンツのレイアウトを重視するだけなら、ＰＣではＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）と言われるフォーマットもよく使われているが、このＰＤＦを解釈して描画するためには、プリンタに相応の処理能力がないと印刷用ビットマップデータに変換するパフォーマンスが大幅に低下してしまう。
【００１３】
特に、家庭内でインターネット接続が常態化してくると、インターネット経由での写真コンテンツの印刷サービスや、印刷アプリケーションサービスなどが現実になってくる。実際、そういったサービスも一部では開始されている。さらには、テレビや携帯電話などＰＣ以外の機器もインターネットに接続できるようになりつつあり、これらのサービスはそういったＰＣ以外の機器でも受けることが可能になりつつある。
【００１４】
特に写真コンテンツを印刷する場合、ＰＣからの印刷の場合には、従来の銀鉛写真をＤＰＥ（Ｄｅｖｅｌｏｐｍｅｎｔ  Ｐｒｉｎｔｉｎｇ  Ｅｎｌａｒｇｅｍｅｎｔ）で作成される写真と同様に例えば図４（ａ）に示すように紙の周囲に余白領域のあるいわゆる"ふちあり"写真と、図４（ｂ）に示すように紙の周囲に余白部分のないいわゆる"ふちなし"写真とが可能である。ＰＣでは、"ふちあり"用、"ふちなし"用それぞれの印刷用ビットマップデータおよび印刷コマンドをＰＣで生成し、プリンタに送信することで実現している。"ふちあり"印刷の場合はあまり問題にならないが、"ふちなし"印刷の場合には、印刷用紙よりも大きめにデータを作ってやらないと、機械的なばらつきなどを吸収しきれずに白い余白部分がついてしまう。そして、どのくらい大きめにデータを生成してやればいいかはプリンタ機種依存であり、ＰＣ以外の機器で機種依存の部分を吸収するのは困難である。また、印刷データを配信するサービスを行おうとする場合にも、どのようなプリンタに出力するのかわからないので、プリンタの特性に合わせたデータを送ることは難しい。したがって、なるべく印刷コンテンツの記述や印刷コマンドで"ふちあり"、"ふちなし"を指示しての印刷することが望まれる。
【００１５】
ところで、ＤＳＣで撮影した画像は、アスペクト比（縦横比）が４：３のものが多く、３：２や、１６：９といったものもある。また、近年急速に広がっている携帯電話では、ＣＩＦやＱＣＩＦといわれる９：１１（縦長：横長）といったアスペクト比が用いられることもある。一方、印刷用紙は、定型用紙が一般的であるがそれらのアスペクト比もまちまちである。例えば、写真によく使われるＬ判と言われる紙の大きさは１２７ｍｍ：８９ｍｍであり、官製はがきは、１４８ｍｍ：１０２ｍｍ、書類等によく使われるＡ４用紙は２９７ｍｍ：２１０ｍｍである。例えばＰｉｃｔＢｒｉｄｇｅなどでの印刷の場合、印刷用紙と印刷画像のアスペクト比の違いは、プリンタで任意に設定することができる。つまり、印刷結果はプリンタによって異なる可能性がある。したがって、対象画像のアスペクト比を保存して、なおかつ画像を削除しないように印刷しようとすると、"ふちあり"の場合、例えば図５（ａ）に示すように周囲の余白は不均一になってしまう。また、"ふちなし"印刷の場合には、例えば図５（ｂ）に示すように余計な余白がついてしまうこともある。
【００１６】
一方、ＸＨＴＭＬ−Ｐｒｉｎｔなどで記述された印刷コンテンツは、描画する場所を指定することができる。しかし、"ふちあり"印刷で印刷できる最大範囲や、"ふちなし"印刷で余分にデータを用意しなければならない範囲は、プリンタによって異なる。したがって、描画する場所と印刷する場所とのデータの対比は、プリンタの種類によって変わりうるものである。
【００１７】
そこで、本発明は上記の事情に鑑みてなされたものであり、対象データのアスペクト比を保存したままであっても、周囲の余白が不均一になったり、余計な余白がついたりすることを防止し、対象データを最適に印刷することができる印刷装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明に係る印刷装置は、マークアップ言語で記述されている印刷データを解析して印刷対象である対象データを印刷媒体に印刷する印刷装置であって、前記印刷データによって指定された、前記対象データを配置するレイアウト領域を示すレイアウト領域情報を取得するレイアウト領域情報取得手段と、前記印刷装置に依存する印刷用領域を示す描画有効領域情報を取得する描画有効領域情報取得手段と、前記対象データの縦および横のいずれか一方が、前記レイアウト領域のそれと等しくなるように、前記対象データの拡大率または縮小率を算出する第１拡大縮小率算出部、前記第１拡大縮小率算出部によって算出された拡大率または縮小率で前記対象データを前記レイアウト領域へ配置する第１配置部、前記レイアウト領域の縦および横のいずれか一方が、前記描画有効領域のそれと等しくなるように、前記レイアウト領域の拡大率または縮小率を算出する第２拡大縮小率算出部、および前記第２拡大縮小率算出部によって算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置する第２配置部を有するレイアウト手段と、前記レイアウト手段によって前記描画有効領域に配置された前記対象データを印刷する印刷手段とを備えることを特徴とする。
【００１９】
これによって、対象データのアスペクト比を保存したままであっても、周囲の余白が不均一になったり、余計な余白がついたりすることを防止し、対象データを最適に印刷することができる。
【００２０】
また、前記印刷装置は、さらに、余白なし印刷指示を検出する余白なし印刷指示検出手段を備え、前記描画有効領域情報取得手段は、余白なし印刷指示が検出された際には、前記描画有効領域として余白なし印刷に必要なデータ領域を取得してもよい。
【００２１】
これによって、ふちなし写真画像の印刷を最適に実現することできる。
また、前記印刷装置は、さらに、余白あり印刷指示を検出する余白あり印刷指示検出手段を備え、前記描画有効領域情報取得手段は、余白あり印刷指示が検出された際には、前記描画有効領域として印刷可能なデータ領域を取得してもよい。
【００２２】
これによって、対象データのアスペクト比に関わらず四辺均一の余白のついた写真画像の印刷を実現することできる。
【００２３】
また、前記レイアウト手段は、前記対象データの縦および横のいずれか一方が、前記レイアウト領域のそれと等しく、かつ、他方が前記レイアウト領域のそれと等しいか大きくなるように、前記対象データの拡大率または縮小率を算出する第１拡大縮小率算出部と、前記第１拡大縮小率算出部によって算出された拡大率または縮小率で前記対象データを前記レイアウト領域へ配置する第１配置部と、前記レイアウト領域の縦および横のいずれか一方が、前記描画有効領域のそれと等しく、かつ、他方が前記描画有効領域のそれと等しいか大きくなるように、前記レイアウト領域の拡大率または縮小率を算出する第２拡大縮小率算出部と、前記第２拡大縮小率算出部によって算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置する第２配置部とを備えてもよい。
【００２４】
また、前記第２配置部は、前記第２拡大縮小率算出部によって算出された拡大率または縮小率で前記レイアウト領域を前記描画有効領域へ配置する際に、前記描画有効領域からはみだすレイアウト領域の縦方向における上下または横方向における左右が概ね均等になるように配置してもよい。
【００２５】
これによって、写真の中心をずらすことなく写真画像の印刷を実現することできる。
【００２６】
また、前記第２配置部は、前記印刷媒体と前記描画有効領域との相似関係に基づいて、描画有効領域より小さく印刷用紙と相似なるよう前記描画有効領域情報を補正し、前記第２拡大縮小率算出部は、前記レイアウト領域が前記第２配置部によって補正された描画有効領域を含んで最小となるように、前記レイアウト領域の拡大率または縮小率を算出してもよい。
【００２７】
また、前記印刷装置は、さらに、前記印刷データによって指定された、前記対象データの上に文字列を合成する位置を示す位置情報を取得する位置取得手段を備え、前記レイアウト手段は、さらに、前記位置取得手段によって取得された前記位置情報と、前記第１拡大縮小率算出部によって算出された拡大率または縮小率と、前記第２拡大縮小率算出部によって算出された拡大率または縮小率とに基づいて、前記文字列を合成する位置を判定する文字列合成位置判定部と、前記文字列合成位置判定部によって判定された前記文字列を合成する位置が前記印刷媒体からはみ出す、または前記印刷媒体の端から所定の範囲内に接近する場合には、前記文字列が前記印刷媒体から所定の範囲内に印刷されるように、前記文字列を合成する位置を補正する文字列補正部と、前記対象データ上の、前記文字列補正部によって補正された前記文字列を合成する位置に前記文字列を合成して配置する文字列配置部とを備えてもよい。
【００２８】
これによって、対象データといっしょに印刷される文字列が切れたりすることなく、概ね指定の位置に合成することができる。
【００２９】
また、前記レイアウト手段は、さらに、前記対象データの上に合成する文字列を、前記第１拡大縮小率算出部によって算出された拡大率または縮小率、および前記第２拡大縮小率算出部によって算出された拡大率または縮小率とは異なる拡大率または縮小率で拡大または縮小し、前記対象データ上に合成して配置する文字列配置部を備えてもよい。
【００３０】
ここで、前記印刷装置は、さらに、前記印刷データまたは印刷実行指示によって指定された前記印刷媒体の大きさを取得する指定サイズ取得手段と、前記印刷装置で使用される前記印刷媒体の大きさを取得する媒体サイズ取得手段とを備え、前記文字列配置部は、前記印刷データまたは印刷実行指示によって指定された前記印刷媒体の大きさと、前記印刷装置で使用される前記印刷媒体の大きさとが相違する場合、それぞれの前記印刷媒体の大きさに基づいて前記文字列の前記拡大率または縮小率を算出し、前記文字列を前記対象データ上に合成して配置してもよい。
【００３１】
これによって、指定された印刷用紙と異なるサイズの印刷用紙であっても、バランスを崩すことなく文字列を合成した写真印刷を提供することができる。
【００３２】
また、前記印刷データは、文字情報をさらに含み、前記印刷装置は、さらに、前記文字情報を前記レイアウト領域に配置する文字列レイアウト手段と、前記文字列レイアウト手段によって配置された位置および大きさを保存して前記描画有効領域の座標に変更する文字列レイアウト補正手段とを備え、前記印刷手段は、前記レイアウト手段によって前記描画有効領域に配置された前記対象データと、前記文字列レイアウト補正手段によって座標に変更された前記文字情報とを合成して印刷してもよい。
【００３３】
これによって、印刷データによって指定された位置でふちなし印刷を実現することができる。さらに、対象データのアスペクト比が変わっても、同一のＸＭＬ等の記述を用いて、印刷用紙に対応した指定した位置に日付などの文字データを描画することができる。
【００３４】
なお、本発明は、このような印刷装置として実現することができるだけでなく、このような印刷装置が備える特徴的な手段をステップとする印刷方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００３５】
以上の説明から明らかなように、本発明に係る印刷装置によれば、対象データのアスペクト比を保存したままであっても、周囲の余白が不均一になったり、余計な余白がついたりすることを防止し、対象データを最適に印刷することができる。よって、ＸＨＴＭＬ−Ｐｒｉｎｔ等のマークアップ言語で記述されている印刷データを解析し、利用者が意識しなくても最適な配置で写真コンテンツを印刷することができ、ＰＣ以外のホスト機器から印刷データまたは印刷コマンドを送って印刷を実行する機会が増加している今日における実用的価値は極めて高い。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の各実施の形態について、それぞれ図面を参照しながら説明する。
【００３７】
（実施の形態１）
図６は、本発明の実施の形態１に係る印刷装置を用いたシステムの構成を示すブロック図である。
【００３８】
ホスト機器１００は、印刷実行の命令を出すための装置であり、図６に示すように処理部１０１、印刷制御部１０２、印刷データ記憶部１０３、および通信部１０４を備えている。
【００３９】
処理部１０１は、例えばアプリケーション等であり、ユーザからの指示等を受けて印刷指示を行う。印刷制御部１０２は、例えば印刷ミドルウェア等であり、処理部１０１からの印刷指示により例えばＸＨＴＭＬ−Ｐｒｉｎｔで記述された印刷データを作成する。また、印刷制御部１０２は、処理部１０１からの印刷指示により印刷装置２００に対する印刷コマンドを発行する。印刷データ記憶部１０３は、印刷制御部１０２で作成された印刷データを記憶する。通信部１０４は、印刷制御部１０２で発行された印刷コマンドを印刷装置２００へ送信する。また、通信部１０４は、印刷装置２００からの印刷データの要求により対応する印刷データを印刷データ記憶部１０３から抽出し、印刷装置２００へ送信する。
【００４０】
なお、ここでは、印刷データを記憶する印刷データ記憶部１０３をホスト機器１００が備えているが、これに限られるものではなく、別の機器が備えていたり別の場所に備えていたりしても構わない。また、接続形態についてもホスト機器１００と１対１であってもネットワークに接続されていてもよい。
【００４１】
一方、印刷装置２００は、印刷を実行するための装置（プリンタ）であり、図６に示すように通信部２０１、コマンド解析部２０２、印刷データ解析部２０３、レイアウト部２０４、ビットマップ生成部２０５、および印刷処理部２０６を備えている。
【００４２】
通信部２０１は、ホスト機器１００から送信された印刷コマンドを受信する。コマンド解析部２０２は、印刷コマンドを解析して、印刷データを通信部２０１を介してホスト機器１０に要求する。印刷データ解析部２０３は、ＸＨＴＭＬ−Ｐｒｉｎｔで記述された印刷データを解析する。レイアウト部２０４は、印刷の対象となる対象データの大きさと、この対象データを配置するレイアウト領域の大きさとに基づいて、対象データをレイアウト領域へ配置する。また、レイアウト部２０４は、レイアウト領域および描画有効領域の大きさに基づいて、レイアウト領域を描画有効領域へ配置する。ビットマップ生成部２０５は、配置されたデータからビットマップデータを生成する。印刷処理部２０６は、ビットマップ生成部２０５で生成されたビットマップデータを紙などの印刷媒体に印刷して出力する。
【００４３】
上記のように構成されたシステムにおける動作の概要について説明する。
ホスト機器１００おいて、ユーザからの指示等を受けて処理部１０１が印刷指示を行うと、印刷制御部１０２は印刷装置２００に対する印刷コマンドを発行する。同時に、印刷制御部１０２は、例えばＸＨＴＭＬ−Ｐｒｉｎｔで記述された印刷データを作成し、印刷データ記憶部１０３に印刷データを記憶する。
【００４４】
印刷コマンドを受けた印刷装置２００は、印刷コマンドを解析して、印刷データを通信部２０１を介してホスト機器１０に要求する。そして、ホスト機器１００は、印刷装置２００から要求された印刷データを印刷データ記憶部１０３から抽出し、印刷装置２００へ送信する。
【００４５】
印刷データを受けた印刷装置２００では、印刷データ解析部２０３が印刷データを解析し、レイアウト部２０４が、対象データをレイアウト領域へ、さらにレイアウト領域を描画有効領域へ配置し、ビットマップ生成部２０５が配置されたデータからビットマップデータを生成する。そして、印刷処理部２０６は、生成されたビットマップデータを紙などの印刷媒体に印刷して出力する。
【００４６】
図７は、本発明の実施の形態１に係る印刷装置の印刷データ解析部２０３およびレイアウト部２０３の詳細な構成を示すブロック図である。
【００４７】
印刷データ解析部２０３は、図７に示すように対象データ取得部２０３１、レイアウト領域情報取得部２０３２、および描画有効領域情報取得部２０３３を備えている。
【００４８】
対象データ取得部２０３１は、印刷の対象となる対象データを取得する。レイアウト領域情報取得部２０３２は、印刷データによって指定された、レイアウト領域を示すレイアウト領域情報を取得する。描画有効領域情報取得部２０３３は、印刷装置２００に依存する印刷用領域を示す描画有効領域情報を取得する。
【００４９】
一方、レイアウト部２０４は、図７に示すように第１拡大縮小率算出部２０４１、第１配置部２０４２、第２拡大縮小率算出部２０４３、および第２配置部２０４４を備える。
【００５０】
第１拡大縮小率算出部２０４１は、対象データの縦および横のいずれか一方が、レイアウト領域のそれと等しく、かつ、他方がレイアウト領域のそれと等しいか大きくなるように、対象データの拡大率または縮小率を算出する。第１配置部２０４２は、第１拡大縮小率算出部２０４１によって算出された拡大率または縮小率で対象データをレイアウト領域へ配置する。第２拡大縮小率算出部２０４３は、レイアウト領域の縦および横のいずれか一方が、描画有効領域のそれと等しく、かつ、他方が描画有効領域のそれと等しいか大きくなるように、レイアウト領域の拡大率または縮小率を算出する。第２配置部２０４４は、第２拡大縮小率算出部２０４３によって算出された拡大率または縮小率でレイアウト領域を描画有効領域へ配置する。
【００５１】
次に、印刷データの解析および対象データの配置について詳しく説明するが、まず、一般的なレイアウト領域と対象データとの関係について説明する。
【００５２】
ＸＨＴＭＬ−Ｐｒｉｎｔでは、印刷する対象データ（オブジェクト）とそのレイアウト情報を別々に表現することができる。レイアウト情報は、ＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔ）といわれる形式で表現される。ＸＨＴＭＬ−Ｐｒｉｎｔで写真のような印刷を実現するためには、例えば図８に示すような記述をする。ここでは、＠ｐａｇｅというボックスを使用している。このボックスは、図９に示すように描画する要素を記述する領域を表し、＠ｐａｇｅは印刷媒体などで使用されるページボックス１８といわれる記述である。このページボックス１８は、要素の内容を表示できるレイアウト領域１１とその外側の何も表示されないマージン１９から構成される。
【００５３】
従来のＸＨＴＭＬ−Ｐｒｉｎｔを解釈する機器は、まずＣＳＳのレイアウト領域指示情報の記述２１に従って、印刷情報をレイアウトするレイアウト領域１１を指定する。次に、レイアウト領域１１内に＜ｉｍｇ＞オブジェクトで指定された対象画像１２を配置する。図８の記述の例では図１０に示すように出力される。図１０に示すように、指定されたレイアウト領域サイズ１１が用意され、その領域に対して周囲４ｍｍのパディング１４（記述２２）が確保されて、その中の領域に高さ１００％でアスペクト比を保存した状態（記述２３）で描画される。このとき、図８の記述において特に指定がないので左上を原点に展開する。図１１は、ＸＨＴＭＬ−Ｐｒｉｎｔの別の記述例である。この図１１の記述例では対象画像の大きさの指定（記述２５）がなく、そればかりかレイアウト領域サイズ１１も指定（記述２４）されていない。したがって、この場合は、対象画像そのものが、そのままの大きさでレイアウト領域の大きさとして適用されることになる。
【００５４】
図８に示すような記述の場合、＜ｉｍｇ＞オブジェクトで指定された対象画像（対象データ）１２の大きさよりレイアウト領域１１の方が同じか十分大きい場合には、例えば図１２（ａ）に示すように対象画像１２は問題なくレイアウトされる。しかし、対象画像１２の大きさがレイアウト領域１１より大きい場合には、図１２（ｂ）に示すようにレイアウト領域１１からはみだした部分１３については描画されないことになる。
【００５５】
＜ｉｍｇ＞オブジェクトは、特に指定がない場合には左上原点に配置されるが、マージン１９を指定することでレイアウト領域１１の中央に対象画像１２を配置することもできる。これは、マージン１９で負の値を解釈すれば、削除される部分を均等にすることができる。ただし、対象画像１２を全部収めることはできない。すなわち、図８のように＜ｉｍｇ＞オブジェクトの大きさを指定した場合、対象画像１２によって、画像が切れてしまう場合がある。
【００５６】
例えば、図８に示されるように、'ｈｅｉｇｈｔ＝１００％'と指定されている場合には、高さ方向はレイアウト領域１１にあわせ、横方向については対象画像１２のアスペクト比を保存する。つまり、対象画像１２の高さ方向をレイアウト領域１１の高さと同じにした場合の対象画像１２の横幅がレイアウト領域１１の横幅より小さい場合には、図１３（ａ）に示すようにレイアウト領域１１内に対象画像が収まる。しかし、レイアウト領域１１の横幅より大きい場合には、図１３（ｂ）に示すように横幅がレイアウト領域１１をはみ出してしまいその分が削除されてしまう。
【００５７】
同様に、図１４に示されているように横方向の大きさが'ｗｉｄｔｈ＝１００％'と指定（記述２６）されている場合には、横方向をレイアウト領域１１にあわせ、対象画像１２のアスペクト比を保存する形で、図１３（ｃ）、（ｄ）に示すようにレイアウトされる。
【００５８】
以上、レイアウト領域１１と対象画像１２について説明をしたが、次にレイアウト領域１１の表示媒体への描画について説明する。ここではプリンタについて考えているために表示媒体は印刷用紙ということにする。印刷用紙の場合、ＰＣのディスプレイと異なり、画面を操作して送るいわゆるスクロールということができない。また、プリンタでは印刷できる大きさが機器によって微妙に異なっている。したがって次に、印刷できる大きさに上記レイアウト領域１１が収まるかどうかが問題なる。
【００５９】
ここでは、印刷用紙１６に対して描画有効領域１５が小さい場合について、図１５を用いて説明する。指定されたレイアウト領域１１が描画有効領域１５より小さい場合には、図１５（ａ）に示すようにレイアウト領域１１の位置指定に応じて描画有効領域１５に配置する。指定されたレイアウト領域１１が描画有効領域１５より大きい場合には、図１５（ｂ）に示すように回転もしくは縮小して描画有効領域１５に収まるように画像を生成して印刷を行う。このような、動作はＣＳＳやＸＨＴＭＬ−Ｐｒｉｎｔの規格書で開示している内容であり、ＸＨＴＭＬ−Ｐｒｉｎｔを解釈できる機器はその解釈方法についてもガイドラインが示されている。本動作についても、レイアウトされるオブジェクトが画像データ１つではない場合でも同様に機能する。
【００６０】
以上の内容を踏まえて、写真印刷について考える。上記でも説明したが、ＤＳＣで撮影した画像データと印刷する用紙のアスペクト比は違う。そのため、普通に印刷したのでは通常の写真のように余白を均等にすることができない。余白をほぼ均等にして印刷するためには次のような処理が必要になる。なお、ここでは４：３の横長画像を対象とする。また、印刷データは図１１のようにレイアウト領域１１の大きさは印刷用紙のサイズを指定する記述であるとする。
【００６１】
図１６は印刷装置での印刷する際の動作の流れを示すフローチャートであり、図１７は"ふちあり"印刷の場合の配置について説明するための図であり、図１８は"ふちなし"印刷の場合の配置について説明するための図である。ここでは、"ふちあり"印刷の場合は、描画有効領域１５が印刷用紙１６よりも小さいものとし、"ふちなし"印刷の場合は、描画有効領域１５が印刷用紙１６よりも大きいものとする。
【００６２】
まず、第１拡大縮小率算出部２０４１は、図１５（ａ）および図１８（ａ）に示すようにレイアウト領域１１の横幅に対象画像１２を合わせ、そのままアスペクト比を保存するように拡大縮小する（ステップＳ１０１）。そして、拡大縮小した画像がレイアウト領域１１より同じか大きいか否かを判断する（ステップＳ１０２）。この結果、拡大縮小した画像がレイアウト領域１１より同じか大きい場合（ステップＳ１０２でＹＥＳ）、第１拡大縮小率算出部２０４１は、レイアウト領域１１の横幅に対象画像１２を合わせて拡大縮小した拡大縮小率を算出する（ステップＳ１０３）。次に、印刷データに負の上マージンが設定されていれば、レイアウト領域１１からマージン分はみ出した部分からレイアウトする。また、マージンが設定されていないが、印刷データが写真印刷であることがわかる記述がある場合には、上下方向にセンタリングして負のマージンが設定されているものと同様の動作をするようにしてもよい。
【００６３】
一方、拡大縮小した画像がレイアウト領域１１より小さい場合（ステップＳ１０２でＮＯ）、レイアウト領域１１の縦に対象画像１２を合わせ、そのままアスペクト比を保存するように拡大縮小し（ステップＳ１０４）、第１拡大縮小率算出部２０４１は、拡大縮小率を算出する（ステップＳ１０３）。
【００６４】
次に、印刷データが"ふちなし"印刷を求めているか否かを判断する（ステップＳ１０５）。この判断の結果、"ふちなし"印刷を求めていない、すなわち"ふちあり"印刷を求めていると判断された場合（ステップＳ１０５でＮＯ）、描画有効領域１５が印刷用紙１６と相似形であるか否かを判断する（ステップＳ１０６）。この判断の結果、相似でない場合（ステップＳ１０６でＮＯ）には、描画有効領域１５より小さく印刷用紙１６相似な最大な新描画有効領域１９を決定する（ステップＳ１０８）。このとき、上下左右の余白量が均等になるようにする。次に、第２拡大縮小率算出部２０４３は、図１５（ｂ）に示すように新描画有効領域１９を含む最小の大きさになるようにレイアウト領域１１を拡大縮小する（ステップＳ１０７）。そして、新描画有効領域１９からはみ出す拡大縮小したレイアウト領域が均等になるように配置する（ステップＳ１０９）。一方、相似である場合（ステップＳ１０６でＹＥＳ）には、第２拡大縮小率算出部２０４３は、描画有効領域１５を含む最小の大きさになるようにレイアウト領域１１を拡大縮小する（ステップＳ１０７）。そして、描画有効領域１５からはみ出す拡大縮小したレイアウト領域が均等になるように配置する（ステップＳ１０９）。
【００６５】
そして、それぞれ描画有効領域１５または新描画有効領域１９に配置された対象画像１２のビットマップデータを生成し、印刷する（ステップＳ１１０）。そして、図１５（ｃ）に示すように印刷用紙１６にほぼ均等な四辺の余白が設けられた印刷結果が得られる。なお、本実施の形態では、印刷データにレイアウト領域の大きさを印刷用紙１６の大きさを指定しているため、新描画有効領域１９とも相似形になる。
【００６６】
上記では"ふちあり"の場合の処理について説明した。上記においては余白を大きくすることを厭わなければ、印刷データ側での記述だけで対応できる可能性がある。しかしながら、"ふちなし"の場合には印刷データだけでは対応しきれない部分がある。それは、"ふちあり"の場合には、レイアウト領域１１を印刷用紙の大きさを指定しておけば、確実にそれより小さな領域に印刷しようとするからである。しかしながら、"ふちなし"印刷では、レイアウト領域１１が印刷用紙より大きな領域が必要であり、どのくらいまで大きくする必要があるかは、機種依存になってしまう。そのため、印刷データ側でどの程度のレイアウト領域１１を指定しなければならないか決めるのは難しい。以下に"ふちなし"の場合の動作について説明する。
【００６７】
図１９は、"ふちなし"印刷用の印刷データの一例である。図１９では、Ａ４用紙の大きさをレイアウト領域としており、「ｆｒａｍｅ」属性で"ふちなし"を表現している（記述２７）。この表現方法は標準で設定されているわけではなく、他の記述でもよい。また、印刷コマンドとして通知してもよい。
【００６８】
すなわち、印刷データが"ふちなし"印刷を求めているか否かの上記判断処理（ステップＳ１０５）の結果、"ふちなし"印刷を求めていると判断された場合（ステップＳ１０５でＹＥＳ）、図１８（ｂ）に示すようにレイアウト領域１１を描画有効領域１５に配置する（ステップＳ１１１）。そして、描画有効領域１５に配置された対象画像１２のビットマップデータを生成し、印刷する（ステップＳ１１０）。そして、図１８（ｃ）に示すように印刷用紙１６以外の部分はカットされた印刷結果が得られる。
【００６９】
上記のように動作することにより、"ふちあり"印刷の場合は、多少切断されるがＤＰＥと同じような四辺の余白がほぼ均等の印刷結果を得ることができる。また、"ふちなし"印刷の場合は、小さすぎて余白がついてしまったり、逆に必要以上に大きすぎて印刷できない領域が大きくなりすぎたりすることを避け、最適な大きさでの"ふちなし"印刷を実現することができる。
【００７０】
なお、実際にはプリンタの走査方向と対象画像の走査方向が一致するとは限らないので回転処理が必要になる場合があるが、ここでは発明とは関連しないので説明を省略する。
【００７１】
また、「印刷データ」とは、ホスト機器等から送信されるＸＨＴＭＬ−Ｐｒｉｎｔ等の記述言語で記載された印刷する内容を記述したデータを意味する。本実施の形態では、印刷データをＸＨＴＭＬ−Ｐｒｉｎｔとして説明したが、本発明はこれに限定するものではなく、レイアウトの記述ができるＸＭＬ系の言語であれば同様の方法で対応することができる。
【００７２】
また、本実施の形態では、印刷データから"ふちなし"印刷を求めていることを検出したが、印刷コマンドなどの制御系から"ふちなし"印刷を指示することでも同様の効果を得られることは明らかである。
【００７３】
（実施の形態２）
実施の形態１においては、対象画像と印刷用紙の相対関係は考慮しないで配置している。しかし、コンテンツを提供する側からすると、写真のようなコンテンツの場合なるべく中心を合わせて印刷してもらいたい。つまり、描画有効領域と印刷用紙の相対関係に関わらず印刷コンテンツの中心が印刷用紙の中心になるようにレイアウトするのが望ましい。ところが、ふちなし印刷の場合の描画有効領域は印刷用紙に対して四辺均等にはみ出し量が設定されているかどうかは機種依存である。場合によっては、はみだし量は四辺とも大きさが異なる可能性も否定できない。そこで、本実施の形態では、中心を合わせて理想的なふちなし印刷が実現できる方式を説明する。
【００７４】
図２０は、実施の形態２の動作を示すフローチャートである。レイアウト領域１１と対象画像１２の関係については、実施の形態１と同様なので説明は省略する。
【００７５】
まず、コンテンツから"ふちなし"印刷を求めていることを検出すると、第２拡大縮小率算出部２０４３は、図２１に示すように印刷用紙１６の中心とレイアウト領域１１の中心が重なるように配置する（ステップＳ１３１）。次に、第２拡大縮小率算出部２０４３は、レイアウト領域１１をその中心を原点として描画有効領域１５より大きくかつ最小となるようにアスペクト比を保存したままで拡大縮小処理を行う（ステップＳ１３２）。実際には、レイアウト領域１１と描画有効領域１５の短辺同士、長辺同士を比較し、短辺、長辺ともレイアウト領域の方が大きい場合には、図２２（ｂ）に示すようにレイアウト領域を縮小し、それ以外の場合には、図２２（ａ）に示すようにレイアウト領域を拡大する。縮小処理の場合には、短辺と長辺の縮小率を比較し、縮小率の大きくなる方、つまり縮小する割合の少ない縮小率を採用して全体を縮小する。拡大処理の場合には、短辺と長辺の拡大率を比較して拡大率の小さくなる方、つまり拡大する割合の少ない拡大率を採用して全体を拡大する。拡大縮小処理をした結果、描画有効領域からはみ出す部分については、必要ないデータになるので破棄することになる（ステップＳ１３３）。
【００７６】
このように、中心を合わせて拡大縮小処理を施すことによりアスペクト比を保存したままでふちなし印刷が実現される。実際には、中心を合わせるのではなく中心から画像端を計算して、描画有効領域、レイアウト領域、対象画像を考えて座標計算することでも同様の効果が得られる。
【００７７】
（実施の形態３）
上記実施の形態では、ただ一つのイメージデータがある場合を想定しているが、本実施の形態では、日付情報などの任意の文字情報を画像の上に付加して印刷する場合の動作について説明する。ここで、「文字情報」とは、印刷データに含まれる文字列として描画されるべき情報を意味する。
【００７８】
図２３は、本実施の形態で印刷する写真コンテンツの記述を示す一例である。ＸＨＴＭＬ−Ｐｒｉｎｔで画像の上に文字を重ねようとする場合、画像を背景として扱うか、図２３に示すように、文字列に負のマージンを指定（記述３１）してイメージを作成した後に文字を上から描画するように指定することで実現できる。しかしながら、背景として扱う場合メインとなる画像をどのように記述するかによって見え方が変わってしまう。その上、コンテンツも判読しにくいというデメリットがある。一方、図２３に示す記述においてマージンの指定がなければ、図２４に示すように対象画像がレイアウトされた下の位置４１に配置される。しかし、文字列に対して上方に負のマージン４２を指定（記述３１）することで、図２４に示すように対象画像の上の位置４３に文字列を配置することができる。しかしすでに述べているように、印刷用紙と対象画像の下端がどのくらいになるかは機器依存となってしまうので、このような記述で対応した場合、例えば図２５（ａ）に示すように右下に配置したい日付が切れてしまったり、図２５（ｂ）に示すように極端に上に記述されてしまったりすることが考えられる。なお、図２５に示す例では、負のマージン分同じサイズで上方に移動しているように記述しているが、レイアウト領域１１を描画有効領域１５まで拡大縮小した拡大縮小率が乗算されるので、実際には拡大縮小された後の画像下端からの日付が配置される位置はそれぞれのパターンで異なる。
【００７９】
そこで、本実施の形態では、日付情報などの任意の文字情報を画像の上の適切な位置に付加して印刷する場合について説明する。
【００８０】
図２６は、実施の形態３に係る印刷装置の印刷データ解析部およびレイアウト部の詳細な構成を示すブロック図である。なお、実施の形態１の構成と同様の部分については同一の符号を付し、説明を省略する。
【００８１】
印刷データ解析部２１０は、実施の形態１の構成に加えて位置取得部２１０１を備えている。また、レイアウト部２２０は、実施の形態１の構成に加えて文字列位置判定部２２０１、文字列補正部２２０２、および文字列配置部２２０３を備えている。
【００８２】
位置取得部２１０１は、印刷データによって指定された、対象データの上に文字列を合成する位置を示す位置情報を取得する。文字列位置判定部２２０１は、位置取得部２１０１によって取得された位置情報と、第１拡大縮小率算出部２０４１によって算出された拡大率または縮小率と、第２拡大縮小率算出部２０４３によって算出された拡大率または縮小率とに基づいて、文字列を合成する位置を判定する。文字列補正部２２０２は、文字列位置判定部２２０１によって判定された文字列を合成する位置が印刷用紙からはみ出す、または印刷用紙の端から所定の範囲内に接近する場合には、文字列が印刷媒体から所定の範囲内に印刷されるように、文字列を合成する位置を補正する。文字列配置部２２０３は、対象データ上の、文字列補正部２２０２によって補正された文字列を合成する位置に文字列を合成して配置する。
【００８３】
次に、上記のように構成された印刷装置の動作について説明する。
図２７は、本実施の形態の動作の流れを示すフローチャートである。
【００８４】
まず、位置取得部２１０１は、印刷データを解析して文字印刷があるか否かを判断する（ステップＳ１５０）。この結果、文字印刷がある場合（ステップＳ１５０でＹＥＳ）、位置取得部２１０１は、その文字列には、負のマージン設定がされているか否かを判断する（ステップＳ１５１）。この結果、負のマージン設定がされている場合（ステップＳ１５１でＹＥＳ）、文字列位置判定部２２０１は、レイアウト領域１１における文字列の相対位置を算出する（ステップＳ１５２）。そして、その相対位置を描画有効領域上の位置に換算し、印刷用紙に投影した場合用紙上のどの位置になるかを求める（ステップＳ１５３）。そして、実際に描画する文字データをレイアウトして、印刷用紙の所定の領域内であるか否か、すなわち印刷用紙からはみ出ないかどうかを判断する（ステップＳ１５４）。この結果、印刷用紙からはみ出てしまう場合（ステップＳ１５４でＮＯ）には、文字列補正部２２０２は、文字列を配置する位置を補正して、文字列を配置する位置を確定する（ステップＳ１５５）。そして、描画有効領域に配置された対象画像および文字列のビットマップデータを生成し、印刷する（ステップＳ１５６）。
【００８５】
例えば、図２８（ａ）に示すようにレイアウト領域１１の左上を原点としたときの文字列の位置をＡ（ｘ０、ｙ０）、レイアウト領域１１の大きさを（Ｘ、Ｙ）とする。レイアウト領域１１に対する相対位置Ｂは、Ｂ（ｘ０／Ｘ、ｙ０／Ｙ）となる。この割合で大きさ（Ｘｐ、Ｙｐ）なる描画有効領域上の位置に換算すると、その位置はＣ（ｘ０＊Ｘｐ／Ｘ、ｙ０＊Ｙｐ／Ｙ）となる。文字列の大きさが（Ｘｃ、Ｙｃ）だとすると、レイアウト領域１１のＤ（ｘ０＊Ｘｐ／Ｘ＋Ｘｃ、ｙ０＊Ｙｐ／Ｙ＋Ｙｃ）点が、印刷用紙上あるいは印刷用紙端から一定以上内側に入った領域にあることを確認する。仮に文字列がはみ出しているようであれば補正することになる。
【００８６】
このようにすることにより、印刷画像上の所定の位置に文字データを配置することができる。
【００８７】
（実施の形態４）
上記実施の形態３では、きっちりではあるが複雑な処理により文字列の位置を確定したが、写真のようなコンテンツに限って考えた場合、そのような文字列の合成をするのは日付や通し番号、ファイル名などの印刷に限定して割り切ってしまうという方法もある。これらの情報は、一般的に写真画像の四隅に配置されることが多く。したがって、概ね四隅にあれば詳細な厳密に位置を割り出さなくてもよいのではないかという考えである。
【００８８】
例えば、印刷データに内容が写真印刷であるという識別子があった場合に、例えば図２９（ａ）に示すように描画有効領域を４分割してレイアウトした結果、文字列がどの領域に配置されるかを判定する。その判定結果により印刷用紙内のどの位置に配置するかをテーブル形式などで一意に決めておき、図２９（ｂ）に示すようにそのテーブルによって文字列の配置位置を確定する。このようにすることで、用紙からはみ出したりすることなく文字列を配置することができる。
【００８９】
なお、ここでは、文字列の右下の位置を確定しているが、これは配置場所が４分割の右下の領域であり、文字列の大きさ、高さを考慮して印刷用紙からはみ出さないようにするには文字列の右下の領域を確定しなければならないからである。したがって、分割したどの領域に文字列があるかにより、文字列のどの位置をもって配置する位置とするかが変わってくる。
【００９０】
また、本実施の形態では、４分割で領域を確定しているが、何分割であっても同様の効果があることは明らかである。
【００９１】
（実施の形態５）
実施の形態３、４では、文字列の位置について説明したが、本実施の形態では文字列の大きさについて説明する。
【００９２】
印刷データが図２３のような記述の場合、提供側はＡ４サイズに印刷してもらうことを想定して印刷データを作成していると考えられる。しかしながら、印刷できる用紙もしくは印刷指示を受けた印刷用紙の大きさがＡ４サイズであるとは限らない。この場合、縮小して指定された印刷用紙サイズに合わせて印刷することになる。ここで、印刷用紙がＬ判用紙であった場合を考える。日付がついている場合、日付も合わせて縮小してやらないと日付ばかりが大きくて目立ってしまう。しかし、対象画像とおなじ比率で縮小してしまうと、図３０（ｂ）に示すように小さすぎてかえって見苦しくなってしまう。そこで、次のような手順で合成する文字列の大きさを確定する。
【００９３】
ここでは図２３の印刷データを受け取って、Ｌ判に印刷する場合の動作について説明する。図３１は、本実施の形態の動作の流れを示すフローチャートである。
【００９４】
まず、印刷データが写真印刷であるか合成する文字があるかを判定する（ステップＳ１６１）。写真印刷かどうかの判定は、印刷データの中に写真印刷であることを判別するタグを記述してもいいし、イメージデータが１ページに１つしかないという判定でもよい。ここではその判定方法については特に定義しない。次に、レイアウト領域が印刷用紙よりも小さいか否かを判断する（ステップＳ１６３）。この例では印刷データでは２９７ｍｍ×２１０ｍｍの大きさを想定しているが、実際に印刷する用紙は１２７ｍｍ×８９ｍｍであるものとする。その場合そのままの比率で文字列を縮小すると、１６ｐｔの文字は約６．７ｐｔになってしまう。ちなみにｐｔ（ポイント）とは文字の大きさを表す場合によく使われる単位で、１ｐｔ＝１／７２インチである。したがって、５．６ｍｍ程度の文字が２．４ｍｍくらいになってしまう。これではあまりに小さいので、Ｌ判の文字の大きさを１０ｐｔとすれば、Ａ４での文字の大きさを１としたときＬ判での文字の大きさは０．６２５となる。同様に、別の用紙サイズでの文字の大きさも相対値として文字サイズテーブルとしてレイアウト部２０４にあらかじめ保持しておく（ステップＳ１６４）。そして、レイアウト領域が印刷用紙よりも小さい場合（ステップＳ１６３でＹＥＳ）には、印刷データで指定されている文字の大きさと文字サイズテーブルとから、出力すべき文字サイズを確定する（ステップＳ１６５）。つまり印刷データにＡ４で１８ｐｔと指定されている場合にはＬ判で１１．２ｐｔ、Ａ４で１２ｐｔと指定されている場合にはＬ判で７．５ｐｔとする。この結果、画像に合成したい文字の大きさを必要以上に小さくせず、図３０（ｃ）に示すようにバランスのとれた出力結果を得ることができる。
【００９５】
なお、本実施の形態では文字列を縮小する場合についてのみ説明しているが、小さい方を基準として、拡大する割合をテーブルとしても同様の効果が得られる。
【００９６】
（実施の形態６）
上記の実施の形態では、画像情報に文字を上書きして合成する場合に文字の位置に応じて補正を行う方法を示しているが、本実施の形態では画像情報と文字情報を分離して処理を行う場合の方法について説明する。
【００９７】
本実施の形態では、図３２に示すような印刷データを想定する。その印刷結果は図３３のようなものを求めている。具体的には、図３２の印刷データは、Ａ４サイズ（２９７ｍｍ×２１０ｍｍ）のレイアウト領域５１とし、実施の形態２と同様に、"ふちなし"印刷をすることを指示（記述３３）している。また、このレイアウト領域５１に対して左に−９ｍｍずらして２１０ｍｍ×３１５ｍｍのボックス５２を配置することを指示（記述３４）している。さらに、文字列５３を、このレイアウト領域５１の下端から上方に３ｍｍの位置に下端が、レイアウト領域５１の左端から２９２ｍｍのところに右端がくるように配置し、その文字列３１１は右寄せすることを指示（記述３５）している。そして、ボックス５２に"ｙｏｋｏ．ｊｐｇ"を描画し、その後から文字列５３に"２００４．ｏｏ．ｘｘ"という日付を描画することを指示（記述３６〜３８）している。ここで、説明に用いる"ｙｏｋｏ．ｊｐｇ"なるイメージデータは２：３（たて×よこ）のアスペクト比であるものとする。
【００９８】
ここで図３４に示すように"ふちなし"印刷に対応するプリンタは、機械的な位置ずれなどを補うため、描画有効領域５４を、印刷用紙より大きくしなければならないのが一般的である。本実施の形態では、印刷用紙とレイアウト領域５１は同じ大きさを示している。描画有効領域５４の大きさはプリンタに固有のものであり、印刷データにあらかじめ反映させるのは困難である。本実施の形態によると、印刷データに記述されている内容は、「"ｙｏｋｏ．ｊｐｇ"をＡ４用紙（２１０ｍｍ×２９７ｍｍ）にセンタリングで"ふちなし"印刷」を期待している。しかしながら、描画有効領域５４にレイアウト領域５１のデータをどのように転写するかは印刷データに記載されない。すなわち、プリンタに依存した内容となる。
【００９９】
ところが、レイアウト領域５１に展開した内容をそのまま描画有効領域５４に転写しただけでは、描画データがない領域５５が残ってしまい、印刷したときにこの領域５５が余白となってしまう可能性がある。これを避けるためには、レイアウト領域５１の内容を拡大する必要がある。ＤＳＣなどのイメージデータのアスペクト比は、印刷用紙（ここではレイアウト領域５１と同じ）と同じとは限らないので、図３５に示すように、描画有効領域５４より大きく、かつその中でも一番小さく納まるような拡大率によりレイアウト領域５１を拡大し、領域５６とする。
【０１００】
ここで、レイアウト領域５１にイメージデータと文字列を展開してから拡大すると、図３５に示すように、印刷用紙に対する文字列の位置も変わってしまう。レイアウト領域５１の中心を基準に拡大した場合、この拡大率で文字列の位置、大きさを拡大すると、場合によっては文字列の位置が描画領域からはみ出してしまう場合がある。また、写真の日付などは印刷用紙が同じならば、同じ場所に印字されているほうが見る側にとっても好ましい。
【０１０１】
そこで日付の位置を移動せずかつ文字の大きさも変えずに、"ふちなし"印刷を実現するためには、画像の処理を文字の処理を切り離す必要がある。図３６にこの場合の流れを示すフローチャートであり、図３７はレイアウト結果を示す図である。
【０１０２】
印刷データを受けるとまず、印刷データを解析し（ステップＳ３２１）、"ふちなし"印刷が要求された場合とそうでない場合に分岐する（ステップＳ３２２）。"ふちなし"の場合（ステップＳ３２２でＹＥＳ）には、写真の印刷をしようとしていると判断して、画像の処理と文字の処理を分離する（ステップＳ３２３）。画像データの場合（ステップＳ３２３でＮＯ）には、レイアウト領域５１と描画有効領域５４の関係から、印刷データのアスペクト比を保存したまま描画有効領域５４より大きくなるように拡大（領域５６）し、レイアウトする。このレイアウトは、レイアウト領域５１に対する画像の位置５２の関係と描画有効領域５４に対するレイアウトデータの関係が相対的に同じになるようにレイアウトする（ステップＳ３２５）。文字データの場合（ステップＳ３２３でＹＥＳ）には、レイアウト領域５１に対してレイアウトする（ステップＳ３２４）。そして、それぞれを描画有効領域の部分だけデータを生成し（ステップＳ３２７）、すべての要素に対しての処理が完了すると（ステップＳ３２９）印刷を行う（ステップＳ３３１）。
【０１０３】
また、"ふちなし"ではない場合（ステップＳ３２２でＮＯ）には、印刷データの指示に従って、描画領域にレイアウトして（ステップＳ３２６）そのまま描画有効領域に描画して（ステップＳ３２８）、すべての処理が終了したら（ステップＳ３３０）印刷を行う（ステップＳ３３１）。
【０１０４】
なお、図３６においては、レイアウトした後に描画有効領域に描画する手順を説明しているが、すべての要素をレイアウトして描画と印刷を同じタイミングで実行してもよい。
【０１０５】
また、本実施の形態では"ｆｒａｍｅ：ｎｏｎ；"という記述を"ふちなし"印刷と解釈するようにしているが、これにとらわれるものではない。また、印刷データに記述するのではなく、印刷コマンドで"ふちなし"指示を送る方法でもよい。
【０１０６】
また、描画有効領域やレイアウト領域は概念上の領域であり実空間ではないので、画像合成するのは描画有効領域上で合成してしても同様の効果が得られる。
【産業上の利用可能性】
【０１０７】
本発明に係る印刷装置によると、ＸＨＴＭＬ−Ｐｒｉｎｔ等のＸＭＬ系のデータを解釈し、利用者が意識しなくても最適な配置で写真コンテンツを印刷する機能を有す、ＰＣ以外のホスト機器から印刷データもしくは印刷コマンドを送って印刷を実行するプリンタ等に有用である。
【図面の簡単な説明】
【０１０８】
【図１】図１は、従来のコントローラを備えたプリンタの概略構成図である。
【図２】図２は、従来のコントローラを持たないプリンタの概略構成図である。
【図３】図３は、従来のＰＣを利用しないダイレクト印刷機能を持つプリンタの概略構成図である。
【図４】図４は、ふちあり印刷とふちなし印刷の印刷結果を表す模式図である。
【図５】図５は、コンテンツでの表現に忠実に再現した場合のふちあり印刷とふちなし印刷の印刷結果を表す模式図である。
【図６】図６は、本発明の実施の形態１に係る印刷装置を用いたシステムの構成を示すブロック図である。
【図７】図７は、本発明の実施の形態１に係る印刷装置の印刷データ解析部およびレイアウト部の詳細な構成を示すブロック図である。
【図８】図８は、本発明の実施の形態１におけるＸＨＴＭＬ−Ｐｒｉｎｔの記述例を示す図である。
【図９】図９は、ＸＨＴＭＬ−Ｐｒｉｎｔのページボックスの構成を示す図である。
【図１０】図１０は、本発明の実施の形態１におけるｐａｄｄｉｎｇを含む場合の一般的な印刷結果を示す図である。
【図１１】図１１は、本発明の実施の形態１におけるＸＨＴＭＬ−Ｐｒｉｎｔの記述例を示す図である。
【図１２】図１２は、ＸＨＴＭＬ−Ｐｒｉｎｔのページボックスとイメージ要素の関係を示す図である。
【図１３】図１３は、ＸＨＴＭＬ−Ｐｒｉｎｔのページボックスとイメージ要素の実際の配置を示す図である。
【図１４】図１４は、本発明の実施の形態１におけるＸＨＴＭＬ−Ｐｒｉｎｔの記述例を示す図である。
【図１５】図１５は、描画有効領域とページボックスの関係を示す図である。
【図１６】図１６は、本発明の実施の形態１における印刷動作を示すフローチャートである。
【図１７】図１７は、本発明の実施の形態１におけるページボックスとイメージ要素の関係を示す図である。
【図１８】図１８は、本発明の実施の形態１におけるふちなし印刷動作の流れを示す概念図である。
【図１９】図１９は、本発明の実施の形態１におけるＸＨＴＭＬ−Ｐｒｉｎｔの記述例を示す図である。
【図２０】図２０は、本発明の実施の形態２における印刷動作を示すフローチャートである。
【図２１】図２１は、本発明の実施の形態２における印刷動作を示すイメージ図である。
【図２２】図２２は、本発明の実施の形態２における拡大／縮小するパターンの分類を示す図である。
【図２３】図２３は、本発明の実施の形態３におけるＸＨＴＭＬ−Ｐｒｉｎｔの記述例を示す図である。
【図２４】図２４は、本発明の実施の形態３における日付を合成した一般的な結果を示す図である。
【図２５】図２５は、本発明の実施の形態３における日付を合成した不十分な結果を示す図である。
【図２６】図２６は、本発明の実施の形態３に係る印刷装置の印刷データ解析部およびレイアウト部の詳細な構成を示すブロック図である。
【図２７】図２７は、本発明の実施の形態３における印刷動作を示すフローチャートである。
【図２８】図２８は、本発明の実施の形態３における日付印刷の補正演算の説明図である。
【図２９】図２９は、本発明の実施の形態４における日付の合成を示す概念図を示す図である。
【図３０】図３０は、本発明の実施の形態５における日付の合成を示す概念図を示す図である。
【図３１】図３１は、本発明の実施の形態５における印刷動作を示すフローチャートである。
【図３２】図３２は、本発明の実施の形態６における印刷データを示す図である。
【図３３】図３３は、図３２の印刷データの印刷結果を示す図である。
【図３４】図３４は、"ふちなし"印刷における補正の例を示す図である。
【図３５】図３５は、文字情報を含む画像データを拡大・縮小した場合を示す図である。
【図３６】図３６は、本発明の実施の形態６における処理手順を示すフロー図である。
【図３７】図３７は、本発明の実施の形態６における文字情報のレイアウト結果を示す図である。
【符号の説明】
【０１０９】
１１      ページボックスで指示されるレイアウト領域
１２      拡大縮小した対象画像
１３      ページボックスからはみ出して削除される拡大縮小後の対象画像
１５      印刷装置で個別に違う描画有効領域
１６      印刷しようとする印刷用紙
２００    印刷装置
２０１    通信部
２０２    コマンド解析部
２０３、２１０    印刷データ解析部
２０４、２２０    レイアウト部
２０５    ビットマップ生成部
２０６    印刷処理部
２０３１  対象データ取得部
２０３２  レイアウト領域情報取得部
２０３３  描画有効領域情報取得部
２０４１  第１拡大縮小率算出部
２０４２  第１配置部
２０４３  第２拡大縮小率算出部
２０４４  第２配置部
２１０１  位置取得部
２２０１  文字列位置判定部
２２０２  文字列補正部
２２０３  文字列配置部
【図１】
0004359309.tif 000002
【図２】
0004359309.tif 000003
【図３】
0004359309.tif 000004
【図４】
0004359309.tif 000005
【図５】
0004359309.tif 000006
【図６】
0004359309.tif 000007
【図７】
0004359309.tif 000008
【図８】
0004359309.tif 000009
【図９】
0004359309.tif 000010
【図１０】
0004359309.tif 000011
【図１１】
0004359309.tif 000012
【図１２】
0004359309.tif 000013
【図１３】
0004359309.tif 000014
【図１４】
0004359309.tif 000015
【図１５】
0004359309.tif 000016
【図１６】
0004359309.tif 000017
【図１７】
0004359309.tif 000018
【図１８】
0004359309.tif 000019
【図１９】
0004359309.tif 000020
【図２０】
0004359309.tif 000021
【図２１】
0004359309.tif 000022
【図２２】
0004359309.tif 000023
【図２３】
0004359309.tif 000024
【図２４】
0004359309.tif 000025
【図２５】
0004359309.tif 000026
【図２６】
0004359309.tif 000027
【図２７】
0004359309.tif 000028
【図２８】
0004359309.tif 000029
【図２９】
0004359309.tif 000030
【図３０】
0004359309.tif 000031
【図３１】
0004359309.tif 000032
【図３２】
0004359309.tif 000033
【図３３】
0004359309.tif 000034
【図３４】
0004359309.tif 000035
【図３５】
0004359309.tif 000036
【図３６】
0004359309.tif 000037
【図３７】
0004359309.tif 000038