Procesamiento de scripts complejos
A continuación se muestran las opciones para mostrar y el procesamiento relacionado del texto para admitir efectos tipográficos finos o scripts complejos:
- Funciones de texto
- Editar controles
- Controles de edición enriquecidos
- Uniscribe
Las opciones que elija dependen de los siguientes factores:
- Tipo de texto o scripts.
- El modelo de implementación, por ejemplo, el diseño de texto y el control de la separación de líneas por parte de la aplicación.
- Actualización de una aplicación existente frente a la creación de una nueva aplicación.
En general, una aplicación que realiza un procesamiento de scripts relativamente sencillo puede elegir cualquier opción para procesar scripts complejos. Sin embargo, para el control más completo del procesamiento complejo de scripts, se recomienda Uniscribe.
Procesamiento de scripts complejos mediante funciones de texto
Las aplicaciones que usan principalmente texto sin formato, es decir, texto que usa el mismo tipo de letra, peso, color, etc., tienen tradicionalmente escritos texto y longitudes de línea medida mediante funciones de texto estándar, como TextOut, ExtTextOut, TabbedTextOut, DrawText y GetTextExtentExPoint. Estas funciones admiten el procesamiento de scripts complejos y efectos tipográficos finos. Para obtener más información, vea Fuentes y texto.
En general, la compatibilidad con texto estándar es transparente para las aplicaciones que procesan scripts complejos. Sin embargo, debe tener en cuenta algunas reglas específicas para seguir en las aplicaciones que admiten la tipografía fina y procesar scripts complejos:
- La aplicación debe guardar caracteres en un búfer y mostrar una línea completa de texto a la vez en lugar de, por ejemplo, llamar a ExtTextOut en cada carácter, ya que el usuario escribe. Este mecanismo permite que los módulos avanzados de forma de texto usen el contexto para reordenar y generar glifos correctamente.
- La aplicación debe usar GetTextExtentExPoint para determinar la longitud de línea, en lugar de calcular las longitudes de línea de anchos de caracteres almacenados en caché, ya que el ancho de un glifo puede variar según el contexto.
- Opcionalmente, la aplicación debe agregar compatibilidad con el orden de lectura de derecha a izquierda y la alineación derecha.
- El reordenamiento y el procesamiento contextual necesarios para scripts complejos o tipografía fina requiere un aumento significativo en el procesamiento en la presentación de texto básico para scripts simples. Por lo tanto, para evitar problemas de rendimiento, la aplicación no debe procesar grandes cantidades de texto antes de mostrar los resultados y devolver el control al usuario.
Procesamiento complejo de scripts mediante controles de edición
Los controles de edición estándar de Windows se han ampliado para admitir texto multilingüe y scripts complejos. La compatibilidad extendida incluye la entrada y la presentación, así como el movimiento de cursor correcto sobre clústeres de caracteres, por ejemplo, en scripts tailandeses y devanagari. Para obtener más información, vea Editar controles.
Procesamiento de scripts complejos mediante controles de edición enriquecidos
Rich Edit 3.0 es una colección de interfaces de nivel superior que aprovecha Uniscribe para aislar las aplicaciones de diseño de texto de las complejidades de determinados scripts. Rich Edit es la manera más sencilla de que las aplicaciones muestren scripts complejos aunque su propósito principal no sea necesariamente el diseño de texto. Rich Edit proporciona una edición rápida y versátil de texto multilingüe enriquecido y texto simple sin formato. Incluye amplias interfaces de mensajes y COM, edición de texto, formato, salto de línea, diseño de tabla simple, diseño de texto vertical, diseño de texto bidireccional, compatibilidad con Indic y tailandés, una interfaz de usuario de edición muy similar a las interfaces de Microsoft Word y Text Object Model.
Junto con las interfaces Rich Edit, las aplicaciones pueden usar la función Rich Edit TextOut para analizar, dar forma, posición y romper líneas automáticamente. Para obtener más información, vea Controles de edición enriquecidos.
Procesamiento de scripts complejos mediante uniscribe
Uniscribe proporciona la compatibilidad más amplia para el procesamiento de texto que implica efectos tipográficos finos y scripts complejos. Admite las reglas complejas que se encuentran en scripts como árabe, devanagari y tailandés. Controla los scripts escritos de derecha a izquierda, como árabe y hebreo, y admite la combinación de scripts. Uniscribe también expone las características de fuente OpenType que pueden usar las aplicaciones para controlar efectos tipográficos finos. Para obtener más información, consulte Procesamiento de scripts complejos.
Temas relacionados