CreateFontPackage-Funktion (fontsub.h)
Die CreateFontPackage-Funktion erstellt eine Teilmenge einer angegebenen TrueType-Schriftart, in der Regel, um sie an einen Drucker zu übergeben. Um die Tatsache zu ermöglichen, dass Seiten später in einem Dokument Zeichen oder Glyphen benötigen, die auf der ersten Seite nicht verwendet wurden, kann diese Funktion ein erstes Teilset-Schriftartenpaket erstellen und dann "Delta"-Schriftartpakete erstellen, die mit dem ursprünglichen Teilset-Schriftartenpaket zusammengeführt werden können und es effektiv erweitern.
Syntax
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
Zeigt auf einen Puffer, der TTF- oder TTC-Quelldaten enthält, und beschreibt die Schriftart, die subsetiert werden soll.
[in] ulSrcBufferSize
Gibt die Größe von *puchSrcBuffer in Bytes an.
[out] ppuchFontPackageBuffer
Zeigt auf eine Variable vom Typ ohne Vorzeichen char*. Die CreateFontPackage-Funktion weist einen Puffer **puchFontPackageBuffer mit lpfnAllocate und lpfnReAllocate zu. Bei erfolgreicher Rückgabe enthält der Puffer die Teilmenge der Schriftart oder das Schriftartpaket. Die Anwendung ist für die schließliche Freigabe des Puffers verantwortlich.
[out] pulFontPackageBufferSize
Zeigt auf einen nicht signierten Long-Wert, der bei erfolgreicher Rückgabe die zugeordnete Größe des Puffers **puchFontPackageBuffer angibt.
[out] pulBytesWritten
Zeigt auf einen nicht signierten Long-Wert, der bei erfolgreicher Rückgabe die Anzahl der Bytes angibt, die tatsächlich im Puffer **puchFontPackageBuffer verwendet werden.
[in] usFlag
Gibt an, ob diese Schriftart untergeordnet, komprimiert oder beides sein soll. ob es sich um eine TTF oder TTC handelt; und ob*pusSubsetKeepListrepresents Zeichencodes oder Glyphenindizes. Es kann eine beliebige Kombination der folgenden Flags angegeben werden:
[in] usTTCIndex
Der nullbasierte TTC-Index; wird nur verwendet, wenn TTFCFP_FLAGS_TTC in usFlags festgelegt ist.
[in] usSubsetFormat
Das Format der zu erstellenden Datei. Wählen Sie einen dieser Werte aus. sie können nicht kombiniert werden.
[in] usSubsetLanguage
Die Sprache in der Tabelle Name, die beibehalten werden soll. Wenn auf 0 festgelegt ist, werden alle Sprachen beibehalten. Wird nur für das anfängliche Untersetzen verwendet, d. h. wird nur verwendet, wenn usSubsetFormat entweder TTFCFP_SUBSET oder TTFCFP_SUBSET1 ist und das TTFCFP_FLAGS_SUBSET-Flag in usFlags festgelegt ist.
[in] usSubsetPlatform
Gibt in Verbindung mit usSubsetEncoding an, welche CMAP verwendet werden soll. Wird nur verwendet, wenn *pusSubsetKeepList eine Liste von Zeichen ist, d. h. nur verwendet, wenn TTFCFP_FLAGS_GLYPHLIST nicht in usFlags festgelegt ist. In diesem Fall wird diese CMAP-Untertabelle auf pusSubsetKeepList angewendet, um eine Liste von Glyphen zu erstellen, die in der Ausgabeschriftart oder im Schriftartenpaket beibehalten werden sollen.
Bei Verwendung muss einer der folgenden Werte verwendet werden: Sie können nicht kombiniert werden:
Wert | Bedeutung |
---|---|
|
|
|
|
|
|
|
[in] usSubsetEncoding
Gibt in Verbindung mit usSubsetPlatform an, welche CMAP verwendet werden soll. Wird nur verwendet, wenn *pusSubsetKeepList eine Liste von Zeichen ist, d. h. nur verwendet, wenn TTFCFP_FLAGS_GLYPHLIST nicht in usFlags festgelegt ist.
Bei Verwendung muss einer der folgenden Werte verwendet werden: Sie können nicht kombiniert werden:
[in] pusSubsetKeepList
Zeigt auf ein Array ganzzahliger Zahlen, die eine Liste von Zeichencodes oder Glyphenindizes enthalten, die im Ausgabeschriftart- oder Schriftpaket beibehalten werden sollen. Wenn diese Liste Zeichencodes enthält (d. h. wenn TTFCFP_FLAGS_GLYPHLIST in usFlags nicht festgelegt ist), kann diese Liste entweder Unicode oder eine andere Art von Codierung sein, je nach dem von usSubsetPlatform und usSubsetEncoding angegebenen Platform-Encoding CMAP.
[in] usSubsetListCount
Die Anzahl der Elemente in der Liste *pusSubsetKeepList.
[in] lpfnAllocate
Die Rückruffunktion zum Zuweisen des anfänglichen Arbeitsspeichers für puchFontPackageBuffer und für temporäre Puffer.
[in] lpfnReAllocate
Die Rückruffunktion zum Neuzuordnung von Arbeitsspeicher für puchFontPackageBuffer und für temporäre Puffer.
[in] lpfnFree
Die Rückruffunktion zum Freigeben von Arbeitsspeicher, der von lpfnAllocate und lpfnReAllocate zugewiesen wurde.
[in] lpvReserved
Muss auf NULL festgelegt werden.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt null zurück.
Andernfalls wird ein Wert ungleich 0 (null) zurückgegeben. Mögliche Fehlerrückmeldungen finden Sie unter Fehlermeldungen der Schriftart-Paketfunktion .
Hinweise
Durch Angeben des Werts TTFCFP_SUBSET für usSubsetFormat können Sie direkt eine funktionierende Schriftart anstelle eines Schriftartpakets erstellen. Dies ermöglicht keine zukünftige Zusammenführung, aber wenn keine Zusammenführung erforderlich ist, überspringt dies einen Schritt in der nachgelagerten Verarbeitung: Ein Schriftartenpaket muss zurück in eine funktionierende Schriftart konvertiert werden, bevor es verwendet werden kann.
Durch Angeben des Werts TTFCFP_SUBSET1 für usSubsetFormat können Sie ein Schriftartenpaket erstellen, das eine spätere Zusammenführung ermöglicht. Betrachten Sie beispielsweise den Fall, in dem eine Anwendung diese Funktion zu Beginn eines großen Druckauftrags aufruft. Im Rahmen des Druckauftrags erkennt die Anwendung, dass sie Glyphen benötigt, die sich nicht in der von ihr erstellten Teilmenge befinden. Die Anwendung kann einen weiteren Aufruf von CreateFontPackage durchführen und dabei den Wert TTFCFP_DELTA für usSubsetFormat angeben. Der Drucker kann MergeFontPackage verwenden, um diese zusätzlichen Glyphen zusammenzuführen.
Eine CMAP-Zuordnung von Zeichencodierungen zu Glyphen. Wenn *pusSubsetKeepList eine Liste von Zeichenwerten ist, verwendet die Anwendung die Parameter usSubsetPlatform und usSubsetEncoding , um anzugeben, welcher Typ von CMAP verwendet wird, sodass Zeichenwerte Glyphen zugeordnet werden können.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | fontsub.h |
Bibliothek | FontSub.lib |
DLL | FontSub.dll |