Newsgroup: it.comp.lang.visual-basic
Titolo: Ma i Barcode Fonts possibile sia così difficile trovarli?

Sto cercando dei Fonts Barcode EAN13 ma a parte qualche imitazione (non
funzionano!) niente da fare! Qualcuno sa qualcosa?

 funzionano!) niente da fare! Qualcuno sa qualcosa?
Prova col Sito Comune, vai in Cerca e imposta EAN
http://www.it-lang-vb.net/

 funzionano!) niente da fare! Qualcuno sa qualcosa?
A parte il sito comune, pagandoli si trovano subito (sai, qualcuno ci ha
lavorato...)
Ciao
Alberto


Ma se un buon samaritano li cede gratuitamente alla comunità prchè dovrei
pagarli? ;)

 ha scritto nel messaggio
news:b0gd2g$275n$1...@half.spin.it...

Sono d'accordo.
Ma conosco persone che dedicano ore alla ricerca on-line di roba free, che
potrebbero scaricare con 20Euro dai vari siti che offrono queste risorse.
Ognuno è libero di valorizzare il proprio lavoro a piacimento, ma se una
cosa mi costerebbe 20Euro, e per averla free rischio di doverla cercare più
di mezz'ora, rinuncio in partenza.
Ciao
Alberto

 funzionano!) niente da fare! Qualcuno sa qualcosa?
Purtroppo non tutti i BC possono essere emulati in font  alcuni BC per
essere correttamente letti usano  una sequenza particolare di barre
all'inizio e alla fine altri usano sequenza di barre speculari in base alla
posizione del numero nel codice ecc.
EAN 13 usa nella prima parte del BC alternativamente due diverse codifiche
in base alla posizione nella stringa dei diversi numeri della sequenza,
mentre nella seconda meta' del codice usa una sequenza di barre negativa
rispetto alla prima delle due codifiche usate nella prima meta' ovvero le
barre bianche e nere sono in negativo rispetto allo stesso numero nella
prima meta'.
Questo rende difficile l'uso dei font per questo tipo di BC in quanto anche
se esistessereo non potresti usarli come usi i font normali ma dovresti
alternarli secondo sequenze precise, in alternativa non e' difficile
disegnarli:
Ciao Stefano
'eanString e' una stringa di 12 numeri
'sx,dx,mx,my rappresentanto rispettivamente la posizione xy di stampa e le
dimensioni della stampa del BC
'DestObj e' l'oggetto di destinazione del metodo Print puo essere un form
una picture o l'oggetto Print
Function MB_EAN13(eanString As String, sx As Integer, sy As Integer, mx As
Integer, my As Integer, DestObj As Object)
Dim check_digit As Integer, i As Integer
Dim mod_width As Single
Dim barcode As String
ReDim EAN_sequence(9) As String * 6
EAN_sequence(0) = "AAAAAA"
EAN_sequence(1) = "AABABB"
EAN_sequence(2) = "AABBAB"
EAN_sequence(3) = "AABBBA"
EAN_sequence(4) = "ABAABB"
EAN_sequence(5) = "ABBAAB"
EAN_sequence(6) = "ABBBAA"
EAN_sequence(7) = "ABABAB"
EAN_sequence(8) = "ABABBA"
EAN_sequence(9) = "ABBABA"
ReDim EAN_A_cod(9) As String * 7
EAN_A_cod(0) = "0001101"
EAN_A_cod(1) = "0011001"
EAN_A_cod(2) = "0010011"
EAN_A_cod(3) = "0111101"
EAN_A_cod(4) = "0100011"
EAN_A_cod(5) = "0110001"
EAN_A_cod(6) = "0101111"
EAN_A_cod(7) = "0111011"
EAN_A_cod(8) = "0110111"
EAN_A_cod(9) = "0001011"
ReDim EAN_B_cod(9) As String * 7
EAN_B_cod(0) = "0100111"
EAN_B_cod(1) = "0110011"
EAN_B_cod(2) = "0011011"
EAN_B_cod(3) = "0100001"
EAN_B_cod(4) = "0011101"
EAN_B_cod(5) = "0111001"
EAN_B_cod(6) = "0000101"
EAN_B_cod(7) = "0010001"
EAN_B_cod(8) = "0001001"
EAN_B_cod(9) = "0010111"
ReDim EAN_C_cod(9) As String * 7
EAN_C_cod(0) = "1110010"
EAN_C_cod(1) = "1100110"
EAN_C_cod(2) = "1101100"
EAN_C_cod(3) = "1000010"
EAN_C_cod(4) = "1011100"
EAN_C_cod(5) = "1001110"
EAN_C_cod(6) = "1010000"
EAN_C_cod(7) = "1000100"
EAN_C_cod(8) = "1001000"
EAN_C_cod(9) = "1110100"
barcode = eanString
'Controllo correttezza codice e calcolo check_digit
If IsNull(barcode) Or Len(barcode) < 12 Then Exit Function
check_digit = 0
For i = 12 To 2 Step -2
  Char$ = Mid$(barcode, i, 1)
  If Char$ < "0" Or Char$ > "9" Then Exit Function
  check_digit = check_digit + 3 * Val(Char$)
