Page 2 of 3

Re: SayBarCode control

PostPosted: Tue Apr 09, 2019 9:06 am
by Silvio.Falconi
It is true that some barcodes in Mr. Timm's program are not working.

Mr Timm has copied from the barlib, so even the barlib codes that Enrico Maria Giordano has always used are wrong....

for generations and years we have used the barlib (which come from an ancient version made in clipper dos) without knowing that these codes are wrong.

If you ask Emg he will tell you that they are right for him

on these years I used Circular Barcode, Ean13 and code39

perhaps we can erase all and create a class only with hzebra barcode, perhaps hbzebra are rights,

but we must verify all them..

Re: SayBarCode control

PostPosted: Tue Apr 09, 2019 9:53 am
by nageswaragunupudi
We tested all barcodes from hbzebra.lib. I am not sure about ITF and MSI, but all other codes are working correctly. Maybe I did not know how to use and test ITF and MSI. Any help would be appreciated.

As I said earlier, our tests with vrd barcodes match your results. So, in this release, we restricted to code39,code128 and ean13, if hbzebra.lib is not linked.

We will see what further improvements are possible using the program you shared with us.

Re: SayBarCode control

PostPosted: Tue Apr 09, 2019 10:05 am
by nageswaragunupudi
and now read good my circular barcode ( it read the code "200004" I insert into ) I posted above

Thanks.
I installed the app advised by you and it read the circular barcode correctly.

Re: SayBarCode control

PostPosted: Tue Apr 09, 2019 6:39 pm
by kajot
when I am compilig c:\fwh\samples\barcod01.prg
FWH 19.03 and xHarbour.com v.19.01
I get error

Type: C >>>xhb.exe -o"t.c" -m -n -p -q -gc0 -I"S:\include" -I"R:\include" -I"R:\include\w32" "t.prg"<<<

xHarbour 1.2.3 Intl. (SimpLex) (Build 20181212)
Copyright 1999-2018, http://www.xharbour.org http://www.harbour-project.org/
Generating object output to 't.obj'...

Type: C >>>xhb.exe -o"errorsys.c" -m -n -p -q -gc0 -I"S:\include" -I"R:\include" -I"R:\include\w32" "errorsys.prg"<<<

xHarbour 1.2.3 Intl. (SimpLex) (Build 20181212)
Copyright 1999-2018, http://www.xharbour.org http://www.harbour-project.org/
Generating object output to 'errorsys.obj'...

Type: C >>>xlink.exe -NOEXPOBJ -MAP -FORCE:MULTIPLE -NOIMPLIB -subsystem:windows -UNMANGLE -LIBPATH:"S:\lib" -LIBPATH:"R:\lib" -LIBPATH:"R:\c_lib" -LIBPATH:"R:\c_lib\win" "t.obj" "errorsys.obj" "r:\lib\libpq.lib" "r:\lib\SQL.lib" "odbccp32.lib" "mem32.lib" "send32.lib" "png.lib" "r:\c_lib\win\gdi32.lib" "r:\c_lib\win\gdiplus.lib" "xhbzip.lib" "xhbzipdll.lib" "xfw.lib" "FiveHCM.lib" "FiveHMX.lib" "OptG.lib" "xhb.lib" "dbf.lib" "nsx.lib" "ntx.lib" "cdx.lib" "rmdbfcdx.lib" "ct3comm.lib" crt.lib kernel32.lib user32.lib winspool.lib ole32.lib oleaut32.lib odbc32.lib odbccp32.lib uuid.lib wsock32.lib ws2_32.lib wininet.lib advapi32.lib shlwapi.lib msimg32.lib mpr.lib OleDlg.lib version.lib comctl32.lib comdlg32.lib gdi32.lib shell32.lib winmm.lib lz32.lib Netapi32.lib -out:"t.EXE"<<<

Creating object: t.EXP

Creating library: t.LIB

xLINK: error: Unresolved external symbol '_HB_FUN_FWZEBRA referenced from (t.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_TSAYBARCODE referenced from (t.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_FWER_BARCODE referenced from Fivehmx.lib(printer.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_GETSYSFONT referenced from Fivehmx.lib(alert.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_SCREENHEIGHT referenced from Fivehmx.lib(dostofwh.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_SCREENWIDTH referenced from Fivehmx.lib(dostofwh.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_ISWINDOWS10 referenced from Fivehmx.lib(imgtxtio.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_ISWINXP referenced from Fivehmx.lib(pdmenu.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_FW_ISMOUSEPRESENT referenced from Fivehmx.lib(pdmenu.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_CWINVERSION referenced from Fivehmx.lib(pdmenu.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_COLORSQTY referenced from Fivehmx.lib(xbrowse.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_LARGEFONTS referenced from Fivehmx.lib(rpreview.obj)'.

