====== wQrCode ====== Creación de códigos QR para incluirlos en nuestras páginas web en formato SVG o PNG. [[https://es.wikipedia.org/wiki/C%C3%B3digo_QR|Código QR en Wikipedia]] ===== Ejemplo de uso ===== {{url>https://samples.nefele.dev/wiki/qr 100%,180px}} WITH OBJECT WQrCode():New(:WO) :cText := "https://nefele.dev" :cClrPane := "#CCCCCC" :cClrText := "#006F94" :nModuleSize := 5 :lPNG := .T. :Create() END WITH Si queremos utilizarlo desde JS podemos crear una función JS que luego podemos llamar desde cualquier evento. cScript := 'function myqr(e){' cScript += WQrCode():InsertSVG("qr2","!e","M","html","#CCCCCC","#006F94",1,10) cScript += WQrCode():InsertPNG("qr1","!e","M","html","#CCCCCC","#006F94",1,10) cScript += '};' AAdd( :aScript, cScript ) Por ejemplo en el OnClick de un wButton WITH OBJECT WButton():New(:WO) :cId := "creaqr" :cText := "Generar QR" :cOnClick := "@myqr('https://nefele.dev')" :cIcon := "center_focus_weak" :lLarge := .T. :lCenter := .T. :Create() END WITH ---- ===== Propiedades ===== ^Nombre ^Init ^Descripción ^Versión ^ |[[propiedades:cClassId]]| qrc | Solo lectura | 0.4| |cText | | Cadena que se leerá en el QR | 0.4| |::: |::: | Si comienza por **@** se considera que es una llamada a una función JS que retornara la cadena.|| |::: |::: | Si comienza por **#** es una propiedad de un control, por defecto 'value', para indicar otro se pondrá #control:propiedad || |::: |::: | Si comienza por **%** se considera que es un parámetro de la función que lo llama que hace referencia a un control. Podemos también indicar la propiedad del control a leer, por defecto 'value', %e:propiedad || |::: |::: | Si comienza por **!** se considera que es una parámetro de la función que corresponde a una cadena || |cEccLevel | "M" | Capacidad de corrección de errores L (7%), M (15%), Q (25%), H (30%) | 0.4| |cFormat | "html" | Formato de salida. Solo es útil cuando se genera PNG | 0.4| |[[propiedades:cClrText]] | clBlack | Color de Texto | 0.4| |[[propiedades:cClrPane]] | clWhite | Color del Fondo | 0.4| |nMargin | 1 | Módulos de margen ( el tamaño del modulo se define con nModuleSize )| 0.4| |nModuleSize | 2 | Tamaño en de cada uno de los recuadros que forman en QR | 0.4| |lPNG | .F. | Se genera el QR como una imagen PNG | 0.4| |cContent | | Si se crea el QR desde una Función JS o desde una llamada por AJAX podemos indicar el wBevel donde se creara| 0.4| ===== Métodos ===== * **InsertPNG( cContent, cText, cEccLevel, nClrPane, nClrText, nMargin, nModuleSize )** - Incrusta un PNG con el Código QR en el wBevel cContent. * **InsertSVG( cContent, cText, cEccLevel, nClrPane, nClrText, nMargin, nModuleSize )** - Incrusta un SVG con el Código QR en el wBevel cContent. * **ToPNG( cText, cEccLevel, nClrPane, nClrText, nMargin, nModuleSize )** - Nos devuelve un PNG en Base64 y formato HTML con el Código QR.