Udostępnij za pośrednictwem


Metryki dla dokumentów przenośnych

W poniższej tabeli przedstawiono najważniejsze metryki czcionek dla aplikacji, które wymagają przenośnych dokumentów i funkcji, które umożliwiają aplikacji ich pobieranie.

Funkcja Metryka Używać
EnumFontFamilies ntmSizeEM Pobieranie metryk projektu; konwersja na metryki urządzeń.
GetCharABCWidths ABCWidths Dokładne umieszczanie znaków na początku i na końcu marginesów, granic obrazów i innych podziałów tekstu.
GetCharWidth32 AdvanceWidths Umieszczanie znaków w wierszu.
GetOutlineTextMetrics otmfsType Bity osadzania czcionek.
otmsCharSlopeRise Składnik Y dla nachylenia kursora dla czcionek kursywy.
otmsCharSlopeRun Składnik X dla nachylenia kursora dla czcionek kursywy.
otmAscent Interlinia.
otmDescent Interlinia.
otmLineGap Interlinia.
otmpFamilyName Identyfikacja czcionek.
otmpStyleName Identyfikacja czcionek.
otmpFullName Identyfikacja czcionek (zazwyczaj nazwa rodziny i stylu).

 

otmsCharSlopeRise, otmsCharSlopeRun, otmAscent, otmDescenti otmLineGap składowe struktury OUTLINETEXT METRIC są skalowane lub przekształcane zgodnie z bieżącym trybem urządzenia i wysokością fizyczną (zgodnie z tmHeight składową struktury NEWTEXT METRIC).

Identyfikacja czcionek jest ważna w tych przypadkach, gdy aplikacja musi wybrać tę samą czcionkę, na przykład po ponownym otwarciu lub przeniesieniu dokumentu do innego systemu operacyjnego. Maper czcionek zawsze wybiera poprawną czcionkę, gdy aplikacja żąda czcionki według pełnej nazwy. Nazwy rodzin i stylów zapewniają dane wejściowe do okna dialogowego czcionki standardowej, co zapewnia prawidłowe umieszczenie pasków wyboru.

Wartości otmsCharSlopeRise i otmsCharSlopeRun są używane do tworzenia bliskiego przybliżenia głównego kąta kursywy czcionki. W przypadku typowych czcionek rzymskich otmsCharSlopeRise wynosi 1, a otmsCharSlopeRun wynosi 0. W przypadku czcionek kursywy wartości próbują przybliżyć sinus i cosinus głównego kąta kursywy czcionki (w stopniach przeciwkręciowych przeszłości pionowej); Zwróć uwagę, że kąt kursywy dla czcionek pionowych wynosi 0. Ponieważ te wartości nie są wyrażone w jednostkach projektowych, nie powinny być konwertowane na jednostki urządzeń.

Umieszczanie znaków i metryki odstępów między wierszami umożliwiają aplikacji obliczanie niezależnych od urządzenia podziałów wierszy przenośnych między ekranami, drukarkami, typetterami, a nawet platformami.

Aby wykonać układ strony niezależnej od urządzenia

  1. Normalizuj wszystkie metryki projektu do wspólnej wartości OHR (na przykład 65 536 DPI); Zapobiega to zaokrąglaniu błędów.
  2. Podziały wierszy obliczeniowych na podstawie metryk UHR i szerokości strony fizycznej; Daje to punkt początkowy i punkt końcowy wiersza w strumieniu tekstowym.
  3. Oblicz szerokość strony urządzenia w jednostkach urządzenia (na przykład pikseli).
  4. Dopasuj każdy wiersz tekstu do szerokości strony urządzenia przy użyciu podziałów wierszy obliczonych w kroku 2.
  5. Obliczanie podziałów stron przy użyciu metryk UHR i długości strony fizycznej; Daje to liczbę wierszy na stronę.
  6. Oblicz wysokość linii w jednostkach urządzeń.
  7. Dopasuj wiersze tekstu na stronę, używając wierszy na stronę z kroku 5 i wysokości linii z kroku 6.

Jeśli wszystkie aplikacje przyjmują te techniki, deweloperzy mogą praktycznie zagwarantować, że dokumenty przeniesione z jednej aplikacji do innej zachowają oryginalny wygląd i format.