Salve, ho realizzato un programma che si interfaccia con un lettore di codice a barre per effettuare la lettura di questi ultimi; allo stesso tempo il programma può generare un codice a barre ed effettuarne la stampa.
La classe che ho realizzato per la creazione del barcode è questa:
codice:
import java.awt.Color;
import java.awt.Font;
import java.awt.image.BufferedImage;
import org.jbars.Barcode128;
public class GeneraBarcode {
private static Barcode128 barcode;
private static Font fontcode = new Font(Font.DIALOG, Font.PLAIN, 12);
public static byte[] getImagenBarra(String codevalue) {
barcode = new Barcode128();
barcode.setCodeType(Barcode128.CODE128);
barcode.setBarHeight(80);
barcode.setSize(150);
barcode.setFont(fontcode);
barcode.setCode(codevalue);
try {
return barcode.createPNG(150, 80, BufferedImage.TYPE_INT_RGB, Color.black, Color.black, 0);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
in pratica passo una stringa al metodo getImagenBarra e questo mi genera un'immagine PNG raffigurante il codice associato alla stringa.
Ora, io sono nuovissimo in materia di codici a barre e malgrado sia riuscito a far leggere il codice al mio lettore (cosa stupidissima visto che è un normale lettore che genera uno standard input), nonchè a stampare un codice exnovo generato con questa classe, il problema è che qualunque codice che stampo non viene letto dal lettore come tutti gli altri codici che mi circondano in casa.
Sicuramente sbaglio in molte cose:
1) la stringa di cifre che passo al metodo è una stringa di 20 cifre autogenerate da un'algoritmo, mi chiedo se la codifica 128 che utilizzo nella mia classe abbia un ben preciso numero di cifre oppure posso passargliene quante ne voglio?
2) le dimensioni del codice a barre stesso devono essere specifiche oppure posso personalizzarlo? (come potete leggere sopra finora creo un codice a barre abbastanza grosso di 150 x 80)
Sperando che ci sia qualcuno che ne capisca qualcosa, aspetto pazientemente:-)