Code seems to be missing for PDF417 printing in this package.

Brgds,
Viktor

On 2010 Feb 5, at 12:48, Massimo Belgrano wrote:

> One way for printing barcode  PDF417 symbologies  is use font
> here you can find a open source solution
> http://sourceforge.net/projects/openbarcodes/
> PDF417, EAN13, code128, EAN128, 3 of 9 and 2 of 5  and in future datamatrix
> 
> 
> 
> maj be usefull a little wrapper for this lib?
> Imo we can use with winprn or xbpprinter class?
> 
> 
> Follow is a untested sample for code128 written in visual fox pro for code
> *-----------------------------------------------------------
> * Conversion VB --> VFP : Emile MAITREJEAN www.emsystems.be
> *-----------------------------------------------------------
> * Entrée : lcChaine
> *
> * Retour : * w_code128 qui, affichée avec la police CODE128.TTF, donne
> le code barre
> *          * une chaine vide si paramètre fourni incorrect
> code128 = ""
> IF LEN(lcChaine) > 0
>       * Vérifier si caractères valides
>       FOR lni = 1 TO LEN(lcChaine)
>               IF ASC(SUBSTR(lcChaine, lni, 1)) >= 32 AND
> ASC(SUBSTR(lcChaine, lni,
> 1)) <= 126
>               ELSE
>                       lni = 0
>                       EXIT
>               ENDIF
>       ENDFOR
>       * Calculer la chaine de code en optimisant l'usage des tables B et C
>       code128 = ""
>       tableB = .T.
>       IF lni > 0
>               lni = 1
> &&lni devient l'index sur la chaine
>               DO WHILE lni <= LEN(lcChaine)
>                       IF tableB
>                               * Voir si intéressant de passer en table C
>                               * Oui pour 4 chiffres au début ou à la
> fin, sinon pour 6 chiffres
>                               minlni = IIF(lni = 1 OR lni + 3 =
> LEN(lcChaine), 4, 6)
>                               *=============
> DO testnum
>                               *=============
> IF minlni < 0                   && Choix table C
>                                       IF lni = 1
> && Débuter sur table C
>                                               code128 = CHR(210)
>                                       ELSE
> && Commuter sur table C
>                                               code128 = code128+CHR(204)
>                                       ENDIF
>                                       tableB = .F.
>                               ELSE
>                                       IF lni = 1
>                                               code128 = CHR(209) &&
> Débuter sur table B
>                                       ENDIF
>                               ENDIF
>                       ENDIF
>                       IF NOT tableB Then
>                               * On est sur la table C, essayer de
> traiter 2 chiffres
>                               minlni = 2
>                               *=============
> DO testnum
>                               *=============
> IF minlni < 0 && OK pour 2 chiffres, les traiter
>                                       dummy = Val(SUBSTR(lcChaine, lni, 2))
>                                       dummy = IIF(dummy < 95, dummy +
> 32, dummy + 100)
>                                       code128 = code128+CHR(dummy)
>                                       lni = lni + 2
>                               ELSE
>                        && On n'a pas 2 chiffres, repasser en table B
>                                       code128 = code128+CHR(205)
>                                       tableB = .T.
>                               ENDIF
>                       ENDIF
>                       IF tableB
>                               * Traiter 1 caractère en table B
>                               code128 = code128+SUBSTR(lcChaine, lni, 1)
>                               lni = lni + 1
>                       ENDIF
>               ENDDO
>               * Calcul de la clé de contrôle
>               FOR lni = 1 TO LEN(code128)
>                       dummy = ASC(SUBSTR(code128, lni, 1))
>                       dummy = IIF(dummy < 127, dummy - 32, dummy - 100)
>                       IF lni = 1
>                               CheckSum = dummy
>                       ELSE
>                               CheckSum = MOD((CheckSum + (lni - 1) *
> dummy),103)
>                       ENDIF
>               ENDFOR
>               * Calcul du code ASCII de la clé
>               CheckSum = IIF(CheckSum < 95, CheckSum + 32, CheckSum + 100)
>               * Ajout de la clé et du STOP
>               code128 = code128+CHR(CheckSum)+CHR(211)
>       ENDIF
> ENDIF
> w_code128 = code128
> RETURN
> FUNCTION testnum
>       * si les minlni caractères à partir de lni sont numériques,
> alors minlni=0
>       minlni = minlni - 1
>       IF lni + minlni <= LEN(lcChaine)
>               DO WHILE minlni >= 0
>                       IF ASC(SUBSTR(lcChaine, lni + minlni, 1)) < 48 OR
> ASC(SUBSTR(lcChaine, lni + minlni, 1)) > 57
>                               EXIT
>                       ENDIF
>                       minlni = minlni - 1
>               ENDDO
>       ENDIF
>       ENDFUNC
> 
> 
> 
> 
> 2010/2/5 Viktor Szakáts <harbour...@syenar.hu>:
>> Hi All,
>> 
>> Does anyone have source code to generate PDF417 barcodes?
>> (using .ttf file or graphical shapes if possible)
>> 
>> Brgds,
>> Viktor
>> 
> 
> 
> 
> -- 
> Massimo Belgrano
> _______________________________________________
> Harbour mailing list (attachment size limit: 40KB)
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour

_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to