ヘッダーをスキップ

Oracle Application Server Reports Services レポートWeb公開ガイド
10gリリース2(10.1.2)
B25067-01
目次
目次
索引
索引

戻る 次へ

4
Oracle Reportsでのフォントの管理

この章では、Oracle Reportsで使用するフォントについて説明します。この章の主な項は、次のとおりです。

4.1 フォントの使用

Oracle Reportsでは、次の場合にフォントが重要になります。

4.1.1 Reports Builderのフォント

Reports Builderでは、システムで使用可能なフォントのリストがフォントの選択ボックスに表示されます。

図4-1    Reports Builderのフォント・リスト


画像の説明

Windowsの場合、フォント・リストは、システムにインストールされているフォントおよび現行のデフォルト・プリンタで使用可能なフォントから作成されます。フォント名の前の小さなプリンタ・アイコンは、プリンタ・フォントであることを示します。TrueTypeフォントの場合は、TTFアイコンが表示されます。

UNIXの場合、フォント・リストは、アプリケーションが実行されているXサーバーのディスプレイで利用可能なフォントを問い合せることによって作成されます。このコマンドは、UNIXのxlsfontsコマンドに似ています。これにより、Xサーバー・ディスプレイで使用可能なすべてのフォントがリストされます。このフォント・リストから、キャラクタ・セットに適合する有効なスタイル、太さ、幅、サイズおよびエンコード特性を持つ使用可能なフォントのリストがReports Builderによって生成されます。キャラクタ・セットは、NLS_LANG環境変数によって決まります。Reports Builderには、ツールキット・リソース・ファイル内でTk2Motif*fontMapCsで指定されている場合を除き、文字コード体系がiso8859-1のフォントのみ組み込まれます。Tk2Motif*fontMapCsの詳細は、第4.3項「フォント構成ファイル」を参照してください。

4.1.2 レポート出力のフォント

レポートのフォーマット時、まずレイアウト・オブジェクトに関連付けられているフォントがフォント・エイリアス・ファイル(uifont.ali)内に存在するかどうか確認されます(第4.3項「フォント構成ファイル」を参照)。フォント・エイリアス・ファイル内にエントリが見つかった場合は、元のフォントではなく、マップされているフォントが使用されます。次に、このマップされたフォントが、システムまたはプリンタで使用可能なフォントのリストにあるかどうか検索されます。フォントが見つからない場合は、かわりに使用できるフォントとして、同じキャラクタ・セットを持つ類似度が最も高いフォントが検索されます。

4.1.2.1 フォントの検索

Windowsの場合はプリンタ・ドライバを使用するため、フォント検索メカニズムは単純です。プリンタ・ドライバには、必要に応じてフォントをシステムからアップロードする機能があります。Windowsで実行されるOracle Reportsの出力に含まれるフォントは次のいずれかになります。

したがって、Oracle Reportsで使用可能なフォントを検索するときは、プリンタ・フォントとシステム・フォントの両方が対象となります。

UNIXの場合、出力生成に使用できるフォントは次のいずれかです。

4.1.2.1.1 フォント検索アルゴリズム

図4-2は、レポート出力の生成時に使用可能なフォントを決定するプロセスを示しています。

図4-2    フォント検索のフロー


画像の説明

Oracle Reportsにおいて、出力(画面用、プリンタ用またはファイル用など)の生成に使用可能なフォントのリストを生成する手順は次のとおりです。

  1. プリンタ構成ファイルuiprint.txtを検索し、アプリケーションに対して指定されているすべてのプリンタを調べます。プリンタが定義されていない場合や、使用できるプリンタがない場合は、ScreenPrinterを使用します。

    関連項目

     

  2. プリンタのタイプ、バージョンおよびプリンタ定義ファイルを取得します。

  3. それらのプリンタがシステム内に存在しているかどうか確認します。

  4. プリンタが存在する場合は、プリンタ定義ファイルをロードして、そのファイルに記述されている情報と、プリンタで使用可能なフォントに関連する情報を読み取ります。プリンタが見つからない場合は、ScreenPrinterを使用します。

  5. AFMファイルを検索します。ファイル名は、PPDファイル内で指定されているフォント名と同じです。

  6. AFMファイルが見つかった場合は、そのファイルからすべての有効なキーワードを読み取り、キーワードが正しいかどうかを確認します。なんらかの矛盾がある場合は、そのキーワードに対してデフォルト値を使用します。

  7. AFMファイルが見つからない場合、そのフォントは使用不可能となります。


    注意

    PCLプリンタの場合と同様に、HPプリンタ定義ファイル(glueファイル)およびそのファイル内で定義されているすべてのフォントもロードされます。フォントの検索時、HPDファイル内でそのフォント名のエントリが検索され、そのフォントのTFMファイルも見つかった場合はそのフォントが使用されます。それ以外の場合は、そのフォントとの類似度が最も高い使用可能なフォントが採用されます。 


使用可能なフォントのリストが生成されたら、マップされたフォントをこのフォント・リスト内で検索し、テキストのサイズと太さを計算するために再びAFMを読み取ります。

フォントの置換

必要としているフォントがPPDファイルに見つからない場合やAFMファイルが見つからない場合、Oracle Reportsでは、一致規則に基づいて最も類似度の高いフォントが検索されます。たとえば、あるレポートが簡体字中国語のSimSunフォントを使用するように設計されており、このフォントに対応するマッピングがuifont.aliファイルに見つからない場合は、フォント検索アルゴリズムで生成される使用可能なフォントのリストにSimSunフォントがあるかどうか検索されます。このフォントの名前がリストにない場合は、プリンタ定義ファイルで指定されているフォントのリスト内で、類似度が最も高いフォントが検索されます。

SimSunフォントのキャラクタ・セットは850です。このキャラクタ・セットに一致するフォントが見つからない場合は、アプリケーションが実行されている環境のキャラクタ・セットと同じキャラクタ・セットのフォントが検索されます。同様のキャラクタ・セットを持つフォントが複数見つかった場合は、要求されたフォントに最も類似度が高いフォントが、フォントの太さやスタイルなどに基づいて選択されます。同じパラメータのフォントが複数ある場合は、最初のフォントが元のフォントのかわりに使用されます。

フォントの一致規則

Oracle Reportsでは、一致するフォントを見つける際、同じキャラクタ・セットを持つ最も類似度が高いフォントが次の条件に従って検索されます。

fontface > fontsize > fontstyle > fontweight > fontwidth

フォント・フェースが一致しない場合はフォント・サイズが比較され、フォント・サイズが一致しない場合には続いてフォント・スタイルが比較されます。

フォント・サイズのみ一致してそれ以外は異なるフォントと、スタイル、太さ、幅が一致してフォント・サイズが異なるフォントがある場合は、フォント・サイズの一致するフォントが選択されます。

最終的に印刷される出力のフォントは、出力ファイル内のフォントとは関係なく、プリンタにインストールされているフォントにのみ依存することに注意してください。

例:

