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:

Valor Significado
TTFCFP_FLAGS_SUBSET
Si se establece, solicita el subconfiguración.
TTFCFP_FLAGS_COMPRESS
Si se establece, solicita la compresión. La versión de envío actual de esta función no realiza la compresión. Esta marca permite la implementación futura de esta funcionalidad, pero actualmente se omite.
TTFCFP_FLAGS_TTC
Si se establece, especifica que la fuente de puchSrcBuffer es un TTC; de lo contrario, debe ser un TTF.
TTFCFP_FLAGS_GLYPHLIST
Si se establece, especifica que*pusSubsetKeepListis una lista de índices de glifo; de lo contrario, debe ser una lista de códigos de caracteres.

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

Valor Significado
TTFCFP_SUBSET
Cree una fuente subconjunto independiente que no se pueda combinar con más adelante.
TTFCFP_SUBSET1
Cree un paquete de fuentes subconjunto con el que se pueda combinar más adelante.
TTFCFP_DELTA
Cree un paquete de fuentes Delta que pueda combinarse con una fuente de subconjunto anterior.

[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
TTFCFP_UNICODE_PLATFORMID
TTFCFP_APPLE_PLATFORMID
TTFCFP_ISO_PLATFORMID
TTFCFP_MS_PLATFORMID

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

Valor Significado
TTFCFP_STD_MAC_CHAR_SET
Solo se puede usar si usSubsetPlatform == TTFCFP_APPLE_PLATFORMID.
TTFCFP_SYMBOL_CHAR_SET
Solo se puede usar si usSubsetPlatform == TTFSUB_MS_PLATFORMID.
TTFCFP_UNICODE_CHAR_SET
Solo se puede usar si usSubsetPlatform == TTFSUB_MS_PLATFORMID.
TTFCFP_DONT_CARE

[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

Consulte también

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

MergeFontPackage