JP4510232B2 - 情報処理装置および情報処理方法および記憶媒体 - Google Patents

情報処理装置および情報処理方法および記憶媒体 Download PDF

Info

Publication number
JP4510232B2
JP4510232B2 JP2000163204A JP2000163204A JP4510232B2 JP 4510232 B2 JP4510232 B2 JP 4510232B2 JP 2000163204 A JP2000163204 A JP 2000163204A JP 2000163204 A JP2000163204 A JP 2000163204A JP 4510232 B2 JP4510232 B2 JP 4510232B2
Authority
JP
Japan
Prior art keywords
size
font size
block
information processing
enlargement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000163204A
Other languages
English (en)
Other versions
JP2001344232A (ja
Inventor
政幸 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2000163204A priority Critical patent/JP4510232B2/ja
Publication of JP2001344232A publication Critical patent/JP2001344232A/ja
Application granted granted Critical
Publication of JP4510232B2 publication Critical patent/JP4510232B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Record Information Processing For Printing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、レイアウトが規定されない属性の異なる複数のブロックからなるドキュメントファイルを処理可能な情報処理装置および情報処理方法および記憶媒体に関するものである。
【0002】
【従来の技術】
近年、インターネット等の通信メディアの普及に伴い、パーソナルコンピュータ等の情報処理装置からネットワーク上のWebにアクセスして、種々のホームページの情報を閲覧し、所望とする情報をダウンロードして、種々のプリンタから印刷する機会が増大している。
【0003】
この際、Webの交換文書データとして利用されているHTML(HyperText Markup Language)形式で記述された文書データ、あるいは今後文書データの標準フォーマットとして期待されているXML(Extensible Markup Language)形式で記述された文書データをサーバからネットワークにつながったプリンタから印刷することとなる。この場合において、HTMLのデータを扱う情報処理装置においては、HTMLのデータには出力時の用紙サイズや解像度等は意識せずに作成されている場合が多い。
【0004】
また、HTMLファイルの内容は、ブラウザと称せされる閲覧プログラム、例えばマイクロソフト社製のInternet Explorerやネットスケープ社製のNetscape Navigator等で領域の大きさが変更された場合に、変更された領域に合わせてレイアウトも変化できるように相対座標値や割合で定義されている場合が多い。
【0005】
【発明が解決しようとする課題】
しかしながら、上記HTMLファイルをプリンタで印刷しようとした場合に、出力用紙サイズを意識して作成されていない為、期待したものと出力のサイズが異なって印刷される等の問題がある。
【0006】
例えば出力用紙の用紙サイズに収まらず、領域をオーバして印刷されるものや、領域に収めようとすると、文字が小さくなってしまって読めなくなってしまう等の問題点があった。
【0007】
本発明は、上記の問題点を解決するためになされたもので、ブロックの要素を各属性毎に解析して、ドキュメントファイル中のテキストデータがあらかじめ設定される最小文字サイズ以上の文字サイズとして印刷可能なレイアウト形式のドキュメントファイルにフォーマット変換して、相対座標で指定されているドキュメントの各属性に従うデータと出力用紙のサイズとに基づき、適切な領域の割り当ておよび文字のサイズの割り当てを行なうことにより、レイアウトが規定されない属性の異なる複数のブロックからなるドキュメントファイルから印刷装置に対する出力領域に適したレイアウトを行なわれたドキュメントファイルを生成できる情報処理装置および情報処理方法および記憶媒体を提供することである。
【0008】
【課題を解決するための手段】
本発明は、レイアウトが規定されない属性の異なる複数のブロックからなるドキュメントファイルを処理可能な情報処理装置であって、前記各ブロックの要素を各属性毎に解析して、前記ドキュメントファイル中のテキストデータがあらかじめ設定される最小フォントサイズ以上のフォントサイズで印刷するように各ブロックの要素を印刷装置の用紙サイズで決定される複数の出力領域に配置する配置手段を有し、前記配置手段は、前記ドキュメントファイルに対する出力用紙サイズを設定する設定手段と、前記設定手段により設定された出力用紙サイズに基づいて、各ブロックのサイズを決定する決定手段と、前記決定手段によって決定された各ブロックのサイズに基づいて出力領域とフォントサイズの拡大縮小率を求める倍率決定手段と、前記倍率決定手段により求められる拡大縮小率に基づいて、各ブロックのフォントサイズを計算する計算手段と、全てのブロックに対して前記計算手段によりフォントサイズを求め、求められた各ブロックのフォントサイズの大きさの値を比較して最小のフォントを抽出し、抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより大きいか否かを判定する判定手段と、前記判定手段により抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより小さいと判定した場合には、抽出された最小のフォントサイズをあらかじめ設定された最小のフォントサイズまで拡大する拡大率計算を行って拡大率を求め、求められた拡大率を各ブロックのサイズに掛けて各ブロックのサイズを拡大する拡大手段と、前記拡大手段により拡大された各ブロックを複数ページに分割して出力する出力手段とを有することを特徴とする。
【0023】
【発明の実施の形態】
図1は、本発明の情報処理装置を適用可能な文書印刷システムの構成を説明する図である。
【0024】
図1において、本システムは、複数台のパーソナルコンピュータ(以下、クライアントパソコンという)X、Yと、1台のファイルサーバFSと、1台のWebサーバWSと、少なくとも1台のXMLデータを処理できるプリンタAが、ネットワークNにより接続された構成となっている。
【0025】
そして、携帯情報端末のようなモバイル端末MがプリンタAに直接IrDA、RS‐232Cやセントロニクスなどを通してネットワークに接続することなくプリンタAと通信可能につながっている。
【0026】
なお、クライアントパソコンX、Yの代わりに、ワードプロセッサ、ワークステーション、携帯情報端末等の情報処理装置を接続することも可能である。また、クライアントパソコンX、YおよびファイルサーバFSは、複数種のフォントにかかるフォントデータ群やWebのデータや画像データ等が格納されている。
【0027】
本システムでは、モバイル端末MあるいはクライアントパソコンXまたはYからプリンタAに対して印刷したいwebのURLや印刷部数等の印刷要求を出し、プリンタAからWebサーバWSにファイル要求を出し、WebサーバWSは必要な文書データやフォントデータ等をファイルサーバFSより集めて、プリンタAに転送し、プリンタAはその転送されたデータを展開することによって印刷する。
【0028】
図2は、図1に示したクライアントパソコンX、Y及びファイルサーバFS及びWebサーバWSの概略構成を示すブロック図である。
【0029】
図2において、101はCPU、すなわち中央処理装置であり、この装置全体の制御及び演算処理等を行う。102はROMであり、システム起動プログラムおよび文字変換用の文字パターンデータ等を記憶する。103はRAMであり、CPU101の演算に使用するデータ、CPU101の演算結果を一時記憶する。
【0030】
104はキーボード制御部(KBC)であり、キーボード(KB)105よりキー入カデータ(文字コードや制御コード)を受け取りCPU101へ伝達する。106はディスプレイ制御部(CRTC)であり、RAM103に格納された表示情報、すなわち、文字コードから変換されたビットマップイメージを読み出し、CRTl07に転送する。なお、CRT107は、CRTC106よりビットマップイメージを受け取り表示画面に表示する。
【0031】
108はディスク制御部(DKC)であり、外部記憶装置109のデータ伝送等の制御を行う。109は外部記憶装置で、FDすなわちフロッピーディスク装置、あるいはHDすなわちハードディスク装置、あるいはCD−ROM等で構成される。外部記憶装置109にはプログラムおよびデータを記憶させておき、CPU101は必要に応じて記憶データを参照したり、またはRAM103にロードする。
【0032】
110はネットワーク制御部(NTC)であり、ネットワーク装置(NT)111の通信動作制御を行う。112はシステムバスであり、上述の構成要素間のデータ転送を行う。
【0033】
図3は、図2に示したRAM103のメモリマップの一例を示す図であり、図1に示したシステム構成におけるメモリマップに対応する。
【0034】
図3において、本装置は、基本I/Oプログラム、ウインドウシステム等のオペレーティングシステム、および本発明の処理となるアプリケーションが実行されることにより動作する。基本I/Oプログラムは、図1に示したROM102に格納されている。オペレーティングシステムは、図1に示した外部記憶装置109に示すハードディスク(HD)に格納されている。そして、電源がONされたときに、基本I/Oプログラム中のIPL(イニシャライズプログラムローディング)機能によりHDからオペレーティングシステムがRAMに読み込まれ、その動作が開始される。
【0035】
なお、本発明に係るプログラム及び関連データは、図1に示した外部記憶装置109におけるフロッピーディスク(FD)あるいはCD−ROM等の記憶媒体を介して供給される。そして、FDあるいはCD−ROMからプログラム及び関連データを一旦HDヘインストールすることにより、HDからRAM103にロードし実行することが可能となるか、あるいは、HDヘインストールせずに直接FDあるいはCD−ROMからRAMロードし実行することも可能である。
【0036】
図3において、210は基本I/Oプログラムで、ROM102等よりRAM103にロードされ実行可能となった状態を示す。
【0037】
211はウインドウシステム等のオペレーティングシステムがRAM103にロードされ実行可能となった状態を示す。212は本発明のプログラム等を含むアプリケーションがRAM103にロードされ実行可能となった状態を示す。
【0038】
213は関連データで、RAM103にロードされ実行可能となった状態を示し、214は各々のプログラムが使用するワークエリアである。
【0039】
なお、基本I/Oプログラムは、ROM102内のシステム起動プログラムによりRAM103に読み込まれる。また、外部記憶装置109としてのフロッピーディスク装置、あるいはCD−ROMからアプリケーションプログラム、及び関連データを一旦、ハードディスク装置ヘインストールした状態で電源がONされたときに、ハードディスク装置からRAM103にロードすることにより、実行することが可能となる。
【0040】
なお、ハードディスク装置ヘインストールせずに、直接フロッピーディスク装置、或いはCD−ROMからRAM103にロードして実行することも可能である。なお、ファイルサーバFSでは、後述のプリンタ情報テーブルが関連データの領域に形成されている。
【0041】
図4は、図1に示したプリンタAの構成を説明するブロック図であり、図2に示した文書処理システムのネットワーク装置111とネットワーク装置を介して通信可能に構成されているものとする。
【0042】
なお、本システムにおける出力エンジンは、レーザビームプリンタであってもよいし、バブルジェットプリンタあるいは熱転写等の出力エンジンであってもよいい。また、XML形式の文書データ,図形データ,表形式データ,画像データを印刷処理できる機能を有している。
【0043】
図4において、211はCPUであり、この装置全体の制御および演算処理等を行うものである。212はROMであり、CPU211が実行すべきシステム起動プログラムおよび書体別の文字パターンデータ等を記憶している。
【0044】
213はRAMであり、使用制限のないデータ記憶領域であり、様々な処理毎に各々のプログラムおよびデータがロードされ実行される領域である。
【0045】
215はプリンタコントローラ(PRTC)であり、216はプリンタエンジン(PRT)である。214はシステムバスであり、上述の構成要素間のデータの通路となるべきものである。217はディスクコントローラ(DKC)で、ハードディスク218に対するデータ書込みアクセスまたはハードディスク218からのデータ読み出しアクセスを制御する。
【0046】
219はネットワーク制御部(NTC)であり、ネットワーク装置(NT)220の動作制御を行う。なお、ROM212には、文字パターンデータ(フォントデータ)等が格納されている。そしてRAM213またはHD217には、WebサーバWSへ要求した文書データやイメージデータあるいはフォントデータ等がWebサーバWSからダウンロードされ、格納される。
【0047】
CPU211は、WebサーバWSから供給された文書データ、イメージデータあるいはフォントデータを、ROM212内にあるプログラムに従って文字パターンデータや画像データ(ビットマップデータ)を生成して、プリンタコントローラ215内の印刷バッファに展開する。
【0048】
プリンタコントローラ215は、ビットマップデータに基づいて生成した印刷コントロール信号をプリンタエンジン216に出力する。ネットワークコントローラ217は、図1に示したネットワークNを介してクライアントパソコンX,YやファイルサーバFSとの間でデータ送受信を行う際のネットワーク装置(NT)218の動作を制御している。
【0049】
図5は、本発明に係る情報処理装置におけるドキュメントの変換処理状態を説明するブロック図である。
【0050】
本処理の流れは、ホスト側の処理とプリンタ側の処理に分かれていて、ホスト側の処理は、図1に示したWebサーバWS上で行なわれたり、クライアントパソコンXまたはクライアントパソコンYで処理されたりする。
【0051】
本処理はまず、例えば図1に示したファイルサーバFSよりXML形式で保存されたドキュメントあるいはHTML形式で保存されたドキュメントを読み込み、それを一旦XHTML(Extensible Hyper Text Markup Language)の形式のデータに変換する。そして、そこから図9に示すフローチャートに従って出力用紙サイズや解像度にしたがって適切なレイアウトを行なうSVG(Scalable Vector Graphic)に変換を行なう。
【0052】
なお、XHTMLおよびSVGの内容については、W3Cのテクニカルレポートに記載されている。基本的にXHTMLは、HTMLの文法をXML形式に従って拡張したものであり、表示処理に適している。
【0053】
一方、SVGは、PS(アドビ社製のPost Script)等のページ記述の文法に似たものであり、XML拡張されたものであり、出力フオーマットに適している。したがって、HTMLやXMLの文書データを一旦XHTMLに変換し、さらにそこで出力用紙サイズや解像度を得て、SVG形式のデータに変換し、それをSVGが解釈できるプリンタヘSVGファイルで転送するのである。そうすることによって、XMLやHTMLでかかれた文書データを適切にレイアウトして出力することが可能となる。
【0054】
図6は、図5に示したXHTML形式のドキュメント例を説明する図であり、図7は、図6に示したXHTML形式のドキュメント例のレイアウト構造を説明する図であり、図8は、図7に示したXHTML形式のドキュメントのSVG変換リスト例を説明する図である。
【0055】
次に、図9に示すフローチャートに従って、本発明に係る情報処理装置におけるXHTML形式の文書データからSVG形式の画像等を含む文書データ(ドキュメント)に変換する処理の詳細な流れの説明を行なう。
【0056】
図9は、本発明に係る情報処理装置における第1のデータ処理手順の一例を示すフローチャートである。なお、(5−1)〜(5−11)は各ステップを示す。
【0057】
先ず、ステップ(5−1)では、変換元となるXHTML形式のデータの中からまず変換の基準となるフォントサイズを求める。なお、基準となるフォントサイズは、XHTMLのファイルでは、特に指定されていない。
【0058】
従って、各ブラウザが独自に基準フォントサイズを定めていることが多いが、ここでは出力用紙への基準フォントサイズとしてl0ポイントあるいは10.5ポイント等の値を定める。
【0059】
また、XHTMLドキュメントの中に基準フォントサイズが記入してあるような場合には、その値を基準フォントサイズとして定める。
【0060】
次に、ステップ(5−2)においては、XHTMLドキュメント全体をチェックして、テーブルの属性がないかどうかを調べて最大横サイズテーブルを抽出し、テーブルの属性がない場合には、所定の出力したい用紙や画面のサイズの横領域が各XHTML要素であるタグの横領域の基準となるサイズとなる。
【0061】
一方、テーブルの属性が存在する場合には、各テーブルの内容を比較する。例えばXHTMLの<TABLE>の要素にwidthの属性が合った場合には、その値がテーブルの幅の値となるので、その値が最大のものを選択する。
【0062】
一方、<TABLE>の要素にwidthの属性がない場合には出力領域の横領域がそのテーブルの横領域となる。
【0063】
次に、ステップ(5−3)においては、ステップ(5−2)で抽出されたテーブルの最大値から出力領域の拡大縮小率を算定(計算)する。なお、計算方法は出力領域の横領域と、ステップ(5−2)で求めたテーブルの最大横領域の比率から求めることができる。つまり、拡大縮小率=出力領域の横領域/テーブルの最大横領域となる。
【0064】
そして、ステップ(5−4)以降において、各要素の配置および要素内の文字の配置位置等の計算を行なうため、ステップ(5−4)においては、まず対象となる要素がテーブル要素なのかテキスト要素なのかイメージ要素なのかの判定を行なう。
【0065】
ここで、テーブル要素例としては、<TABLE>、<TR>、<TH>、<TD>、<CAPTION>、<THEAD>、<TFOOT>、<TBODY>等がある。テキスト要素としては、<Hl>〜<H6>、<P>、<Q>、<BLOCKQUOTE>、<EM>、<STRONG>、<SUP>、<SUB>等がある。
【0066】
そして、イメージ要素レオとしては、<IMG>、<MAP>、<AREA>、<OBJECT>、<APPLET>等がある。それぞれの要素の意味については、
WWW上のアドレス、例えばhttp://WWW.W3.org/TR/xhtml1/ に記載されているXHTMLの仕様や、http://www.w3.org/TR/htm140/ に記載されているHTMLの仕様に準ずるものとする。
【0067】
そして、対象となる要素がテーブルの要素であると判定された場合には、ステップ(5−5)へ進み、テキストの要素であると判定した場合には、ステップ(5−6)へ進み、イメージの要素であると判定した場合には、ステップ(5−7)ヘ進む。
【0068】
そして、ステップ(5−5)においては、テーブルの要素であると判定された場合であり、テーブル内の配置を行なう。ここでの処理の詳細については、図10に示すフローチャートを用いて詳細に説明するのでここでの説明は省略する。
【0069】
一方、ステップ(5−6)においては、テキストの要素であると判定された場合であり、テキスト要素内にある個々の文字に対する配置位置の決定を行なう。テキスト領域のうちブロック要素とインライン要素に分かれるが、ブロック要素としては、<Hl>〜<H6>、<P>要素等がある。また、インライン要素としては、<EM>、<STRONG>等がある。さらに、インライン要素はブロック要素の子要素として文章中のある文字列を強調したり、色を変えたりするときに使用される。
【0070】
テキストのブロック要素の配置方法としては、まずテキスト領域の横領域を決定する。
【0071】
ここでは、テキスト要素の親要素の横領域がテキスト領域の横領域ということになる。例えば親要素が<XHTML>であれば、それが最上位要素ということになるので、出力すべき用紙や画面のサイズの横領域がテキスト領域の横領域として設定される。
【0072】
そして、文字の大きさに関しては、上記W3Cの仕様であるCSSのプロパティで指定されている場合には、その値に対して、特に文字のサイズを指定していない場合には、ステップ(5−1)で求めた標準の文字サイズに対して、ステップ(5−3)で求めた拡大縮小率をかけた値を文字サイズの大きさとする。
【0073】
そして、このとき決定された文字サイズの大きさは、後述するステップ(5−10)で、あらかじめ設定された最小サイズより大きい値に設定されているかどうかをチェックするので、保存しておく。そして、決定された文字サイズで文字を一文字ずつ配置していき、横領域を越えるところで文字の折り返しを行ない、次の行の先頭から続きを配置していく。そして、すべての文字を配置し終わったときに、そのときの行数とフォントサイズから領域の高さを計算する。このとき行間の大きさはCSSのプロパティで指定されている場合にはそれに従い、特に指定がない場合には、文字の高さに対してある一定の値を標準として、その行間の値を設定する。
【0074】
また、テキストのインライン要素の配置方法としては、インラインに指定された文字列の一つ前の文字の配置位置の終了点を基準点とし、そこから要素で指定された文字種や文字サイズで各文字のピッチ情報に従って配置していく。
【0075】
一方、ステップ5−7においては、イメージの要素であると判定された場合であり、イメージ要素の領域の決定と配置位置の決定の処理を行う。なお、本実施形態において、イメージ領域の大きさの決定方法は、イメージ領域の大きさがXHTMLドキュメントの中で指定してある大きさに対して、ステップ(5−3)で求めた拡大縮小率をかけた領域の大きさになる。
【0076】
そして、ステップ(5−8)において、ステップ(5−5)からステップ(5−7)で求めた各要素の内容をSVGデータに変換する。このとき、テキストの要素は<tspan>にイメージ要素は<image>に変換される。
【0077】
これにより、例えば図7に示したレイアウトのデータは、図6図に示したXHTMLのドキュメントで表され、それをSVGで表現すると図8に示したようになる。
【0078】
次に、ステップ(5−9)においては、すべての要素に対してステップ(5−5)からステップ(5−7)の処理が終了したかどうかをチェックし、まだ処理が終了していないと判断した場合には、ステップ(5−4)へ戻って、各要素の配置位置の計算を行なう。
【0079】
一方、ステップ(5−9)で、すべての要素に対して処理が終了していると判定した場合には、ステップ(5−10)で、各要素の中の配置およびフォントサイズの計算が行なわれた結果を見て、出力すべきフォントの大きさの最小値をチェックする。そして、あらかじめ設定されたフォントサイズより小さいフォントサイズのデータが存在する場合には、印刷しても小さすぎてみることができないので、全体領域を大きくする処理(詳細は、図10に示すフローチャートを用いて詳細に説明する)を行なう。
【0080】
そして、ステップ(5−11)においては、すべての要素の配置位置が計算された後ドキュメント全体を<svg>と</svg>で囲み、必要に応じてスタイルシートを<style>要素で定義して、svgドキュメントの作成処理を終了する。
【0081】
図10は、本発明に係る情報処理装置における第2のデータ処理手順の一例を示すフローチャートであり、図9に示したステップ(5−5)のテーブルの内容の配置位置の計算を行なう詳細手順に対応する。なお、(6−1)〜(6−8)は各ステップを示す。
【0082】
先ず、ステップ(6−1)ではテーブル内の各セルの横領域の計算を行なう。なお、本実施形態において、各セルの横領域の計算方法は、<TR>要素で囲まれる各セルの領域の大きさを合計して、親要素であるテーブル要素の横領域を各セルの割合に応じて割り当てる。
【0083】
例えばXHTMLのドキュメント内のあるテーブルの子要素としてセルが3つあり、それぞれのセルの横領域が、セル1が「10」、セル2が「20」、セル3が「10」で、親要素のテーブルの横領域が「100」である場合、セル1の横領域は100×(10/40)=25となり、同様にセル2の横領域は「50」、セル3の横領域は「25」となる。
【0084】
次に、ステップ(6−2)においては、各セルの内容をチェックする内容としては、さらにテーブルになっている場合、テキストになっている場合、あるいはイメージになっている場合がある。
【0085】
そして、それぞれの判定方法は、図9に示したステップ(5−4)で述べた方法と同様に、<TABLE>、<TR>、<TH>、<TD>、<CAPTION>、<THEAD>、<TFOOT>、<TBODY>等の要素であればテーブル要素と判定し、ステップ(6−7)に進み、拡大縮小率を再計算して、ステップ(6−1)に戻って、再起的にテーブル要素の処理を行なう。
【0086】
なお、ステップ(6−7)は、セルの中にさらにテーブルの要素であると判定された場合であり、対象となるテーブルの親要素となるセルの大きさはステップ(6−1)で求めてあるので、その大きさに収まるようにテーブルのサイズを変換する必要がある。そして、そのときの計算方法は、拡大縮小率=親要素のテーブルの拡大統小率×テーブルの横サイズ÷親要素のセルの横幅となる。
【0087】
一方、ステップ(6−2)で、<Hl>〜<H6>、<P>、<Q>、<BLOCKQUOTE>、<EM>、<STRONG>、<SUP>、<SUB>等の要素であればテキスト要素と判定し、ステップ(6−3)へ進み、そして、<IMG>、<MAP>、<AREA>、<OBJECT>、<APPLET>等の要素であればイメージと判定し、ステップ(6−6)へ進む。
【0088】
そして、ステップ(6−3)からステップ(6−5)においては、テキストの要素であると判定された場合であり、テキスト要素内にある個々の文字に対する配置位置の決定を行なう。
【0089】
なお、テキスト領域のうちブロック要素とインライン要素に分かれるが、ブロック要素としては、<Hl>〜<H6>、<P>要素等があり、インライン要素としては、<EM>、<STRONG>等がある。インライン要素はブロック要素の子要素として文章中のある文字列を強調したり、色を変えたりするときに使用される。
【0090】
また、テキストのブロック要素の配置方法としては、まずテキスト領域の横領域を取り込む。ここでは、ステップ(6−1)で決定したセルの横領域がここで対象となるテキストの横領域となる。
【0091】
先ず、ステップ(6−3)では、文字の大きさに関して、W3Cの仕様であるCSSのプロパティで指定されている場合にはその値に対して、特に文字のサイズを指定していない場合には、ステップ(5−1)で求めた標準の文字サイズに対して、ステップ(5−3)あるいはステップ(6−7)で求めた拡大縮小率をかけた値を文字サイズの大きさとする。
【0092】
そして、このとき決定された文字サイズの大きさは、ステップ(5−10)であらかじめ設定された最小サイズより大きい値に設定されているかどうかをチェックするので、保存しておく。
【0093】
そして、ステップ(6−4)において決定された文字サイズで文字を1文字ずつ配置していき、横領域を越えるところで文字の折り返しを行ない、次の行の先頭から続きを配置していく。また、テキストのインライン要素の配置方法としては、インラインに指定された文字列の一つ前の文字の配置位置の終了点を基準点とし、そこから要素で指定された文字種や文字サイズで各文字のピッチ情報に従って配置して行き、すべての文字を配置し終わったとき、ステップ(6−5)において行数とフォントサイズから領域の高さを計算する。
【0094】
このとき行間の大きさは、CSSのプロパティで指定されている場合にはそれに従い、特に指定がない場合には、文字の高さに対してある一定の値を標準として、その行間の値を設定する。
【0095】
一方、ステップ(6−2)で、イメージの要素であると判定された場合であり、ステップ(6−6)へ進み、イメージ要素の領域の決定と配置位置の決定の処理を行なう。なお、本実施形態において、イメージ領域の大きさの決定方法は、イメージ領域の大きさがXHTMLドキュメントの中で指定してある大きさの縦横比を、ステップ(6−1)で求めたセルの横領域に適用して高さを求める。
【0096】
そして、ステップ(6−8)においては、さらに処理すべきセルが存在するかどうかをチェックし、セルが存在すると判定した場合には、ステップ(6−2)へ戻って同様の処理を行ない、セルが存在しないと判定した場合には、処理を終了する。
【0097】
図11は、本発明に係る情報処理装置における第3のデータ処理手順の一例を示すフローチャートであり、図10に示したステップ(5−8)のフォントサイズの最小値チェックとそれに応じた各ブロックのレイアウトの再設定処理の詳細手順に対応する。なお、(7−1)〜(7−5)は各ステップを示す。
【0098】
先ず、ステップ(7−1)においては、図9に示したステップ(5−1)で求めた基準フォントサイズとステップ(5−3)あるいは図10に示したステップ(6−7)で求めた各ブロックの拡大縮小率を元に各ブロックの基準フォントサイズの大きさを求める。計算方法としては単純に基準フォントサイズ×拡大縮小率となる。
【0099】
そして、ステップ(7−2)においては、ステップ(7−1)で計算された各ブロックの基準フォントサイズの大きさの値を比較して、もっとも小さいフォントサイズの値を抽出する。
【0100】
そして、ステップ(7−3)においては、あらかじめ設定された基準フォントサイズの最小値とステップ(7−2)で抽出された最小フォントサイズとを比較して、抽出された最小フォントサイズが、基準フォントサイズの最小値よりも小さいかどうかを判定して、大きいと判定した場合には、特に処理をする必要がないのでここで処理を終了する。
【0101】
一方、ステップ(7−3)で、ステップ(7−2)で抽出された最小フォントサイズが基準フォントサイズの最小値よりも小さいと判定された場合には、出力フォントが小さくなりすぎて印刷してもフォントが小さくなりすぎて読めない等の弊害が出てしまうので、基準フォントサイズの最小値まで拡大する必要があるので、ステップ(7−4)へ進み、ステップ(7−2)で求めた最小フォントサイズを基準フォントサイズの最小値まで拡大する拡大倍率計算を行なって、拡大倍率を求める。
【0102】
次に、ステップ(7−5)においては、ステップ(7−4)で求めた拡大倍率を全てのブロックのフォントサイズ、配置位置座標値、領域の幅や高さ等に掛け算を行ない、全体領域を広げる各ブロック出力サイズの調整処理を行い、処理を終了する。
【0103】
これにより、図12に示すように、指定出力用紙のサイズOUT(図12の(a))に無理やり縮小して文字がつぶれてしまっていたようなドキュメントも、図12の(b)に示すように複数ページP1〜P4に広げることが可能となる。そして、プリンタ側では広げられた領域を複数ページに分割して出力を行なうことになる。
【0104】
なお、プリンタにおける出力時に、両面印刷機能を有する場合には、両面印刷モードの指定状態を判定して、2枚の用紙の表裏に複数ページに分割して出力を行なうように構成してもよい。
【0105】
上記実施形態によれば、HTMLファイルを印刷しようとした場合に、出力用紙サイズを意識して作成されていない為、出力用紙の用紙サイズに収まらず、領域をオーバして印刷されるものや、領域に収めようとすると、文字が小さくなってしまって読めなくなってしまう等の問題点を解決し、HTMLの文書データの相対座標で指定されているデータと出力用紙のサイズを元にして、適切な領域の割り当ておよび文字のサイズの割り当てを行なうので、印刷装置に対する出力領域に適したレイアウトを行なうことが可能となる。
【0106】
以下、図13に示すメモリマップを参照して本発明に係る情報処理装置を適用可能な印刷システムで読み出し可能なデータ処理プログラムの構成について説明する。
【0107】
図13は、本発明に係る情報処理装置を適用可能な印刷システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0108】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0109】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0110】
本実施形態における図9〜図11に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0111】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0112】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0113】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROM,EEPROM等を用いることができる。
【0114】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0115】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0116】
【発明の効果】
以上説明したように、本発明よれば、ブロックの要素を各属性毎に解析して、ドキュメントファイル中のテキストデータがあらかじめ設定される最小文字サイズ以上の文字サイズとして印刷可能なレイアウト形式のドキュメントファイルにフォーマット変換して、相対座標で指定されているドキュメントの各属性に従うデータと出力用紙のサイズとに基づき、適切な領域の割り当ておよび文字のサイズの割り当てを行なうことにより、出力用紙サイズを意識して作成されていない為、出力用紙の用紙サイズに収まらず、領域をオーバして印刷されるものや、領域に収めようとすると、文字が小さくなってしまって読めなくなってしまう事態を回避して、レイアウトが規定されない属性の異なる複数のブロックからなるドキュメントファイルから印刷装置に対する出力領域に適したレイアウトを行なわれたドキュメントファイルを生成できる効果を奏する。
【図面の簡単な説明】
【図1】本発明の情報処理装置を適用可能な文書印刷システムの構成を説明する図である。
【図2】図1に示したクライアントパソコン及びファイルサーバ及びWebサーバの概略構成を示すブロック図である。
【図3】図2に示したRAMのメモリマップの一例を示す図である。
【図4】図1に示したプリンタの構成を説明するブロック図である。
【図5】本発明に係る情報処理装置におけるドキュメントの変換処理状態を説明するブロック図である。
【図6】図5に示したXHTML形式のドキュメント例を説明する図である。
【図7】図6に示したXHTML形式のドキュメント例のレイアウト構造を説明する図である。
【図8】図7に示したXHTML形式のドキュメントのSVG変換リスト例を説明する図である。
【図9】本発明に係る情報処理装置における第1のデータ処理手順の一例を示すフローチャートである。
【図10】本発明に係る情報処理装置における第2のデータ処理手順の一例を示すフローチャートである。
【図11】本発明に係る情報処理装置における第3のデータ処理手順の一例を示すフローチャートである。
【図12】本発明に係る情報処理装置における自動レイアウト出力例を示す図である。
【図13】本発明に係る情報処理装置を適用可能な印刷システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
101 CPU
102 ROM
103 RAM
104 KBC
105 KB
106 CRTC
107 CRT
108 DKC
109 外部記憶装置
110 NTC
111 NT
112 システムバス

Claims (15)

  1. レイアウトが規定されない属性の異なる複数のブロックからなるドキュメントファイルを処理可能な情報処理装置であって、
    前記各ブロックの要素を各属性毎に解析して、前記ドキュメントファイル中のテキストデータがあらかじめ設定される最小フォントサイズ以上のフォントサイズで印刷するように各ブロックの要素を印刷装置の用紙サイズで決定される複数の出力領域に配置する配置手段を有し、
    前記配置手段は、
    前記ドキュメントファイルに対する出力用紙サイズを設定する設定手段と、
    前記設定手段により設定された出力用紙サイズに基づいて、各ブロックのサイズを決定する決定手段と、
    前記決定手段によって決定された各ブロックのサイズに基づいて出力領域とフォントサイズの拡大縮小率を求める倍率決定手段と、
    前記倍率決定手段により求められる拡大縮小率に基づいて、各ブロックのフォントサイズを計算する計算手段と、
    全てのブロックに対して前記計算手段によりフォントサイズを求め、求められた各ブロックのフォントサイズの大きさの値を比較して最小のフォントを抽出し、抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより大きいか否かを判定する判定手段と、
    前記判定手段により抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより小さいと判定した場合には、抽出された最小のフォントサイズをあらかじめ設定された最小のフォントサイズまで拡大する拡大率計算を行って拡大率を求め、求められた拡大率を各ブロックのサイズに掛けて各ブロックのサイズを拡大する拡大手段と、
    前記拡大手段により拡大された各ブロックを複数ページに分割して出力する出力手段とを有することを特徴とする情報処理装置。
  2. 前記属性は、テキスト,イメージ,テーブルを含むことを特徴とする請求項1記載の情報処理装置。
  3. 前記最小のフォントサイズは、任意のサイズを設定可能とすることを特徴とする請求項1記載の情報処理装置。
  4. 前記ドキュメントファイルは、HTML形式,XML形式,HTML形式またはXML形式の拡張形式を含むことを特徴とする請求項1記載の情報処理装置。
  5. 前記複数ページは、両面を含むことを特徴とする請求項1記載の情報処理装置。
  6. レイアウトが規定されない属性の異なる複数のブロックからなるドキュメントファイルを処理可能な情報処理装置における情報処理方法であって、
    前記各ブロックの要素を各属性毎に解析して、前記ドキュメントファイル中のテキストデータがあらかじめ設定される最小フォントサイズ以上のフォントサイズで印刷するように各ブロックの要素を印刷装置の用紙サイズで決定される複数の出力領域に配置する配置工程を有し、
    前記配置工程は、
    前記ドキュメントファイルに対する出力用紙サイズを設定する設定工程と、
    前記設定工程により設定された出力用紙サイズに基づいて、各ブロックのサイズを決定する決定工程と、
    前記決定工程によって決定された各ブロックのサイズに基づいて出力領域とフォントサイズの拡大縮小率を求める倍率決定工程と、
    前記倍率決定工程により求められる拡大縮小率に基づいて、各ブロックのフォントサイズを計算する計算工程と、
    全てのブロックに対して前記計算工程によりフォントサイズを求め、求められた各ブロックのフォントサイズの大きさの値を比較して最小のフォントを抽出し、抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより大きいか否かを判定する判定工程と、
    前記判定工程により抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより小さいと判定した場合には、抽出された最小のフォントサイズをあらかじめ設定された最小のフォントサイズまで拡大する拡大形率計算を行って拡大率を求め、求められた拡大率を各ブロックのサイズに掛けて各ブロックのサイズを拡大する拡大工程と、
    前記拡大工程により拡大された各ブロックを複数ページに分割して出力する出力工程とを有することを特徴とする情報処理方法。
  7. 前記属性は、テキスト,イメージ,テーブルを含むことを特徴とする請求項6記載の情報処理方法。
  8. 前記最小のフォントサイズは、任意のサイズを設定可能とすることを特徴とする請求項6記載の情報処理方法。
  9. 前記ドキュメントファイルは、HTML形式,XML形式,HTML形式またはXML形式の拡張形式を含むことを特徴とする請求項6記載の情報処理方法。
  10. 前記複数ページは、両面を含むことを特徴とする請求項6記載の情報処理方法。
  11. レイアウトが規定されない属性の異なる複数のブロックからなるドキュメントファイルを処理可能な情報処理装置に、
    前記各ブロックの要素を各属性毎に解析して、前記ドキュメントファイル中のテキストデータがあらかじめ設定される最小フォントサイズ以上のフォントサイズで印刷するように各ブロックの要素を印刷装置の用紙サイズで決定される複数の出力領域に配置する配置工程を実行させるためのプログラムを記録したコンピュータが読み取り可能な記憶媒体であって、
    前記配置工程は、
    前記ドキュメントファイルに対する出力用紙サイズを設定する設定工程と、
    前記設定工程により設定された出力用紙サイズに基づいて、各ブロックのサイズを決定する決定工程と、
    前記決定工程によって決定された各ブロックのサイズに基づいて出力領域とフォントサイズの拡大縮小率を求める倍率決定工程と、
    前記倍率決定工程により求められる拡大縮小率に基づいて、各ブロックのフォントサイズを計算する計算工程と、
    全てのブロックに対して前記計算工程によりフォントサイズを求め、求められた各ブロックのフォントサイズの大きさの値を比較して最小のフォントを抽出し、抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより大きいか否かを判定する判定工程と、
    前記判定工程により抽出された最小のフォントサイズがあらかじめ設定されたフォントサイズより小さいと判定した場合には、抽出された最小のフォントサイズをあらかじめ設定された最小のフォントサイズまで拡大する拡大率計算を行って拡大率を求め、求められた拡大率を各ブロックのサイズに掛けて各ブロックのサイズを拡大する拡大工程と、
    前記拡大工程により拡大された各ブロックを複数ページに分割して出力する出力工程とを有することを特徴とする記憶媒体。
  12. 前記属性は、テキスト,イメージ,テーブルを含むことを特徴とする請求項11記載の記憶媒体。
  13. 前記最小のフォントサイズは、任意のサイズを設定可能とすることを特徴とする請求項11記載の記憶媒体。
  14. 前記ドキュメントファイルは、HTML形式,XML形式,HTML形式またはXML形式の拡張形式を含むことを特徴とする請求項11記載の記憶媒体。
  15. 前記複数ページは、両面を含むことを特徴とする請求項11記載の記憶媒体。
JP2000163204A 2000-05-31 2000-05-31 情報処理装置および情報処理方法および記憶媒体 Expired - Fee Related JP4510232B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000163204A JP4510232B2 (ja) 2000-05-31 2000-05-31 情報処理装置および情報処理方法および記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000163204A JP4510232B2 (ja) 2000-05-31 2000-05-31 情報処理装置および情報処理方法および記憶媒体

Publications (2)

Publication Number Publication Date
JP2001344232A JP2001344232A (ja) 2001-12-14
JP4510232B2 true JP4510232B2 (ja) 2010-07-21

Family

ID=18666998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000163204A Expired - Fee Related JP4510232B2 (ja) 2000-05-31 2000-05-31 情報処理装置および情報処理方法および記憶媒体

Country Status (1)

Country Link
JP (1) JP4510232B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4590080B2 (ja) * 2000-09-12 2010-12-01 キヤノン株式会社 プリンタシステム及びその制御方法
US7797631B2 (en) 2002-09-18 2010-09-14 Canon Kabushiki Kaisha Document printing control apparatus and method
JP2005335257A (ja) * 2004-05-28 2005-12-08 Ricoh Printing Systems Ltd プリンタコントローラ
CN101283395B (zh) * 2005-08-02 2011-09-07 夏普株式会社 字符数据产生设备、电子信息设备、字符数据产生程序和可读记录介质
JP5084700B2 (ja) * 2008-11-07 2012-11-28 キヤノン株式会社 画像処理システム、画像処理方法及びプログラム
JP5477184B2 (ja) 2010-06-16 2014-04-23 ブラザー工業株式会社 ファイル生成装置およびファイル生成プログラム
US8384918B2 (en) * 2010-06-30 2013-02-26 Konica Minolta Laboratory U.S.A., Inc. Enforcing a minimum font size
JP6898594B2 (ja) 2017-11-13 2021-07-07 ブラザー工業株式会社 編集装置、編集方法、及び編集プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04263357A (ja) * 1991-02-18 1992-09-18 Hitachi Ltd 情報処理装置
JPH0895962A (ja) * 1994-09-22 1996-04-12 Matsushita Electric Ind Co Ltd 文書レイアウト方法
JPH1074265A (ja) * 1996-08-30 1998-03-17 Canon Inc 印刷制御装置及び方法、並びに印刷制御プログラムを記憶した記憶媒体
JPH1115817A (ja) * 1997-06-24 1999-01-22 Sharp Corp 情報表示装置
JPH11232267A (ja) * 1997-11-14 1999-08-27 Adobe Syst Inc 頁付けした文書内の頁付けしていないハイパーテキストの捕獲

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04263357A (ja) * 1991-02-18 1992-09-18 Hitachi Ltd 情報処理装置
JPH0895962A (ja) * 1994-09-22 1996-04-12 Matsushita Electric Ind Co Ltd 文書レイアウト方法
JPH1074265A (ja) * 1996-08-30 1998-03-17 Canon Inc 印刷制御装置及び方法、並びに印刷制御プログラムを記憶した記憶媒体
JPH1115817A (ja) * 1997-06-24 1999-01-22 Sharp Corp 情報表示装置
JPH11232267A (ja) * 1997-11-14 1999-08-27 Adobe Syst Inc 頁付けした文書内の頁付けしていないハイパーテキストの捕獲

Also Published As

Publication number Publication date
JP2001344232A (ja) 2001-12-14

Similar Documents

Publication Publication Date Title
US7949942B2 (en) System and method for identifying line breaks
US20050262441A1 (en) Method and apparatus for printing web pages
US7797631B2 (en) Document printing control apparatus and method
US20030174357A1 (en) Printer, printer controller, and method of proofing a document
JP4590080B2 (ja) プリンタシステム及びその制御方法
US7916321B2 (en) Document processing apparatus and document processing method
JP4510232B2 (ja) 情報処理装置および情報処理方法および記憶媒体
JP3199005B2 (ja) インターネット情報印刷システム
US9019552B2 (en) Information processing apparatus, system and method for outputting data to a medium
JP4289856B2 (ja) 文書印刷システム及び方法
JP6833419B2 (ja) 情報処理装置、方法およびプログラム
JP4536872B2 (ja) 情報処理装置および情報処理方法および記憶媒体
KR100900488B1 (ko) 웹페이지 프린팅 시스템 및 방법
RU2573271C2 (ru) Устройство обработки информации, способ управления web-браузером и носитель хранения, сохраняющий программу для него
JP2005196679A (ja) 印刷方法およびその装置
JP2004110401A (ja) 文書印刷装置及び方法
JP3897539B2 (ja) 印刷データ生成方法及びその装置
JP4227294B2 (ja) 画像処理装置及びその方法、及び記憶媒体
JP2009289121A (ja) 情報処理装置、出力装置、出力処理方法、及びプログラム
JP2004240754A (ja) 印刷方式及び出力制御方式
JP2006065373A (ja) 印刷システム、印刷方法および記憶媒体
JP2006119708A (ja) ドキュメントチェックシステム、ドキュメントチェック方法、および記憶媒体
JP2005173801A (ja) ドキュメント印刷システム、方法および記憶媒体
JP2974638B2 (ja) 文書処理装置及び方法
JPH11312066A (ja) ネットワークを介した帳票印刷装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070511

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080107

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090611

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100319

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100427

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100430

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees