Inbäddade teckensnitt
Att bädda in ett teckensnitt är tekniken för att paketera ett dokument och de teckensnitt som det innehåller i en fil för överföring till en annan dator. Om du bäddar in ett teckensnitt garanteras att ett teckensnitt som anges i en överförd fil finns på den dator som tar emot filen. Alla teckensnitt kan dock inte flyttas från dator till dator, eftersom de flesta teckensnitt endast är licensierade till en dator i taget. Endast TrueType- och OpenType-teckensnitt kan bäddas in.
Program bör endast bädda in ett teckensnitt i ett dokument när en användare begär det. Ett program kan inte distribueras tillsammans med dokument som innehåller inbäddade teckensnitt, och inte heller kan ett program självt innehålla ett inbäddat teckensnitt. När ett program distribuerar ett teckensnitt, i alla format, måste ägarrättigheterna för teckensnittets ägare bekräftas.
Det kan vara ett brott mot en teckensnittsleverantörs upphovsrättsskyddade rättigheter eller användarlicensavtal att bädda in teckensnitt där inbäddning inte är tillåtet eller att inte följa följande riktlinjer för inbäddning av teckensnitt. En teckensnittslicens kan endast ge läs-/skrivbehörighet för ett teckensnitt som ska installeras och användas på måldatorn. Eller så kan licensen ge skrivskyddad behörighet. Skrivskyddad behörighet tillåter att ett dokument visas och skrivs ut (men inte ändras) av måldatorn. dokument med skrivskyddade inbäddade teckensnitt är själva skrivskyddade. Skrivskyddade inbäddade teckensnitt kanske inte kopplas från dokumentet och installeras på måldatorn.
Ett program kan fastställa licensstatusen genom att anropa funktionen GetOutlineTextMetrics och undersöka otmfsType- medlem i OUTLINETEXTMETRIC- struktur. Om bit 1 av otmfsType har angetts tillåts inte inbäddning för teckensnittet. Om bit 1 är klar kan teckensnittet bäddas in. Om bit 2 har angetts är inbäddningen skrivskyddad.
Om du vill bädda in ett TrueType-teckensnitt kan ett program använda funktionen GetFontData för att läsa teckensnittsfilen. Om du anger parametrarna dwTable och dwOffset för GetFontData till 0L och parametern cbData till 1L ser du till att programmet läser hela teckensnittsfilen från början.
Det finns flera funktioner för att bädda in OpenType-teckensnitt beroende på teckenbredden och var teckensnittsdata finns. Om du vill bädda in ett OpenType Unicode-teckensnitt som finns i en enhetskontext kan ett program använda TTEmbedFont. Om du vill bädda in ett OpenType UCS-4-teckensnitt som finns i en enhetskontext kan ett program använda TTEmbedFontEx. Om du vill bädda in ett OpenType Unicode-teckensnitt som finns i en teckensnittsfil kan ett program använda TTEmbedFontFromFile. Mer information om inbäddning av OpenType-teckensnitt finns i Referens för inbäddning av teckensnitt.
När ett program har hämtat teckensnittsdata kan det lagra data med dokumentet med valfritt format. De flesta program skapar en teckensnittskatalog i dokumentet med en lista över inbäddade teckensnitt och om inbäddningen är skrivskyddad eller skrivskyddad. Ett program kan använda otmpStyleName och otmFamilyName medlemmar i strukturen OUTLINETEXTMETRIC för att identifiera teckensnittet.
Om den skrivskyddade biten har angetts för det inbäddade teckensnittet måste program kryptera teckensnittsdata innan de lagras med dokumentet. Krypteringsmetoden behöver inte vara komplicerad. Till exempel är det tillräckligt och snabbt att använda XOR-operatorn för att kombinera teckensnittsdata med en programdefinierad konstant.