Cómo hacer OCR en PowerBuilder 2022R3 (C# OCR Tesserate)

 

Para empezar el año 2024 he actualizado todos mis ejemplos a PowerBuilder 2022R3 build 3289 y

de paso he añadido una pequeña mejora al ejemplo de escáner para PowerBuilder...

Esta vez le he añadido la posibilidad de hacer OCR y así obtener el texto de una Imagen. 

Para conseguir obtener el texto a partir de una imagen escaneada me he basado en el artículo de Luis Llamas How to do OCR in C# with OCR Tesserate en el que explica como añadir y usar la librería Tesseract.

El código del programa PowerBuilder sólo ha variado en que he reimportado la librería que genero en Visual Studio 2022 llamada ScannerWia.dll.

Comentar también que he reubicado esta librería dentro de la carpeta bin, para poner ahí todas las dependencias necesarias para el OCR.

En el proyecto Visual Studio 2022, lo he he hecho es añadir el paquete nuget Tesseract (5.2.0) y he creado un método llamado  ConvertImageToTxt para transformar la imagen en txt.


Este método lo he dejado público para que si se desea se pueda usar desde PowerBuilder también.

Para el ejemplo de escaneo, lo que he hecho es llamar a este método cuando el método Scan recibe como argumento de formato "OCR".


Como veis, hay que indicar el idioma, en mi caso Español ("spa") y la ruta donde hemos guardado los datos entrenados de nuestro idioma.

Todo esto está perfectamente explicado en el artículo que he citado arriba, os dejo enlace de todas formas para la descarga de los idiomas, yo en el ejemplo, para que ocupe poco, sólo he dejado Español:

https://github.com/charlesw/tesseract

En fin no me enrollo mas y os dejo como siempre el enlace de proyecto actual en GitHub:


Y proyecto en Visual Studio 2022:

github.com/rasanfe/ScannerWia

Para los que usen versiones anteriores a PowerBuilder 2022 R3 pueden buscar los enlaces de descarga en mi anterior artículo: Escanear en PowerBuilder 2022R2 (WIA C#) (De momento no los he actualizo para añadir esta funcionalidad, pero cuando pueda los actualizaré.)

Comentarios