xLINK: error: Unresolved external symbol '_HB_FUN_GETRECYCLEDREC referenced from Fivehmx.lib(dbffunc2.obj)'.

xLINK: fatal error: 13 unresolved external(s).


Type: C >>>Couldn't build: t.EXE<<<
Type: C >>>TMAKEPROJECT<<<
Type: C >>>TMAKEPROJECT:REFRESH<<<
Type: N >>> 1428<<<

Re: SayBarCode control

PostPosted: Wed Apr 10, 2019 2:05 am
by nageswaragunupudi
This program requires hbzebra.lib provided by (x)Harbour
If you do not have that lib compatible with your xharbour.com, you can not use this facility

Re: SayBarCode control

PostPosted: Wed Apr 10, 2019 5:08 pm
by Silvio.Falconi
Smal Guide for Circular Barcode ... ( for all and Nages )

comments and your experiences are appreciated


By linear we mean a bar code as we are normally used to seeing it: an alternating series of straight, white and black lines, of different thickness, usually accompanied by an underlying writing in legible characters by a human being.

Currently there are several 1-D bar coding standards, used with different frequencies depending on the advantages and disadvantages deriving from the adoption of a coding system with respect to the other. All the symbologies foresee the creation of a rectangular figure, which is read by sliding or scanning, creating an ideal line that crosses the symbol, perpendicularly or at an angle close to 90 ° with respect to the bars

Image

If the scan line does not completely cross the bar code, for example due to a limited angle with the vertical lines printed, the code is not read:

Image

This involves some constraints on the positioning of the code itself, since the reading device must be on the bar code passing directive and with the reading line perpendicular to it. To overcome this, raster devices have been introduced (with multiple parallel reading lines), with oscillating mirror, or with various angled mirrors so that the code can be read regardless of the orientation with which it appears.

A circular code is readable by the same tools reserved for reading traditional bar codes, but has some advantages:

reading is independent of the orientation of the symbol, as the reading range can affect the symbol with any angle (provided that it does not always cross the center);

the symbol is in effect the 360 ° distribution of two scan lines of a rectangular bar code, separated by an overflow equal to 2 times the radius of the innermost circle; this feature can avoid the purchase of scanners with multiple reading directives, it greatly simplifies the acquisition of the bar code through sliding devices and allows printing of higher density codes, as the vertical redundancy increases



Image


it can be used to label media, such as CD-ROMs and DVDs, which require a perfect label balance;

it has sufficient redundancy to ensure that the code is read in virtually all cases, even if the surface is partially damaged;

as the overflow increases (central area) the need to center the crossing of the beam decreases and therefore it is possible to use standard laser readers instead of raster readers (for fixed stations); this happens because the lateral deformation of the bars is compensated in large part by the reading instruments, which (in laser and ccd technologies) already provide for the detection of symbols even on partially curled or bent surfaces.

Since the interpretation of the bar code by the reading instruments takes place when the overflow zone is detected, the reading line can in any case completely cross the symbol, following a diameter, without causing a double reading of the encoded content.

The use of circular bar codes in the labeling of CD-ROMs in general and DVDs in particular is decidedly crucial: DVDs, for example, can be printed on both sides, leaving very little space for marking.

On the other hand, in the rental of such media it is essential to identify the disk both for cataloging reasons and to avoid fraud.

The application of any unbalanced mark on a CD-ROM or DVD, such as a traditional bar code label (rectangular), would lead to an imbalance in the support: this imbalance introduces an interference in the reading of the information that can deteriorate the quality of the audio / video reproduced, limiting the speed in extracting information (or inhibit it altogether), causing noisy resonances in the mechanics of reproduction systems (shortening the life of such devices).

By using our class with a suitable resolution, it is possible to insert a bar code up to 8 digits into the central crown of the DVD, without altering the balance of the disc, without covering useful information for reproduction and without altering the contents of the screen-printed side ( if present).

ImageImage


Our class also allows us to produce codes in which each semicircle contains one half of the information to be encoded, possibly supplemented by standard linear codes.


No less interesting is the use in the industrial field, for example to label boxes that can be stored in various ways. These packages can be identified on three sides by applying a single label.

