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:
[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.
[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 |
---|---|
|
|
|
|
|
|
|
[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:
[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 |