CreateFontPackage 関数 (fontsub.h)
CreateFontPackage 関数は、通常、プリンターに渡すために、指定された TrueType フォントのサブセット バージョンを作成します。 文書の後半のページで最初のページで使用されなかった文字またはグリフが必要になる可能性があるため、この関数は最初のサブセット フォント パッケージを作成してから、元のサブセット フォント パッケージとマージできる "Delta" フォント パッケージを作成し、効果的に拡張できます。
構文
unsigned long CreateFontPackage(
[in] const unsigned char *puchSrcBuffer,
[in] const unsigned long ulSrcBufferSize,
[out] unsigned char **ppuchFontPackageBuffer,
[out] unsigned long *pulFontPackageBufferSize,
[out] unsigned long *pulBytesWritten,
[in] const unsigned short usFlag,
[in] const unsigned short usTTCIndex,
[in] const unsigned short usSubsetFormat,
[in] const unsigned short usSubsetLanguage,
[in] const unsigned short usSubsetPlatform,
[in] const unsigned short usSubsetEncoding,
[in] const unsigned short *pusSubsetKeepList,
[in] const unsigned short usSubsetListCount,
[in] CFP_ALLOCPROC lpfnAllocate,
[in] CFP_REALLOCPROC lpfnReAllocate,
[in] CFP_FREEPROC lpfnFree,
[in] void *lpvReserved
);
パラメーター
[in] puchSrcBuffer
ソース TTF または TTC データを含むバッファーを指し、サブセット化するフォントを記述します。
[in] ulSrcBufferSize
*puchSrcBuffer のサイズをバイト単位で指定します。
[out] ppuchFontPackageBuffer
unsigned char* 型の変数を指します。 CreateFontPackage 関数は、lpfnAllocate と lpfnReAllocate を使用してバッファー **puchFontPackageBuffer を割り当てます。 正常に返されると、バッファーにはサブセット フォントまたはフォント パッケージが含まれます。 アプリケーションは、最終的にバッファーを解放する役割を担います。
[out] pulFontPackageBufferSize
符号なし long を指します。正常に返されると、バッファー **puchFontPackageBuffer の割り当てられたサイズが指定されます。
[out] pulBytesWritten
符号なし long を指します。正常に返されると、バッファー **puchFontPackageBuffer で実際に使用されるバイト数が指定されます。
[in] usFlag
このフォントをサブセット化するか、圧縮するか、またはその両方にするかを指定します。TTF か TTC か。および*pusSubsetKeepListrepresents 文字コードまたはグリフ インデックスかどうか。 次のフラグの任意の組み合わせを指定できます。
[in] usTTCIndex
0 から始まる TTC インデックス。 usFlags でTTFCFP_FLAGS_TTCが設定されている場合にのみ使用されます。
[in] usSubsetFormat
作成するファイルの形式。 これらの値のいずれかを選択します。組み合わせることはできません。
値 | 意味 |
---|---|
|
後で とマージできないスタンドアロンのサブセット フォントを作成します。 |
|
後で とマージできるサブセット フォント パッケージを作成します。 |
|
以前のサブセット フォントとマージできる Delta フォント パッケージを作成します。 |
[in] usSubsetLanguage
保持する Name テーブル内の言語。 0 に設定すると、すべての言語が保持されます。 初期サブセット化にのみ使用されます。つまり、 usSubsetFormat がTTFCFP_SUBSETまたはTTFCFP_SUBSET1で、TTFCFP_FLAGS_SUBSET フラグが usFlags で設定されている場合にのみ使用されます。
[in] usSubsetPlatform
usSubsetEncoding と組み合わせて、使用する CMAP を指定します。 *pusSubsetKeepList が文字の一覧である場合にのみ使用されます。つまり、 usFlags でTTFCFP_FLAGS_GLYPHLISTが設定されていない場合にのみ使用されます。 その場合、この CMAP サブテーブルが pusSubsetKeepList に適用され、出力フォントまたはフォント パッケージに保持するグリフの一覧が作成されます。
使用する場合は、次のいずれかの値を受け取る必要があります。これらを組み合わせることはできません。
値 | 意味 |
---|---|
|
|
|
|
|
|
|
[in] usSubsetEncoding
usSubsetPlatform と組み合わせて、使用する CMAP を指定します。 *pusSubsetKeepList が文字の一覧である場合にのみ使用されます。つまり、 usFlags でTTFCFP_FLAGS_GLYPHLISTが設定されていない場合にのみ使用されます。
使用する場合は、次のいずれかの値を受け取る必要があります。これらを組み合わせることはできません。
[in] pusSubsetKeepList
出力フォントまたはフォント パッケージに保持する必要がある文字コードまたはグリフ インデックスの一覧を構成する整数の配列を指します。 このリストに文字コードが含まれている場合 (つまり、 usFlags でTTFCFP_FLAGS_GLYPHLISTが設定されていない場合)、このリストは、 usSubsetPlatform と usSubsetEncoding で指定された Platform-Encoding CMAP に応じて、Unicode またはその他の種類のエンコードである可能性があります。
[in] usSubsetListCount
リスト *pusSubsetKeepList 内の要素の数。
[in] lpfnAllocate
puchFontPackageBuffer および一時バッファーに初期メモリを割り当てるコールバック関数。
[in] lpfnReAllocate
puchFontPackageBuffer と一時バッファーのメモリを再割り当てするコールバック関数。
[in] lpfnFree
lpfnAllocate および lpfnReAllocate によって割り当てられたメモリを解放するコールバック関数。
[in] lpvReserved
NULL に設定する必要があります。
戻り値
関数が成功した場合は、0 を返します。
それ以外の場合は、0 以外の値を返します。 エラーが返される可能性については、「 Font-Package 関数のエラー メッセージ 」を参照してください。
注釈
usSubsetFormat に TTFCFP_SUBSET の値を指定すると、フォント パッケージではなく、作業フォントを直接作成できます。 今後のマージは許可されませんが、マージする必要がない場合は、ダウンストリーム処理の手順をスキップします。フォント パッケージを使用する前に、フォント パッケージを作業フォントに変換し直す必要があります。
usSubsetFormat に TTFCFP_SUBSET1 の値を指定すると、後でマージできるフォント パッケージを作成できます。 たとえば、アプリケーションが大きな印刷ジョブの開始時にこの関数を呼び出す場合を考えてみましょう。 印刷ジョブの途中で、アプリケーションは、ビルドしたサブセットにないグリフが必要であることを検出します。 アプリケーションは CreateFontPackage を別の呼び出しで呼び出すことができます。今回は 、usSubsetFormat に TTFCFP_DELTA の値を指定します。 プリンターでは 、MergeFontPackage を使用して、これらの追加のグリフをマージできます。
CMAP は、文字エンコーディングからグリフにマップされます。 *pusSubsetKeepList が文字値のリストである場合、アプリケーションはパラメーター usSubsetPlatform と usSubsetEncoding を 使用して、使用する CMAP の種類を指定し、文字値をグリフにマップできるようにします。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | fontsub.h |
Library | FontSub.lib |
[DLL] | FontSub.dll |