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