Função CreateFontPackage (fontsub.h)
A função CreateFontPackage cria uma versão de subconjunto de uma fonte TrueType especificada, normalmente para passá-la para uma impressora. Para permitir o fato de que as páginas posteriores em um documento podem precisar de caracteres ou glifos que não foram usados na primeira página, essa função pode criar um pacote de fonte de subconjunto inicial e, em seguida, criar pacotes de fonte "Delta" que podem ser mesclados com o pacote de fonte do subconjunto original, estendendo-o efetivamente.
Sintaxe
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
Aponta para um buffer que contém dados TTF ou TTC de origem, descrevendo a fonte a ser subconfigurada.
[in] ulSrcBufferSize
Especifica o tamanho de *puchSrcBuffer, em bytes.
[out] ppuchFontPackageBuffer
Aponta para uma variável do tipo caractere sem sinal*. A função CreateFontPackage alocará um buffer **puchFontPackageBuffer, usando lpfnAllocate e lpfnReAllocate. No retorno bem-sucedido, o buffer conterá a fonte do subconjunto ou o pacote de fontes. O aplicativo é responsável por eventualmente liberar o buffer.
[out] pulFontPackageBufferSize
Aponta para um longo sem sinal, que no retorno bem-sucedido especificará o tamanho alocado do buffer **puchFontPackageBuffer.
[out] pulBytesWritten
Aponta para um long sem sinal, que no retorno bem-sucedido especificará o número de bytes realmente usados no buffer **puchFontPackageBuffer.
[in] usFlag
Especifica se essa fonte deve ser subconfigurada, compactada ou ambas; seja um TTF ou TTC; e se*pusSubsetKeepListrepresenta códigos de caractere ou índices de glifo. Qualquer combinação dos seguintes sinalizadores pode ser especificada:
[in] usTTCIndex
O índice TTC baseado em zero; usado somente se TTFCFP_FLAGS_TTC estiver definido em usFlags.
[in] usSubsetFormat
O formato do arquivo a ser criado. Selecione um desses valores; eles não podem ser combinados.
[in] usSubsetLanguage
O idioma na tabela Nome a ser retido. Se Definido como 0, todos os idiomas serão retidos. Usado somente para subconfiguração inicial: ou seja, usado somente se usSubsetFormat for TTFCFP_SUBSET ou TTFCFP_SUBSET1 e o sinalizador TTFCFP_FLAGS_SUBSET for definido em usFlags.
[in] usSubsetPlatform
Em conjunto com usSubsetEncoding, especifica qual CMAP usar. Usado somente se *pusSubsetKeepList for uma lista de caracteres: ou seja, usado somente se TTFCFP_FLAGS_GLYPHLIST não estiver definido em usFlags. Nesse caso, por esta subtable CMAP é aplicada a pusSubsetKeepList para criar uma lista de glifos a serem retidos na fonte de saída ou no pacote de fontes.
Se usado, isso deve levar um dos seguintes valores; eles não podem ser combinados:
Valor | Significado |
---|---|
|
|
|
|
|
|
|
[in] usSubsetEncoding
Em conjunto com usSubsetPlatform, especifica qual CMAP usar. Usado somente se *pusSubsetKeepList for uma lista de caracteres: ou seja, usado somente se TTFCFP_FLAGS_GLYPHLIST não estiver definido em usFlags.
Se usado, isso deve levar um dos seguintes valores; eles não podem ser combinados:
[in] pusSubsetKeepList
Aponta para uma matriz de inteiros que compõem uma lista de códigos de caractere ou índices de glifo que devem ser retidos na fonte de saída ou no pacote de fontes. Se essa lista contiver códigos de caracteres (ou seja, se TTFCFP_FLAGS_GLYPHLIST não estiver definido em usFlags), essa lista poderá ser Unicode ou algum outro tipo de codificação, dependendo da Platform-Encoding CMAP especificada por usSubsetPlatform e usSubsetEncoding.
[in] usSubsetListCount
O número de elementos na lista *pusSubsetKeepList.
[in] lpfnAllocate
A função de retorno de chamada para alocar memória inicial para puchFontPackageBuffer e para buffers temporários.
[in] lpfnReAllocate
A função de retorno de chamada para realocar memória para puchFontPackageBuffer e para buffers temporários.
[in] lpfnFree
A função de retorno de chamada para liberar memória alocada por lpfnAllocate e lpfnReAllocate.
[in] lpvReserved
Deve ser definido como NULL.
Retornar valor
Se a função for bem-sucedida, retornará zero.
Caso contrário, retornará um valor diferente de zero. Consulte Mensagens de erro da função Font-Package para obter possíveis retornos de erro.
Comentários
Ao especificar um valor de TTFCFP_SUBSET para usSubsetFormat, você pode criar diretamente uma fonte de trabalho em vez de um pacote de fontes. Isso não permite a mesclagem futura, mas se não houver necessidade de mesclagem, isso ignora uma etapa no processamento downstream: um pacote de fontes precisa ser convertido novamente em uma fonte de trabalho antes que possa ser usado.
Ao especificar um valor de TTFCFP_SUBSET1 para usSubsetFormat, você pode criar um pacote de fontes que permita a mesclagem posterior. Por exemplo, considere o caso em que um aplicativo chama essa função no início de um trabalho de impressão grande. Parte do trabalho de impressão, o aplicativo descobre que precisa de glifos que não estão no subconjunto que ele criou. O aplicativo pode fazer outra chamada para CreateFontPackage, desta vez especificando um valor de TTFCFP_DELTA para usSubsetFormat. A impressora pode usar MergeFontPackage para mesclar esses glifos adicionais.
Um CMAP mapeia de codificações de caracteres para glifos. Se *pusSubsetKeepList for uma lista de valores de caracteres, o aplicativo usará os parâmetros usSubsetPlatform e usSubsetEncoding para especificar que tipo de CMAP está sendo usado, para que os valores de caractere possam ser mapeados para glifos.
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | fontsub.h |
Biblioteca | FontSub.lib |
DLL | FontSub.dll |