2010-11-30 21 views
4

J'ai besoin d'une bibliothèque à générer un code à barres 2D sur iPhone et Android (et de préférence WM7 et éventuellement j2me aussi) - l'idée est transférer des informations vers un autre appareil avec un scanner correspondant (décodeur). Quelles sont les bonnes options?Générer code à barres 2D (par exemple QR Code, Data Matrix, PDF417) sur iPhone et Android

ZXing est une option, en particulier pour l'aspect lecture/décodage, mais je veux les générer sur ces appareils.

Répondre

2

zxing travaillera pour Android. L'encodeur Java n'a pas été porté en C++ (n'hésitez pas à sauter dedans et à contribuer ... ça ne devrait pas être si difficile.) Jusqu'à ce que ça arrive, j'ai utilisé l'encodeur psytec (http://groups.google.com/group/zxing/msg/27e421daeb510d0f). Les commentaires sont en japonais, mais c'est assez simple.

Je n'ai rien à ajouter sur WM7. Est-ce C#? Il y a un port C# de zxing mais je ne connais personne qui le maintient activement et je ne sais pas s'il inclut un encodeur.

3

La meilleure option doit être la bibliothèque ZXing's. Je ne suis pas sûr de la prise en charge de Windows Phone 7 tho.

+0

Ouais, merci! Bien que je devrais avoir dit "en dehors de ZXing", puisque je savais à ce sujet. Il est fait principalement pour lire ces codes, non? – stolsvik

+0

@stolsvik: Autant que je sache, vous pouvez également les générer en utilisant la bibliothèque de ZXing. –

1

Si vous souhaitez transférer vers un autre appareil en ligne, vous pouvez utiliser une API de code QR tierce pour obtenir l'image. Passer un appel à une API REST est la meilleure option d'applications mobiles multiplateformes.

Cette API il le fait pour son URI: http://www.tag.cx/qr-codes/

Vous pouvez également héberger votre propre API générateur privé QR code.

1

Voici une autre version Java: http://qrcode.sourceforge.jp/

Résumé - "Ce projet se développe et distribue la bibliothèque de décodage/encode QR Code sous licence GPL v2 Le but du projet est Utiliser QR Code information intégrée pour les appareils programmables partout dans le. Le code QR est la norme industrielle JIS-X-0510 et ISO/IEC18004. "

1

Consultez également (je ne pourrais pas « t afficher ces parce stackoverflow a empêché plus d'une URL): une version python (comme indiqué sur le site ci-dessus): http://pyqrcode.sourceforge.net/

2

J'utilise ZXing pour encoder les codes-barres QR avec succès. Cependant, au moins avec la version actuelle, il semble avoir un support limité pour l'encodage d'autres symbologies (ex: PDF-417).

J'utilise l'extrait de code suivant:

// Encode the bitmap and display it on the screen 
    try { 
     // This will produce a 150x150 QR Barcode and display it on the screen. 
     Bitmap bm = encodeAsBitmap(barcodeContentString, BarcodeFormat.QR_CODE, 150, 150); 

     if(bm != null) { 
      barcodeImage.setImageBitmap(bm); 
     } 
} 
    catch (WriterException e) { ... } 

Dans cet exemple, le « barcodeContentString » sont les données qui est en cours de codage. Le "barcodeImage" est un ImageView standard.

Je ne le montre pas ici, mais j'allume l'écran pendant toute la durée d'affichage du code à barres. En tant que tel, je suis en mesure de scanner avec succès le code à barres avec un scanner de code à barres compatible QR.

3

J'ai essayé toutes les solutions décrites ci-dessus sans succès, mais a trouvé cette bibliothèque: akopanev-iOS-QR-Code-Encoder

-Open Source, simple à mettre en œuvre, a exemple de projet Xcode, fonctionne très bien

auteur - Andrew Kopanev

0

Il se peut que je sois trop tard pour vous aider, mais j'ai trouvé un bon SDK pour les codes Data Matrix. Plus d'instructions sont sur leur site web HERE, mais de fournir le code ici aussi, vous feriez quelque chose comme ceci:

OBLinear *pLinear = [OBLinear new]; 
[pLinear setNBarcodeType: OB_CODE128A]; 
[pLinear setPDataMsg: [[NSString alloc] initWithString:@"AB"]]; 
//[pLinear setPSupData: [[NSString alloc] initWithString:@"14562"]]; 
[pLinear setFX: USER_DEF_BAR_WIDTH]; 
[pLinear setFY: USER_DEF_BAR_HEIGHT]; 

[pLinear setFLeftMargin:USER_DEF_LEFT_MARGIN]; 
[pLinear setFRightMargin:USER_DEF_RIGHT_MARGIN]; 
[pLinear setFTopMargin:USER_DEF_TOP_MARGIN]; 
[pLinear setFBottomMargin:USER_DEF_BOTTOM_MARGIN]; 

[pLinear setNRotate:OB_Rotate0]; 

UIFont *pTextFont = [UIFont fontWithName: @"Arial" size: 8.0f]; 
[pLinear setPTextFont: pTextFont]; 

[pLinear drawWithView:self.view];