Next i
For i = 11 To 1 Step -2
  Char$ = Mid$(barcode, i, 1)
  If Char$ < "0" Or Char$ > "9" Then Exit Function
  check_digit = check_digit + Val(Char$)
Next i
check_digit = 10 - check_digit Mod 10
If check_digit = 10 Then check_digit = 0
sequence$ = EAN_sequence(Val(Left$(barcode, 1)))
barcode = Mid$(barcode, 2, 11) & Trim$(Str$(check_digit))
'Generazione della stringa immagine della codifica
cod$ = "1010000000"
For i = 12 To 7 Step -1
  Char$ = Mid$(barcode, i, 1)
  cod$ = EAN_C_cod(Val(Char$)) & cod$
Next i
cod$ = "01010" & cod$
For i = 6 To 1 Step -1
  Char$ = Mid$(barcode, i, 1)
  Select Case Mid$(sequence$, i, 1)
    Case "A"
      cod$ = EAN_A_cod(Val(Char$)) & cod$
    Case "B"
      cod$ = EAN_B_cod(Val(Char$)) & cod$
  End Select
Next i
cod$ = "00000000000101" & cod$
'Determinazione della larghezza del modulo
mod_width = mx / Len(cod$)
'Stampa della codifica
StartPoint = sx
For i = 1 To Len(cod$)
  Select Case Mid$(cod$, i, 1)
    Case "0"
      Colorx = 16777215
    Case "1"
      Colorx = 0
  End Select
  DestObj.Line (StartPoint, sy)-Step(mod_width, my), Colorx, BF
  StartPoint = StartPoint + mod_width
Next i
End Function

 disegnarli:
Beh, nessuno pensava di usare il font pari pari. Se devo codificare
123456789012, non č che lo scrivo in Word e poi cambio il font.
Lo dň in pasto ad una funzione, opportunamente realizzata per quel font
(font diversi usano funzioni diverse, anche per lo stesso BC). Poi
visualizzo la stringa restituita dalla function nell'opportuno font.
L'idea di disegnare il BC, per quanto molto diffusa, č un po' astrusa. Prova
a disegnare un BC come campo di un datareport, poi mi sai dire.
L'approccio col font č sicuramente il piů flessibile e quello infinitamente
piů semplice.
Ciao
Alberto

 a disegnare un BC come campo di un datareport, poi mi sai dire.
:((
Perche' Astrusa ? se non c'e il tool giusto non si fa piu il programma ?
Molto diffusa tra vecchi come me che hanno cominciato a programmare quando
non esistevano i Font, datareport, crystal ecc.. E si faceva tutto via
codice
Ciao Stefano

 ha scritto nel messaggio
news:b0fdv5$tun$1...@lacerta.tiscalinet.it...


 codice
Non che io sia un bimbo, però in ambiente Windows (perchè è di questo che
stiamo parlando), il concetto di font è sempre esistito.
Ciao
Alberto

 stiamo parlando), il concetto di font è sempre esistito.
Naturalmente concordo, il punto e' che troppo spesso, sempre piu spesso
(anch'io) si tende ad usare  l'ocx, il font ecc senza valutare che molte
cose sono fattibili con 4 righe di codice.
Inoltre, e' una mia mania lo confesso,  mi sembra che scrivere codice mi fa
mantenere meglio il controllo del programma
Ciao Stefano