QR en portapapeles
QR en portapapeles
Hola a todos,
¿Ustedes sabrían como hacer para generar un código QR, y dejarlo en el portapapeles para luego en otra aplicación realizar un 'pegar'?
Muchas gracias,
¿Ustedes sabrían como hacer para generar un código QR, y dejarlo en el portapapeles para luego en otra aplicación realizar un 'pegar'?
Muchas gracias,
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
- Antonio Linares
- Site Admin
- Posts: 42477
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 28 times
- Been thanked: 63 times
- Contact:
Re: QR en portapapeles
Carlos,
Aqui tenemos un muy buen ejemplo de QR de César:
viewtopic.php?p=276837#p276837
y luego seria cuestión de usar FW_CopyToClipboard( ... ) proporcionandole la imagen del QR.
nos falta ese paso... pensando...
Aqui tenemos un muy buen ejemplo de QR de César:
viewtopic.php?p=276837#p276837
y luego seria cuestión de usar FW_CopyToClipboard( ... ) proporcionandole la imagen del QR.
nos falta ese paso... pensando...
-
- Posts: 497
- Joined: Sun Oct 16, 2005 3:32 am
- Location: Quito - Ecuador
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: QR en portapapeles
Tocayo,
Code: Select all | Expand
#include "FiveWin.ch"
REQUEST FWZEBRA // *** Indispensable para dibujar código QR
Function Inicio()
LOCAL oDlg, hBmp
LOCAL cTxt4QR := "Prueba de Copy - Paste" + CRLF + "FiveWin 2025"
hBmp := FW_BarCodeBmp( cTxt4QR, "QRCODE", 250, 250 )
hBmp := bmp2alpha( hBmp ) // *** Sin esta línea QRcode tiene un feo marco negro
// *** Siguiente línea hace la magia y guarda en el portapapeles, luego,
// *** puedes hacer PASTE (Ctrl+V) en Paint, PhotoShop, Word, etc., y recuperas tu código QR
FW_CopyToClipboard(hBmp)
DEFINE DIALOG oDlg SIZE 400,300 PIXEL TRUEPIXEL
@ 20,20 XIMAGE oImg SIZE -20,-20 OF oDlg PIXEL RESOURCE hBmp
ACTIVATE DIALOG oDlg CENTERED
return nil
//-----------------------------------------------------------------------//
Function bmp2alpha( hBmp1 )
local hBmp, oBmp
oBmp := GdiBmp():New()
oBmp:CreateFromRes( hBmp1, 0 )
oBmp:Conver24to32Alpha( .F. )
hBmp := oBmp:GetGDIHbitmap()
oBmp:Set32Bits(.F.)
oBmp:Destroy()
DeleteObject( hBmp1 )
return hBmp
//------------------------------------------------------------------------------//
Last edited by Cgallegoa on Sat Feb 08, 2025 5:46 pm, edited 1 time in total.
Saludos,
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Re: QR en portapapeles
Si, si. En el documento ya lo consigo imprimir, la intención es disponer de él en el clipboard.Antonio Linares wrote: Sat Feb 08, 2025 5:01 pm Carlos,
Aqui tenemos un muy buen ejemplo de QR de César:
viewtopic.php?p=276837#p276837
y luego seria cuestión de usar FW_CopyToClipboard( ... ) proporcionandole la imagen del QR.
nos falta ese paso... pensando...
Estoy mirando esto:
hBitmap := FW_BarCodeBmp( cText, "QR-CODE", 3.5, 3.5, Nil )
SetClipboardData( 2, hBitmap )
FW_CopyToClipBoard( cText )
FW_CopyToClipBoard( hBitmap, 2 )
Pero no me funciona, al menos en el Word no consigo que 'pegue' el Qr. (el cText sin problema).
A ver que se te ocurre.
Muchas gracias,
EDITADO
=======
FW_BarCodeBmp( cText, "QR-CODE", 3.5, 3.5, Nil ) creo que debía ser FW_BarCodeBmp( cText, "QRCODE", 3.5, 3.5, Nil )
Por otra parte, las unidades de FW_BarCodeBmp( cText, "QRCODE", 3.5, 3.5, Nil ), son pixels, pulgadas, centímetros?
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: QR en portapapeles
Vamos bien!!!!
Por otra parte, las unidades de FW_BarCodeBmp( cText, "QRCODE", 3.5, 3.5, Nil ), son pixels, pulgadas, centímetros?
Me ha creado un QR que no parece correcto, desde el móvil no lo identifica.
Lo he 'pagado' en el Word, le he impreso y nada, que no le gusta.
Por otra parte, las unidades de FW_BarCodeBmp( cText, "QRCODE", 3.5, 3.5, Nil ), son pixels, pulgadas, centímetros?
Me ha creado un QR que no parece correcto, desde el móvil no lo identifica.
Lo he 'pagado' en el Word, le he impreso y nada, que no le gusta.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: QR en portapapeles
el tamaño estandard de un QR es 4.0
FW_BarCodeBmp( cText, "QR-CODE", 4.0, 4.0, Nil )
prueba hacerlo asi o mas grande
FW_BarCodeBmp( cText, "QR-CODE", 4.0, 4.0, Nil )
prueba hacerlo asi o mas grande
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
Re: QR en portapapeles
És para Verifactu, nos permiten entre 3 y 4 cm., lo voy a poner a 3,5cm.sysctrl2 wrote: Sat Feb 08, 2025 6:17 pm el tamaño estandard de un QR es 4.0
FW_BarCodeBmp( cText, "QR-CODE", 4.0, 4.0, Nil )
prueba hacerlo asi o mas grande
He visto que CGallego utiliza 250,250 además de QRCODE.
FW_BarCodeBmp( cText, "QR-CODE", 3500, 350, Nil )
El QR mide 9,5 cm. aproximadamente, he probado con 129,129 y 'pagado' en un Word a DIN A4 mide 3,5 cm; para mi el tamaño correcto.
Ahora bien, me dibuja el marco negro y el lector no lo identifica como un QR válido.
Mi función es esta:
// Para usar QR precisa de "REQUEST FWZEBRA"
REQUEST FWZEBRA
FUNCTION VFQr2Clipboard( AMPAARRA, cNIF, cVFCODFAC, dDataFact, nImpotota )
Local cText := ""
Local hBitmap := 0
cText := VF_URL_QR( AMPAARRA, ;
AllTrim( cNIF ), ;
AllTrim( cVFCODFAC ), ;
dDataFact, ;
nImpoTota ;
)
Traza( 1, "cText=", cText )
MsgInfo( cText, "B" )
hBitmap := FW_BarCodeBmp( cText, "QRCODE", 129, 129, Nil )
hBitmap := bmp2alpha( hBitmap )
FW_CopyToClipBoard( hBitmap )
Return Nil
/* *********************************************************************************** */]
EDITO
=====
Da igual que use "QR-CODE" que "QRCODE"
EDITO-2
======
Y no necesita REQUEST FWZEBRA.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: QR en portapapeles
He cortado con las tijeras el marco negro y el QR es correcto.
Venderé el soft con un kit de tijeras para QR.
Y todo es digital, el soft digital, las tijeras con los dedos (digital).
Venga, que alguien me eche una mano.
Venderé el soft con un kit de tijeras para QR.
Y todo es digital, el soft digital, las tijeras con los dedos (digital).
Venga, que alguien me eche una mano.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
-
- Posts: 497
- Joined: Sun Oct 16, 2005 3:32 am
- Location: Quito - Ecuador
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: QR en portapapeles
Parece que es un bug en FW_CopyToClipboard()
Otra opción es con oImg:bPainted. Hace el copy sin el feo marco
Ya no hace falta que incluyas las tijeras
Otra opción es con oImg:bPainted. Hace el copy sin el feo marco
Code: Select all | Expand
#include "FiveWin.ch"
REQUEST FWZEBRA // *** Indispensable para dibujar código QR
Function Inicio()
LOCAL oDlg, hBmp
LOCAL cTxt4QR := "Prueba de Copy - Paste" + CRLF + "FiveWin 2025"
hBmp := FW_BarCodeBmp( cTxt4QR, "QRCODE", 250, 250 )
hBmp := bmp2alpha( hBmp ) // *** Sin esta línea QRcode tiene un feo marco negro
// *** Siguiente línea hace la magia y guarda en el portapapeles, luego,
// *** puedes hacer PASTE (Ctrl+V) en Paint, PhotoShop, Word, etc., y recuperas tu código QR
// FW_CopyToClipboard(hBmp) // *** También genera marco negro al hacer paste.
DEFINE DIALOG oDlg SIZE 400,350 PIXEL TRUEPIXEL
@ 03,20 BUTTON oBtn PROMPT "Copy" OF oDlg PIXEL SIZE 80,25 ACTION oImg:CopytoClipBoard(.T.)
@ 40,20 XIMAGE oImg SIZE -20,-20 OF oDlg PIXEL RESOURCE hBmp
oImg:bPainted := {||oImg:CopytoClipBoard(.T.)} // *** Hace el paste correcto, sin el cuadro negro.
ACTIVATE DIALOG oDlg CENTERED
return nil
//-----------------------------------------------------------------------//
Function bmp2alpha( hBmp1 )
local hBmp, oBmp
oBmp := GdiBmp():New()
oBmp:CreateFromRes( hBmp1, 0 )
oBmp:Conver24to32Alpha( .F. )
hBmp := oBmp:GetGDIHbitmap()
oBmp:Set32Bits(.F.)
oBmp:Destroy()
DeleteObject( hBmp1 )
return hBmp
//------------------------------------------------------------------------------//
Saludos,
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Re: QR en portapapeles
Ostras!!
El caso es que no lo muestro en pantalla.
Voy a investigar XIMAGE a ver que hace.
Y anulo el pedido a Amazon de las 35698 tijeras que he pedido.
Supongo que si Antonio nos lee quizás resuelva el bug de FW_CopyToClipboard()
Muchas gracias por el interés.
Sigo investigando.
El caso es que no lo muestro en pantalla.
Voy a investigar XIMAGE a ver que hace.
Y anulo el pedido a Amazon de las 35698 tijeras que he pedido.
Supongo que si Antonio nos lee quizás resuelva el bug de FW_CopyToClipboard()
Muchas gracias por el interés.
Sigo investigando.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
- Antonio Linares
- Site Admin
- Posts: 42477
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 28 times
- Been thanked: 63 times
- Contact:
Re: QR en portapapeles
Carlos,
Has probado asi ?
FW_BarCodeBmp( cText, "QRCODE", 129, 129, Nil, CLR_WHITE )
No encuentro el código de Bmp2Alpha(), donde está ?
Has probado asi ?
FW_BarCodeBmp( cText, "QRCODE", 129, 129, Nil, CLR_WHITE )
No encuentro el código de Bmp2Alpha(), donde está ?
Re: QR en portapapeles
Sigue apareciendo el marco negro alrededor. QR no identificable.Antonio Linares wrote: Sat Feb 08, 2025 8:49 pm Carlos,
Has probado asi ?
FW_BarCodeBmp( cText, "QRCODE", 129, 129, Nil, CLR_WHITE )
No encuentro el código de Bmp2Alpha(), donde está ?
Function bmp2alpha( hBmp1 )
local hBmp, oBmp
oBmp := GdiBmp():New()
oBmp:CreateFromRes( hBmp1, 0 )
oBmp:Conver24to32Alpha( .F. )
hBmp := oBmp:GetGDIHbitmap()
oBmp:Set32Bits(.F.)
oBmp:Destroy()
DeleteObject( hBmp1 )
return hBmp
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
- Antonio Linares
- Site Admin
- Posts: 42477
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 28 times
- Been thanked: 63 times
- Contact:
Re: QR en portapapeles
Carlos,
Estoy probando asi pero desde el mspaint al pegar se ve todo en negro:
Estoy probando asi pero desde el mspaint al pegar se ve todo en negro:
Code: Select all | Expand
#include "FiveWin.ch"
function Main()
FW_CopyToClipBoard( bmp2Alpha( FW_BarCodeBmp( "Hola", "QRCODE", 400.0, 400.0 ) ) )
return nil
Function bmp2alpha( hBmp1 )
local hBmp, oBmp
oBmp := GdiBmp():New()
oBmp:CreateFromRes( hBmp1, 0 )
oBmp:Conver24to32Alpha( .F. )
hBmp := oBmp:GetGDIHbitmap()
oBmp:Set32Bits(.F.)
oBmp:Destroy()
DeleteObject( hBmp1 )
return hBmp
Re: QR en portapapeles
Precisamente lo que comentaba Carlos Gallego.Antonio Linares wrote: Sat Feb 08, 2025 9:35 pm Carlos,
Estoy probando asi pero desde el mspaint al pegar se ve todo en negro:Code: Select all | Expand
#include "FiveWin.ch" function Main() FW_CopyToClipBoard( bmp2Alpha( FW_BarCodeBmp( "Hola", "QRCODE", 400.0, 400.0 ) ) ) return nil Function bmp2alpha( hBmp1 ) local hBmp, oBmp oBmp := GdiBmp():New() oBmp:CreateFromRes( hBmp1, 0 ) oBmp:Conver24to32Alpha( .F. ) hBmp := oBmp:GetGDIHbitmap() oBmp:Set32Bits(.F.) oBmp:Destroy() DeleteObject( hBmp1 ) return hBmp
Al parecer antes sin la función bmp2alpha() se veía negro (eso está anotado en el código de ejemplo que ha publicado).
De ahí el uso de la función bmp2alpha(), para que no se viera todo en negro.
Yo incluso estaba pensando en crear un DIALOG, meterle el QR, usar métodos de la clase WINDOW y ver si se puede capturar; vamos una solución parecida que ha encontrado Carlos Gallego ante el error que se da ahora.
Pero yo crearía el DIALOG, le meto el QR, lo capturo y cierro DIALOG.
Al menos tendré respuesta al problema aunque no me guste mucho. De momento todo es teoría, es sólo una idea.
A ver mañana como me levanto y sigo con ello.
Muchas gracias,
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
- Antonio Linares
- Site Admin
- Posts: 42477
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 28 times
- Been thanked: 63 times
- Contact: