ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド
11g リリース 1 (11.1.1)
B61375-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

12.5 シングルバイトPDF出力の生成

表12-4に、宛先フォーマットがPDFフォント・サブセットを使用して作成したシングルバイトPDFである場合におけるクロス・プラットフォーム配布シナリオを示します。PDFのフォント機能の詳細は、第11章「Oracle ReportsでのPDFの使用」を参照してください。

表12-4 クロス・プラットフォームの配布 - シナリオ2

開発プラットフォーム 配布プラットフォーム 宛先フォーマット

Windows

UNIX

PDF(シングルバイト)


ここでは、シングルバイトPDF出力を想定したレポートの設計および配布を、次の項で説明します。

12.5.1 レポートの設計

UNIXプラットフォームにレポートを配布する前に、次の手順を実行してレポートを準備します。

  1. 新しいレポートを作成します。

  2. レポートで使用するフォントについて、次の項目を確認します。

    • UNIXで使用可能なフォントを使用します。Windows (TTFファイル)で使用可能なすべてのフォント・ファイルが、UNIX (AFMファイルまたはTFMファイル)でも使用できるとは限りません。UNIXプラットフォームで使用できる適切なAFMまたはTFMフォント・ファイルがある場合は、そのフォント・ファイルを使用できます(PostScriptの場合はAFMファイル、PCLの場合はTFMファイル)。


      注意:

      AFMがサポートされるのは、日本語エンコードを除き、シングルバイトのPostScriptファイル生成時のみです。

      AFMファイルに対してサポートされるコード体系は、次のとおりです。

      • AdobeStandardEncoding

      • ExtJIS12-88-CFEncoding

      • FontSpecific

      • HRoman

      • ISOLatinHebrew

      • JIS12-88-CFEncoding

      • JIS12e-88-CFEncoding


    • 適切に拡大または縮小可能なフォントを使用します。たとえば、Tahomaは異なるフォント・サイズに適切に拡張または縮小できますが、MS Sans Serifはできません。これは、MS Sans Serifがラスター・フォントであるためです。ラスター・フォントは任意のサイズに変更できず、一般的に表示が粗くなる問題があります。一方、TahomaはTrueTypeフォントであり、MS Sans Serifフォントと非常に似ています。またTahomaはベクトル・フォントであるため、任意のサイズに変更したり、適切な角度にフォントを回転したりできます。

12.5.2 Motifツール・キット・メカニズムを使用する11gより前のバージョンでのレポートの配布

UNIX上に使用可能なAFMフォント・ファイルがない場合、または文字の不揃いなどレポート出力にフォントの問題が発生した場合は、ttf2pt1など、サード・パーティの無料ユーティリティを使用してWindowsのTTFファイルを変換し、AFMファイルを生成できます。TFMファイルには変換しないでください。予測したとおりの結果にならない場合があります。