レポートのレイアウト・オブジェクトに、サイズ8、標準スタイル、標準の太さのHelveticaフォントと、Courierフォントのいずれかが関連付けられているとします。このレポートをPostScript-1プリンタに対して実行してHTML出力を生成する場合、フォントは次のように選択されます。

  1. フォーマット時、Oracle Reportsによって、指定されたフォントのマッピングがuifont.aliに存在するかどうか確認されます。uifont.ali[Printer:PostScript1]セクションに、次のエントリがあるとします。

    Helvetica.8.Plain.Medium.. = "Mkai-Medium".. 
    
    

    これにより、HelveticaフォントにかわってMkai-Mediumフォントが検索されます。

  2. このマップされたフォントが、プリンタ定義ファイル(PPD)内にあるかどうか検索されます。PPDファイルの*Font Informationセクションに、次のエントリがあるとします。

    "*Font Mkai-Medium: Standard "(001.004)" Standard ROM"
    
    
  3. これにより、対応するAFMファイル(ファイル名はMkai-Medium)がAFMディレクトリ内で検索されます。この名前のAFMファイルが見つからない場合は、サイズ8、標準スタイル、標準の太さで、元のフォントと同じキャラクタ・セットの別のフォントが検索されます。

同じレポートが複数の異なる環境で実行されることもあるため、Oracle Reportsでは、元のフォントが使用できない場合、必ずそれに類似するフォントの検索が行われます。このアルゴリズムは、絶対に失敗しないというものではありません。レポートの作成者は、定義されているフォントを認識し、ユーザーがレポートを実行するプラットフォーム上で同じフォントが使用可能かどうかを常に考慮する必要があります。定義したフォントがランタイム環境で使用できない場合は、そのマシンで使用可能な別のフォントによって置換されます。この処理によって予想と異なる結果が生成される場合があります。たとえば、レポート出力にWingding文字などの特異な文字が出現したり、オブジェクトのフォーマットが正しく行われないことがあります。

この種の問題が発生した場合は、フォント・エイリアシングを使用して、Oracle Reportsによるフォント置換を制御してください。第4.4項「フォント・エイリアシング」を参照してください。

Oracle Reportsには、PDFを除くすべての出力ファイルが前述のメカニズムに従って生成されます。PDFには、フォント・サブセットおよびフォント埋込みの機能があります。

関連項目

OracleAS Reports ServicesでのPDF機能および拡張機能の詳細は、第6章「Oracle ReportsでのPDFの使用」を参照してください。

PDFの全般的な情報は、Adobe PDFのマニュアルを参照してください。 

印刷用出力は、Windowsの場合はプリンタ・ドライバ、UNIXの場合はプリンタに基づいて生成されます。Windowsでは、出力の生成はプリンタ・ドライバによって処理されます。この場合、システム・フォントまたはプリンタ・フォントが使用されます。プリンタ上にないフォントについては、Windows APIを介してシステムからプリンタにフォントが取得されます。

4.1.3 ユーザー・インタフェースのフォント

Reports Builderのユーザー・インタフェースのテキスト(ウィンドウのタイトル、メニュー項目、メッセージ・ボックス、データ・モデル・オブジェクト名など)には、現行の言語に対応するシステム・リソース・ファイルから取得したフォントが使用されます。これらのシステム・リソース・ファイルは、Oracle Reportsのインストレーションに含まれています。Oracle Reportsでは、uifont.aliの[rwbuilder]セクションでこれらのフォントのマッピングを指定できます。マップされているフォントが見つかった場合は、元のフォントのかわりにそのフォントが使用されます。それ以外の場合は、元のフォントが使用されます。

UNIXの場合、フォントはTk2Motif.rgbTk2Motif*fontListで定義されます。定義されていないフォントについては、デフォルトのフォント(デフォルトのキャラクタ・セットに対して固定)がかわりに使用されます。デフォルトのシステム・フォントは、Tk2Motif.rgbに定義されているものでなくてもかまいません。定義されているフォントが、アプリケーションを実行する環境のキャラクタ・セットと一致しない場合は、前の項で説明したフォント検索アルゴリズムに従って、かわりの使用可能なフォントが使用されます。

Windowsでは、ウィンドウの外観と操作性を維持するために、Oracle Reportsの多くの部分でWindowsのシステム・パラメータから取得されたシステム・フォントが使用されています。非Unicode環境では、フォントはアイコン・オブジェクトから取得されます。このフォントを変更するには、「画面のプロパティ」→「デザイン」を選択します。ドロップダウン・リストから「アイコン」を選択し、フォント名とサイズを選択します。日本語Unicodeシステムでは、フォントはMSゴシックです。韓国語の場合は、MS Sans Serifです。簡体字、繁体字および香港の中国語ではArialです。それ以外の言語の場合は、Lucida Sans Unicodeになります。

Windowsツールチップのフォントも、前述の手順に従ってアイコンのフォントを変更することによって変更できます。ただし、この変更はReports Builderの一部には反映されません。これは、ツールチップの中にはフォントをリソース・ファイルから取得するものがあるためです。

Oracle Reportsでは、エイリアス・ファイルの[rwbuilder]セクションにエントリを作成することによって、Webソース・ビューのフォントを選択します。この変更に必要なエントリでは、特定のフォントではなくキャラクタ・セットに対してエイリアスを作成するようにします。たとえば、NLS_LANGがUTF8に設定されているときにArial Unicode MSが使用されるようにするには、次のようなエントリを作成します。

…..UTF8 = "Arial Unicode MS"…..

詳細は、第4.4項「フォント・エイリアシング」を参照してください。

サポートされているスタイルは、標準、イタリック、斜線、下線、アウトライン、影、反転、打消し線および点滅です。

サポートされている太さは、超極細、極細、細、中細、標準、中太、太、極太および超極太です。

フォントの太さにRegularを指定しないでください。この太さはサポートされていないため、Reports Builderでの表示結果が予期しないものになる可能性があります。

4.2 フォントの追加

Oracle Reportsでは、次の場合に使用するフォントを追加できます。

4.2.1 Reports Builderへのフォントの追加

特定のフォントを使用してレポートを作成するには、レポートを設計する際、そのフォントがReports Builderのフォント選択ボックスで選択できる状態になっている必要があります。フォントがフォント選択ボックスに表示されるようにするには、システムまたはReports Builderが実行されるディスプレイにそのフォントを追加します。この手順を実行する前に、オペレーティング・システムのマニュアルを参照して、フォントの追加について確認してください。

UNIX上にType1フォントを追加するには:

  1. フォント関連のファイルをベンダーから入手します。これらのファイルには、PFBファイル、PFAファイル、AFMファイルなどがあります。

  2. 使用可能な変換プログラムを使用して、バイナリのPFBファイルをASCIIのPFAファイルに変換します。一般に、このような変換プログラムは、t1asciiなどのシェアウェアとして入手できます。

  3. プラットフォームごとの指示に従って、フォントのインストール先のディレクトリにPFAファイルをコピーします。

  4. フォントのインストールを確認するために、xlsfonts -uというコマンドを入力します。このコマンドを実行すると、システムで使用可能なすべてのフォントが一覧表示されます。

    Reflection XなどのUNIXエミュレータを使用している場合は、xlsfontsコマンドを実行しても、システムにインストールされているフォントが表示されないことがあります。これは、エミュレータの構成時に指定されたフォント・パスまたはフォント・サーバーからフォントが取得されるためです。フォント・サーバーを使用している場合は、フォントのインストール後に、フォント・サーバー構成ファイルにフォント・ディレクトリを追加してフォント・サーバーを再起動してください。エミュレータ側では、フォントがインストールされているフォント・サーバーへのフォント・パスを指定します。このようにしても、xlsfontsの実行時にフォントが表示されない場合は、新しいフォント・ディレクトリが構成ファイル内のカタログの最初の要素であることを確認してください。

    図4-3    xlsfontsの出力例


    画像の説明

  5. フォントがインストールされているフォント・サーバーまたはフォントがインストールされているディスプレイを指定したディスプレイ上で、Reports Builderを起動します。

4.2.2 レポート出力用の新しいフォントの追加

