Freigeben über


Eingebettete Schriftarten

Das Einbetten einer Schriftart ist die Technik des Bündelns eines Dokuments und der Schriftarten, die es in einer Datei für die Übertragung an einen anderen Computer enthält. Durch das Einbetten einer Schriftart wird sichergestellt, dass eine in einer übertragenen Datei angegebene Schriftart auf dem Computer vorhanden ist, auf dem die Datei empfangen wird. Nicht alle Schriftarten können von Computer zu Computer verschoben werden, da die meisten Schriftarten jeweils nur auf einen Computer lizenziert sind. Nur TrueType- und OpenType-Schriftarten können eingebettet werden.

Anwendungen sollten eine Schriftart nur dann in ein Dokument einbetten, wenn sie von einem Benutzer angefordert werden. Eine Anwendung kann nicht zusammen mit Dokumenten verteilt werden, die eingebettete Schriftarten enthalten, oder eine Anwendung selbst kann eine eingebettete Schriftart enthalten. Jedes Mal, wenn eine Anwendung eine Schriftart verteilt, in einem beliebigen Format, müssen die Eigentumsrechte des Eigentümers der Schriftart anerkannt werden.

Es kann ein Verstoß gegen die Eigentumsrechte oder den Lizenzvertrag eines Schriftartanbieters sein, um Schriftarten einzubetten, bei denen das Einbetten nicht zulässig ist oder die folgenden Richtlinien für das Einbetten von Schriftarten nicht beachtet. Die Lizenz einer Schriftart darf nur Lese-/Schreibberechtigungen für eine Schriftart erteilen, die auf dem Zielcomputer installiert und verwendet werden kann. Oder die Lizenz kann schreibgeschützte Berechtigungen erteilen. Mit schreibgeschützter Berechtigung kann ein Dokument vom Zielcomputer angezeigt und gedruckt (aber nicht geändert) werden; Dokumente mit schreibgeschützten eingebetteten Schriftarten sind selbst schreibgeschützt. Schreibgeschützte eingebettete Schriftarten werden möglicherweise nicht aus dem Dokument gebündelt und auf dem Zielcomputer installiert.

Eine Anwendung kann den Lizenzstatus ermitteln, indem sie die GetOutlineTextMetrics--Funktion aufrufen und das otmfsType Member der OUTLINETEXTMETRIC- Struktur untersuchen. Wenn Bit 1 von otmfsType festgelegt ist, ist das Einbetten für die Schriftart nicht zulässig. Wenn Bit 1 klar ist, kann die Schriftart eingebettet werden. Wenn Bit 2 festgelegt ist, ist die Einbettung schreibgeschützt.

Zum Einbetten einer TrueType-Schriftart kann eine Anwendung die GetFontData--Funktion verwenden, um die Schriftartdatei zu lesen. Durch Festlegen der dwTable- und dwOffset Parameter von GetFontData auf 0L und der cbData Parameter auf 1L wird sichergestellt, dass die Anwendung die gesamte Schriftartdatei von Anfang an liest.

Es stehen verschiedene Funktionen zum Einbetten von OpenType-Schriftarten in Abhängigkeit von der Zeichenbreite und dem Speicherort der Schriftartdaten zur Verfügung. Um eine OpenType-Unicode-Schriftart einzubetten, die sich in einem Gerätekontext befindet, kann eine Anwendung TTEmbedFontverwenden. Um eine OpenType UCS-4-Schriftart einzubetten, die sich in einem Gerätekontext befindet, kann eine Anwendung TTEmbedFontEx-verwenden. Um eine OpenType Unicode-Schriftart einzubetten, die sich in einer Schriftartdatei befindet, kann eine Anwendung TTEmbedFontFromFileverwenden. Weitere Informationen zum Einbetten von OpenType-Schriftarten finden Sie im Referenz zum Einbetten von Schriftarten.

Nachdem eine Anwendung die Schriftartdaten abgerufen hat, kann sie die Daten mit dem Dokument mithilfe eines beliebigen anwendbaren Formats speichern. Die meisten Anwendungen erstellen ein Schriftartverzeichnis im Dokument, das die eingebetteten Schriftarten auflistet und ob die Einbettung lese-/schreibgeschützt ist. Eine Anwendung kann die otmpStyleName und otmFamilyName Member der OUTLINETEXTMETRIC Struktur verwenden, um die Schriftart zu identifizieren.

Wenn das schreibgeschützte Bit für die eingebettete Schriftart festgelegt ist, müssen Anwendungen die Schriftartdaten verschlüsseln, bevor sie im Dokument gespeichert werden. Die Verschlüsselungsmethode muss nicht kompliziert sein; Beispielsweise ist die Verwendung des XOR-Operators zum Kombinieren der Schriftartdaten mit einer anwendungsdefinierten Konstante ausreichend und schnell.