Funzione CreateFontPackage (fontsub.h)
La funzione CreateFontPackage crea una versione subset di un tipo di carattere TrueType specificato, in genere per passarla a una stampante. Per consentire il fatto che le pagine successive in un documento potrebbero richiedere caratteri o glifi che non sono stati utilizzati nella prima pagina, questa funzione può creare un pacchetto di tipi di carattere del subset iniziale, quindi creare pacchetti di carattere "Delta" che possono essere uniti al pacchetto del tipo di carattere del subset originale, estendendolo in modo efficace.
Sintassi
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
);
Parametri
[in] puchSrcBuffer
Punta a un buffer contenente dati TTF o TTC di origine, che descrivono il tipo di carattere che deve essere subsetto.
[in] ulSrcBufferSize
Specifica le dimensioni di *puchSrcBuffer, in byte.
[out] ppuchFontPackageBuffer
Punta a una variabile di tipo char*senza segno. La funzione CreateFontPackage allocherà un buffer **puchFontPackageBuffer, usando lpfnAllocate e lpfnReAllocate. Al termine della restituzione, il buffer conterrà il tipo di carattere o il pacchetto del tipo di carattere del subset. L'applicazione è responsabile della liberazione del buffer.
[out] pulFontPackageBufferSize
Punta a un valore long senza segno, che in caso di esito positivo, specifica le dimensioni allocate del buffer **puchFontPackageBuffer.
[out] pulBytesWritten
Punta a un valore long senza segno, che in caso di esito positivo restituirà il numero di byte effettivamente usati nel buffer **puchFontPackageBuffer.
[in] usFlag
Specifica se questo tipo di carattere deve essere sottoinsieme, compresso o entrambi; se si tratta di un TTF o TTC; e se*pusSubsetKeepListrepresenta codici di carattere o indici di glifi. È possibile specificare qualsiasi combinazione dei flag seguenti:
[in] usTTCIndex
Indice TTC in base zero; viene usato solo se TTFCFP_FLAGS_TTC è impostato in usFlags.
[in] usSubsetFormat
Formato del file da creare. Selezionare uno di questi valori; non possono essere combinati.
[in] usSubsetLanguage
Lingua nella tabella Name da conservare. Se impostato su 0, verranno mantenute tutte le lingue. Usato solo per la sottoimpostazione iniziale, ovvero viene usato solo se usSubsetFormat è TTFCFP_SUBSET o TTFCFP_SUBSET1 e il flag TTFCFP_FLAGS_SUBSET è impostato in usFlags.
[in] usSubsetPlatform
In combinazione con usSubsetEncoding, specifica quale CMAP usare. Usato solo se *pusSubsetKeepList è un elenco di caratteri, ovvero viene usato solo se TTFCFP_FLAGS_GLYPHLIST non è impostato in usFlags. In tal caso, tramite questa sottotabella CMAP viene applicata a pusSubsetKeepList per creare un elenco di glifi da conservare nel tipo di carattere di output o nel pacchetto del tipo di carattere.
Se usato, deve accettare uno dei valori seguenti; non possono essere combinati:
Valore | Significato |
---|---|
|
|
|
|
|
|
|
[in] usSubsetEncoding
In combinazione con usSubsetPlatform, specifica il CMAP da usare. Usato solo se *pusSubsetKeepList è un elenco di caratteri, ovvero viene usato solo se TTFCFP_FLAGS_GLYPHLIST non è impostato in usFlags.
Se usato, deve accettare uno dei valori seguenti; non possono essere combinati:
[in] pusSubsetKeepList
Punta a una matrice di numeri interi che costituiscono un elenco di codici carattere o indici di glifi che devono essere conservati nel tipo di carattere o nel pacchetto di tipi di carattere di output. Se questo elenco contiene codici di carattere, ovvero se TTFCFP_FLAGS_GLYPHLIST non è impostato in usFlags, questo elenco può essere Unicode o un altro tipo di codifica, a seconda del Platform-Encoding CMAP specificato da usSubsetPlatform e usSubsetEncoding.
[in] usSubsetListCount
Numero di elementi nell'elenco *pusSubsetKeepList.
[in] lpfnAllocate
Funzione di callback per allocare la memoria iniziale per puchFontPackageBuffer e per i buffer temporanei.
[in] lpfnReAllocate
La funzione di callback per riallocare la memoria per puchFontPackageBuffer e per i buffer temporanei.
[in] lpfnFree
Funzione di callback per liberare memoria allocata da lpfnAllocate e lpfnReAllocate.
[in] lpvReserved
Deve essere impostato su NULL.
Valore restituito
Se la funzione ha esito positivo, restituisce zero.
In caso contrario, viene restituito un valore diverso da zero. Per informazioni sul possibile errore, vedere Messaggi di errore della funzione del pacchetto di tipi di carattere.
Commenti
Specificando un valore di TTFCFP_SUBSET per usSubsetFormat, è possibile creare direttamente un tipo di carattere funzionante anziché un pacchetto di tipi di carattere. Ciò non consente l'unione futura, ma se non è necessario eseguire l'unione, questo ignora un passaggio nell'elaborazione downstream: un pacchetto di tipi di carattere deve essere riconvertito in un tipo di carattere funzionante prima di poterlo usare.
Specificando un valore di TTFCFP_SUBSET1 per usSubsetFormat, è possibile creare un pacchetto di tipi di carattere che consenta l'unione successiva. Si consideri ad esempio il caso in cui un'applicazione chiama questa funzione all'inizio di un processo di stampa di grandi dimensioni. Parte del processo di stampa, l'applicazione rileva che necessita di glifi che non si trovano nel sottoinsieme creato. L'applicazione può effettuare un'altra chiamata a CreateFontPackage, questa volta specificando un valore di TTFCFP_DELTA per usSubsetFormat. La stampante può utilizzare MergeFontPackage per unire questi glifi aggiuntivi.
Un oggetto CMAP esegue il mapping dalle codifiche dei caratteri ai glifi. Se *pusSubsetKeepList è un elenco di valori di carattere, l'applicazione usa i parametri usSubsetPlatform e usSubsetEncoding per specificare il tipo di CMAP in uso, in modo che i valori di carattere possano essere mappati ai glifi.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | fontsub.h |
Libreria | FontSub.lib |
DLL | FontSub.dll |