Bagikan melalui


Fungsi CreateFontPackage (fontsub.h)

Fungsi CreateFontPackage membuat versi subset dari font TrueType tertentu, biasanya untuk meneruskannya ke printer. Untuk memungkinkan fakta bahwa halaman nanti dalam dokumen mungkin memerlukan karakter atau glyph yang tidak digunakan pada halaman pertama, fungsi ini dapat membuat paket font subset awal, lalu membuat paket font "Delta" yang dapat digabungkan dengan paket font subset asli, secara efektif memperluasnya.

Sintaks

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
);

Parameter

[in] puchSrcBuffer

Menunjuk ke buffer yang berisi data TTF atau TTC sumber, yang menjelaskan font yang akan disubset.

[in] ulSrcBufferSize

Menentukan ukuran *puchSrcBuffer, dalam byte.

[out] ppuchFontPackageBuffer

Menunjuk ke variabel jenis karakter yang tidak ditandatangani*. Fungsi CreateFontPackage akan mengalokasikan buffer **puchFontPackageBuffer, menggunakan lpfnAllocate dan lpfnReAllocate. Saat pengembalian berhasil, buffer akan berisi font subset atau paket font. Aplikasi ini bertanggung jawab untuk akhirnya membebaskan buffer.

[out] pulFontPackageBufferSize

Menunjuk ke panjang yang tidak ditandatangani, yang pada pengembalian berhasil akan menentukan ukuran buffer **puchFontPackageBuffer yang dialokasikan.

[out] pulBytesWritten

Menunjuk ke panjang yang tidak ditandatangani, yang pada pengembalian berhasil akan menentukan jumlah byte yang benar-benar digunakan dalam buffer **puchFontPackageBuffer.

[in] usFlag

Menentukan apakah font ini harus disubset, dikompresi, atau keduanya; apakah itu TTF atau TTC; dan apakah*pusSubsetKeepListrepresents kode karakter atau indeks glyph. Kombinasi bendera berikut dapat ditentukan:

Nilai Makna
TTFCFP_FLAGS_SUBSET
Jika diatur, permintaan subset.
TTFCFP_FLAGS_COMPRESS
Jika diatur, meminta kompresi. Versi pengiriman fungsi ini saat ini tidak melakukan pemadatan. Bendera ini memungkinkan implementasi kemampuan ini di masa mendatang, tetapi saat ini diabaikan.
TTFCFP_FLAGS_TTC
Jika diatur, menentukan bahwa font di puchSrcBuffer adalah TTC; jika tidak, itu harus TTF.
TTFCFP_FLAGS_GLYPHLIST
Jika diatur, menentukan bahwa*pusSubsetKeepListis daftar indeks glyph; jika tidak, itu harus berupa daftar kode karakter.

[in] usTTCIndex

Indeks TTC berbasis nol; hanya digunakan jika TTFCFP_FLAGS_TTC diatur dalam usFlags.

[in] usSubsetFormat

Format file yang akan dibuat. Pilih salah satu nilai ini; mereka tidak dapat digabungkan.

Nilai Makna
TTFCFP_SUBSET
Buat font Subset mandiri yang tidak dapat digabungkan dengan nanti.
TTFCFP_SUBSET1
Buat paket font Subset yang dapat digabungkan dengan nanti.
TTFCFP_DELTA
Buat paket font Delta yang dapat digabungkan dengan font subset sebelumnya.

[in] usSubsetLanguage

Bahasa dalam tabel Nama untuk dipertahankan. Jika Diatur ke 0, semua bahasa akan dipertahankan. Digunakan hanya untuk subset awal: yaitu, hanya digunakan jika usSubsetFormat TTFCFP_SUBSET atau TTFCFP_SUBSET1, dan bendera TTFCFP_FLAGS_SUBSET diatur di usFlags.

[in] usSubsetPlatform

Bersama dengan usSubsetEncoding, menentukan CMAP mana yang akan digunakan. Hanya digunakan jika *pusSubsetKeepList adalah daftar karakter: yaitu, digunakan hanya jika TTFCFP_FLAGS_GLYPHLIST tidak diatur di usFlags. Dalam hal ini, dengan subtable CMAP ini diterapkan ke pusSubsetKeepList untuk membuat daftar glyph untuk dipertahankan dalam font output atau paket font.

