Compartilhar via


Métricas para documentos portáteis

A tabela a seguir especifica as métricas de fonte mais importantes para aplicativos que exigem documentos portáteis e as funções que permitem que um aplicativo os recupere.

Função Métrica Uso
Enumfontfamilies ntmSizeEM Recuperação de métricas de design; conversão em métricas de dispositivo.
GetCharABCWidths ABCWidths Posicionamento preciso de caracteres no início e no final das margens, limites de imagem e outras quebras de texto.
GetCharWidth32 AdvanceWidths Posicionamento de caracteres em uma linha.
GetOutlineTextMetrics otmfsType Bits de inserção de fonte.
otmsCharSlopeRise Componente Y para inclinação do cursor para fontes itálicas.
otmsCharSlopeRun Componente X para inclinação do cursor para fontes itálicas.
otmAscent Espaçamento entre linhas.
otmDescent Espaçamento entre linhas.
otmLineGap Espaçamento entre linhas.
otmpFamilyName Identificação de fonte.
otmpStyleName Identificação de fonte.
otmpFullName Identificação de fonte (normalmente, nome da família e do estilo).

 

Os membros otmsCharSlopeRise, otmsCharSlopeRun, otmAscent, otmDescent e otmLineGap da estrutura OUTLINETEXTMETRIC são dimensionados ou transformados para corresponder ao modo de dispositivo atual e à altura física (conforme especificado no membro tmHeight da estrutura NEWTEXTMETRIC ).

A identificação de fonte é importante nessas instâncias quando um aplicativo deve selecionar a mesma fonte, por exemplo, quando um documento é reaberto ou movido para um sistema operacional diferente. O mapeador de fontes sempre seleciona a fonte correta quando um aplicativo solicita uma fonte por nome completo. Os nomes de família e estilo fornecem entrada para a caixa de diálogo de fonte padrão, o que garante que as barras de seleção sejam colocadas corretamente.

Os valores otmsCharSlopeRise e otmsCharSlopeRun são usados para produzir uma aproximação próxima da main ângulo itálico da fonte. Para fontes romanas típicas, otmsCharSlopeRise é 1 e otmsCharSlopeRun é 0. Para fontes itálicas, os valores tentam aproximar o seno e o cosseno do main ângulo itálico da fonte (em graus no sentido anti-horário passados verticais); observe que o ângulo itálico para fontes vertical é 0. Como esses valores não são expressos em unidades de design, eles não devem ser convertidos em unidades de dispositivo.

As métricas de posicionamento de caracteres e espaçamento entre linhas permitem que um aplicativo compute quebras de linha independentes do dispositivo que são portáteis entre telas, impressoras, typesetters e até mesmo plataformas.

Para executar o layout de página independente do dispositivo

  1. Normalizar todas as métricas de design para um valor comum de UHR (ultra-alta resolução) (por exemplo, 65.536 DPI); isso impede erros de arredondamento.
  2. Quebras de linha de computação com base em métricas UHR e largura de página física; isso gera um ponto de partida e um ponto final de uma linha dentro do fluxo de texto.
  3. Compute a largura da página do dispositivo em unidades de dispositivo (por exemplo, pixels).
  4. Ajuste cada linha de texto na largura da página do dispositivo, usando as quebras de linha computadas na etapa 2.
  5. Computar quebras de página usando métricas UHR e o comprimento da página física; isso gera o número de linhas por página.
  6. Compute as alturas de linha em unidades de dispositivo.
  7. Ajuste as linhas de texto na página, usando as linhas por página da etapa 5 e as alturas de linha da etapa 6.

Se todos os aplicativos adotarem essas técnicas, os desenvolvedores poderão praticamente garantir que os documentos movidos de um aplicativo para outro manterão sua aparência e formato originais.