Función CreateFontPackage (fontsub.h)
La función CreateFontPackage crea una versión de subconjunto de una fuente TrueType especificada, normalmente para pasarla a una impresora. Para permitir que las páginas posteriores de un documento necesiten caracteres o glifos que no se usaron en la primera página, esta función puede crear un paquete de fuentes de subconjunto inicial y, a continuación, crear paquetes de fuentes "Delta" que se pueden combinar con el paquete de fuentes del subconjunto original, extendiéndolo de forma eficaz.
Sintaxis
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
);
Parámetros
[in] puchSrcBuffer
Apunta a un búfer que contiene datos TTF o TTC de origen, que describen la fuente que se va a agrupar.
[in] ulSrcBufferSize
Especifica el tamaño de *puchSrcBuffer, en bytes.
[out] ppuchFontPackageBuffer
Apunta a una variable de tipo unsigned char*. La función CreateFontPackage asignará un búfer **puchFontPackageBuffer, mediante lpfnAllocate y lpfnReAllocate. Si la devolución se realiza correctamente, el búfer contendrá la fuente del subconjunto o el paquete de fuentes. La aplicación es responsable de liberar finalmente el búfer.
[out] pulFontPackageBufferSize
Apunta a un long sin signo, que al devolverse correctamente especificará el tamaño asignado del búfer **puchFontPackageBuffer.
[out] pulBytesWritten
Apunta a un long sin signo, que al devolverse correctamente especificará el número de bytes que se usan realmente en el búfer **puchFontPackageBuffer.
[in] usFlag
Especifica si esta fuente debe ser subconjunto, comprimido o ambos; si es TTF o TTC; y si*pusSubsetKeepListrepresenta códigos de caracteres o índices de glifo. Se puede especificar cualquier combinación de las marcas siguientes:
[in] usTTCIndex
Índice TTC basado en cero; solo se usa si TTFCFP_FLAGS_TTC se establece en usFlags.
[in] usSubsetFormat
Formato del archivo que se va a crear. Seleccione uno de estos valores; no se pueden combinar.
[in] usSubsetLanguage
Idioma de la tabla Name que se va a conservar. Si se establece en 0, se conservarán todos los idiomas. Solo se usa para el subconfiguración inicial: es decir, se usa solo si usSubsetFormat es TTFCFP_SUBSET o TTFCFP_SUBSET1, y la marca de TTFCFP_FLAGS_SUBSET se establece en usFlags.
[in] usSubsetPlatform
Junto con usSubsetEncoding, especifica qué CMAP se va a usar. Solo se usa si *pusSubsetKeepList es una lista de caracteres: es decir, se usa solo si TTFCFP_FLAGS_GLYPHLIST no se establece en usFlags. En ese caso, esta subtable CMAP se aplica a pusSubsetKeepList para crear una lista de glifos que se conservarán en la fuente de salida o en el paquete de fuentes.
Si se usa, debe tomar uno de los siguientes valores; no se pueden combinar:
Valor | Significado |
---|---|
|
|
|
|
|
|
|
[in] usSubsetEncoding
Junto con usSubsetPlatform, especifica qué CMAP se va a usar. Solo se usa si *pusSubsetKeepList es una lista de caracteres: es decir, se usa solo si TTFCFP_FLAGS_GLYPHLIST no se establece en usFlags.
Si se usa, debe tomar uno de los siguientes valores; no se pueden combinar:
[in] pusSubsetKeepList
Apunta a una matriz de enteros que componen una lista de códigos de caracteres o índices de glifo que se deben conservar en el paquete de fuente o fuente de salida. Si esta lista contiene códigos de caracteres (es decir, si TTFCFP_FLAGS_GLYPHLIST no se establece en usFlags), esta lista puede ser Unicode o algún otro tipo de codificación, dependiendo del Platform-Encoding CMAP especificado por usSubsetPlatform y usSubsetEncoding.
[in] usSubsetListCount
Número de elementos de la lista *pusSubsetKeepList.
[in] lpfnAllocate
Función de devolución de llamada para asignar memoria inicial para puchFontPackageBuffer y para búferes temporales.
[in] lpfnReAllocate
Función de devolución de llamada para reasignar memoria para puchFontPackageBuffer y para búferes temporales.
[in] lpfnFree
Función de devolución de llamada para liberar memoria asignada por lpfnAllocate y lpfnReAllocate.
[in] lpvReserved
Debe establecerse en NULL.
Valor devuelto
Si la función se ejecuta correctamente, devuelve cero.
De lo contrario, devuelve un valor distinto de cero. Consulte Mensajes de error de función Font-Package para obtener posibles devoluciones de error.
Comentarios
Al especificar un valor de TTFCFP_SUBSET para usSubsetFormat, puede crear directamente una fuente de trabajo en lugar de un paquete de fuentes. Esto no permite la combinación futura, pero si no es necesario combinarla, esto omite un paso en el procesamiento de bajada: es necesario volver a convertir un paquete de fuentes en una fuente de trabajo para poder usarla.
Al especificar un valor de TTFCFP_SUBSET1 para usSubsetFormat, puede crear un paquete de fuentes que permita la combinación posterior. Por ejemplo, considere el caso en el que una aplicación llama a esta función al principio de un trabajo de impresión grande. De forma parcial a través del trabajo de impresión, la aplicación detecta que necesita glifos que no están en el subconjunto que ha compilado. La aplicación puede realizar otra llamada a CreateFontPackage, esta vez especificando un valor de TTFCFP_DELTA para usSubsetFormat. La impresora puede usar MergeFontPackage para combinar en estos glifos adicionales.
Un CMAP se asigna desde codificaciones de caracteres a glifos. Si *pusSubsetKeepList es una lista de valores de caracteres, la aplicación usa parámetros usSubsetPlatform y usSubsetEncoding para especificar qué tipo de CMAP se usa, de modo que los valores de carácter se puedan asignar a glifos.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | fontsub.h |
Library | FontSub.lib |
Archivo DLL | FontSub.dll |