PDFフォント・サブセットを使用してUNIXプラットフォームにレポートを配布するには、次の作業が必要です。

  1. レポートに使用されているフォントに対応するTTFファイルを探します。これらのTTFファイルをAFMに変換して、レポートに使用されているフォント用のAFMファイルを作成します。

    TTFファイルからAFMファイルへの変換には、TrueTypeからType1へのフォント変換ユーティリティを使用します。たとえば、ttf2pt1を使用します。

  2. 変換後、AFMファイルの名前から拡張子.afmを削除します。例:

    表12-5 変換後のフォント・ファイル名

    変換前 変換後 変更した名前

    arial.ttf

    arial.afm

    Arial

    cour.ttf

    cour.afm

    CourierNew


  3. レポートに使用したWindowsのTTFファイルを、UNIXマシンのフォント・ディレクトリにコピーします。たとえば、$ORACLE_HOME/reports/fontsにコピーします。

  4. REPORTS_PATH環境変数にTTFファイルへのパスを追加します。これにより、Reports Runtimeはフォント・ファイルを参照できるようになります。

  5. 任意のテキスト・エディタを使用して、screenprinter.ppdファイルを編集します。


    注意:

    ORACLE_HOME/guicommon/tk/admin/uiprint.txtにエントリを追加してデフォルトのプリンタを定義している場合は、プリンタのPPDファイル(PostScriptプリンタ)またはHPDファイル(PCLプリンタ)に適切なエントリを追加する必要があります。

    Oracle Reports 10g リリース1 (9.0.4)以降、デフォルトのプリンタを設定していない場合は、次のようになります。

    • 画面を擬似実行するデフォルト・プリンタ・サーフェス(screenprinter.ppd)がフォーマットで使用されます。

    • screenprinter.ppdファイルに必要なフォントや解像度のエントリを追加する必要があります。

    PPDファイルとHPDファイルは次の場所にあります。

    • $ORACLE_INSTANCE/config/FRComponent/frcommon/guicommon/tk/admin

    • $ORACLE_HOME/guicommon/tk/admin

    Oracle Reportsは、HPDファイルまたはPPDファイルをまずOracleインスタンスの場所で検索し、それからOracleホームの場所で検索します。

    screenprinter.ppdファイルの詳細は、第10.8.1項「ScreenPrinter」を参照してください。


    使用するPPD/HPDファイルに、レポートに使用されているAFMファイルまたはTFMファイルすべてのエントリがあることを確認します。PPD/HPDファイルはプリンタ・ドライバの設定を含む構成ファイルであり、そのプリンタでサポートされるすべてのフォントがリストされています。

    PPDファイルのFont Informationセクションに移動して、必要なフォント・ファイルのエントリを次のような形式で追加します。

    *FONTNAME:ENCODING:VERSION:LOCATION
    

    例:

    *Font Arial: Standard "(Version 2.76)" Standard ROM
    *Font CourierNew: Standard "(Version 2.76)" Standard ROM
    

    PPDファイルに指定されているフォント名とAFMファイル名とが正確に一致していることを確認します。Oracle Reportsでは、PPDファイルのフォント名に基づいてAFMファイルを検索します。

  6. 変換したAFMファイルを$ORACLE_HOME/guicommon/tk/admin/AFMディレクトリにコピーします。

  7. uiprint.txtに、次のような適切なPPDファイルのエントリがあることを確認します。

    printer name:PostScript:2:test:ppd file
    

    例:

    printer1:PostScript:2:test:hpljet42.ppd
    
  8. 任意のテキスト・エディタを使用して、hpljet42.ppdファイルを編集します。


    注意:

    PPDファイルをORACLE_HOME/guicommon/tk/admin/PPDから次の場所にコピーします。

    $ORACLE_INSTANCE/config/FRComponent/frcommon/guicommon/tk/admin/PPD


  9. 使用するPPD/HPDファイルに、レポートに使用されているAFMファイルまたはTFMファイルすべてのエントリがあることを確認します。

    Font Informationセクションに移動して、新しいAFMファイルに必要なエントリを次のような形式で追加します。

    *FONTNAME:ENCODING:VERSION:LOCATION
    

    例:

    *Font Arial: Standard "(Version 2.76)" Standard ROM
    *Font CourierNew: Standard "(Version 2.76)" Standard ROM
    

    PPDファイルで指定されているフォント名とAFMファイル名とが一致していることを確認します。Oracle Reportsでは、PPDファイルにあるフォント名に基づいてファイルを検索します。

  10. レポートに使用されているフォントがエイリアシングされていないことを確認します。

    たとえば、uifont.aliファイルを編集し、[Global]セクションのエントリをコメント化します。この例では、デフォルトでArialとCourier Newのエイリアシングの対象にそれぞれHelveticaとCourierがデフォルトで指定されています。

    [ Global ] # Put mappings for all surfaces here.
    # Mapping from MS Windows
    #Arial = helvetica
    #"Courier New" = courier
    

    注意:

    uifont.aliファイルは、WindowsおよびUNIXでは次のディレクトリにあります。

    • Windowsの場合: ORACLE_INSTANCE\config\FRComponent\frcommon\tools\common

    • UNIXの場合: $ORACLE_INSTANCE/config/FRComponent/frcommon/guicommon/tk/admin

    フォントのエイリアシングは、特定のフォントについてAFMファイルが生成不可能な場合にのみ使用してください。その場合は、対象フォントを最も類似度が高いフォントにエイリアシングできます。エイリアシングのフォントは、レポート出力を生成するマシンにはなくても、レポート出力を表示するマシンでは必ず使用できる必要があります。


  11. [PDF:Subset]セクションに、レポートで使用されているフォントのサブセットを作成するために必要なエントリを追加します。

    例:

    [ PDF:Subset ]
    "arial" = "arial.ttf"
    "courier new" = "cour.ttf"
    

    PDFファイルの移植性を実現するため、フォント・サブセットまたはフォント埋込みのいずれかを使用できます。この移植性によって、レポートを表示するマシンにフォントがインストールされているかどうかにかかわらず、PDFレポートを表示できます。

  12. レポートをPDFで実行して表示します。PDFには、レポートで使用されているフォントが含まれているはずです。この例では、ArialとCourier Newフォントです。

    使用されているフォントを確認するには、次の手順を実行します。

    • Acrobat Reader 6.0の場合は、「ファイル」「文書のプロパティ」「フォント」を選択します。

    • Acrobat Reader 3.0以降では、「ファイル」「文書情報」「フォント」を選択します。

    「オリジナルフォント」列にArialフォントとTahomaフォントが表示されます。これで、フォントの位置のずれがすべて修正されたはずです。

