Métricas de Texto
Para ajudar seu layout, seleção de fonte personalizada e outras operações intensivas de métrica, começando em Windows 8, DirectWrite tem uma série de novas APIs para expressar todas as informações sobre fontes que você pode precisar para desenvolver aplicativos de rich text.
PANOSE
PANOSE é um sistema de classificação visual para identificar tipos. A classificação PANOSE contém informações sobre a família, estilo serif, peso, proporção, contraste, traço, estilo do braço, altura X etc. Essas informações descrevem o estilo visual da fonte. Essas informações são importantes porque fontes com valores PANOSE semelhantes são semelhantes. Isso é muito útil em situações em que uma fonte não está disponível e o aplicativo precisa voltar para uma fonte disponível. Comparar valores PANOSE para fontes permite que você escolha uma fonte semelhante visualmente à fonte original.
Para acessar as informações panose de uma fonte, use o método GetPanose nas interfaces IDWriteFont1 e IDWriteFontFace1 . Esse método retorna uma enumeração DWRITE_PANOSE que contém todas as informações PANOSE dessa fonte.
Métricas adicionais
A partir de Windows 8, a API de DirectWrite também dá suporte a várias novas métricas para expressar informações úteis sobre as fontes para seu aplicativo. Essas novas métricas incluem essas informações.
- Métricas de caixa delimitadora de glifo esquerdo, direito, superior e inferior.
- Posicionamento X e Y para elementos sobrescritos e subscritos.
- Informações de dimensionamento X e Y para elementos sobrescritos e subscritos.
- Se a fonte tem ou não métricas tipográficas.
Essas informações estão disponíveis por meio do novo método GetMetrics nas interfacesIDWriteFontFace1 e IDWriteFont1 . Esse método retorna uma estrutura DWRITE_FONT_METRICS1 que contém todas essas informações.
Métricas do Cursor
Para criar aplicativos de edição de texto, você precisa acessar informações sobre como desenhar o cursor que navega pelo texto. A partir de Windows 8, DirectWrite fornece o método GetCaretMetrics nas interfacesIDWriteFontFace1 e IDWriteFont1 para esse cenário. GetCaretMetrics retorna uma enumeração DWRITE_CARET_METRICS que contém informações sobre a inclinação e deslocamento do cursor ao longo da linha de base.
Essas informações são especificamente úteis se você quiser ter sua inclinação de cursor adequadamente com texto itálico.
Descoberta monoespacial
Aplicativos que permitem que os usuários escrevam código de computador geralmente usam fontes monoespaçadas no lugar de fontes mais tradicionais. Portanto, você pode ter mais controle sobre a seleção de fontes em aplicativos relacionados ao desenvolvimento, DirectWrite expressa se uma fonte é ou não monoespaçada por meio da API. O método IsMonospacedFont na interface IDWriteFontFace1 retorna um booliano que indica se a fonte é monospaceada ou não.
Correspondência de nome de fonte
Aplicativos de rich text, como leitores de PDF, precisam ser capazes de corresponder fontes em seu conteúdo a fontes no sistema, precisam de acesso aos nomes completos de fontes em vários formatos. Portanto, você pode corresponder melhor as fontes, DirectWrite contém uma enumeração que expressa informações de nomenclatura completas sobre uma fonte em muitos formatos.
você usa a enumeração DWRITE_INFORMATIONAL_STRING_ID para obter o nome completo, o nome postscript e o nome CID do PostScript de qualquer fonte no sistema. Essas informações são valiosas quando você precisa corresponder fontes em seu aplicativo a fontes apropriadas no sistema local.
Avanços do glifo
O método GetGlyphAdvances nas interfacesIDWriteFontFace1 e IDWriteFont1 usa a contagem de glifos e índices sobre os quais você precisa de informações avançadas e retorna os avanços para os glifos em questão.
Intervalos Unicode
Os aplicativos que desejam lidar com sua própria seleção de fonte precisam de acesso aos intervalos Unicode compatíveis com a fonte. Dessa forma, se um ponto de código Unicode não for compatível com a fonte, o aplicativo poderá escolher uma fonte apropriada que contenha esse glifo. Sem essas informações, o aplicativo pode usar uma fonte que não contém todos os glifos necessários para exibir as informações presentes.
O método GetUnicodeRanges nas interfaces IDWriteFontFace1 e IDWriteFont1 usa o número máximo de intervalos passados do cliente e retorna os intervalos reais compatíveis com a fonte.
Coleção de fontes EUDC
Use o método GetEudcFontCollection na interface IDWriteFactory1 para acessar a coleção de fontes EUDC. Esse método funciona da mesma forma que GetSystemFontCollection, mas retorna um ponteiro para uma coleção de fontes EUDC.