Aqui esta la libreria dll para generar QR Code

Acerca de los "Comprobantes Fiscales en Papel" que son aquellos que llevan un Codigo de barras proporcionado por el SAT. Tambien se discute sobre el OTRO Codigo de barras que llevan los nuevos Comprobantes por Internet (CFDI)
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Aqui esta la libreria dll para generar QR Code

Mensajepor Dado » Sab Oct 23, 2010 9:44 pm

[ACTUALIZACION OCT-2011]
Gracias por su interes en las librerias y programas que he desarrollado para la Factura Electronica.

He reescrito la pagina inicial de http://www.validacfd.com para ofrecer de forma mas atractiva y actualizada dichos desarrollos.

Por favor visita http://www.validacfd.com para consultar dicha informacion.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

Avatar de Usuario
ramonzea
Mensajes: 167
Registrado: Mié Sep 15, 2010 1:23 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor ramonzea » Dom Oct 24, 2010 11:38 pm

donde deposito?
Kiero anexarlo a mi sistema y probarlo.
Igual si puedes iustar un poco de como seria el uso ke le tendriamos que dar, al sat le entiendo menos que a confusio, :D

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor Dado » Lun Oct 25, 2010 10:04 am

ramonzea escribió:donde deposito?
Kiero anexarlo a mi sistema y probarlo.
Igual si puedes iustar un poco de como seria el uso ke le tendriamos que dar, al sat le entiendo menos que a confusio, :D


Ya te envie un mail a la direccion que tienes registrada aqui en el foro.

Acerca de como funciona......aver si me doy a entender :

El archivo magico (y por el cual estan pagando) es QRCodeLib.dll, eso es todo lo que necesitan, los demas son ejemplos de codigo fuente en Delphi.

Dentro de QRCodeLib.dll hay dos procedimientos y una funcion:

Código: Seleccionar todo


procedure FastQRCode(Texto, FileName : ShortString);

procedure FullQRCode(
   autoConfigurate, AutoFit : boolean;
   backColor, barColor : TColor;
   Texto : ShortString;
   correctionLevel : TQRCodeECLevel;
   encoding : TQRCodeEncoding;
   marginpixels, moduleWidth : integer;
   Height, Width : integer;
   FileName : ShortString);

function QRCodeLibVer : ShortString;


FastQRCode toma como parametros la cadena que quieren codificar en barras y el nombre con el que se va a grabar el BMP

FullQRCode tiene mas control sobre la generacion del codigo de barras, pueden especificar desde el color, tamaño, margenes, etc, los detalles de cada parametro estan el el archivo QRCodeHeaders.pas

QRCodeLibVer devuelve el numero de version de la libreria

Este dll tiene que ser llamado desde algun otro programa que USTEDES VAN A DESARROLLAR .

El programa QRCodeTest es UN EJEMPLO en Delphi de como se ejecuta el dll externo, no sirve de nada, solo es una muestra de como llamar a las funciones que estan contenidas dentro del dll.

Ahora, la pregunta talvez sea : Yo programa en lenguaje xy, como invoco, ejecuto, llamo a un dll?......bueno, yo solo soy experto en Delphi, para cada lenguaje van a tener que investigarle un poco.

Ah! tengo una idea.....LE OFREZCO 20% DE DESCUENTO EN LA COMPRA DEL dll A QUIEN ME ENVIE UNA MUESTRA DE COMO SE USA EN LOS SIGUIENTE LENGUAJES :

C - Pendiente
PHP - Pendiente
Python - No necesario, ver googlechart y pyqrcode en el siguiente post (gracias mauricio)
.NET - Terminado. Ver post mas adelante (gracias a smendoza)
Visual Basic - Terminado. Esta incluido en el archivo Demo del primer post (gracias a smendoza)
Visual FoxPro - Terminado. Ver post mas adelante (gracias Ing. A. de la Hoya)
Xailer - Terminado. Ver post mas adelante, en la pagina 5 (gracias ramonzea)
En Java no es posible, me comentaban que Java es de plataforma independiente y por ese motivo no puede llamar a las dll de windows

Es posible que programadores en estos lenguajes quieran un poco de ayuda en Delphi, especialmente para interpretar los tipo de datos como TQRCodeECLevel, estoy en la mejor disposicion de ayudar para sacar adelante la programacion de ejemplos en los distintos lenguajes.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

mauricio
Mensajes: 372
Registrado: Mié Ago 11, 2010 2:55 am
Ubicación: México, D.F.
Contactar:

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor mauricio » Lun Oct 25, 2010 10:42 am

Hola...

En Python es muy sencillo llamar a una DLL

Código: Seleccionar todo

import win32api
handler = win32api.LoadLibrary( "user32.dll" )
if handler:
fn_addr = win32api.GetProcAddress( handler, "MessageBeep" )
if handler:
win32api.FreeLibrary( handler )

Toda la documentación de este modulo: http://timgolden.me.uk/pywin32-docs/win32api.html

En Python puedes usar el QR Code directamente, aquí unos vínculos:
http://pygooglechart.slowchop.com/pygoo ... odeExample
http://pyqrcode.sourceforge.net/

Espero pronto publicar unos buenos ejemplos paso a paso como me gustan.

Saludos
Todo lo que no es dado es perdido

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Lun Oct 25, 2010 5:01 pm

en VB.NET se usa <DllImport ("libreria.dll")> y ahi mismo se hace la declaracion de la funcion que se encuentra en la dll, por ejemplo:

<Dllimport ("QRCodeLib.dll")> _
Public Shared Function QRCodeLibVer( ) As String
End Function

posteriormente solo se llama a la funcion de manera normal,