12.5.2.1 トラブルシューティング情報

配布に関する問題が発生した場合は、次のトラブルシューティング情報を参照してください。

  • PDF出力でフォントが正しく表示されない場合は、環境変数DEBUG_SLFINDを、debug.txtなどのログ・ファイル名に設定してからレポートを実行します。PPDファイルと使用されているフォントの解析時に参照されるフォント・ファイルが、指定したファイルに書き込まれます。特に次の項目について確認してください。

    1. 変更したPPDファイルが参照されているはずです。参照されていない場合は、構成に問題があります。詳細は、第9章「Oracle Reportsでのフォントの管理」を参照してください。

    2. 次に、AFMディレクトリにコピーしたAFMファイルが参照されているはずです。

    DEBUG_SLFINDの詳細は、第10章「UNIXでのOracle Reportsによる印刷」を参照してください。

12.5.3 よくある質問

この項では、レポートをシングルバイトPDF出力に配布する作業に関連したよくある質問(FAQ)に回答します。

質問

PDFレポートをWindowsプラットフォームとUNIXプラットフォームに配布したときではページ数が異なります。どのようにすれば解決できますか?

回答

レポートは、デフォルトのプリンタを使用してフォーマットされます。そのため、両方のプリンタで同じ解像度とフォントが使用されている必要があります。その1つの方法としては、Windows TTFフォント・ファイルからAFMファイルを生成し、WindowsのTTFファイルとAFMファイルをUNIXの適切なフォルダにコピーします。また、PPD/HPDファイルにWindowsと同じ解像度を設定します。詳細は、前述の手順を参照してください。

質問

UNIXの異なるインストールでレポートを実行すると、レポートのページ数が異なります。インストールに関係なくレポートのページ数を同じにするには、どうすればよいでしょうか?

回答

UNIXでは、Oracle Reportsはインストールのデフォルト・プリンタのPPD/HPDファイルを使用してフォーマットを行います。解像度やフォント・リストは、このPPD/HPDファイルから取得されます。Oracle Reports 10g (9.0.4)以降、インストールにデフォルトのプリンタが設定されていないと、screenprinter.ppdが使用されるようになりました。このPPDファイルによって画面がエミュレートされます。初期のリリースのOracle Reportsでは、かわりにDISPLAY環境変数が使用されていました。2つのインストール間で同じAFM/TFMファイルおよびフォント・ファイルが使用されていることを確認します。これで、PDF出力のページ数は同じになるはずです。