Jump to content
Nokioteca Forum

Barcode Manager


Aleritty
 Share

Recommended Posts

Ho iniziato da poco a scrivere in python ed ancor meno in pys60 ma grazie ald un po' di pazienza ed all'aiuto di Memoryn70 è nato un programmino che credo possa essere molto utile.

Barcode manager è un programma nel quale potrete memorizzare i codici a barre delle vostre tessere punti o del supermercato o di qualsiasi altra natura, in modo da non doverle portare sempre con voi (non so voi ma io ne ho troppe).

L'utilizzo è semplicissimo:

1) una volta installato lo lanciate, aggiungete una carta copiando le cifre che appaiono su quella originale ed il programma genererà l'immagine del codice.

2) Quando arrivate al supermercato scegliete il codice da visualizzare, invece della tessera "passate" il telefono et voilà...

Essendo il primo programma in python che faccio il codice è ancora acerbo ed ho bisogno di voi per ottimizzarlo al meglio e testarlo su altri dispositivi!

Qualsiasi commento è il benvenuto!

Piccola precisazione, per ora ho fatto il bind del touchscreen, quindi non so cosa possa succedere su un telefono non touch dato che non ne possiedo uno!

Ed ora il link al programma:

https://code.google.com/p/s60-barcode-manager/source/browse/trunk/cardmanager.py

Essendo su googlecode potete scaricarlo e provarlo tutti senza problemi! Ovviamente i consigli riceveranno adeguato riconoscimento nella pagina del progetto!

Spero possa essere una cosa gradita!

Invece (anche se un po' acerba al momento) ho creato anche una libreria in python utilizzabile su tutti i symbian per generare l'immagine di un codice a barre, e la trovate sempre nello stesso progetto:

https://code.google.com/p/s60-barcode-manager/source/browse/trunk/barcode.py

La libreria verrà aggiornata mano a mano che testo le cose nel programma così rimarrà sempre un po' più stabile.

Fatemi sapere!

Link to comment
Condividi su altri siti

Ho iniziato da poco a scrivere in python ed ancor meno in pys60 ma grazie ald un po' di pazienza ed all'aiuto di Memoryn70 è nato un programmino che credo possa essere molto utile.

Barcode manager è un programma nel quale potrete memorizzare i codici a barre delle vostre tessere punti o del supermercato o di qualsiasi altra natura, in modo da non doverle portare sempre con voi (non so voi ma io ne ho troppe).

L'utilizzo è semplicissimo:

1) una volta installato lo lanciate, aggiungete una carta copiando le cifre che appaiono su quella originale ed il programma genererà l'immagine del codice.

2) Quando arrivate al supermercato scegliete il codice da visualizzare, invece della tessera "passate" il telefono et voilà...

Essendo il primo programma in python che faccio il codice è ancora acerbo ed ho bisogno di voi per ottimizzarlo al meglio e testarlo su altri dispositivi!

Qualsiasi commento è il benvenuto!

Piccola precisazione, per ora ho fatto il bind del touchscreen, quindi non so cosa possa succedere su un telefono non touch dato che non ne possiedo uno!

Ed ora il link al programma:

https://code.google.com/p/s60-barcode-manager/source/browse/trunk/cardmanager.py

Essendo su googlecode potete scaricarlo e provarlo tutti senza problemi! Ovviamente i consigli riceveranno adeguato riconoscimento nella pagina del progetto!

Spero possa essere una cosa gradita!

Invece (anche se un po' acerba al momento) ho creato anche una libreria in python utilizzabile su tutti i symbian per generare l'immagine di un codice a barre, e la trovate sempre nello stesso progetto:

https://code.google.com/p/s60-barcode-manager/source/browse/trunk/barcode.py

La libreria verrà aggiornata mano a mano che testo le cose nel programma così rimarrà sempre un po' più stabile.

Fatemi sapere!

Molto bene! Bravo ... alla fine ce l'hai fatta a trovare tutto! Sono contento di averti indirizzato...

Per il toch è molto semplice, metti questo e al 100% non avrai intoppi (testato sul mio N70 e un 5228). Pure su emulatore funziona (beh li il touch c'è)

# da winfile
       try:
           s.touch_screen = appuifw.touch_enabled()
       except:
           #Sure no touch or pys60 too old
           s.touch_screen = 0

Ora do un occhiata anche al codice :)

Modificato da memoryn70
Link to comment
Condividi su altri siti

Ecco! Una superficiale analisi :lol:

Usa os.makedirs (certo nel tuo caso non cambia poi molto): crea anche le sottodirectory in caso non esistano (tipo E:\progetti\miei, mkdir da errore se progetti non esiste)

Ottimo che il programma (da come vedo) si adatta a tutte le risoluzioni. Ormai è un must che purtroppo non avevo considerato in winfile e ora ho dovuto riscrivere alcune parti...

map(unicode,os.listdir(u'e:\cardmanager')) questo è rischioso con file accentati! Metti map(lambda x: x.decode('utf8'),os.listdir(u'e:\cardmanager')) cosi andrai sul sicuro :)

