Escanear en PowerBuilder 2022R2 (WIA C#)

 


Para finalizar el año 2023, hoy os traigo un ejemplo para poder escanear imágenes o documentos Pdf desde una aplicación PowerBuilder 2022R2.

Este ejemplo es una recreación de la aplicación Windows Forms presentada en el siguiente articulo:

Creating a scanning application in Winforms with C#

Podéis descargar su proyecto en:

github.com/ourcodeworld/csharp-scanner-wia


La principal diferencia respecto al proyecto Windows Forms es que he añadido la posiblidad de escanear en PDF.

Para ello lo que hago es escanear en PNG y luego usando los nuevos objetos de PowerBuilder PDFdocument, PDFpage y PDFImage convertir la imagen PNG en PDF.

Para visualizar el resultado del escaneo, he usado el control WebBrowser, que nos permite cargar PDF e imágenes directamente.

La librería que he creado en .Net6 y he importado con el Net Dll Importer, simplemente tiene 2 métodos:

any of_ListScanners()

string of_Scan(string as_scanner,string as_format,string as_outputpath,string as_filename)

Cuando la aplicación se abre, se ejecuta la función of_ListScanners() para rellenar un ListBox con los escaneres disponibles y cuando se aprieta el botón Start scan, se ejecuta la función of_Scan().

Si la extensión del documento es un PDF, entonces uso una función global que he creado para convertir la imagen PNG en PDF:

string gf_imagetopdf (string as_image)

Con el Objeto PDFImage, se indica las propiedades de la imagen, con el Objeto PdfPage, se Inserta el objeto PdfImage y finalmente se Inserta el Objeto PdfPage al Objeto PDfDocument que nos permite guardar el PDF.

La función en resumen podría ser algo así:

 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 necesiten versiones anteriores como la descrita en este artículo:

Proyecto PowerBuilder 11.5 Build 2506

Proyecto PowerBuilder 12.6 build 3506

Proyecto Visual Studio 2022 NetCore 3.1 COM/ActiveX

Los Proyectos PowerBuilder 11.5 y 12.6 usan las libreáis COM, en 32bits. para la conversión de Imágenes a PDF Usan ItextSharp , y el Control Microsoft Ole WebBrowser para visualizar el resultado. 
Para visualizar imágenes se convierten a un PDF temporal que se carga en el WebBrowser.


Proyecto Visual Studio 2022 NetCore 3.1

Los proyectos PowerBuilder 2019 y 2021 usan la librería NetCore 3.1 importada. Para la conversión de Imágenes a PDF, usa la librería iTextSharp y para la visualización tanto de imágenes como de PDF se usa el control WebBrowser.

Comentarios