日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


日本語HP DECprint Supervisor for OpenVMS

日本語HP DECprint Supervisor for OpenVMS
ユーザーズ・ガイド


目次 索引

付録E 追加された文字エンコーディング

この章では,次のことについて説明します。

  • 提供されるエンコーディング・ベクタ, 付録 E.1 節

  • エンコーディング・ベクタの例, 付録 E.2 節

  • 追加エンコーディングの使用, 付録 E.3 節

  • プリント・ジョブでのDECMCSエンコーディング・モジュールの指定, 付録 E.4 節

  • サード・パーティ・プリンタのためのISO Latin-1の定義, 付録 E.5 節



E.1 提供されるエンコーディング・ベクタ

PostScriptでは,Adobe Standard Encodingベクタを使用してエンコーディング (コード付け) された文字セットが提供されます。PostScriptプログラムがフォントを呼び出す場合には, findfont オペレータはこのベクタを使用して文字と文字コードを対応づけます。

PostScriptではまた,ISOLatin1Encodingという名前の ISO Latin-1エンコーディング・ベクタも提供されます。これは ISO Latin Alphabet Number 1 Standard (ISO 8859/1)で使用されるエンコーディング方式です。大部分のPostScriptテキスト・フォントでは, ISO Latin-1エンコーディングで使用されるすべての文字が提供されます。 ISO Latin Alphabet Number 1 Standardに含まれている文字の一覧については,『 PostScript Printers Programmer's Supplement 』を参照してください。

Adobe StandardおよびISO Latin-1エンコーディングの他に, DECprint Supervisor ソフトウェアでは DECMCS (DECマルチナショナル文字セット)エンコーディングも提供されます。 DECマルチナショナル文字セットに含まれる文字の一覧については,『 PostScript Printers Programmer's Supplement 』を参照してください。

ISO Latin-1およびDECMCSエンコーディングに含まれる文字は,独立したフォント・メトリックス・ファイル(.AFMファイル)を持ちません(.AFMファイルについての詳しい説明は『 PostScript Printers Programmer's Supplement 』を参照してください)。フォント・メトリックス・ファイルに登録されている文字情報を検索しなければならない場合には,エンコーディングによってではなく,名前で文字を検索してください。

E.2 エンコーディング・ベクタの例

例 E-1 では,DECMCSエンコーディング・ベクタの定義方法を示しています。これらのエンコーディング・ベクタの定義方法についての詳しい説明は,『 PostScript Printers Programmer's Supplement 』を参照してください。

エンコーディング・ベクタDECMCSEncodingは,ISOLatin1Encodingというベクタを変更することにより定義されます。

例 E-1 DECMCSエンコーディング・ベクタの定義
%! DECMCSEncoding.PS 
% 
% Create DEC Multinational Character Set (MCS) encoding vector. 
 
/DECMCSEncoding ISOLatin1Encoding 256 array copy def 
 
mark 
  8#177 8#240 8#244 8#246 8#254 8#255 8#256 8#257 
  8#264 8#270 8#276 8#320 8#336 8#360 8#376 8#377 
counttomark 
{DECMCSEncoding exch /questionmirror put} 
repeat 
% stack now contains   mark 
  8#250 /currency 
  8#327 /OE 
  8#335 /Ydieresis 
  8#367 /oe 
  8#375 /ydieresis 
counttomark 2 idiv 
{DECMCSEncoding 3 1 roll put} 
repeat 
% stack now contains   mark 
cleartomark 



E.3 追加エンコーディングの使用

Adobe Standard Encoding以外の文字エンコーディングを使用するには,次の操作を実行します。

  1. 新しいフォントを作成するために,PostScriptプログラムのプロローグで,エンコーディング・ベクタをフォントに適用するプロシージャ,たとえば, encodefont を定義します。findfont を起動する前に,ユーザ・プログラムで encodefont を呼び出すことにより,適切なエンコーディング・ベクタを使用してフォントをエンコーディングします。 encodefont のコードは次のとおりです。

    /encodefont { 
        findfont dup                % Get the old font dict 
        maxlength dict begin        % Make a new one just as big 
        {   1 index /FID ne         % Copy everything but FID 
            {   def } 
            {   pop pop } 
            ifelse } 
        forall 
        /Encoding exch def          % Install the new encoding 
        dup /FontName exch def      % new font dict is still current. 
        currentdict definefont      % Create the new font. 
        end 
    } bind def 
    

  2. encodefont プロシージャを使用して新しいフォントを作成します。このプロシージャは3つの引数を必要とします。

    • 新しいフォントの名前

    • エンコーディング・ベクタ

    • 古いフォントの名前


    encodefont プロシージャは新しい名前とエンコーディングを使用して新しいフォントを作成し,新しいフォントを戻します。新しいフォントに対しては任意の名前を選択できます。古いフォントの名前とエンコーディング・ベクタを含む名前を選択すると適切です。
    新しいフォントを作成し,ただちにそのフォントを使用できます。また,新しいフォントを作成した後,プログラムでそのフォントを使用することも可能です。たとえば,ISO Latin-1を使用してエンコーディングされるTimes-Romanフォントを作成し,使用するには,次のコードを使用します。

    /Times-Roman-ISOLatin1 ISOLatin1Encoding 
            /Times-Roman encodefont 
    12 scalefont setfont 
    


    フォントを作成した後,プログラムでそのフォントを使用するには,次のコードを使用します。

    /Times-Roman-ISOLatin1 ISOLatin1Encoding 
            /Times-Roman encodefont pop 
       .
       .
       .
    /Times-Roman-ISOLatin1 findfont 12 scalefont setfont 
    

DECMCSエンコーディングを使用するには,このエンコーディング・ベクタを定義する装置制御ライブラリ・モジュール(LPS$DECMCSENCODING)も指定しなければなりません。 LPS$DECMCSENCODINGモジュールはエンコーディング・ベクタだけを提供します。バージョン40以前のPostScriptで未定義だった文字は定義されません。

例 E-1 では,DECMCSエンコーディング・ベクタの定義方法が示されています。

E.4 プリント・ジョブでのDECMCSエンコーディング・モジュールの指定

DECMCSエンコーディング・モジュールを使用するには,次のように指定します。

$ PRINT/SETUP=(LPS$DECMCSENCODING) filename.PS



E.5 サード・パーティ・プリンタのためのISO Latin-1の定義

バージョン40以前のPostScriptバージョンの PostScriptプリンタを使用する場合には,このエンコーディングを使用する PostScriptファイルを印刷するために,ISO Latin-1エンコーディング・ベクタを定義しなければなりません。たとえば,PostScriptの以前のバージョンを使用するタイプセッタで印刷するために,ISO Latin-1エンコーディング・ベクタを必要とする PostScriptプログラムがあるとします。

この場合には,encodefont プロシージャを使用できますが, PostScriptプログラムのプロローグでISO Latin-1エンコーディング・ベクタを定義しなければなりません。装置制御ライブラリから LPS$ISOLATIN1ENCODINGモジュールを取り出してください。

$ LIBRARY /EXTRACT=LPS$ISOLATIN1ENCODING -
_$ /OUTPUT=ISOLATIN1ENCODING.PS /TEXT SYS$LIBRARY:DCPS$DEVCTL

LPS$ISOLATIN1ENCODINGモジュールはエンコーディング・ベクタだけを提供します。このモジュールはバージョン40以前のPostScriptで未定義だった文字は定義しません。


目次 索引

© 2013 Hewlett-Packard Development Company, L.P.