GEstione di codici a barre

domenica 21 febbraio 2010 - 07.05

ridaria Profilo | Expert

Qualcuno di voi ha lavorato sui codici a barre e sulle stampe delle etichette?

Avrei bisogno di cominciare a raccogliere informazioni in merito:

I lettori attuali leggono qualsiasi sequenza di barre o è necessario dare a tali codici una struttura particolare?

Le stampanti sono delle stampanti apposite?




Grazie a tutti
Riccardo D'Aria

tonyexpo Profilo | Senior Member

Ciao

i codici a barre in genere sono gestiti come font
tra i vari (ce ne sono tranti) io uso sempre il code39 perchè gratuito e non necessita di codifica come il 128 o altri
qualcuno aggiunge degli "#" a apertura e chiusura del testo, ma molte pistole lo ignorano già di loro, quindi puoi stampare esattamente quello che vuoi senza alcuna conversione o aggiunta

per le pistole comprane una usb
funzionano come una tastiera, tu spari e lei scrive al posto tuo quello che legge

ti consiglio però una stampante laser perchè il codice è più nitido

per il font, è in allegato ;)

ciao e facci sapere

Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

ridaria Profilo | Expert

grazie per la risposta.

Ok. Ma diciamo che sono quasi come prima :-)

Per creare il codice a barre dalla stringa?

Io uso vb.net e devo creare il codice a barre da mandare in stampa sulle etichette,...... ed il cliente, le incollerà sui prodotti.

C'è un componente da installare, un namespace da utilizzare?


Da dove comincio?
:-)

Grazie
Riccardo D'Aria

tonyexpo Profilo | Senior Member

Ciao

il codice a barre è un font

tu crei una stampa normale, diciamo un crystal report o un microsoft report e ci scrivi sopra il tuo numero (es 123456789) usando il font del codice a barre al posto dell'arial standard, così facendo uscirà un codice a barre utilizzabile

diverso è usare delle stampanti apposite per etichette o simili a trasferimento termico o getto di inchiostro di formato ridotto, in quel caso devi usare le api della stampante. in genere si compra stampante e software per farla funzionare correttamente


Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

lanfra Profilo | Senior Member

Ciao Ridaria, come ti diceva Tony il Code39 è il codice a barre più usato al quale non serve decodifica. I lettori ottici lo traducono tranquillamente al contrario del Code128 e simili. Lo installi come un font sul PC che ti stampa le etichette e lo utilizzi come tale per i report fatti con Crystal Report [CR] o Active Report. I due software di reportistica possono avere il pacchetto aggiuntivo per i barcode, così potrai usare i codici che preferisci, altrimenti il Code39 free è gratuito e lo utilizzi come un fonts, come detto in precedenza anche da Tony

Oppure se usi etichettatrici (stampanti apposite a modulo continuo, etichette su rotolo di 10cm di larghezza es.), siano esse termiche o con ribon, puoi scrivere direttamente sul porta seriale inviando i dati tramite codice alla stampante, questo può essere tramite api della stampante, come giustamente accennava Tony.

Le pistole USB sono emulatori di tastiera, che leggono i vari Barcode semplicemente configurandole in lettura, attenzione però, perchè gli emulatori di tastiera possono leggere il "39" senza distinguere che esso sia Code39 o Ansi39 così come il 128. Questo può essere un pregio o un difetto.

Il Code39 solitamente vuole l'asterisco [*], questo per indicare al lettore ottico lo start e lo stop del codice letto. Alcuni scanner non accettano i caratteri di check, o meglio possono essergli indifferenti.
Lanfra

ridaria Profilo | Expert


>Oppure se usi etichettatrici (stampanti apposite a modulo continuo,
>etichette su rotolo di 10cm di larghezza es.), siano esse termiche
>o con ribon, puoi scrivere direttamente sul porta seriale inviando
>i dati tramite codice alla stampante, questo può essere tramite
>api della stampante, come giustamente accennava Tony.
Mi stai dicendo che se c'è una di queste stampanti, e nel mio caso deve esserci per forza, perchè la finalità è di stampare etichette con codice a barre da incollare sui prodotti, non devo far altro che mandare il codice alfanumerico dell'articolo alla stampante: ex(040000265) e la stampante mi stampa tot etichette con tanto di codice a barre? Fa tutto lei?

Grazie


Riccardo D'Aria

lanfra Profilo | Senior Member

