Commit Graph

4 Commits

Author SHA1 Message Date
Mindaugas Kavaliauskas
256ca1b83c 2011-12-23 18:00 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
+ contrib/hbzebra/qrcode.c
  * contrib/hbzebra/hbzebra.ch
  * contrib/hbzebra/hbzebra.hbp
  * contrib/hbzebra/hbzebra.hbx
    + QR Code
    ; Christmas gift for Harbour project :)
    ; TODO: encoding optimisation using mode switching

  * contrib/hbzebra/hbzebra.h
  * contrib/hbzebra/core.c
    + hb_bitbuffer_buffer(), hb_bitbuffer_not(), hb_bitbuffer_cat_int_rev()
    * formatting

  * contrib/hbzebra/tests/testcair.prg
  * contrib/hbzebra/tests/testhpdf.prg
  * contrib/hbzebra/tests/testwin.prg
    * updated to include QR Code

  * contrib/hbzebra/datamtrx.c
    * minor modification: code text support
2011-12-23 16:00:44 +00:00
Mindaugas Kavaliauskas
1630a4e374 2010-11-13 00:05 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
+ harbour/contrib/hbzebra/datamtrx.c
  * harbour/contrib/hbzebra/hbzebra.hbp
  * harbour/contrib/hbzebra/hbzebra.ch
    + added DataMatrix 2D barcode support
    ; implemented ASCII encoding only. This is enough for most real 
      life applications, but it is only a minor part of available 
      codeword encodings. I just unable to implement without docs. 
      Reverse engineering of black and white dots take a lot of time
      for 2D barcodes, so I've dropped this idea. If someone has 
      full ISO/IEC 16022:2006 specification, I can implement the rest.

  * harbour/contrib/hbzebra/tests/testcair.prg
    + added DataMatrix test
    ; Please, add it to other backend tests

  * harbour/contrib/hbzebra/core.c
    * changed bitbuffer logic a little

  * harbour/contrib/hbzebra/pdf417.c
    * comment added
    * small cleanup
2010-11-12 22:05:45 +00:00
Viktor Szakats
483a3c868e 2010-11-09 15:13 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbplist
    + Enabled hbzebra.

  * contrib/hbzebra/hbzebra.hbp
    + Added optional cairo dependency.
    + Enabled cairo dependent components if cairo is detected.
    - Deleted hard-coded reference to cairo lib.
    + Adjusted reference to hbcairo.hbc.

  * contrib/hbzebra/itf.c
  * contrib/hbzebra/codabar.c
    * Silenced three warnings.
    ; TOFIX: Remains one: 
             ../../../../../contrib/hbzebra/code128.c: In function 'hb_zebra_create_code128':
             ../../../../../contrib/hbzebra/code128.c:316:19: warning: suggest parentheses around '&&' within '||'

  * contrib/hbzebra/core.c
    ! Replaced hbcairo.h header reference with hbstack.h

  * contrib/hbzebra/cairo.c
  * contrib/hbzebra/hbzebra.hbc
    ! Added EOL at EOF.
    * Indenting.
2010-11-09 14:13:54 +00:00
Mindaugas Kavaliauskas
986e945874 2010-11-09 15:20 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
+ harbour/contrib/hbzebra
  + harbour/contrib/hbzebra/hbzebra.ch
  + harbour/contrib/hbzebra/hbzebra.h
  + harbour/contrib/hbzebra/core.c
  + harbour/contrib/hbzebra/codabar.c
  + harbour/contrib/hbzebra/code11.c
  + harbour/contrib/hbzebra/code128.c
  + harbour/contrib/hbzebra/code39.c
  + harbour/contrib/hbzebra/code93.c
  + harbour/contrib/hbzebra/eanupc.c
  + harbour/contrib/hbzebra/itf.c
  + harbour/contrib/hbzebra/msi.c
  + harbour/contrib/hbzebra/hbzebra.hbc
  + harbour/contrib/hbzebra/hbzebra.hbp
    + added barcode library. It supports these types of barcodes: EAN-13, 
      EAN-8, UPC-A, UPC-E, Code 128, Code 93, Code 39, Code 11, Codabar, 
      Interleave 2 of 5 (ITF), MSI.
         Library has both C and Harbour level API functions. GC pointers 
      are used to store Zebra structures in Harbour items.
         Current impementation has Cairo draw backend only. Draw A different 
      backends can be added
      Harbour level API:
         hb_zebra_create_<type>( cCode [, nFlags ] ) --> hZebra
         hb_zebra_destroy( hZebra )
         hb_zebra_geterror( hCairo ) --> nError
         hb_zebra_getcode( hCairo ) --> cPrintableCode
         hb_zebra_draw_cairo( hZebra, hCairo, nX, nY, nLineWidth, nHeight [, nFlags ] ) --> hZebra

  + harbour/contrib/hbzebra/tests
  + harbour/contrib/hbzebra/tests/test1.prg
  + harbour/contrib/hbzebra/tests/hbmk.hbm
    + added test app to generate barcodes. Creates .pdf and .png output,
      uses Cairo backend to draw barcode

    ; TODO: (my todo list with low priority)
      - 2-digit and 5-digit supplemental barcodes for EAN13
      - draw EAN, UPC barcode in native format
      - 2D barcode support
      - PDF417

    ; If someone has real scanner it would be nice to do tests and get feedback. 

    ; I guess I've implemented Code 128 encoding (code set selection, etc) that 
      generates the optimal (shortest) barcode. If someone can find a sample of 
      barcode that encodes the same data and is shorter than hbzebra's barcode, 
      please inform me.

    ; Make system is not working and a requires to be fixed by someone! 
      This library has properties that possibly could not be solved in current 
      make implementation. It can have multiple draw backends: Cairo, Win32 GDI,
      GD, ASCII art, libharu, etc. These depends on system and installed 
      packages. I do not know howto put all backends into the same hbzebra 
      library. A separate library for each backend seems to be wasteful way to 
      solve a problem, because draw backend implements only one function (a few
      more functions should be implemented to support EAN/UPC native draw, some
      2D barcodes, but backend code size is small).
2010-11-09 13:22:33 +00:00