Eingebettete Schriftarten
Das Einbetten einer Schriftart ist die Technik des Bündelns eines Dokuments und der enthaltenen Schriftarten in einer Datei für die Übertragung an einen anderen Computer. 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 jedoch von Computer zu Computer verschoben werden, da die meisten Schriftarten jeweils nur für einen Computer lizenziert sind. Es können nur TrueType- und OpenType-Schriftarten eingebettet werden.
Anwendungen sollten eine Schriftart nur dann in ein Dokument einbetten, wenn sie von einem Benutzer angefordert werden. Eine Anwendung kann weder zusammen mit Dokumenten verteilt werden, die eingebettete Schriftarten enthalten, noch kann eine Anwendung selbst eine eingebettete Schriftart enthalten. Wenn eine Anwendung eine Schriftart in einem beliebigen Format verteilt, müssen die Eigentumsrechte des Besitzers der Schriftart anerkannt werden.
Es kann eine Verletzung der Eigentumsrechte eines Schriftartherstellers oder einer Benutzerlizenzvereinbarung sein, Schriftarten einzubetten, bei denen die Einbettung nicht zulässig ist, oder die folgenden Richtlinien zum Einbetten von Schriftarten nicht einzuhalten. Die Lizenz einer Schriftart kann nur Lese-/Schreibberechtigungen für die Installation und Verwendung einer Schriftart auf dem Zielcomputer erteilen. Oder die Lizenz erteilt schreibgeschützte Berechtigungen. Mit der schreibgeschützten 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 entbündelt und auf dem Zielcomputer installiert.
Eine Anwendung kann die Lizenz status ermitteln, indem sie die GetOutlineTextMetrics-Funktion aufruft und das otmfsType-Element der OUTLINETEXTMETRIC-Struktur untersucht. Wenn Bit 1 von otmfsType festgelegt ist, ist die Einbettung 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.
Um eine TrueType-Schriftart einzubetten, kann eine Anwendung die GetFontData-Funktion verwenden, um die Schriftartdatei zu lesen. Wenn Sie die Parameter dwTable und dwOffset von GetFontData auf 0L und den cbData-Parameter auf 1L festlegen, wird sichergestellt, dass die Anwendung die gesamte Schriftdatei von Anfang an liest.
Je nach Zeichenbreite und Speicherort der Schriftartdaten stehen mehrere Funktionen zum Einbetten von OpenType-Schriftarten zur Verfügung. Um eine OpenType-Unicode-Schriftart einzubetten, die sich in einem Gerätekontext befindet, kann eine Anwendung TTEmbedFont verwenden. 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 TTEmbedFontFromFile verwenden. Weitere Informationen zur Einbettung von OpenType-Schriftarten finden Sie in der 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, in dem die eingebetteten Schriftarten aufgelistet werden und ob die Einbettung lese-/schreibgeschützt oder schreibgeschützt ist. Eine Anwendung kann die Elemente otmpStyleName und otmFamilyName 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 mit dem Dokument gespeichert werden. Die Verschlüsselungsmethode muss nicht kompliziert sein. Beispielsweise ist die Verwendung des XOR-Operators zum Kombinieren der Schriftartdaten mit einer anwendungsdefinierten Konstanten angemessen und schnell.