Freigeben über


Metriken für portable Dokumente

In der folgenden Tabelle sind die wichtigsten Schriftartmetriken für Anwendungen angegeben, für die portable Dokumente und funktionen erforderlich sind, mit denen eine Anwendung sie abrufen kann.

Funktion Metrik Gebrauchen
EnumFontFamilies ntmSizeEM- Abrufen von Entwurfsmetriken; Konvertierung in Gerätemetriken.
GetCharABCWidths ABCWidths Genaue Platzierung von Zeichen am Anfang und Ende von Seitenrändern, Bildbegrenzungen und anderen Textumbrüchen.
GetCharWidth32- AdvanceWidths Platzierung von Zeichen in einer Zeile.
GetOutlineTextMetrics otmfsType Bits zum Einbetten von Schriftarten.
otmsCharSlopeRise Y-Komponente für die Steigung des Cursors für kursiv formatierte Schriftarten.
otmsCharSlopeRun X-Komponente für die Steigung des Cursors für kursiv formatierte Schriftarten.
otmAscent Zeilenabstand.
otmDescent Zeilenabstand.
otmLineGap Zeilenabstand.
otmpFamilyName Schriftidentifikation.
otmpStyleName- Schriftidentifikation.
otmpFullName- Schriftidentifikation (in der Regel Familien- und Formatvorlagenname).

 

Die otmsCharSlopeRise, otmsCharSlopeRun, otmAscent, otmDescentund otmLineGap Elemente der OUTLINETEXTMETRIC Struktur werden skaliert oder transformiert, um dem aktuellen Gerätemodus und der physischen Höhe zu entsprechen (wie im tmHeight Member der NEWTEXTMETRIC Struktur angegeben).

Die Schriftartidentifikation ist in diesen Fällen wichtig, wenn eine Anwendung die gleiche Schriftart auswählen muss, z. B. wenn ein Dokument erneut geöffnet oder in ein anderes Betriebssystem verschoben wird. Die Schriftartzuordnung wählt immer die richtige Schriftart aus, wenn eine Anwendung eine Schriftart nach vollständigem Namen anfordert. Die Familien- und Formatvorlagennamen geben Eingaben für das Dialogfeld "Standardschriftart" an, wodurch sichergestellt wird, dass die Auswahlleisten ordnungsgemäß platziert werden.

Die otmsCharSlopeRise und otmsCharSlopeRun Werte werden verwendet, um eine enge Annäherung des Haupt kursivwinkels der Schriftart zu erzeugen. Bei typischen römischen Schriftarten ist otmsCharSlopeRise 1 und otmsCharSlopeRun ist 0. Bei kursiv formatierten Schriftarten versuchen die Werte, den Sinus und Kosinus des Kursivwinkels der Schriftart anzunähern (in gegen den Uhrzeigersinn über vertikal); Beachten Sie, dass der Kursivwinkel für aufrecht stehende Schriftarten 0 ist. Da diese Werte nicht in Entwurfseinheiten ausgedrückt werden, sollten sie nicht in Geräteeinheiten konvertiert werden.

Die Zeichenplatzierungs- und Zeilenabstandsmetriken ermöglichen es einer Anwendung, geräteunabhängige Zeilenumbrüche zu berechnen, die über Bildschirme, Drucker, Typenetter und sogar Plattformen hinweg portierbar sind.

So führen Sie geräteunabhängiges Seitenlayout

  1. Normalisieren Sie alle Entwurfsmetriken auf einen allgemeinen Ultra-High-Resolution-Wert (UHR) (z. B. 65.536 DPI); Dadurch werden Abrunden von Fehlern verhindert.
  2. Berechnen von Zeilenumbrüchen basierend auf UHR-Metriken und physischer Seitenbreite; dies führt zu einem Ausgangspunkt und einem Endpunkt einer Zeile innerhalb des Textstroms.
  3. Berechnen der Geräteseitenbreite in Geräteeinheiten (z. B. Pixel).
  4. Passen Sie jede Textzeile in die Breite der Geräteseite ein, indem Sie die in Schritt 2 berechneten Zeilenumbrüche verwenden.
  5. Berechnen von Seitenumbrüchen mithilfe von UHR-Metriken und der physischen Seitenlänge; dadurch wird die Anzahl der Zeilen pro Seite erzielt.
  6. Berechnen sie die Zeilenhöhen in Geräteeinheiten.
  7. Passen Sie die Textzeilen mithilfe der Zeilen pro Seite aus Schritt 5 und den Zeilenhöhen von Schritt 6 auf das Zeichenblatt an.

Wenn alle Anwendungen diese Techniken übernehmen, können Entwickler praktisch garantieren, dass Dokumente, die von einer Anwendung in eine andere verschoben werden, ihre ursprüngliche Darstellung und ihr Ursprüngliches Format beibehalten.