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: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
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
Publicar un comentario