Oracle Reportsで出力を生成する場合、プリンタ定義ファイルで指定されているフォントのみ使用されます。新しく追加したフォントを出力で使用するには、レポートの設計時にそのフォントをレイアウト・オブジェクトに割り当てることができるように、フォントをReports Builderに追加します。詳細は、第4.2.1項「Reports Builderへのフォントの追加」を参照してください。


注意

Reports Builderで使用するフォントがランタイム・プラットフォームでは使用できないものである場合は、ランタイム・プラットフォーム上でそのフォントのエイリアスを作成してください。詳細は、第4.4項「フォント・エイリアシング」を参照してください。 


フォント追加の処理は、WindowsとUNIXで異なります。

4.2.2.1 UNIXでのフォントの追加

PostScriptフォントを追加するには:

  1. 新しいフォントのAMFファイルを、ORACLE_HOME/guicommon/tk/admin/AFMにコピーします。

  2. 新しいフォントに対応する次のようなエントリを、プリンタ定義ファイル(PPD)の*Font情報セクションに追加します。

    *Font new_font_name Standard '(00.1001)" Standard ROM
    *Font ...
    
    

    PPDファイルで指定されているnew_font_nameがAFMファイル名と同じであることを確認します。これは、Oracle ReportsではPPDファイル内のフォント名に基づいてこのファイルが検索されるためです。また、AFMファイル名に拡張子の.afmが含まれていないことを確認します。

    たとえば、AFMファイル名がCodedreineunBoldであれば、PPDファイルには*Font CodedreineunBold: Standard "(00.1001)" Standard ROMが指定されている必要があります。

  3. 必要であれば、エイリアス・ファイルに変更を加えて、このフォントへのマッピングを指定します。

    レイアウト・オブジェクトに、新しいフォントと同じ名前のフォント名が関連付けられている場合、マッピングは必要ありません。レイアウト・オブジェクトに別のフォント名が使用されている場合に、元のフォントではなく新しいフォントが出力ファイルで使用されるようにするには、元のフォントを新しいフォントにマップします。

    たとえば、レイアウト・オブジェクトのフォントがHelveticaの場合に、新しくインストールしたフォントを出力で使用するには、次の行を[Printer:PostScript1]セクションに追加します。

    Helvetica = CodedreineunBold
    
    

    uiprint.txtで別のPostScriptレベルが指定されている場合は、このセクションが異なることに注意してください。第4.4項「フォント・エイリアシング」を参照してください。

PCLフォントを追加するには:

新しいフォントをOracle Reportsで使用するには、プリンタのHPDファイル(プリンタ定義ファイル)およびTFMファイルが必要です。HPDファイルは、既存のファイルからコピーして作成できます。このファイルの内容が使用するプリンタに適合していることを確認してください。このファイル内で参照されているフォントは、プリンタで使用可能なものである必要があります。TFMファイル(フォント)が、Oracle Reportsのインストレーションで使用できない場合は、フォントおよびプリンタのサプライヤに問い合せる必要があります。新しいTFMファイルは、一意のフォント名を付けてHPDファイルに追加する必要があります。

  1. HPDファイルに、新しいフォントのエントリを追加する必要があります。たとえば、新しいフォントがCodedreineunである場合は、次のような行を追加します。

    FONT= Codedreineun
    /tfm=9nb17035.tfm
    
    
  2. 対応するTFMファイルをTFMディレクトリにコピーします。

    ORACLE_HOME/guicommon/tk/admin/TFM
    
    
  3. 必要であれば、第4.2.2.1項「UNIXでのフォントの追加」のPostScriptプリンタ用の説明に従って、エイリアス・ファイルを変更します。マッピングを定義するセクションは[PCL]である必要があります。

4.2.2.2 Windowsでのフォントの追加

Windowsに新しいフォントを追加する場合は、オペレーティング・システムのマニュアルを参照して、フォントの追加について確認してください。新しいフォントのキャラクタ・セットがReports Builderと互換性のあるものであれば、そのフォントがフォント選択ボックスに表示されます。

4.3 フォント構成ファイル

この項では、Oracle Reportsのフォント構成に関連するすべてのファイルについて説明します。

uiprint.txt(UNIXのみ)

このプリンタ構成ファイルには、アプリケーションに対してインストール済のプリンタの一覧が、プリンタのタイプ、バージョン、プリンタ定義ファイル名とともに記述されています。実行時に使用可能なフォントのリストは、プリンタ定義ファイルから取得されます。プリンタが存在しない場合は、Oracle ReportsのデフォルトのプリンタとしてPostScriptプリンタが選択され、default.ppdファイルがプリンタ定義ファイルとして使用されます。

関連項目

 

例:
Printer: Printer_driver:Driver_specifying_language_and_level:Printer_
description:Printer_definition_file:

各行に5つのフィールドがあり、それぞれコロンで区切られています。

PCLプリンタを使用する場合、このエントリにはHPDファイルの名前が含まれます。

screenprinter.ppd(UNIXのみ)

screenprinter.ppdは、UNIX上でプリンタが使用できない場合に使用されます。screenprinter.ppdは、ORACLE_HOME/guicommon/tk/admin/PPDにあります。

uifont.ali

このファイルには、実行時に他のフォントで置換え可能なフォントのマッピング情報が含まれます。詳細は、第4.4項「フォント・エイリアシング」を参照してください。

Oracle Reportsでは、新たに次の3つのセクションがuifont.aliファイルに追加されています。

[PDF]: フォント・エイリアシングおよびマルチバイト言語のサポートに使用されます。

[PDF:Subset]: TrueTypeフォント・サブセットおよびマルチバイト言語のサポートに使用されます。

[PDF:Embed]: Type1フォントの埋込みに使用されます。


注意

Oracle Reportsではuifont.aliファイルを解析してキーワード検索が実行されるため、これらのセクション名は変更しないでください。セクションの順序は自由に変更できます。 


uifont.aliファイルに関する一般的な規則を次に示します。

詳細は、第4.4項「フォント・エイリアシング」を参照してください。

PPDファイルおよびAFMファイル(UNIXのみ)

PostScript Printer Definition(PPD)ファイルおよびAdobe Font Metrics(AFM)ファイルは、Adobe社およびプリンタのベンダーによって提供されるものです。これらのファイルには、プリンタに関する情報が含まれます。Oracle Reportsでは、これらのファイルから、プリンタで使用可能なフォントに関する情報が他のパラメータとともに読み取られます。PPDファイルに記述されているすべてのフォントについて、フォント名を基に対応するAFMファイルが検索され、有効なAFMが存在するすべてのフォントがロードされます。

フォントの観点からは、プリンタ用の新しいフォントを追加する場合にこれらのファイルを変更し、変更がOracle Reportsに反映されるようにしてください。

例:
*% Font Information =====================
*DefaultFont: Error
*Font AvantGarde-Demi: Standard "(001.001)" Standard
*Font AvantGarde-DemiOblique: Standard "(001.001)" Standard
*Font Courier: Standard "(001.004)" Standard
*Font Courier-Bold: Standard "(001.004)" Standard

AFMファイルには、フォントの属性(スタイル、太さ、幅、コード体系)、固定幅かプロポーショナルかの区別、および各文字の大きさなどの情報が含まれます。

Oracle Reportsでは、PPDファイルからフォント名を検索した後、第4.3.1項「ファイルの検索」で説明している検索条件に従って、フォント名と同じ名前のAFMファイルが検索されます。たとえば、AvantGarde-Demi: StandardがPPDファイル内で見つかった場合は、AvantGarde-Demiという名前のAFMファイルがAFMディレクトリにあるかどうか検索されます。

