Czcionki osadzone
Osadzanie czcionki jest techniką łączenia dokumentu i czcionek zawartych w pliku na potrzeby transmisji na inny komputer. Osadzanie czcionki gwarantuje, że czcionka określona w przesłanym pliku będzie obecna na komputerze odbierającym plik. Nie wszystkie czcionki można jednak przenosić z komputera na komputer, ponieważ większość czcionek jest licencjonowanych tylko na jeden komputer naraz. Można osadzać tylko czcionki TrueType i OpenType.
Aplikacje powinny osadzić czcionkę w dokumencie tylko wtedy, gdy użytkownik zażąda. Nie można rozpowszechniać aplikacji wraz z dokumentami zawierającymi osadzone czcionki ani nie może sama aplikacja zawiera osadzoną czcionkę. Za każdym razem, gdy aplikacja dystrybuuje czcionkę w dowolnym formacie, należy potwierdzić prawa własności właściciela czcionki.
Może to być naruszenie praw własnościowych dostawcy czcionek lub umowy licencyjnej użytkownika w celu osadzenia czcionek, w których osadzanie nie jest dozwolone lub nie przestrzegać poniższych wytycznych dotyczących osadzania czcionek. Licencja czcionki może nadać tylko uprawnienia do odczytu/zapisu dla czcionki, która ma być zainstalowana i używana na komputerze docelowym. Lub licencja może nadać uprawnienia tylko do odczytu. Uprawnienie tylko do odczytu umożliwia wyświetlanie i drukowanie dokumentu (ale nie jest modyfikowane) przez komputer docelowy; dokumenty z czcionkami osadzonymi tylko do odczytu są tylko do odczytu. Czcionki osadzone tylko do odczytu nie mogą być rozdzielane z dokumentu i instalowane na komputerze docelowym.
Aplikacja może określić stan licencji, wywołując funkcję GetOutlineTextMetrics i sprawdzając otmfsType składową struktury OUTLINETEXTMETRIC. Jeśli ustawiono bit 1 z otmfsType, osadzanie nie jest dozwolone dla czcionki. Jeśli bit 1 jest jasny, można osadzić czcionkę. Jeśli bit 2 jest ustawiony, osadzanie jest tylko do odczytu.
Aby osadzić czcionkę TrueType, aplikacja może użyć funkcji GetFontData, aby odczytać plik czcionki. Ustawienie parametrów dwTable i dwOffset parametrów GetFontData na 0L, a parametr cbData na 1L gwarantuje, że aplikacja odczytuje cały plik czcionki od początku.
Kilka funkcji jest dostępnych do osadzania czcionek OpenType w zależności od szerokości znaku i miejsca, w którym znajdują się dane czcionki. Aby osadzić czcionkę OpenType Unicode, która znajduje się w kontekście urządzenia, aplikacja może użyć TTEmbedFont. Aby osadzić czcionkę OpenType UCS-4, która znajduje się w kontekście urządzenia, aplikacja może użyć TTEmbedFontEx. Aby osadzić czcionkę OpenType Unicode, która znajduje się w pliku czcionek, aplikacja może użyć TTEmbedFontFromFile. Aby uzyskać dodatkowe informacje na temat osadzania czcionek OpenType, zobacz dokumentację osadzania czcionek .
Gdy aplikacja pobierze dane czcionki, może przechowywać dane z dokumentem przy użyciu dowolnego odpowiedniego formatu. Większość aplikacji tworzy katalog czcionek w dokumencie, wyświetlając osadzone czcionki i określa, czy osadzanie jest tylko do odczytu/zapisu, czy tylko do odczytu. Aplikacja może używać otmpStyleName i otmFamilyName składowych struktury OUTLINETEXTMETRIC w celu zidentyfikowania czcionki.
Jeśli bit tylko do odczytu jest ustawiony dla osadzonej czcionki, aplikacje muszą szyfrować dane czcionek przed zapisaniem go w dokumencie. Metoda szyfrowania nie musi być skomplikowana; na przykład użycie operatora XOR w celu połączenia danych czcionki z stałą zdefiniowaną przez aplikację jest odpowiednie i szybkie.