Compartir a través de


Habilitación de la corrección de texto para recopiladores de tinta personalizados

Panel de entrada de PC tableta de Microsoft es una herramienta eficaz para escribir texto manuscrito con un lápiz y corregir texto sin el uso de un teclado. Cuando se usa el Panel de entrada, un usuario escribe texto escribiendo a mano en las superficies de entrada manuscrita del Panel de entrada, lo que hace que el Panel de entrada reconozca la escritura a mano del usuario como texto. Una vez reconocido el texto, el usuario pulsa Insertar en el Panel de entrada para insertar el texto en una aplicación o documento. Antes de insertar el texto, un usuario tiene acceso a un conjunto de herramientas de corrección en el Panel de entrada. Entre ellas se incluye la selección de un resultado de reconocimiento alternativo, la capacidad de reescribir un solo carácter o incluso para eliminar toda la palabra y volver a escribir. Estas herramientas de corrección permiten a un usuario corregir los errores de reconocimiento y los errores humanos.

Una vez que el texto escrito mediante el Panel de entrada se encuentra en el documento, los usuarios tienen acceso a la misma funcionalidad de corrección que está disponible antes de la inserción en aplicaciones habilitadas para Servicios de texto de Windows Text Services y basados en Text Services. A partir de Microsoft Windows XP Service Pack 2 Tablet PC Edition, todas las aplicaciones de Edición enriquecida están habilitadas de forma predeterminada en Servicios de texto y, a partir de Windows Vista, las aplicaciones HTML están habilitadas para Servicios de texto de forma predeterminada. La corrección en documentos solo está disponible en aplicaciones habilitadas y basadas en Text Service; Esto se debe a que el Panel de entrada depende de la capacidad de Text Service para almacenar las propiedades de texto asociadas, incluidos los objetos de entrada de lápiz y las alternativas de reconocimiento, con el fin de proporcionar corrección en el documento.

panel de entrada de tablet pc con corrección de texto

Sin embargo, hay numerosos escenarios, como la corrección del reconocimiento de voz o la corrección de texto con tipo sobre la marcha, que no comienzan con la entrada de texto mediante el Panel de entrada, pero en los que la corrección en el documento puede ser extremadamente útil para los usuarios de tablet PC. Un ejemplo primo es en las aplicaciones que proporcionan superficies de entrada manuscrita personalizadas para escribir texto mediante un lápiz. Las superficies de entrada manuscrita personalizadas son una excelente manera de que las aplicaciones proporcionen una funcionalidad única específica para las tareas de entrada de texto de cada aplicación. Además, las superficies de entrada manuscrita personalizadas proporcionan una experiencia de usuario de Tablet PC totalmente integrada, lo que hace que sea claro que el lápiz es un dispositivo de entrada de primera clase en las aplicaciones que los contienen. Sin embargo, es posible que las aplicaciones que proporcionen superficies de entrada manuscrita personalizadas no permitan o que no puedan proporcionar el mismo nivel de compatibilidad de corrección que está disponible en la corrección en documento del Panel de entrada.

recopilador de tinta personalizado

Las aplicaciones basadas en Text Services o habilitadas en las que la corrección en el documento es útil para la corrección del texto no escrito mediante el Panel de entrada pueden usar la API IHandWrittenTextInsertion del Panel de entrada (clase Microsoft.TextInput.HandwrittenTextInsertion en código administrado) para habilitar la corrección en documentos para el texto escrito por otros medios. De esta manera, las aplicaciones pueden agregar de forma barata una potente compatibilidad de corrección a sus superficies de entrada manuscrita personalizadas u otros escenarios de entrada de texto, y redondear su historia de entrada de texto del PC tableta. La API IHandWrittenTextInsertion del Panel de entrada se incluye como parte del sistema operativo Windows Vista y como parte de la versión 1.9 o posterior del SDK de Tablet Platform. Se incluyen una versión basada en .NET y COM de la API. La habilitación de la corrección en el documento para el texto no escrito mediante el Panel de entrada es compatible con Windows Vista y versiones más recientes. La corrección en el documento solo está disponible para idiomas latinos y no puede mostrar ningún carácter fuera del juego de caracteres latinos.

Cómo usar la API HandwrittenTextInsertion en una aplicación

Los cambios necesarios en una aplicación para integrar la corrección en documento del Panel de entrada para el texto no escrito mediante el Panel de entrada y el uso de la API IHandWrittenTextInsertion son sencillos. Todo el código de entrada de texto personalizado de la aplicación permanece sin cambios, excepto el último paso. En el momento en que el texto escrito mediante una superficie de entrada manuscrita personalizada, el reconocimiento de voz u otros medios se va a mostrar en un campo de texto habilitado para servicios de texto, la aplicación envía el texto a la interfaz IHandWrittenTextInsertion en lugar de enviarlo directamente al campo de texto. A continuación, el componente de programación Panel de entrada controla la inserción del texto en el campo de texto y en el almacén de respaldo de Text Services. Al agregar el texto al almacén de respaldo de Text Services, el componente de programación panel de entrada controla la configuración de las propiedades de texto que requiere el Panel de entrada para que la corrección en el documento esté habilitada para ese texto.

