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:

Wert Bedeutung
TTFCFP_FLAGS_SUBSET
Wenn festgelegt, untersetzen Anforderungen.
TTFCFP_FLAGS_COMPRESS
Wenn festgelegt, fordert die Komprimierung an. Die derzeit im Versand befindliche Version dieser Funktion führt keine Komprimierung durch. Dieses Flag ermöglicht die zukünftige Implementierung dieser Funktion, wird aber derzeit ignoriert.
TTFCFP_FLAGS_TTC
Wenn festgelegt, gibt an, dass die Schriftart in puchSrcBuffer ein TTC ist. Andernfalls muss es sich um eine TTF-Datei sein.
TTFCFP_FLAGS_GLYPHLIST
Wenn festgelegt, gibt an, dass*pusSubsetKeepList eine Liste von Glyphenindizes ist. Andernfalls muss es sich um eine Liste von Zeichencodes sein.

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

Wert Bedeutung
TTFCFP_SUBSET
Erstellen Sie eine eigenständige Subset-Schriftart, die nicht mit später zusammengeführt werden kann.
TTFCFP_SUBSET1
Erstellen Sie ein Unterset-Schriftartpaket, das mit einem späteren Zeitpunkt zusammengeführt werden kann.
TTFCFP_DELTA
Erstellen Sie ein Delta-Schriftartenpaket, das mit einer vorherigen Teilmenge zusammenführen kann.

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

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

Wert Bedeutung
TTFCFP_STD_MAC_CHAR_SET
Kann nur verwendet werden, wenn usSubsetPlatform == TTFCFP_APPLE_PLATFORMID.
TTFCFP_SYMBOL_CHAR_SET
Kann nur verwendet werden, wenn usSubsetPlatform == TTFSUB_MS_PLATFORMID.
TTFCFP_UNICODE_CHAR_SET
Kann nur verwendet werden, wenn usSubsetPlatform == TTFSUB_MS_PLATFORMID.
TTFCFP_DONT_CARE

[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

Weitere Informationen

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

MergeFontPackage