QRCodeLibVer( )

Solo que no la he podido hechar a andar xD!!!!

Lo que no se, y no he podido hacer, es como hacer referencia a los "procedures" (desconozco Delphi) que mencionas que estan en tu dll (FullQRCode y FastQRCode), seguire investigando. :geek:

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Lun Oct 25, 2010 5:09 pm

Acabo de encontrar esto:



Solo me gustaría añadir un detalle a lo que te ha explicado A.Poblacion.

Probablemente sea más sencillo importar una dll, creada como librería
ActiveX (COM). Si dispones del código fuente en Delphi, es inmediato
convertir tu librería en una librería activex. Solo copiar el código de la
función y cambiar el tipo de retorno y parámetros a OleVariant. En este caso
para utilizar tu función bastará con añadirla como referencia COM de tu
aplicación vb.net.

Por otro lado, si utilizas delphi.net, no tendrías que hacer nada especial.
Tan solo crear una librería .net, y utilizarla desde tu aplicación vb.net
como cualquier otra librería de cualquier lenguaje .net includo vb.net.

--
Juan Carlos Badiola
MVP - C#


Fuente : http://www.ms-news.net/f1127/dll-en-delphi-para-importar-vbulletin-net-6958473.html

De ser posible lo que menciona la referencia, seria mucho mas facil utilizar tu dll, ya que solo se agrega como referencia al proyecto (libreria activex) y se manejan las funciones de manera normal :D

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor Dado » Lun Oct 25, 2010 5:54 pm

smendoza escribió:De ser posible lo que menciona la referencia, seria mucho mas facil utilizar tu dll, ya que solo se agrega como referencia al proyecto (libreria activex) y se manejan las funciones de manera normal :D


Vaya, aveces es dificil complacer a todos.

Veras, originalmente pensaba hacer un ejecutable que fuera llamado por parametros algo asi como :

c:>QRCode "texto" tamaño margen....etc

Y un forista me comento que mejor un dll, hasta me envio un ejemplo (gracias anibalbg) y asi lo hice.

Tu propuesta de convertirla a Activex suena interesante, pero ya la libere y he vendido 3 librerias (fue rapida la respuesta, gracias a todos !!) seria muy imprudente cambiar de repente las reglas, por eso mejor ofrezco un descuento al valiente que logre echarlo a andar en otro lenguaje.

Asi que echale ganas, al primero que me envie un ejemplo en cada uno de los lenguajes del primer post y que sea TOTALMENTE FUNCIONAL de como llamar al dll y generar QRCode's le doy ese super-descuento.....
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Lun Oct 25, 2010 6:17 pm

dado escribió:Vaya, aveces es dificil complacer a todos.


jajajaj, eso es cierto.

Creo que el equivalente a 'procedure' seria un 'Sub' en VB, seguire intentando hasta que salga :geek: .

Saludos!

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Lun Oct 25, 2010 8:34 pm

Lista para VB6 ;)

Solo hay que agregar las siguientes dos lineas de codigo en las cabezeras

Código: Seleccionar todo



Private Declare Sub FastQRCode Lib "C:\QRCodeLib.dll" (ByVal Texto As String, ByVal FileName As String) ' suponiendo que la dll esta en el C:\
Private Declare Function QRCodeLibVer Lib "C:\QRCodeLib.dll" ()


*Se puede crear un modulo y agregar esas dos mismas lineas, cambiando el tipo a Public.

Con eso ya la podemos usar desde cualquier parte del codigo (del form)

Código: Seleccionar todo

Private Sub Command1_Click()
FastQRCode "Test", "QRCODE.bmp"
QRCodeLibVer
End Sub


Sigo intentando con .NET, ahorita lo publico si es que me sale :lol:

* No se porque, pero al poner el nombre del archivo, por ejemplo QRCODE.bmp, me genera el archivo pero sin la primera letra, me genera como archivo: RCODE.bmp

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor Dado » Mar Oct 26, 2010 10:02 am

smendoza escribió:* No se porque, pero al poner el nombre del archivo, por ejemplo QRCODE.bmp, me genera el archivo pero sin la primera letra, me genera como archivo: RCODE.bmp


Ese problema se debe a la forma en que Delphi almacena los string, siempre tenemos ese detalle en Delphi.

Resulta que en Delphi las cadenas (string) se almacenan con la posicion 0 definiendo la longitud, por ejemplo :

cadena = "hola"

cadena[0] = 4 (porque son 4 caracteres)
cadena[1] = h
cadena[2] = o
cadena[3] = l
cadena[4] = a

PERO en otros lenguajes como en "C" y talvez en VB se almacenan de tipo "null terminated" es decir:

cadena = "hola"

cadena[0] = h
cadena[1] = o
cadena[2] = l
cadena[3] = a
cadena[4] = #0 (hexadecimal 0, es decir, fin de la cadena)

Y supongo que por eso no considera el primer caracter, porque estan "recorridos", checa como convertir una cadena "null terminated" tipo C (o en tu caso tipo VB) a una cadena tipo Delphi, seguro el maestro google tendra la respuesta.

Otro detalle, la funcion QRCodeLibVer regresa una cadena que tienes que usar de algun modo, es decir puedes usarlo :

MuestraMensaje ( "La version es : " + QRCodeLibVer);

ó

If QRCodeLibVer = "1.0" then ok.

Y por cierto, estoy casi seguro que esa funcion te va a dar algo como "?1.0", es decir con un caracter raro al principio, es por la diferencia de como maneja cada lenguaje las cadenas.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!


Volver a “CF Autoimpresos en Papel y Codigo de barras bidimensional (QR Code)”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados