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 文字コードまたはグリフ インデックスかどうか。 次のフラグの任意の組み合わせを指定できます。

意味
TTFCFP_FLAGS_SUBSET
設定されている場合は、サブセット化を要求します。
TTFCFP_FLAGS_COMPRESS
設定すると、圧縮が要求されます。 この関数の現在の出荷バージョンでは、圧縮は行われません。 このフラグを使用すると、この機能の今後の実装が可能になりますが、現在は無視されます。
TTFCFP_FLAGS_TTC
が設定されている場合は、 puchSrcBuffer のフォントが TTC であることを指定します。それ以外の場合は、TTF である必要があります。
TTFCFP_FLAGS_GLYPHLIST
が設定されている場合は、*pusSubsetKeepList がグリフ インデックスのリストであることを指定します。それ以外の場合は、文字コードのリストである必要があります。

[in] usTTCIndex

0 から始まる TTC インデックス。 usFlags でTTFCFP_FLAGS_TTCが設定されている場合にのみ使用されます。

[in] usSubsetFormat

作成するファイルの形式。 これらの値のいずれかを選択します。組み合わせることはできません。

意味
TTFCFP_SUBSET
後で とマージできないスタンドアロンのサブセット フォントを作成します。
TTFCFP_SUBSET1
後で とマージできるサブセット フォント パッケージを作成します。
TTFCFP_DELTA
以前のサブセット フォントとマージできる 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 に適用され、出力フォントまたはフォント パッケージに保持するグリフの一覧が作成されます。

使用する場合は、次のいずれかの値を受け取る必要があります。これらを組み合わせることはできません。

意味
TTFCFP_UNICODE_PLATFORMID
TTFCFP_APPLE_PLATFORMID
TTFCFP_ISO_PLATFORMID
TTFCFP_MS_PLATFORMID

[in] usSubsetEncoding

usSubsetPlatform と組み合わせて、使用する CMAP を指定します。 *pusSubsetKeepList が文字の一覧である場合にのみ使用されます。つまり、 usFlags でTTFCFP_FLAGS_GLYPHLISTが設定されていない場合にのみ使用されます。

使用する場合は、次のいずれかの値を受け取る必要があります。これらを組み合わせることはできません。

意味
TTFCFP_STD_MAC_CHAR_SET
usSubsetPlatform == TTFCFP_APPLE_PLATFORMID場合にのみ使用できます。
TTFCFP_SYMBOL_CHAR_SET
usSubsetPlatform == TTFSUB_MS_PLATFORMID場合にのみ使用できます。
TTFCFP_UNICODE_CHAR_SET
usSubsetPlatform == TTFSUB_MS_PLATFORMID場合にのみ使用できます。
TTFCFP_DONT_CARE

[in] pusSubsetKeepList

出力フォントまたはフォント パッケージに保持する必要がある文字コードまたはグリフ インデックスの一覧を構成する整数の配列を指します。 このリストに文字コードが含まれている場合 (つまり、 usFlags でTTFCFP_FLAGS_GLYPHLISTが設定されていない場合)、このリストは、 usSubsetPlatformusSubsetEncoding で指定された 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 が文字値のリストである場合、アプリケーションはパラメーター usSubsetPlatformusSubsetEncoding を 使用して、使用する CMAP の種類を指定し、文字値をグリフにマップできるようにします。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー fontsub.h
Library FontSub.lib
[DLL] FontSub.dll

こちらもご覧ください

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

MergeFontPackage