カスタマイズされたフォント管理
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
PCL プリンターの場合、Unidrv では、ビットマップまたは TrueType アウトラインとしてのソフト フォントのダウンロードがサポートされています。 デバイスフォントの場合、UnidrvはPCL、CAPSL、PPDSプリンターコマンドフォーマットをサポートします。 その他の形式の場合は、レンダリング プラグインでカスタマイズされたフォント管理コードを指定する必要があります。 次の IPrintOemUni メソッドのセットを実装できます。
IPrintOemUni::DownloadFontHeader
Unidrv からソフト フォントのヘッダー情報を取得し、プリンターに情報をダウンロードするために使用します。
IPrintOemUni::DownloadCharGlyph
ソフト フォントの文字グリフをプリンターにダウンロードするために使用します。
IPrintOemUni::OutputCharStr
文字の印刷を制御するために使用されます。
IPrintOemUni::SendFontCmd
プリンターのデバイス フォント選択コマンドを変更するために使用し、必要に応じてプリンターに送信します。
IPrintOemUni::TextOutAsBitmap
テキスト文字列のビットマップ イメージを作成するために使用します。
IPrintOemUni::TTDownloadMethod
Unidrv がプリンターに指定したソフト フォントを送信するときに使用するグリフ形式を指定するために使用します。
Unidrv は、 レンダリング プラグインがフォントまたはグリフ情報を取得するために呼び出すことができるコールバック関数 UNIFONTOBJGetInfo を提供します。
デバイス フォントの場合は、「Unidrv フォント メトリック ファイル」セクションと「グリフ変換テーブル ファイル」セクションで説明されているように、フォントの説明を指定する必要があります。
カートリッジ フォントの場合、フォント記述はリソース DLL で提供でき、GPD ファイル内のフォント カートリッジ項目を使用して指定できます。 フォントの説明は、Unidrv フォント形式ファイルの形式で提供することもできます。
ダウンロード可能な PCL ソフト フォントの場合は、「Unidrv フォント形式ファイル」セクションで説明されているように、フォントの説明を指定する必要があります。
Unidrv フォント メトリック ファイル
プリンターがサポートする各デバイス フォントは、Unidrv フォント メトリック (.ufm) ファイルを表します。 .ufm ファイルは、「Unidrv Font Metrics Structures」 で説明されている構造を使用して構築されるバイナリ ファイルです。 .ufm ファイル内の最初の構造体は 、ファイルの他の構造体へのオフセットを含む UNIFM_HDR です。 次の図は、Unidrv フォント メトリック ファイルのレイアウトを示しています。
Unidrv では、Windows NT 4.0 用に作成されたフォント メトリック ファイルである .ifi ファイルもサポートされています。
グリフ変換テーブル ファイル
プリンターがサポートする各デバイス フォントは、グリフ変換テーブル (.gtt) ファイルを表します。 .gtt ファイルは 「Unidrv グリフ トランスレーションテーブル構造」 に記載の構造を使用して構築されたバイナリ ファイルです。 .gtt ファイルの最初の構造体は、ファイルの他の構造体へのオフセットを含む UNI_GLYPH Standard Edition TDATA 構造体です。
次の図は、グリフ変換テーブル ファイルのレイアウトを示しています。
上の図では、UNI_GLYPH Standard Edition TDATA 構造体には、ファイルの先頭から最初の GLYPHRUN 構造体、最初の UNI_CODEPAGEINFO 構造体、および MAPTABLE 構造体へのオフセットが含まれています。
Unidrv では、実行長エンコード (RLE) 圧縮を使用し、拡張子が .rle である Windows NT 4.0 用に作成されたグリフ変換ファイルもサポートしています。
Unidrv フォント形式ファイル
GDPファイルの フォントカートリッジエントリ の使用を使用されていないカートリッジフォントについては、当該フォントがUnidrvフォントフォーマット (.uff) ファイルに記述されている必要があります。 さらに、ダウンロード可能な PCL ソフト フォントは、.uff ファイルを使用して指定する必要があります。
.uff ファイルは、次の一連の構造体を使用して構築されたバイナリ ファイルです。
.uff ファイルの内容と構造を定義する Unidrv フォント形式の構造体。
Unidrv フォント メトリックの構造。各フォントのメトリックを定義します。
Unidrv グリフ変換テーブル構造。フォントで使用されるグリフ セットを定義します。
次の図は、Unidrv フォント形式ファイルのレイアウトを示しています。
Unidrv フォント形式ファイルは、UFF_FILEHEADER 構造体と、1 つ以上の UFF_FONTDIRECTORY と DATA_HEADER 構造体のペアで構成されます。 各 DATA_HEADER 構造体は、フォント データのブロックに関連付けられています。 UFF_FILEHEADER構造体には、ファイルの先頭から最初の UFF_FONTDIRECTORY 構造体までのオフセットが含まれています。 各 UFF_FONTDRECTORY 構造体には、ファイルの先頭からフォント データを含むDATA_HEADER構造体へのオフセットが含まれています。
さらに、ダウンロード可能な PCL ソフト フォントの場合、ダウンロードするバイナリ データは .uff ファイルに格納されます。
.uff ファイルの作成は、ベンダーが提供するフォント インストール ソフトウェアの責任です。 Unidrv は、プリンターの .uff ファイルを読み取って、フォントとグリフの情報を取得します。 フォントの追加または削除時に、フォント インストーラーで .uff ファイルの内容を変更する必要があります。 フォント インストーラーの作成の詳細については、「Unidrv 用のカスタマイズされたフォント インストーラー」 を参照してください。
すべての .uff ファイルは、%SystemRoot%\System32\Spool\Drivers\Unifont ディレクトリに格納する必要があります。 個々の .uff ファイルを特定のプリンターに関連付けるには、インストール ソフトウェアで SetPrinterData 関数 (Windows SDK ドキュメントで説明) を呼び出して、各プリンターのレジストリ キーの下にレジストリ値を作成する必要があります。 次のテーブルに、使用する必要があるレジストリ値の名前を示し、各値のメインコンテナーを示します。
レジストリ値の名前と種類 | 値の定義 | メンテナ |
---|---|---|
"ExternalFontFile" REG_SZ |
現在インストールされているフォントを指定する .uff ファイルのファイル名。 フォントは、ダウンロード可能またはカートリッジに含めることができます。 | フォント インストーラー |
"ExtFontCartFile" REG_SZ |
"ExtFontCartNames" にリストされているすべてのフォント カートリッジに含まれるすべてのフォントを指定する .uff ファイルのファイル名。 | フォント インストーラー |
"ExtFontCartNames" REG_MULTI_SZ |
プリンターにインストールできる可能性のあるすべてのフォントカートリッジの名前。 | フォント インストーラー |
"FontCart" REG_MULTI_SZ |
プリンター用に現在インストールされているすべてのフォントカートリッジの名前。 | Unidrv ユーザー インターフェース |
プリンターにフォント カートリッジを追加した後、システム管理者はフォント インストーラーを実行する必要があります。このインストーラーは、"ExtFontCartFile" で指定された .uff ファイルから "ExternalFontFile" で指定された .uff ファイルにフォントの記述をコピーする必要があります。 同様に、フォント インストーラーは、カートリッジを取り外すときに、"ExtFontCartFile" で指定された .uff ファイルからフォントの説明を削除する必要があります。