Per le codifiche ti consiglio di leggere il mio recente post e di usare anche alcune funzioni che trovi li se mai dovessi avere problemi...

Ecco la mia piccola analisi da 3 secondi

ciao

EDIT: un consiglio per la libreria.

Separa le due funzioni, non mi sembra molto comodo il fatto di dover passare una stringa per "scegliere" funzione.

Puoi sfruttare una particolarità di Image: è un oggetto che nelle funzioni viene passato per indirizzo e ciò vuol dire che se lavori sull'immagine passata nell'argomento IMG, automaticamente (cioè è la stessa) l'immagine di partenza è modificata.

Potresti fare quindi una chiamata del genere:

img = Image.new((x,y))

ean13(code, img)

#Ora img contiene il codice disegnato...

Ah ora che mi viene in mente:

font=u"Nokia Hindi S6012" potresti sostituirlo con uno più generico (magari quello non è disponibile)

usa (font, size, flags)

come font metti None cosi usa un default

size metti la dimensione in percentuale basata sulla grandezza y dell'immagine (fai una percentuale tipo)

flags beh sarebbe se metti grassetto, antialiasing ecc... (vedi la documentazione su Font qualcosa...)

Ecco ancora qualcosa :)

Modificato da memoryn70
Link to comment
Condividi su altri siti

Cavolo quante correzioni per una analisi da 3 secondi!! Come si vede che sono ancora all'inizio! :-D

Purtroppo gli esami si avvicinano ma in qualche sera mi analizzo il tutto ed applico le correzioni! Grazie mille!!

Si beh qualcosa l'ho aggiunto dopo :)

Comunque quando ti serve aiuto sono qui ;)

Link to comment
Condividi su altri siti

Mi spiace di essere sparito ma la settimana prossima ho un esame... In ogni caso sto applicando le cose che mi hai detto!

Il touchscreen mi restituisce un errore ma dato che lo ho incollato di fretta direttamente dal cell (sull'autobus) sono certo di aver fatto qualche casino io!

La funzione delle directory la ho incorporata e per i font ora mi documento, avrei bisogno di specificare bene il font ma essere sicuro che sia sempre quello e sempre disponibile, hai consigli su un font "sicuro"?

AH, impostato in questa maniera il programma mi restituisce sempre un warning dato che la funzione princip non richiede parametri ma l'handle_redraw ne passa uno (le coordinate)! Però non saprei come risolvere...

Link to comment
Condividi su altri siti

Mi spiace di essere sparito ma la settimana prossima ho un esame... In ogni caso sto applicando le cose che mi hai detto!

Il touchscreen mi restituisce un errore ma dato che lo ho incollato di fretta direttamente dal cell (sull'autobus) sono certo di aver fatto qualche casino io!

La funzione delle directory la ho incorporata e per i font ora mi documento, avrei bisogno di specificare bene il font ma essere sicuro che sia sempre quello e sempre disponibile, hai consigli su un font "sicuro"?

AH, impostato in questa maniera il programma mi restituisce sempre un warning dato che la funzione princip non richiede parametri ma l'handle_redraw ne passa uno (le coordinate)! Però non saprei come risolvere...

Per handle_redraw metti un None o meglio () negli argomenti tipo def funz(rect = None)!

Per il font sicuro devi usare None oppure uno di quelli che diciamo sono sempre validi come 'normal', 'dense', 'digital' ecc...C'è comunque tutto scritto nella documentazione al capitolo Font Definition

Link to comment
Condividi su altri siti

Grazie, ci provo!

Nel frattempo mi sono reso conto che il codice a barre generato viene letto senza problemi dall'Iphone, ma il registratore di cassa invece non lo legge ancora! Quindi devo lavorare principalmente su quello... Ci sono delle specifiche in mm da rispettare, solo che su un display misurato in pixel non è facile!

Link to comment
Condividi su altri siti

Grazie, ci provo!

Nel frattempo mi sono reso conto che il codice a barre generato viene letto senza problemi dall'Iphone, ma il registratore di cassa invece non lo legge ancora! Quindi devo lavorare principalmente su quello... Ci sono delle specifiche in mm da rispettare, solo che su un display misurato in pixel non è facile!

Eh immaginavo...beh qui allora devi usare i twips per la conversione...beh ti so dire come ricavare i twips ma per i calcoli bisogna cercare su internet.

o fai Image.twipsize sull'immagine grande quanto il canvas o

sysinfo.display_twips()

Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy