Freigeben über


Metriken für portable Dokumente

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

Funktion Metrik Zweck
EnumFontFamilies ntmSizeEM Abrufen von Entwurfsmetriken; Konvertierung in Gerätemetriken.
GetCharABCWidths ABCWidths Genaue Platzierung von Zeichen am Anfang und Ende von Rändern, Bildgrenzen und anderen Textumbrüchen.
GetCharWidth32 AdvanceWidths Platzierung von Zeichen in einer Zeile.
GetOutlineTextMetrics otmfsType Schrifteinbettungsbits.
otmsCharSlopeRise Y-Komponente für die Neigung des Cursors für Kursivschriftarten.
otmsCharSlopeRun X-Komponente für die Neigung des Cursors für Kursivschriftarten.
otmAscent Zeilenabstand.
otmDescent Zeilenabstand.
otmLineGap Zeilenabstand.
otmpFamilyName Schriftartenidentifikation.
otmpStyleName Schriftartenidentifikation.
otmpFullName Schriftartenidentifikation (in der Regel Familien- und Stilname).

 

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

Die Schriftartenidentifikation ist in solchen Fällen wichtig, wenn eine Anwendung dieselbe Schriftart auswählen muss, z. B. wenn ein Dokument erneut geöffnet oder in ein anderes Betriebssystem verschoben wird. Die Schriftartenzuordnung wählt immer die richtige Schriftart aus, wenn eine Anwendung eine Schriftart mit dem vollständigen Namen anfordert. Die Namen der Familie und der Formatvorlagen bieten Eingaben für das Dialogfeld "Standardschriftart", wodurch sichergestellt wird, dass die Auswahlleisten ordnungsgemäß platziert sind.

Die Werte otmsCharSlopeRise und otmsCharSlopeRun werden verwendet, um eine enge Näherung des Standard 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 den Kosinus des Standard Kursivwinkel der Schriftart (gegen den Uhrzeigersinn über vertikal hinaus) zu nähern. Beachten Sie, dass der Kursivwinkel für aufrechte 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, Setzer und sogar Plattformen hinweg portierbar sind.

So führen Sie geräteunabhängiges Seitenlayout aus

  1. Normalisieren Aller Entwurfsmetriken auf einen gemeinsamen UHR-Wert (ultra-high resolution) (z. B. 65.536 DPI); Dadurch werden Rundungsfehler verhindert.
  2. Berechnen von Zeilenumbrüchen basierend auf UHR-Metriken und physischer Seitenbreite; Dies ergibt einen Ausgangspunkt und einen Endpunkt einer Zeile innerhalb des Textstreams.
  3. Berechnen Sie die Breite der Geräteseite in Geräteeinheiten (z. B. Pixel).
  4. Passen Sie jede Textzeile mithilfe der in Schritt 2 berechneten Zeilenumbrüche an die Breite der Geräteseite an.
  5. Berechnen von Seitenumbrüchen mithilfe von UHR-Metriken und der physischen Seitenlänge; Dies ergibt die Anzahl der Zeilen pro Seite.
  6. Berechnen Sie die Zeilenhöhen in Geräteeinheiten.
  7. Passen Sie die Textzeilen auf das Zeichenblatt an, indem Sie die Zeilen pro Seite aus Schritt 5 und die Zeilenhöhen aus Schritt 6 verwenden.

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