Compartilhar via


Processamento de script complexo

Veja a seguir opções para exibição e processamento relacionado de texto para dar suporte a efeitos de tipografia finos ou scripts complexos:

  • Funções de texto
  • Editar controles
  • Controles de edição avançada
  • Uniscribe

As opções escolhidas dependem dos seguintes fatores:

  • O tipo de texto ou scripts.
  • O modelo de implementação, por exemplo, o layout de texto e o tratamento da quebra de linha pelo aplicativo.
  • Atualização de um aplicativo existente versus criação de um novo aplicativo.

Em geral, um aplicativo que faz processamento de script relativamente simples pode escolher qualquer opção para processar scripts complexos. No entanto, para o controle mais completo do processamento de script complexo, recomenda-se Uniscribe.

Processamento de script complexo usando funções de texto

Os aplicativos que usam principalmente texto sem formatação, ou seja, texto que usa a mesma face de tipo, peso, cor e assim por diante, têm texto tradicionalmente escrito e comprimentos de linha medidos usando funções de texto padrão, como TextOut, ExtTextOut, TabbedTextOut, DrawText e GetTextExtentExPoint. Essas funções dão suporte ao processamento de scripts complexos e efeitos de tipografia finos. Para obter mais informações, consulte Fontes e Texto.

Em geral, o suporte a texto padrão é transparente para aplicativos que processam scripts complexos. No entanto, você deve estar ciente de algumas regras específicas a seguir ao escrever aplicativos que dão suporte à tipografia fina e processar scripts complexos:

  • Seu aplicativo deve salvar caracteres em um buffer e exibir uma linha inteira de texto ao mesmo tempo em vez de, por exemplo, chamar ExtTextOut em cada caractere conforme ele é digitado pelo usuário. Esse mecanismo permite que os módulos avançados de formatação de texto usem o contexto para reordenar e gerar glifos corretamente.
  • O aplicativo deve usar GetTextExtentExPoint para determinar o comprimento da linha, em vez de calcular comprimentos de linha de larguras de caracteres armazenados em cache, uma vez que a largura de um glifo pode variar de acordo com o contexto.
  • Opcionalmente, o aplicativo deve adicionar suporte para ordem de leitura da direita para a esquerda e alinhamento à direita.
  • A reordenação e o processamento contextual necessários para scripts complexos ou tipografia fina exigem um aumento significativo no processamento em relação à exibição de texto básico para scripts simples. Portanto, para evitar problemas de desempenho, seu aplicativo não deve processar grandes quantidades de texto antes de exibir resultados e retornar o controle ao usuário.

Processamento de script complexo usando controles de edição

Os controles de edição padrão do Windows foram estendidos para dar suporte a texto multilíngue e scripts complexos. O suporte estendido inclui entrada e exibição, bem como movimento de cursor correto sobre clusters de caracteres, por exemplo, em scripts tailandeses e devanágaro. Para obter mais informações, consulte Editar controles.

Processamento de script complexo usando controles de edição avançada

A Edição Avançada 3.0 é uma coleção de interfaces de nível superior que aproveita Uniscribe para isolar aplicativos de layout de texto das complexidades de determinados scripts. A Edição Avançada é a maneira mais simples de os aplicativos exibirem scripts complexos, embora sua finalidade principal não seja necessariamente o layout de texto. A Edição Avançada fornece edição rápida e versátil de texto multilíngue Unicode avançado e texto simples sem formatação. Ele inclui interfaces de mensagem e COM extensas, edição de texto, formatação, quebra de linha, layout de tabela simples, layout de texto vertical, layout de texto bidirecional, suporte a índices e tailandeses, uma interface do usuário de edição muito semelhante à microsoft Word e interfaces de Modelo de Objeto de Texto.

Juntamente com as interfaces de Edição Avançada, os aplicativos podem usar a função Rich Edit TextOut para analisar, forma, posição e linhas de interrupção automaticamente. Para obter mais informações, consulte Controles de edição avançada.

Processamento de script complexo usando Uniscribe

O Uniscribe fornece o suporte mais abrangente para processamento de texto envolvendo efeitos de tipografia finos e scripts complexos. Ele dá suporte às regras complexas encontradas em scripts como árabe, devanágaro e tailandês. Ele manipula scripts escritos da direita para a esquerda, como árabe e hebraico, e dá suporte à mistura de scripts. Uniscribe também expõe recursos de fonte OpenType que podem ser usados por aplicativos para controlar efeitos finos de tipografia. Para obter mais informações, consulte Processando scripts complexos.

Sobre Uniscribe

Processando scripts complexos