AFMファイルはフォント・ファイルではなくメトリック・ファイルであることに注意してください。このファイルは、プリンタ用に文字を正しくフォーマットする方法をOracle Reportsに伝えるためのものです。AFMファイルはあるけれども、そのフォントをプリンタで使用できない場合、Oracle Reportsではフォントを生成できません。

AFMファイル自体はフォントではないので、使用可能なPostScriptプリンタ・フォントを増やすには、次のようにする必要があります。

  1. フォントを購入して、プリンタにインストールします。

  2. フォントおよびプリンタのベンダーから、修正済のAFMファイルおよびPPDファイルを入手します。

  3. 対応するXサーバー・ディスプレイ・フォントを入手します(必要な場合)。

HPDファイルおよびTFMファイル

PCLでは、HPDファイルおよびTFMファイルが使用されます。HPDファイルには、プリンタで使用できるフォントのリストが含まれます。フォントはそれぞれ特定のTFMファイルを参照します。HPDファイルは編集可能なASCIIファイルですが、TFMファイルはバイナリ・ファイルであるため編集できません。TFMファイルは編集不可能なバイナリ・ファイルですが、文字列操作を実行すればこのファイルから一部のキーワードを読み取ることができます。Oracle Reportsによって認識されるフォント名は、HPDファイルではなくTFMファイルに記述されているものです。TFMファイルはフォント・ベンダーから提供されており、TFMファイルをインストールすると、新しく追加されたフォントがプリンタのHPDファイルへ追加されます。

Tk2Motif.rgb(UNIXのみ)

このファイルには、Oracle Toolkitに基づくすべてのOracle Motifツールのリソース設定が含まれます。フォント固有のリソース設定には、Tk2Motif*fontMapCsおよびTk2Motif*fontListが使用されます。

Tk2Motif*fontMapCsは、X-Windowディスプレイ上にあり、アプリケーションによって使用されるフォントのベース・キャラクタ・セットを決定します。

Tk2Motif*fontMapCs: iso8859-2=EE8ISO8859P2の場合、NLS_LANGEE8ISO8859P2に設定される必要があり、文字コード体系がiso8859-2のフォントのみアプリケーションで使用されます。このコード体系のフォントが見つからない場合は、REP-3000エラーが発生します。

Tk2Motif*fontListは、アプリケーションによって使用されるデフォルトのシステム・フォントを指定します。次のように指定すると、標準の太さ、標準の幅であるサイズ12のHelveticaフォントが使用されます。

Tk2Motif*fontList: -*-helvetica-medium-r-normal-*-120*

このエントリの構文の説明は、Tk2Motif.rgbファイル内にコメントとして記述されています。

4.3.1 ファイルの検索

ファイル検索の基準は、ファイルのタイプおよび対応する定義された環境変数の値によって決まります。

表4-1    ファイル情報 
ファイル名  タイプ  説明 

uiprint.txt 

UNKNOWN 

プリンタ構成ファイル 

uifont.ali 

FONTALIAS 

フォント・エイリアシング・ファイル 

PPD 

PPD 

PostScriptプリンタ定義ファイル 

AFM 

AFM 

Adobeフォント・メトリック・ファイル 

HPD 

HPD 

HP glueファイル 

TFM 

TFM 

HP glueファイル 

変数の検索は、TK_typeORACLE_type、グローバル・ディレクトリの順に行われます。たとえば、PPDファイルの検索を行うディレクトリは、TK_PPDで指定されるディレクトリ、ORACLE_PPDORACLE_HOME/guicommon/tk/admin/PPDの順となります。

たとえば、uiprint.txtを検索する場合は、最初に環境変数TK_UNKNOWNが検索され、次にORACLE_UNKNOWN、デフォルト・ディレクトリの順に検索されます。

環境変数

REPORTS_NO_DUMMY_PRINTER: この変数に値が定義されている場合、Oracle Reportsではプリンタ・フォントのかわりにスクリーン・フォントが使用されます。

4.4 フォント・エイリアシング

フォント・エイリアシングとは、フォントまたはその属性(スタイル、太さ、幅、サイズ、キャラクタ・セットなど)を他のフォントまたは属性にマップできるようにする、Oracle Reportsのメカニズムです。主に、あるプラットフォームから別のプラットフォームにアプリケーションを移植する際、レイアウト内のオブジェクトに関連付けられているフォントが移植先にない場合に使用します。このような場合にフォント・エイリアシングを利用すると、存在しないフォントを別の有効なフォントにマップすることによって、要求どおりの結果を生成することができます。たとえば、WindowsからMotifへ移行するときにフォント・エイリアシングを使用すれば、Windows Arialを、Motifで利用可能なHelveticaなどのフォントにマップできます。

この項の内容は次のとおりです。

4.4.1 エイリアシング情報の指定

マッピングの指定情報が記述されているファイルはuifont.aliです。マッピング・ルールを追加または変更するには、このファイルを編集します。

一般的なフォーマットは次のとおりです。

"Original_font"="Font_to_be_aliased"

ここで、Original_fontはフォント名またはその他の属性で、Font_to_be_aliasedはマップ先のフォント名または属性です。

フォント名と属性は次のように指定できます。

Face.Size.Style.Weight.Width.CharSet= 
Face.Size.Style.Weight.Width.CharSet

Faceは、Courierなどのフォント・フェースの名前(文字列または識別子)です。StyleWeightWidthおよびCharSetには、数値や定義済の文字列または識別子を指定できます。たとえば、Styleの値としてPlainおよび0のどちらも有効であり、同じスタイルを表します。Sizeには、正確なサイズをポイント単位で指定します。

これらの属性は、フォント・エイリアシング、フォント・サブセットおよびフォント埋込みを行うときに有効になります。

たとえば、フォント・サブセットでは次のようになります。

Fontname=filename.ttf
Face.Size.Style.Weight.Width.CharSet=filename.ttf

認識可能な名前と対応する数値を次に示します。

表4-2    スタイル名と対応する数値 
スタイル名  対応する数値 

Plain 

Italic 

Oblique 

Underline 

Outline 

Shadow 

16 

Inverted 

32 

Blink 

64 

表4-3    太さと対応する数値 
太さ  対応する数値 

Ultralight 

Extralight 

Light 

Demilight 

Medium 

Demibold 

表4-4    幅と対応する数値 
  対応する数値 

Ultradense 

Extradense 

Dense 

Semidense 

Normal 

Expand 

Extraexpand 

Ultraexpand 

複数のスタイルを組み合せることができます。その場合は、プラス記号(+)を使用してスタイルの各部分を区切ります。次に例を示します。

Arial..Italic+Overstrike = Helvetica.12.Italic.Bold

これは、イタリックと打消し線の両方のスタイルが指定されているArialフォントが、12ポイント、太字、イタリックのHelveticaフォントにマップされることを表します。

マルチバイト言語をサポートするには、キャラクタ・セットのエイリアスを作成し、Adobeから提供されているアジア言語フォント・パックに含まれるCIDフォント(第4.6.7項「CIDフォント」)を指定する必要があります。たとえば、日本語レポートでは、マルチバイトのキャラクタ・セットであるShift-JISのエイリアスとして、HeiseiKakuGo-W5-AcroというCIDフォントを次のように指定します。
.....JA16SJIS = "HeiseiKakuGo-W5-Acro"