Per le etichettatrici che utilizza porte seriali, conviene passare il dato da stampare a porta seriale, con rispettiva codifica barcode secondo le api della stampante. Ti indico il codice che ho scritto per il caso...

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Oppure utilizzare software come LabelView che ti permette di creare un template per l'etichetta che devi stampare (dimensioni, disegni ed impostare i label) passando i dati ai vare label tramite programma. http://www.teklynx.com/products/labels/labelview_detail.html

Se devi acquistare lettori ottici, ti consiglio pistole seriali (che leggi tramite interrogazione delle porte seriali) piuttosto che pistole USB che sono emulatori di tastiera.

Ci possono essere pistole anche con tastiera per lavorare in remoto leggendo i barcode...

Lanfra

ridaria Profilo | Expert

>Per le etichettatrici che utilizza porte seriali, conviene passare
>il dato da stampare a porta seriale, con rispettiva codifica
>barcode secondo le api della stampante. Ti indico il codice che
>ho scritto per il caso...
>
>
>Sub StampaEtichettaBarcodeI4208(ByVal pCodUdc As String, ByVal
>Ultima As Integer)
>
> Dim sTxt As String
> Dim Rot, Font, Dime, PosX, PosY, Valore
>
> If ConnSerialPrinter.IsOpen Then
> sTxt = Chr(2) & "f165" & Chr(13)
> ConnSerialPrinter.Write(sTxt)
> sTxt = Chr(2) & "L" & Chr(13)
> ConnSerialPrinter.Write(sTxt)
>
> ''''''''
>'sTxt = "H10" & Chr(13) 'Impostazione
>calore stampa
> 'ConnSerialPrinter.Write(sTxt)
>
>'sTxt = "SN" & Chr(13) 'Impostazione
>velocità di feed
> 'ConnSerialPrinter.Write(sTxt)
>
>'sTxt = "PN" & Chr(13) 'Impostazione
>velocità di stampaBlack, e.MarginBounds.Left, e.MarginBounds.Top)
> 'ConnSerialPrinter.Write(sTxt)
> '''''''''''''
>
> 'ultima etichetta di gruppo
> If Ultima Then
> Rot = "1"
> Font = "2"
> Dime = "22"
> PosX = "0008"
> PosY = "0080"
> Valore = "*"
>sTxt = Rot & Font & Dime & "000" & PosY & PosX & Valore & Chr(13)
> ConnSerialPrinter.Write(sTxt)
> End If
>
> Rot = "1"
> Font = "2"
> Dime = "22"
> PosX = "0030"
> PosY = "0003"
> Valore = pCodUdc
>sTxt = Rot & Font & Dime & "000" & PosY & PosX & Valore & Chr(13)
> ConnSerialPrinter.Write(sTxt)
>
>sTxt = "1e2105500450095" & pCodUdc & Chr(13) 'BarCode
> ConnSerialPrinter.Write(sTxt)
>
> sTxt = "E" & Chr(13)
> ConnSerialPrinter.Write(sTxt)
> Else
>MsgBox(RecuperaMsgInLingua("STAMPANTENOCNN", gLingua), MsgBoxStyle.Critical,
>RecuperaMsgInLingua("ATTENZIONE", gLingua))
> End If
>
> End Sub

ciao Lanfra, adesso passo alla stampa dei codici a barre.

sto tentando di usare il codice che mi hai passato per stampare sulla porta seriale,
ma mi manca la dichiarazione/e o Impostazioni di:

ConnSerialPrinter

Potresti aiutrmi?

>Lanfra

Riccardo D'Aria

lanfra Profilo | Senior Member

Ciao...

'stampa Dim WithEvents ConnSerialPrinter As New IO.Ports.SerialPort 'porta seriale stampante

Naturalmente per avere una connessione con un seriale, quest'ultima deve essere aperte ed avere impostato i parametri di comunicazione!

If Not ConnSerialPrinter.IsOpen Then With ConnSerialPrinter .PortName = gPortaCOMStampante 'COM1/COM2.... .BaudRate = gVelCOM '9600.... .Parity = IO.Ports.Parity.None .DataBits = 8 .StopBits = IO.Ports.StopBits.One End With ConnSerialPrinter.Open() End If

Per testare la comunicazione con una seriale utilizza un programma come Hyper Terminal o simili...

ciao

abbylee Profilo | Newbie

Sulla base della sua richiesta, è necessario stampare l'etichetta del codice a barre con vb.net, è possibile fare riferimento a:
http://www.keepdynamic.com/barcoding/vb-net-barcode-generator.shtml
E un altro modo è quello di stampare le etichette con codice a barre da resports cristallo:
http://www.keepdynamic.com/barcode-crystal-reports/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5