Jika digunakan, ini harus mengambil salah satu nilai berikut; mereka tidak dapat digabungkan:

Nilai Makna
TTFCFP_UNICODE_PLATFORMID
TTFCFP_APPLE_PLATFORMID
TTFCFP_ISO_PLATFORMID
TTFCFP_MS_PLATFORMID

[in] usSubsetEncoding

Bersama dengan usSubsetPlatform, menentukan CMAP mana yang akan digunakan. Hanya digunakan jika *pusSubsetKeepList adalah daftar karakter: yaitu, digunakan hanya jika TTFCFP_FLAGS_GLYPHLIST tidak diatur di usFlags.

Jika digunakan, ini harus mengambil salah satu nilai berikut; mereka tidak dapat digabungkan:

Nilai Makna
TTFCFP_STD_MAC_CHAR_SET
Hanya dapat digunakan jika usSubsetPlatform == TTFCFP_APPLE_PLATFORMID.
TTFCFP_SYMBOL_CHAR_SET
Hanya dapat digunakan jika usSubsetPlatform == TTFSUB_MS_PLATFORMID.
TTFCFP_UNICODE_CHAR_SET
Hanya dapat digunakan jika usSubsetPlatform == TTFSUB_MS_PLATFORMID.
TTFCFP_DONT_CARE

[in] pusSubsetKeepList

Menunjuk ke array bilangan bulat yang terdiri dari daftar kode karakter atau indeks glyph yang harus dipertahankan dalam font output atau paket font. Jika daftar ini berisi kode karakter (yaitu, jika TTFCFP_FLAGS_GLYPHLIST tidak diatur dalam usFlags), daftar ini mungkin Unicode atau beberapa jenis pengodean lainnya, tergantung pada Platform-Encoding CMAP yang ditentukan oleh usSubsetPlatform dan usSubsetEncoding.

[in] usSubsetListCount

Jumlah elemen dalam daftar *pusSubsetKeepList.

[in] lpfnAllocate

Fungsi panggilan balik untuk mengalokasikan memori awal untuk puchFontPackageBuffer dan untuk buffer sementara.

[in] lpfnReAllocate

Fungsi panggilan balik untuk mengalokasikan ulang memori untuk puchFontPackageBuffer dan untuk buffer sementara.

[in] lpfnFree

Fungsi panggilan balik untuk mengosongkan memori yang dialokasikan oleh lpfnAllocate dan lpfnReAllocate.

[in] lpvReserved

Harus diatur ke NULL.

Nilai kembali

Jika fungsi berhasil, mengembalikan nol.

Jika tidak, mengembalikan nilai bukan nol. Lihat Pesan Kesalahan Fungsi Font-Package untuk kemungkinan kesalahan ditampilkan.

Keterangan

Dengan menentukan nilai TTFCFP_SUBSET untuk usSubsetFormat, Anda dapat langsung membuat font yang berfungsi daripada paket font. Ini tidak memungkinkan penggabungan di masa depan, tetapi jika tidak perlu menggabungkan, ini melewati langkah dalam pemrosesan hilir: paket font perlu dikonversi kembali ke font yang berfungsi sebelum dapat digunakan.

Dengan menentukan nilai TTFCFP_SUBSET1 untuk usSubsetFormat, Anda dapat membuat paket font yang memungkinkan penggabungan nanti. Misalnya, pertimbangkan kasus di mana aplikasi memanggil fungsi ini di awal pekerjaan cetak besar. Sebagian melalui pekerjaan cetak, aplikasi menemukan bahwa ia membutuhkan glyph yang tidak ada di subset yang telah dibangunnya. Aplikasi dapat melakukan panggilan lain ke CreateFontPackage, kali ini menentukan nilai TTFCFP_DELTA untuk usSubsetFormat. Printer dapat menggunakan MergeFontPackage untuk menggabungkan dalam glyph tambahan ini.

CMAP memetakan dari pengodean karakter ke glyph. Jika *pusSubsetKeepList adalah daftar nilai karakter, maka aplikasi menggunakan parameter usSubsetPlatform dan usSubsetEncoding untuk menentukan jenis CMAP apa yang digunakan, sehingga nilai karakter dapat dipetakan ke glyph.

Persyaratan

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header fontsub.h
Pustaka FontSub.lib
DLL FontSub.dll

Lihat juga

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

MergeFontPackage