マッピングに指定する文字列では、大文字と小文字は区別されません。しかし、フォント・フェースの検索時、プラットフォームや画面によっては大文字と小文字が区別される可能性があります。したがって、名前を指定するときは注意が必要です。たとえば、左側(元のフォント)にarialというフォント名を使用した場合は、フォントとしてarialArialが指定されているすべてのレイアウト・オブジェクトがエイリアス先のフォントにマップされます。

4.4.2 フォント・エイリアシングのメカニズム

Oracle Reportsのフォント・エイリアシングでは、エイリアス・ファイル内の関連するセクションに、レポートで指定されている元のフォントの属性と一致するエントリがあるかどうか検索されます。フォント・エイリアス・ファイルのセクションの詳細は、第4.4.3項「フォント・エイリアス・ファイルのセクション」を参照してください。完全に一致するエントリが見つかった場合は、左側の元のフォントが右側のフォントにマップされます。

次に例を示します。

Arial.8.Italic.Medium.Normal.WE8ISO8859P1 = 
Helvetica.12.Plain.Light.Normal.WE8ISO8859P1

左側に列記されているすべての属性を持つArialフォントが見つかった場合は、右側に列記されているすべての属性を持つHelveticaフォントにマップされます。

フィールドを空白のままにしておくこともできます。その場合は、そのフィールドに関しては比較が行われません。次に例を示します。

Arial..... = Helvetica.12.Plain.Light.Normal.WE8ISO8859P1

この場合、サイズなどの属性にかかわらずすべてのArialフォントが、キャラクタ・セットWE8ISO8859P1のサイズ12、標準スタイル、細字、標準幅のHelveticaフォントにマップされます。

エイリアス規則を指定するには、次のような方法もあります。

Arial = "OCR B"

この方法では、指定のフォントの他の属性を維持したまま、フォント名がOCR Bに変更されます。この場合は、マップされたフォントの属性が、他のフォントで使用できるかどうか確認しておく必要があります。たとえばこの規則では、スタイルがイタリックのArialフォントは標準スタイルのOCR Bフォントにマップされます。これは、OCR Bフォントにイタリックというスタイルがないためです。

マップされたフォントがエイリアス・ファイル(uifont.ali)から読み取られた後、第4.1.2.1項「フォントの検索」で説明するフォント検索手順に従ってフォントの検索が行われます。マップされたフォントがシステム上で見つかった場合は、そのフォントが使用されます。それ以外の場合は、システム上で元のフォントが検索されます。

指定されたキャラクタ・セットの下で、フォント・フェース、サイズ、スタイル、太さ、幅の属性が検索されます。

Oracle Reportsでは、Webソース・ビューおよびPL/SQLエディタ用のフォントをマップすることもできます。その場合は、[rwbuilder]セクションにマッピング指定を追加します。この機能は、主にこれらのエディタでのUnicodeフォントのサポートを目的として用意されたものです。

4.4.3 フォント・エイリアス・ファイルのセクション

Oracle Reportsでは、uifont.aliファイルは次の場所にあります。

ORACLE_HOME¥tools¥common (Windows)
ORACLE_HOME/guicommon/tk/admin (UNIX)

表4-5に示すように、エイリアス・ファイルは様々なセクションから構成されており、個々のセクションには特定の領域に対するマッピングの指定が記述されます。Oracle Reportsでは、目的に応じた特定のセクションが検索されるため、目的を達成するには適切なセクションにマッピングのエントリを記述することが重要です。

表4-5    フォント・マッピング・ファイルのセクション 
セクション名  説明 

Global 

全体に適用されます。 

Printer 

プリンタ出力にのみ適用されます。 

Printer:PostScript1 

PostScriptレベル1のプリンタにのみ適用されます。 

Printer:PostScript2 

PostScriptレベル2のプリンタにのみ適用されます。 

Printer:PCL5 

PCL 5のプリンタに適用されます。 

Display 

ディスプレイ(画面)にのみ適用されます。 

Display:Motif 

Motifディスプレイにのみ適用されます。 

Display:CM 

キャラクタ・モード・ディスプレイにのみ適用されます。 

PDF 

フォント・エイリアシング(Oracle Reports 6i以降)およびマルチバイト言語サポート(Oracle Reports以降)に使用されます。 

PDF:Embed 

(Oracle Reportsのみ)Type1フォントの埋込みに使用されます。 

PDF:Subset 

(Oracle Reportsのみ) 

RWBUILDER 

(Oracle Reportsのみ)WebソースおよびPL/SQLエディタ用のフォントのマッピングをこのセクションで指定します。 

printer_name 

特定のプリンタ向けのセクションを表し、次のように指定します。

[Printer:PostScript1:2op813a] 

関連項目

第4.5項「フォントに関する問題のトラブルシューティング」「Webソース・ビューで正しく表示されないフォントの修正」 

優先順位

フォント・エイリアシングを行う際は、そのフォントが使用される状況に応じて1つのセクションのみが読み取られます。したがって、3つのセクションが適用される場合でも、読み取られるセクションは1つのみです。たとえば、[Printer][Printer:PostScript]および[Printer:PostScript:2op813a]の3つのセクションがあるとします。出力生成時に、プリンタが2op813aならば、セクション[Printer:PostScript:2op813a]のマッピング・ルールのみ読み取られます。プリンタが2op813a以外の場合は、[Printer:PostScript]セクションが使用されます。

エイリアス・ファイルのセクションでは、より限定的に指定しているセクションが、全般的な指定のセクションよりも優先されます。たとえば、[Printer:PostScript1:2op813a]という特定のプリンタ用のセクションは[Printer:PostScript1]セクションよりも優先され、それ以降は[Printer]セクション、[Global]セクションの順に優先順位が低くなります。

uifont.aliファイルは、Oracle ReportsのPDFフォントに関する拡張機能すべてを制御する構成ファイルです。このファイルは、ORACLE_HOME¥tools¥commonディレクトリ(Windows)およびORACLE_HOME/guicommon/tk/admin ディレクトリ(UNIX)にあります。uifont.aliは読取り可能なテキスト・ファイルです。つまり、標準的なテキスト・エディタで編集できます。このファイルを編集する場合は十分に注意してください。uifont.aliファイルを保存するときは、テキスト・ファイルとして保存します。ファイルを破損させるおそれのあるフォーマットや特殊文字は使用しないでください。

関連項目

uifont.aliファイルの各セクションの詳細は、第6章「Oracle ReportsでのPDFの使用」を参照してください。 

4.4.4 フォント・エイリアシング・ファイルの検証

uifont.aliファイルの内容が正しいことを検証するには、ORACLE_HOME/binディレクトリにあるフォント検証ユーティリティを使用できます。uifont.aliファイルを変更した場合は、エラーを見つけるために必ずこのユーティリティを実行することをお薦めします。

Windowsの場合:

fnchk.exe filename

UNIXの場合:

mfontchk filename

ここで、filenameuifont.aliファイルの名前です。ファイル名を指定しない場合は、環境変数に基づいてデフォルトのファイルが検証されます。

エイリアス・ファイルにエラーがある場合は、エラー・メッセージとともに、エラーが見つかったファイルの名前が返されます。次に例を示します。

Parsing font alias file "/home/oracle/guicommon/tk/admin/uifont.ali"
Ms san serif     

Error at line 85: Invalid font specification
Parse of font alias file failed

このエラーは、uifont.aliの85行目のMS San Serifフォントのマッピング・ルールに構文エラーがあることを示しています。

4.5 フォントに関する問題のトラブルシューティング

フォントに関する問題がアプリケーションで生じた場合の解決に役立てるために、この項では、次のトラブルシューティング情報について説明します。