In this case, a quadrant of the symbol is removed (by means of a suitable die cut), covering it by 270 °, and providing for its application on a corner of the neck to be identified:


Image


Hoping that this little guide was welcome, I greet you all good evening

Re: SayBarCode control

PostPosted: Wed Apr 10, 2019 5:15 pm
by nageswaragunupudi
Thank you very much.
Very informative.

Re: SayBarCode control

PostPosted: Wed Apr 10, 2019 6:40 pm
by Silvio.Falconi
at this message

viewtopic.php?f=3&t=36976#p220779

there is a picture where you can see also a square barcode

perhaps it was a first project for a qr barcode

it can be use also on angle of a box

I hope you insert the circular code and also the square code ( lCircular and lSquare )
on your class with the possibility to draw also partial barcode (aPartial) and the gradient

I 'm making a small utility to create a barcode linear,circular and square easy

Re: SayBarCode control

PostPosted: Wed Apr 10, 2019 7:16 pm
by Admpss
HI, in brazil , bank intitutions use int2of5 code, this Works with new lib? how to make circular codes like silvio says?

thanks

Re: SayBarCode control

PostPosted: Wed Apr 10, 2019 7:32 pm
by Silvio.Falconi
yes,
I'm thinking ...on the next upgrade of fwh

you can select each type you wish code39, int2of5, ean13...

and then the type -> linear, circular, square

Re: SayBarCode control

PostPosted: Thu Apr 11, 2019 3:28 am
by nageswaragunupudi
Admpss wrote:HI, in brazil , bank intitutions use int2of5 code, this Works with new lib? how to make circular codes like silvio says?

thanks


Without using hbzebra.lib, use barcode type 14 or with hbzebra.lib use 'EAF'

Image

Code: Select all  Expand view
#include "fivewin.ch"

// REQUEST FWZEBRA

function Main()

   local oDlg, cText, w
   local aText := { "1234567895", "602003", "00614141000418" }
   local uType := 14
// local uType := "EAF" // with hbzebra.lib

   DEFINE DIALOG oDlg SIZE 500,520 PIXEL TRUEPIXEL ;
      TITLE "INT2of5"

   oDlg:bPainted := <|hDC|
      W := oDlg:SayBarCode( aText[ 1 ], { 020, 040, 070, 400 }, uType )
      oDlg:SayText( aText[ 1 ], { 075, 040, 100, 040 + w }, "S" )
      W := oDlg:SayBarCode( aText[ 2 ], { 220, 040, 260, 240 }, uType )
      oDlg:SayText( aText[ 2 ], { 265, 040, 290, 040 + w }, "S" )
      W := oDlg:SayBarCode( aText[ 3 ], { 400, 040, 460, 460 }, uType )
      oDlg:SayText( aText[ 3 ], { 465, 040, 490, 040 + w }, "S" )
      return nil
      >

   ACTIVATE DIALOG oDlg CENTERED

return nil
 

Re: SayBarCode control

PostPosted: Sat Apr 13, 2019 10:38 am
by Silvio.Falconi
Image


an Utility on progress...


Nages
Can you make an sample to printer ?
Can I use saybarcode also on printer ?

I made

@10,10 SAYBARCODE oBC TEXT cCodice ;
TYPE GiveMeType(nBCodeType) SIZE 500,50 ;
COLOR nColor,CLR_WHITE ;
PIXEL of oPrn:hDcOut


any solution ?

I sent you the test

Re: SayBarCode control

PostPosted: Mon Oct 07, 2019 8:40 pm
by vilian
Hi guys,
Could us use it with TPrinter? I need to print QR Codes.

Re: SayBarCode control

PostPosted: Mon Oct 07, 2019 9:03 pm
by nageswaragunupudi
Please try
Code: Select all  Expand view
#include "fivewin.ch"

REQUEST FWZEBRA

function Main()

   local oPrn

   PRINT oPrn PREVIEW
   PAGE
      @ 2,2 PRINT TO oPrn TEXT "Mr. Vilian is a great friend" + CRLF + ;
                               "and a great expert in software" ;
            AS BARCODE TYPE "QRCODE" SIZE 1.5,1.5 INCHES
   ENDPAGE
   ENDPRINT

return nil
 


Copy the code to fwh\samples folder and build with buildh.bat

Image

Re: SayBarCode control

PostPosted: Tue Oct 08, 2019 10:52 am
by vilian
Thank you very much :)