Un ejemplo PowerBuilder bien sencillo para generar y leer códigos QR. Pones un texto (una URL, un identificador, lo que queráis), pulsas un botón y os sale el QR como imagen; y al revés: le pasáis una imagen y os devuelve el contenido que lleva dentro.
¿Y cómo lo hace? Aquí está la gracia: PowerBuilder no sabe generar QR por sí mismo, así que
nos apoyamos en .NET. Cargamos una pequeña librería .NET (ZxingBarcode, que por debajo usa
ZXing.Net) como dotnetobject con el .NET DLL Importer de PB. Eso nos crea un objeto
proxy, nvo_zxingnet, que desde PowerScript se instancia y se usa como si fuera un objeto
nativo. Fijaos en lo limpio que queda:
- Generar →
nvo_zxingnet.BarcodeGenerate(texto, fichero, 12, alto, ancho, false, margen). Ese12es el código del formato QR_CODE dentro de la librería. Devuelve la ruta de la imagen creada. - Leer →
nvo_zxingnet.ReadBarcode(fichero)y os devuelve el texto que contenía el QR (cadena vacía si no reconoce nada).
Todos los métodos devuelven string a propósito, para que PowerBuilder nunca tenga que lidiar
con una excepción .NET: si algo falla, llega el mensaje de error como texto y listo.
El "motor" que hace el trabajo es la librería .NET ZxingBarcode (clase ZxingNet):
- Se despliega ya compilada en la carpeta
DotNet\ZxingBarcode\de este propio ejemplo, para que clones, compiles y funcione sin más. - Se consume desde PowerBuilder como
dotnetobject(el proxynvo_zxingnet). - El código fuente vive en
Blog\Net10\ZxingBarcode(antes estaba enNet8) y se recompila/despliega con el scriptdesplegar_dotnet.bat(hacedotnet publishy espeja las DLLs a la carpetaDotNetde cada ejemplo). - Repo del proyecto .NET (Visual Studio 2022): https://github.com/rasanfe/ZxingBarcode
🔤 Cambio de nombre (.NET 10): la clase .NET pasó de
ZxingNet8aZxingNet, y el objeto PowerBuilder denvo_zxingnet8anvo_zxingnet(el "8" sugería .NET 8 y confundía). Recuerda recompilar y volver a desplegar la DLL deZxingBarcode.
- PowerBuilder 2025 para abrir y compilar la solución.
- .NET 10 Runtime instalado en la máquina → https://dotnet.microsoft.com/en-us/download/dotnet/10.0
- La carpeta
DotNet\ZxingBarcode\con las DLLs desplegadas (ya viene en el repo).
- Clona el repo y abre
app_qr.pbslncon PowerBuilder 2025. - Compila (Full Build) y ejecuta.
- Escribe un texto, genera el QR y compruébalo escaneándolo con el móvil.
- Luego usa la opción de lectura sobre la imagen y verás cómo recupera el texto original.
🎬 Vídeo demo en YouTube: https://youtu.be/rmw8BaNovJE
https://github.com/rasanfe/qrcode
¡Nos vemos en el próximo artículo! Y recuerda: en PowerBuilder, los límites solo están en nuestra imaginación. 🚀
📨 Blog: https://rsrsystem.blogspot.com/