PostScriptファイル内で目的のフォントが使用されているかどうかの確認

PostScriptファイルには、PPDファイルを読み取った後、フォントのリストが作成されます。PostScriptファイルで次のタグを検索すると、フォントを確認できます。

PCL出力ファイルの場合は、特定のフォントが使用されているかどうかを確認できます。この情報に応じて、Oracle Reportsまたはプリンタのフォント設定を変更します。

例:

次に示すのは、Lexmark Optraプリンタに基づくテストの結果です。フォントとその番号および制御コマンドは例であり、他のプリンタではこれとは異なる場合があります。

フォント情報

Lexmarkのプリンタには、使用可能なすべてのフォント(PCLエミュレーション・フォント)を印刷するメニュー・オプションがあります。これには、常駐フォント(デフォルト)とフラッシュ・フォント(プリンタに別途インストールされる)の両方が含まれます。

表4-6    フォント情報の例 
フォント名  スタイル  太さ  出力の例 

R0 Courier 

... <ESC>(<symset><ESC>(s0p<pitch>h0s0b4099T...

 

R39 Courier Bold 

... <ESC>(<symset><ESC>(s0p<pitch>h0s3b4099T...

 

R40 Courier Italic 

... <ESC>(<symset><ESC>(s0p<pitch>h1s0b4099T...

 

R55 Century Schoolbook Roman 

... <ESC>(<symset><ESC>(s1p<point>v0s0b24703T ...

 
表4-7    フラッシュ・フォント情報の例 
フォント名  シンボル・セット  スタイル  太さ  出力の例 

F2 OCR-A 

0O 

... <ESC>(0O<ESC>(s0p<pitch>h0s0b4200T ...

 

F3 OCR-B 

1O 

... <ESC>(1O<ESC>(s0p<pitch>h0s0b4206T ...

 

これらの例では、ほかにも多数のフォントがあり、それぞれ異なるコードが定義されています。たとえば、OCRBのコードは4206です。この番号の重要性については後述します。

出力の作成

正しいフォントが使用されない問題がある場合は、レポートを単純化します。つまり、出力を単純なものにします。これを行うには、select sysdate from dualという問合せを使用し、フォントの数を少なくして単純なレポートを作成します。これにより実行時間が短くなり、出力ファイルのサイズも大幅に縮小されます。

出力ファイルの読取り

作成されるPCLファイルはバイナリ・ファイルですが、テキスト・エディタである程度まで読み取ることができます。最初の短い部分と最後の部分はバイナリですが、中間部分のデータは読取り可能です。

出力ファイルの検証

注目する必要のある情報は、ファイルの中間部分にある読取り可能なデータのみです。テキストを見つけて(これがレポート出力に表示されるテキストです)、そのテキストの直前の部分を確認します。

これは次のようになります。

....;SD1,14,2,0,3,10.34,5,0,6,0,7,4099;LB here is your text

この例では、フォントにはコード4099のものが選択されています。Lexmarkのプリンタでは、Courierが選択されます。

別の例として、フォントOCR-B(コード4206)が必要である場合を考えます。選択されたテキストの直前にこのコードが生成されていなければ、このフォントでは表示されません。これは次のようになります。

....;SD1,14,2,0,3,8.57,5,0,6,0,7,4206;LBThis is OCRB font....

印刷フォントの修正

出力ファイル内のコードは正しいけれども、プリンタでそのフォントが印刷されない場合は、そのフォントがプリンタでは使用できない状態にある可能性があります。この問題は、出力ファイル内のコード(TFMファイルから得られます)が、プリンタで処理可能なものと異なる場合にも発生します。このような場合、Lexmarkのプリンタでは、これらのフォントがプリンタのデフォルト・フォントによって置き換えられます。

フォントに対応するコードが出力ファイル内にない場合は、Oracle Reportsによってそのコードが出力ファイル内に生成されなかったことを表しています。HPDファイルおよびTFMファイルを確認してください。

環境変数の確認

DEBUG_SLFINDを利用すると、使用されたファイルを確認できます。フォントに関しては、アプリケーションがプリンタ定義ファイルを読み取った後に検索したAFMファイルおよびTFMファイルのリストと、エイリアス処理後に読み取ったフォント・ファイルを調べることができます。この方法では、あるフォントがマップされているかどうかを調べることもできます。通常は、次の順序でファイルの読取りが行われます。

TK_DEBUG_POSTSCRIPTは、PostScript出力に影響を及ぼします。この変数には、次の文字列の任意の組合せを設定できます。

これらのオプションはいずれも、環境変数内で指定するときに1文字に短縮できます。またこれらのオプションは、"/"で区切って自由に組み合せることができます。この環境変数では、大文字と小文字は区別されません。たとえば、すべてのオプションを使用するには、Func/L/Memのように指定します。

この変数を使用して生成された出力を顧客向けに使用することは、オラクル社によるサポートの対象外です。この変数は、診断目的にのみ使用してください。

Webソース・ビューで正しく表示されないフォントの修正

Reports Builderのユーザー・インタフェースのテキスト(ウィンドウのタイトルなど)には、現行の言語に対応するシステム・リソース・ファイルから取得したフォントが使用されます。これらのシステム・リソース・ファイルは、Oracle Reportsのインストレーションに含まれています。Oracle Reportsでは、uifont.ali[rwbuilder]セクションでこれらのフォントのマッピングを指定できます。マップされているフォントが見つかった場合は、元のフォントのかわりにそのフォントが使用されます。見つからなかった場合は、元のフォントが使用されます。


注意

マップされたフォントは固定幅フォントである必要があります。 


レポート・エディタのWebソース・ビューでは、アラビア語、中央ヨーロッパ言語、キリル語、ギリシャ語、ヘブライ語、日本語、タイ語、トルコ語などが文字化けして表示されることがあります。uifont.aliでReports Builderのフォント名を次のように設定することで、この問題を回避できます。

[rwbuilder]
.....AR8MSWIN1256="Courier New"
.....CL8MSWIN1251="Courier New"
.....EE8MSWIN1250="Courier New"
.....EL8MSWIN1253="Courier New"
.....IW8MSWIN1255="Courier New"
.....JA16SJIS="MS Gothic"
.....TH8TISASCII="Andale Duospace WT"
.....TR8MSWIN1254="Courier New"

Andale Duospace WT(固定幅)フォントは、Oracle Metalink(http://metalink.oracle.com)からダウンロードできます。ARU番号は2766564です。

制約事項

Windowsの場合:
UNIXの場合:

共通の問題の解決

問題:

ラベル・レポートを印刷すると、右マージンの文字が切り捨てられる

Windowsマシン上で郵便ラベル・レポートを印刷したのですが、各行の最後の数文字が切り捨てられていることがわかりました。レポートのプレビューでは、これらの文字は欠けてはいませんでした。ページのフォーマットとフォント設定を変えてみましたが、問題は解決しません。

解決策:

PreviewをDESTYPEにしてレポートが正しく表示されるのであれば、プリンタ・ドライバの問題ではありません。この問題の原因として、枠のプロパティが考えられます。

レイアウト・オブジェクトを囲む枠の水平拡張度が「固定」に設定されており、データの長さが枠のサイズを超える場合は、このようなデータの切捨てが発生します。

「水平拡張度」プロパティを、「拡張」または「可変」に設定してみてください。

問題:

ファイルをHTMLCSSとして生成すると、列の1つが出力から欠落する

レポートをHTMLCSSファイル・フォーマットとして出力しており、レポート・エディタのペーパー・デザイン・ビューでは問題なく表示されています。新たに作成されたファイルをクリックしてブラウザに表示されるレポートを確認すると、最後の列がレポート出力の中にありません。

レポートを再度実行すると、ペーパー・デザイン・ビューでは問題なく、最後の列も本来の位置に表示されます。このファイルをもう一度クリックしたときに、最後の列がレポート出力から脱落しているようです。PDFは、ペーパー・デザイン・ビューとAdobe Acrobat Readerで問題なく表示されます。

解決策:

  1. Oracle Reportsおよびその他の実行中のアプリケーションを終了します。

  2. Windowsの「コントロール パネル」→「画面」→「設定」を選択します。

  3. フォントを「小さいフォント」に設定して「適用」ボタンをクリックし、「OK」をクリックしてWindowsのフォント設定を変更します。

  4. コンピュータを再起動して、新しいフォント設定を有効にします。

  5. もう一度Windowsの「コントロール パネル」→「画面」→「設定」を選択して、システムのデフォルトが「小さいフォント」に設定されていることを確認します。

HTMLCSSファイルをクリックすると、ブラウザにレポートが正しく表示され、すべての列が欠けることなく表示されます。

HTMLCSSファイルをブラウザで表示するときは、Windowsシステムのデフォルト設定として「小さいフォント」を選択しておくことをお薦めします。

大きいフォントがデフォルトで設定されている場合、HTMLCSSファイルが正しく表示されないことがあります。

問題:

Reports Builderで、8ポイントより小さいビットマップ・フォント・サイズを選択する方法

解決策:

レポートによっては、フォント・サイズを6ポイント以下にする必要があることもあります。フォントのマッピングおよびサイズ設定は、実際にはオペレーティング・システムのフォント・ファイルと、ドライバまたはプリンタの指定の両方によって実現されるものであるため、多くのフォントで6ポイント以下などの小さなフォント・サイズを指定することが可能です。

Oracle Reportsでは一般に、フォント・サイズを8まで小さくすることができます。このように設定するには、Reports Builderでレポートを開き、レイアウト・モデル・ビューに切り替えて、変更対象のレポート・オブジェクトを選択します。オブジェクトが選択されている状態で、フォント選択ボックスの横のリストからフォント・サイズを選択します。

一般に、選択できるサイズはTrueTypeフォントの場合は8〜72、その他のフォントの場合はこれより少なくなります。

リストにあるサイズよりも小さいサイズや大きいサイズを入力できます。それにはもう一度オブジェクトを選択して、カーソルをフォント・サイズ・フィールドに置き、[Delete]キーを押してサイズの数値を削除し、目的のフォント・サイズを入力して[Tab]キーを押します。変更は即座に反映されます。

この場合も、すべてのフォント・サイズを指定できるとは限らないことに注意してください。また、フォントと属性の組合せによっては実際に使用できないものもあります。あるフォント・サイズを選択できたとしても、印刷したときにそのフォントを読み取ることができるとは限りません。小さいフォント・サイズを指定し、さらに太字やイタリックなどの属性を組み合せた場合も、プリンタ・ドライバ、プリンタ、フォント・メトリック、言語、コード・セット、NLS_LANGおよび人間の視覚などの制約が原因で、印刷または表示したときに読取り不可能の問題が発生することがあります。

問題:

レポート出力でのフォント・サイズが、WindowsとUNIXとで異なる

Windows上で設計した単純なレポートで、サイズ8のArialフォントを使用しています。このレポートをSun Solarisに移植したときに、Solaris上の出力ではフォント・サイズが変更されていることがわかりました。UNIX環境では、レポートにフォント・サイズ9のHelveticaを使用しています。UNIX上では、Arialフォントは同等のフォントであるHelveticaにuifont.aliを使用してマップされています。

解決策:

  1. まず、xlsfontコマンドなどのUNIXのフォント・ユーティリティを使用して、UNIXシステム上のHelveticaで使用可能なフォント・サイズを調べます。

  2. Windowsの可変サイズ・フォントを、UNIXの可変サイズ・フォントにマップします。たとえば、WindowsでのマッピングをArial.8 = Helvetica.8に変更し(UNIXシステム上でHelveticaに対してサイズ8が使用可能であるものとします)、uifont.aliが正しいディレクトリにあることを確認します(フォント・マッピングの説明を参照)。

マシンにインストールされているHelveticaフォントがビットマップ(ラスタライズ済)であることが考えられますが、その場合は、任意のサイズに自動的に拡大または縮小することはありません。これに該当する場合は、拡張性に優れたType1フォントをインストールすれば、どのようなポイント・サイズでも選択できるようになります。

システムが異なれば、インストールされているフォントが同じであっても、フォント間の差が発生する可能性は常にあります。これは、システムによってフォント構成ファイルが異なるためです。

問題:

印刷時に、フォントが非TrueTypeフォントによって置き換えられる(ペーパー・デザイン・ビューでは、フォントの問題は発生しない)

解決策:

プリンタ設定(詳細)を調べて、次のような指定がないことを確認します。

True Type Font: Substitute with Device Font
UNIX
問題:

Oracle ReportsをX-Windowsエミュレータ上で実行しているときに、UNIXにインストールされているフォントがフォント検索ボックスに表示されない

解決策:

X-Windowsエミュレータのフォント・パスは、通常、ローカル・マシン上のフォント・ディレクトリになります。インストール済のフォントは使用できず、Oracle Reportsのフォント検索ボックスでは、ローカルのフォント・ディレクトリにあるフォントのが使用されます。このような場合は、フォントがインストールされているリモート・マシン上でフォント・サーバーを起動し、フォント・パスのエントリがこのフォント・サーバーを指すようにします。フォント・サーバーの起動およびフォント・パス・エントリの設定の詳細は、システムのマニュアルおよびX-Windowsエミュレータのヘルプを参照してください。

現在使用されているフォント・パスおよびフォント・サーバーを調べるには、UNIXコマンドxset -を使用します。

4.6 フォントのタイプ

この項では、Oracle Reportsに関係のあるフォントおよびキャラクタ・セットについて説明します。

4.6.1 キャラクタ・セット

NLS環境変数のキャラクタ・セット・コンポーネントでは、各自の環境でデータを表す際に使用されるキャラクタ・セットを指定します。あるキャラクタ・セットを使用するシステムから別のキャラクタ・セットを使用するシステムにデータが転送されると、転送先のシステムでそのデータが処理され、正しく表示されます。ただし、一部の文字がキャラクタ・セットの別のバイナリ値で表される場合があります。

多言語対応アプリケーション、または単一言語対応であっても複数のキャラクタ・セットを使用するアプリケーションを設計する場合は、実行時に最も広く使用されるキャラクタ・セットを決定し、NLS環境変数(NLS_LANG)をそのキャラクタ・セットに設定してアプリケーションを生成する必要があります。

あるキャラクタ・セットで設計および生成されたアプリケーションを別のキャラクタ・セットで実行すると、パフォーマンスに問題が生じる可能性があります。さらに、生成時のキャラクタ・セットの文字の一部が実行時のキャラクタ・セットに含まれていない場合は、認識されない文字の部分に疑問符が表示されます。Portable Document Format(PDF)は、マルチバイト・キャラクタ・セットをサポートします。特定のフォントを使用してアプリケーションを作成しても、実行してみると別のフォントが使用されている場合があります。この問題は、多くの場合、西ヨーロッパ圏以外の言語環境で英語フォント(MS Sans SerifやArialなど)を使用すると発生します。この問題が起こる理由は、フォントに関連付けられているキャラクタ・セットと言語環境変数(NLS_LANG)によって指定されたキャラクタ・セットが一致しているかどうかをOracle Reportsがチェックするためです。2つのキャラクタ・セットが一致しない場合は、Oracle Reportsによって、言語環境変数で指定されたキャラクタ・セットが関連付けられている別のフォントに自動的に置換されます。この自動置換によって、データベースから返されるデータがアプリケーション内で正しく表示されます。注意: 英語フォントを使用して各国語の文字を入力すると、Windowsでは暗黙的に別のフォントへの関連付けが行われます。ただし、このような自動置換が行われないようにする場合もあります。自動置換が行われないようにするには、希望するすべてのフォントを、フォント・エイリアス・ファイル(uifont.ali)内のWE8ISO8859P1キャラクタ・セットにマッピングします。

4.6.2 Unicode

Unicodeは、1つのアプリケーションで多言語テキストを表示できるようにするグローバルなキャラクタ・セットです。これによって多国籍企業では、1つの多言語アプリケーションを開発し、それを世界各国に配布できます。多言語アプリケーションでのUnicodeの使用の詳細は、第18.5項「Unicode」を参照してください。

4.6.3 Type1フォント

PostScriptフォントのフォーマットであるAdobe Type1フォントの保存形式には、.pfa(PostScript Font ASCII)と.pfb(PostScript Font Binary)の2種類があります。これらのファイルには文字の形状に関する記述が含まれます。個々の文字は小さなプログラムによって生成されますが、このプログラムはさらに別の小さなプログラムをコールして、フォント内の文字の共通部分を計算します。どちらの場合も、文字の記述内容は暗号化されます。このようなフォントを利用できるようにするには、PostScriptインタプリタ、またはAdobe Type Managerなどの専用のレンダリング・エンジンを使用して、ビットマップのドットにレンダリングする必要があります。Adobe Type Managerは、Apple MacintoshおよびMicrosoft Windowsのシステム上で、低解像度のスクリーン・フォントを生成する場合に使用されます。

Type1バイナリ・ファイル(.pfa.pfb)には文字情報が含まれますが、メトリック・ファイル(.afm(Adobe Font Metric)または.pfm(Printer Font Metric))には文字を形成するためのメトリック情報が含まれます。これらのメトリック・ファイルはテキスト・ファイルであり、明確かつ解析しやすい構造で記述されています。

4.6.4 TrueTypeフォント

パーソナル・コンピュータの出現によって拡張性に優れたフォント・テクノロジの必要性が高まり、それ以降のあらゆるオペレーティング・システムにおいて不可欠であることが予想されていました。TrueTypeはまさに拡張性に優れたフォント・テクノロジであり、文字を拡大しても出力結果は変わらず、ビットマップ・フォントに顕著なぎざぎざが発生しません。

このテクノロジは次の2つの部分から成り立ちます。

ラスタライザは、WindowsとMacintoshの両方のオペレーティング・システムに組み込まれているアプリケーションです。インタプリタとして機能し、フォント情報を、ビデオ・ディスプレイでレンダリング可能な形式へ変換します。

TrueTypeフォントは、それ自身にタイプフェースの各文字のアウトラインを表す情報が含まれます。より高品質なフォントには、ヒンティング・コードも含まれています。ヒンティングとは、縮小されたフォントの形状を最適化する処理です。ベクター・アウトラインにのみ依存するのではなく、文字の線がピクセルに揃うようにするため、フォントの形状がスムーズになり、読みやすさも最大になります。

Adobe社は、この機能を実現する自社のPostScriptコードのライセンス供与をAppleとMicrosoftの両社に対して提案しましたが、両社はいずれも、自社のオペレーティング・システムの中核部分に他社の支配力が及ぶということに懸念を抱いていました。Apple社とMicrosoft社は特許の相互使用と製品開発協定について合意し、Microsoft社はPostScriptスタイルのグラフィック・エンジンを開発し、Apple社はフォント・システムを開発しました。Apple社が開発したものは後にTrueTypeとなり、パフォーマンスとレンダリング品質において最高のテクノロジであることを証明しました。Apple社とMicrosoft社は、Adobe社に対抗する戦略的業務提携を発表しました。これは、Apple社がフォント・システム、Microsoft社が印刷用エンジンの開発を担当するというものでした。Apple社は、1991年3月にTrueTypeを発表しました。最初のTrueTypeフォントは次のものでした。

1992年初頭には、Microsoft社のWindowsバージョン3.1にTrueTypeが導入され、次のフォントから構成されるコア・フォント・セットが作成されました。

Apple社とMicrosoft社のどちらのTrueTypeフォントも、スケーラブル・フォントからビットマップを生成する際に、あたかも人間が設計したかのような高い品質をフォントの各サイズで実現しています。

4.6.5 TrueType Collection

TrueType Collection(TTC)は、文字情報や絵文字などの共通するフォント・データを共有する効率的な方法です。こうしたデータの共有化によって、共通の絵文字などが各フォントではなく単一のファイル構造に格納されるため、ファイル・サイズが最適化されます。最も効率的なのは、複数のフォントを組み合せた1つのファイルです。たとえば、同じフォント・ファミリに属する複数の日本語フォントは、共通の漢字文字セットを共有できます。これらの漢字文字は、TTCファイルに保持されます。

たとえば、TTCファイルのmsgothic.ttcは、MS Gothic、MS PGothicおよびMS UI Gothicの3種類のフォントで構成される集合ファイルです。

4.6.6 バーコード・フォント

バーコード・フォントという用語が表すものは1つではありません。業種によっては、特定のバーコード・タイプが選定されていることがあります。このような場合は、適切なバーコード・フォントを使用できるようにする必要があります。たとえば、商品パッケージや書籍にバーコードを印刷する場合のバーコードの選択は簡単です。北米では、商品パッケージのバーコードにUPC-Aを使用します。ヨーロッパでは、商品のバーコードにはEANを使用します。

書籍のISBN番号のバーコードには、Bookland(EAN 13バーコードに5桁を付加したもの)を使用します。フォントはバーコードを印刷する方法の1つですが、唯一の方法ではありません。Oracle Reportsでは、この他にバーコード用のJava Beanを使用してバーコードを生成するという方法も利用できます。このJava Beanを使用すれば、一般的に使用されているバーコード・タイプに基づいてバーコードを生成することができます。

4.6.7 CIDフォント

CID(Character IDentifier)フォントは、コンポジット(マルチバイト)Type1フォントの一種で、東アジア言語圏の要求に応えて開発されたものです。Adobe社が開発したCID-Keyedフォント・ファイル・フォーマットは、PostScriptで使用される幅広いキャラクタ・セット・フォントに対応します。中国語、日本語および韓国語のフォントに最適なフォーマットですが、このほかにも様々なキャラクタ・セットのローマン体フォントに使用できます。CID-Keyedとは、文字識別子(CID)番号を使用してフォント内の文字に索引を付け、アクセスすることです。CIDフォントはそれぞれ、すべての文字のアウトラインが格納された1つの大きなフォント・ファイルと、文字、エンコードおよび文字識別子のリストが格納された1つの小さなCMapファイルから構成されています。フォント・ファイルとCMapファイルを組み合せることにより、特定のキャラクタ・セットとエンコード情報からなるフォントを作成することができます。CIDフォントはそれぞれ、多数のキャラクタ・セットとエンコードの組合せをサポートできます。


戻る 次へ
Oracle
Copyright © 2003, 2005 Oracle.

All Rights Reserved.
目次
目次
索引
索引