プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド
12c (12.2.1.2)
E82763-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

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

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

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

:

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

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

表9-6 フォント情報の例

フォント名 スタイル 太さ 出力の例

R0 Courier

0

0

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

R39 Courier Bold

0

3

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

R40 Courier Italic

1

0

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

R55 Century Schoolbook Roman

0

0

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


表9-7 フラッシュ・フォント情報の例

フォント名 シンボル・セット スタイル 太さ 出力の例

F2 OCR-A

0O

0

0

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

F3 OCR-B

1O

0

3

... <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のように指定します。

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


注意:

環境変数DEBUG_SLFINDを任意のファイル名に設定してレポートを実行します。デバッグ情報は、その特定のファイルに書き込まれます。

使用方法: # setenv DEBUG_SLFIND mydebug.txt

詳細は、付録B「環境変数」を参照してください。


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

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


注意:

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

レポート・エディタのWebソース・ビューでは、アラビア語、中央ヨーロッパ言語、キリル語、ギリシャ語、ヘブライ語、日本語、タイ語、トルコ語などが文字化けして表示されることがあります。uifont.aliでOracle 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(固定幅)フォントは、My Oracle Support(http://support.oracle.com)からダウンロードできます(パッチID 2766564)。

制約事項の理解

Windowsの場合:

UNIXの場合:

共通の問題の解決

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

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

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

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

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

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

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

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

解決策:  

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

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

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

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

  5. ここで、Windowsの「コントロール パネル」→「画面」→「設定」に戻って、システムのデフォルトとして小さいフォントを設定していることを確認できます。

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

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

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

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

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

Oracle Reportsでは一般に、フォント・サイズを8まで小さくできます。このように設定するには、Oracle 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 -を使用します。