En la sección siguiente se explica este proceso en detalle para una aplicación de C++ mediante la versión COM de la API IHandWrittenTextInsertion . Hay notas en cualquier lugar donde los pasos para usar la versión de .NET Framework de la API en C# difieren para el uso de la versión COM en C++. La API handwrittenTextInsertion administrada incluye una única interfaz COM, IHandwrittenTextInsertion. La definición de esta interfaz se encuentra en PenInputPanel.h y PenInputPanel_i.c.

En primer lugar, la aplicación debe usar la función CoCreateInstance para generar una instancia de IHandWrittenTextInsertion con el identificador de clase CLSID_HandwrittenTextInsertion. Tenga en cuenta que la creación de un objeto de CLSID_HandwrittenTextInsertion solo se realizará correctamente después de crear una ventana y se le asigne el foco, ya que hasta entonces no se activa el almacén de respaldo de Text Services. Además, si tiptsf.dll no está presente en el sistema, se produce un error en la función CoCreateInstance y devuelve REGDB_E_CLASSNOTREG, lo que indica que no se admite la corrección en documento del Panel de entrada en el sistema. En este momento, la aplicación debe continuar sin intentar habilitar la corrección en documento del Panel de entrada. La instancia de HandwrittenTextInsertion debe ser accesible desde el código de la aplicación que controla la inserción de texto en un campo de texto.

Nota

Al trabajar con la versión de .NET Framework de la API, la aplicación debe agregar una instrucción using para permitir el acceso al espacio de nombres Microsoft.Ink.TextInput y, a continuación, crear el objeto directamente.

 

En segundo lugar, el código de la aplicación responsable de insertar texto en un campo de texto debe modificarse para que ya no inserte texto en un campo de texto directamente, sino que llame a uno o al otro de los dos métodos de inserción de IHandwrittenTextInsertion. Si las aplicaciones deben elegir llamar a InsertRecognitionResultsArray o InsertRecognitionResults depende de si la aplicación tiene alternativas de reconocimiento para el texto almacenado como una matriz o como un objeto IInkRecognitionResult .

Nota

Al trabajar en código administrado, el objeto de reconocimiento correspondiente consumido por InsertRecognitionResultsArray es RecognitionResult. Ambos métodos consumen los tres parámetros siguientes:

 

  • Alterna Es una colección bidimensional de cadenas, almacenadas como una matriz de matrices o como un objeto IInkRecognitionResult (o RecognitionResult). Si las alternativas se almacenan como una matriz de matrices, se debe pasar como un puntero de matriz seguro. Cada entrada de la matriz de nivel superior es una lista de alternativas para una sola palabra en la inserción. La entrada situada en la posición cero de las sub matrices de alternativas es el texto que se inserta en el campo de texto. Las alternativas adicionales (índices de 1 a n en cada sub array) se almacenan en el almacén de respaldo de Text Services y se ofrecen al usuario como opciones como parte de la corrección en el documento. Si no se incluyen alternativas, el usuario ve "No sugerencia" en lugar de la lista de alternativas. Si una inserción contiene varias palabras con espacios entre ellas, cada espacio debe incluirse como entrada en la matriz de nivel superior.
  • LenguaLCID de idioma de entrada que corresponde al texto contenido en el parámetro alternates . En el caso en que un reconocedor de voz o escritura a mano generó el contenido de las alternativas , también es la propiedad Languages asociada al reconocedor utilizado.
  • fLatticeContainsAutoSpacingInformation Marca que indica si el texto contenido en el parámetro alternates se generó mediante un reconocedor con espaciado automático habilitado. Si se ha habilitado el espaciado automático, la marca debe establecerse en TRUE. Si se deshabilitó el espaciado automático, la marca debe establecerse en FALSE. En el caso en el que un reconocedor generó el contenido de las alternativas que no admite el espaciado automático o no lo generó un reconocedor en absoluto, la marca debe establecerse en FALSE.

El modelo de programación del Panel de entrada puede insertar el texto en el documento o la aplicación desde la posición del símbolo de intercalación del sistema.

Ambos métodos devuelven S_OK si la inserción se realiza correctamente. Devuelven E_NOINTERFACE si la aplicación no está habilitada o basada en Text Services y E_INVALIDARG si las alternativas tienen un formato incorrecto o no son accesibles . También pueden devolver E_OUTOFMEMORY si no hay suficiente memoria disponible en el sistema o E_FAIL después de un error catastrófico, como text Services Framework, que no está habilitado.

Conclusión

Habilitar la corrección en documento del Panel de entrada para el texto no introducido mediante el Panel de entrada es una manera barata y sencilla de una aplicación basada en Text Services o habilitada para complementar un método personalizado de entrada manuscrita o entrada con una potente funcionalidad de corrección basada en lápiz. En Windows Vista, todas las aplicaciones Rich Edit y Trident están habilitadas para Text Services. Aunque las superficies de entrada manuscrita integradas son una excelente opción para agregar una experiencia de usuario personalizada de Pc tablet a una aplicación, solo admiten la mitad de la entrada de texto si no incluyen funcionalidades de corrección. La corrección en el documento proporciona a los usuarios la otra mitad del artículo agregando la capacidad de intercambiar una selección para un reconocimiento alternativo, o para reescribir parte o toda la selección.

Programación del panel de entrada de texto