In rete esistono diversi siti internet che consentono di generare un QR code e questo approccio va bene nel caso in cui il codice serva per una sola o poche volte.
Invece se volessimo stampare un codice QR con un testo codificato sempre diverso (pensiamo ad es. al numero di lotto sul cartone di ogni articolo prodotto dalla nostra azienda), allora occorrerà generare da sè il codice QR.
In aiuto ci viene la libreria open source ZXing che permette, tra le altre cose, di effettuare proprio la codifica di un testo ottenendo un'immagine del relativo QR code.
Una volta scaricata la libreria, un semplice programma per testare quanto sopra è disponibile al seguente link e del quale viene qui riportato un estratto:
// codifica del testo in una matrice 2D di bits
QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = writer.encode(text, BarcodeFormat.QR_CODE, imageWidth, imageHeight);
...
// scrittura della matrice su file
File outfile = new File(imageFileName);
FileOutputStream stream = new FileOutputStream(outfile);
MatrixToImageWriter.writeToStream(matrix, imageFileType, stream);
...
Per poter decodificare, quindi testare, l'immagine ottenuta si può far riferimento ad alcuni siti quali: ZXing Decoder Online, Patrick Wied QR Generator e Online Barcode Reader.
La libreria prevede anche il porting in altri linguaggi (C#, Ruby, C++, etc.) oltre a Java e supporta anche altri tipi di codici a barre (anche monodimensionali).