Home

Printable version

Contact
Products | Register and buy | Download | Questions | Links  371-493-459
Now: status
Google: Yahoo: MSN:
PSOFT: Web:

PSOFT BARCODE PORTAL.

barcode.psoft.sk , psoft.sk

Products

Basic terms
Basic terms

Linear barcodes
2/5,Interleaved,ITF
Code 39
Code 93
Codabar, Codabar Monarch
EAN,JAN,ISBN,ISMN,ISSN,ISMN
UPC-A, UPC-E, UPC-Shipping
Code 128, EAN 128
SCC14, Shipping container code, (EAN/UCC-14,SCC-14)
SISAC
Code 11
PZN
MSI
SSCC
LOGMARS
Pharma code
Plessey

Mail symbologies
Royal mail
Postnet
Planet
German Postal
Danish PTT
Australian 4-State Barcode
Japan Post 4-State Barcode
SwissPostal
Singapore4StatePostalCode
PostBar
FIM A,B,C,D

Other linear...
CPC binary code
TRAY LABEL 10 digits 2 of 5
SACK LABEL 8 digit 2 of 5
Telepen

Stacked symbologies
PDF417
MicroPDF417
MacroPDF417
Code49
Codablock, CodablockF
Code16K

Composite symbologies
RSS-16

2D symbologies
QRCode
Aztec, Small Aztec
DataMatrix
Maxicode
SuperCode
Ultracode
Maxicode
3-DI
ArrayTag
Code49
Code1
DataStrip
DataGlyphs
MiniCode
DotCode
HueCode
UltraCode
SmartCode
SnowFlake

Index.

Basic terms Symbology Continous,Discrete Module
Quiet zone Check char Add-on 2 or 5 digits Element
Error correction Start/Stop symbol Reed Solomon error correction Omni-directional,Bi-directional
Human readable text Multirow symbology Advantages Problems
EAN countries table   Sample barcode-structure image  

Basic terms about barcodes.

Bar codes are like a printed version of Morse code. Different bar and space patterns are used to represent different characters.Sets of these patterns are grouped together to form a ' symbology'.There are many types of bar code symbologies each having their own special characteristics and features.Most symbologies were designed to meet the needs of a specific application or industry. For example UPC symbology was designed for identifying retail and grocery items and PostNET was designed to encode ZIP Codes for US Postal Service.

Barcode symbologies was created for easy using with computers as input device. Reduce human errors by input goods number to computer or money-chest. This linear barcode symbologies have one trouble : small capacity, because more chars is bigger width of barcode and scanner have some trouble. Capacity of linear barcodes is about 10-20 chars, than is better 2D or stacked barcode.
In last years was created barcode symbologies with more information, 2D barcodes with capacity about 2,000 - 7,000 chars.
First impulse was created with Automotive Industry Action Group (AIAG)in 1984 year, defined standard Code39 with Piece number,Quantity,Developer and Serial number.
First 2D barcode was created in year 1988 by Intermec Corporation, assigned as Code49.

What is Bar Code?

Bar code is a pattern of bars and spaces which represent numbers, letters or characters. Code 39, for instance, has a unique pattern. Code 3 of 9, as it is sometimes called, derives its name from the way in which the pattern is created. Each character has nine elements (five bars and four spaces) and three of them are fat.

Why Use Bar Code?

  • Bar codes are accurate. They eliminate manual data entry errors. Research has shown that the error rate due to bar code misreads is less than one thousandth of one percent. Tests have shown that bar coded information had a throughput accuracy rate of 1 error in 10,000,000 characters. Compare that to keyboard entry error rates of 1 error in 100 characters.
  • Bar codes speed data entry. Even with a simple wand, a bar code can be scanned in a fraction of the time it takes to enter the information manually. CCD and laser scanners are also available for even faster data entry.
  • Bar codes can be produced easily and cheaply. Bar codes can be printed on most computer printers, for the cost of ink and paper. Even a low cost dot matrix printer can produce bar codes of adequate quality.

  • Symbology standard must contain:

    • A definition of the width of the bars and the spaces
    • A method to define each character that is encodable (whether numeric only or full ASCII)
    • The start and stop characters
    • Any check character support built in
    • Any free space needed around the symbology to allow for a clean decode

    Continous barcode, Discrete barcode.

    Discrete symbologies consist of unique bar and space patterns for each character. Continuous codes cannot be separated into individual characters.
    • Continuos barcode is barcode, where last module is nearest to next char. Between coded chars isn't space, but this space is part of coded char. Last char ends with space and next char begin with bar.
    • Discrete barcode must have between two chars some space, because char start and end with bar, code must have between two chars one or more space.

    Module.

    Module is minimal size of barcode piece. For linear barcodes this is line or space with one pixel size (can be zoomed 2,3,4,5 x), for 2D barcodes is this rectangle with integer width and height. Normally is height of rectangle equal width, because rectangle :-) But some exeption are possible...

    Quiet zone.

    Quiet zone is free zone around barcode. Some barcodes needs this zone on left and right side, no in top and bottom (linear barcodes). This zone is needed for good reading by scanners, because all images, text, lines nearest barcode can make mistake. This zone is for each barcode symbology different, currently about 0.5-1 cm.
    Some barcode types not need quiet zone (2D barcodes), this barcode symbologies have installed error correction algorithms, some bad part of barcode image, bad line across barcode, destroyed part of barcode is no problem :-)
    2D barcodes can repair 5%-95% of destroyed part, if you have only one half barcode image, no problem, readable ...

    Check char (checksum).

    Check char is one or more chars (some symbologies use one, some two check char digits) added to end of coded string, before stop char. Barcode scanner after reading barcode use some algorithm, calculate data from string and compare with last char. Is equal, reading is good, if no, not read this barcode, because is destroyed.
    Calculation algorithms is more:
    • Modulo 10 - used in all EAN,ISBN,ISSN,ISMN,UPC barcodes
    • Modulo 11 - used in Code 11
    • Modulo 107 - used in Telepen
    • Good is Reed Solomon error correction - used in 2D barcodes. Added some redundantion data to barcode for error correction. You can have only part of barcode, destroyed barcode and error correction solve your problem.
    • Error correction mode can be set from 5% to 95%, highest error correction level make of course smallest coded data size, but make this barcode very secure. 5% level is good, but you make barcode only with small damage, 95% is very good after damage, but more information is error correction as data :-(
    In all our software products if is needed check digit and user cannot include this in barcode (some example EAN-8 only 7 digits, or 8th digit is bad) is check digit calculated automatically.

    Add-on 2 or 5 digits

    Barcode symbologies based on EAN code (EAN 8-, EAN-13, UPC-A, UPC-E, JAN, ISSN, ISMN, ISSN) can contain 2 of 5 additional digits after main barcode. In your software you must select this digits from main symbol using one space.
    For example : EAN-8 symbol "1234567 12345" is Ean-8, 8th digit is chcecksum, calculated automatically, "12345" is add-on symbol. Printed barcode contain 13 digits, 8th is checksum.

    Element.

    • For 1D barcodes (EAN,UPC,Code39,Code93,...) is one element one pixels. Bit "1" is black line, bit "0" is white space. If you need largest barcode (on laser printer is one pixel very small :-) ), you can increase all element, but good is all elements multiplicate with same coefficient. Barcodes have some printer tollerance, but some 30-40% is maximum. If single line is 10 pixels width, and simple space 11 pixels, this is good. But if simple space is in width 16 pixels, bad. Barcode unreadable.
    • For 2D barcodes is width and height of element equal. And all 2D barcodes contain error correction algorithm for remove errors.

    Error correction.

    • See Check char. For 1D (linear) barcodes is used check char added after last coded char, before stop char. This char is compared with barcode scanner with all others characters, calculated and if not equal, barcode is bad. If yes, all is O.K. 1D barcodes have troubles with reading in 100.000-1.000.000 barcodes
    • Better is 2D code, because there is more amount of data, uses better algoritms. To barcode are added some additional data for repair damaged data. This algorithms can correct 5-95% of damaged data. Error correction level user can set, but if better error correction level, smaller data can you code, because barcode include more error correction information. In 95% error level you need only 1/5 barcode and no problem with reading.
    SymbologyWorst CaseBest case
    Datamatrix10.5M612.9M
    PDF41710.5M612.4M
    Code1282.8M37M
    Code 391.7M4.5M
    UPC394K800K

    Start/Stop symbol.

    • Start symbol is begin of barcode, only in 1D barcode. Before this symbol must be quiet zone. This indicate barcode symbology. After this symbol continues barcode text.
    • Stop symbol is last symbol in barcode. Before this symbol can be checksum. After stop symbol must be quiet zone for easy reading of barcode, no images, lines, text.

    Reed Solomon alghorithm.

    • Reed-Solomon codes are block-based error correcting codes with a wide range of applications in digital communications and storage. Reed-Solomon codes are used to correct errors in many systems including:

      • Storage devices (including tape, Compact Disk, DVD, barcodes, etc)
      • Wireless or mobile communications (including cellular telephones, microwave links, etc)
      • Satellite communications
      • Digital television / DVB
      • High-speed modems such as ADSL, xDSL, etc.

    • Typical scheme: DATA -> REED-SOLOMON ENCODER -> TRANSMISSION (with errors, of course) -> REED SOLOMON DECODER-> DATA WITHOUT ERRORS (if possible), easy :-)

    • For barcode : Reed-Solomon error correction adds to barcode additional char. This chars is very good if barcode is damaged. Correct problems and barcode is good. Nice. But problem is in error correction level.
      5% error correction is small, only small part of barcode can be damaged. 95% is very good, but additional informations is large as coded data :-(, 50% this gold road...

    • Further reading : In this paper we have deliberately avoided discussing the theory and implementation of Reed-Solomon codes in detail. For more detail please see the following books:
      • Wicker, "Error Control Systems for Digital Communication and Storage", Prentice-Hall 1995
      • Lin and Costello, "Error Control Coding: Fundamentals and Applications", Prentice-Hall 1983
      • Clark and Cain, "Error Correction Coding for Digital Communications", Plenum 1988
      • Wilson, "Digital Modulation and Coding", Prentice-Hall 1996

    Omni-directional, Bi-directional reading

    • Easy - Omni-directional barcodes can be readed only from one side - from left to right. Barcode must begin with start character and ends with stop character.
    • Bi-directional can be readed from left to right or from right to left. Start and stop code reader recognize. User not must barcode turn as needed. Barcode can start with stop character and stop with start character. This is good.

    Human readable text.

    Human readable text is text under barcode. This is good, if barcode is damaged and user must write to computer barcode manually. Another meaning not have. Barcode reader read good without this impossible things, for reader is this not usable. But human read better digits than lines and spaces... Some barcode symbologies not have human readable text. 2D barcode is very good example : can you write to computer 7 kilobytes of text ? If human readable text is not printed, no problem with reading, but only cashier can have some troubles, if barcode is not readable, you can't read code value.

    Multirow symbology.

    Multirow symbology is space before 1D (linear) and 2D symbology. We need more chars coded, but space is small... No problem. We divide one long barcode to more small and place one under other. This barcode isn't 1D, because each line is different, but not 2D, because some lines are here ...
    • PDF417
      • nice multirow barcode, very good error correction, 3 - 90 rows, all 128 ASCII codes, 8 bit binary data
      • Bi-directional encoding : Yes
      • error correction level 0 - 8
      • Additional options : MacroPDF417,MicroPDF417,...
      • Code16K - 2 - 16 rows, 5 chars per row, additionally up to 107 16-row symbols can be concatenated together to allow encoding of up to 8025 characters or 16050 digits.
      • Contain complete 128 ASCII character set

    Advantages

    • Easy input to computer or electronic cash register, reduce human errors and make input speed and easy.
    • Easy print - for simple 1D code is dot printer good, but for better print is needed inkjet or laser printer
    • 1D barcodes is very good for small codes- 10-15 chars, in large size have scanner troubles with reading, because difference between code and scanner is large or not all code is placed to scanner place.
    • 2D barcodes is very capable - on 1 square inch no problem 1.000-2.000 chars
    • Error correction - 1D barcodes includes checksum, indicate bad barcode. 2D barcodes uses error correction methods, eliminate destroyed or damaged barcodes, of course not in 100 %, but very good.
    • Capacity of coded tetx in 2D barcode is very high - 2.000 - 7.000 bytes per 2-3 square inch
    • 2D barcodes are very small in size, you can read this barcode from any position, no Omni-directional
    • Multistacked symbols is good, because you can read from top to bottom, or from bottom to top, or random. Barcode is completed, because each row contain row number.
    • 2D symbologies scan barcode as one entirety, no problem with rows and columns

    Problems

    • Matrix printer - for barcode no. Very small DPI, best is laser printer.
    • 2D barcodes - not easy for implementation - you need laser printer, dot printer is lost :-(
    • All barcodes 1D, Stacked,2D have some problem. InkJet printer is not good. If you ave hands on watter or if your document is on moisture, ink can be damaged, you have problem. On laser printer no.
    • Error correction methods - not easy and more data needs
    • 1D barcodes have smaller reliability as 2D, Human make error 1:300 (very bad), speed : small.
      1D barcode is readed bad in 1:1.000.000, 2D barcode around 1:100.000.000,speed is very good, try write 7.000 chars per 2-3 second :-)
    • 1D barcodes must be readed using laser across all width barcode. If some line is not in laser, is problem
    • 2D barcode isn't some world standard, you can code all info. Ean 13, Ean 8, UPC, ITF, RSS is standard, you have security, that two different goods on the world not have same barcode. This code allocate EAN, EAN Swerige EAN Slovakia

    EAN COUNTRIES


    First two or thee digits in the EAN8 or EAN13 assign country:

    00..130U.S.A. & Canada640..649Finland
    200..290In-store numbers 690..692China
    300..370France 700..709Norge
    380Bulgaria 729Israel
    383Slovenia 730..739Sweden
    385Croatia 740..745Guatemala, El Salvador, Honduras, Nicaragua, Costa Rica, Panama
    387Bosnia-Herzegovina 746Republica Dominica
    400..440Germany 750Mexico
    450..459Japan 759Venezuela
    460..469Russian Federation 760..769Suisse
    471Taiwan 770Colombia
    474Estonia 773Uruguay
    475Latvia 775Peru
    477Lithuania 777Bolivia
    479Sri Lanka 779Argentina
    480Philippines 780Chile
    482Ukraine 784Paraguay
    484Moldova 786Ecuador
    485Armenia 789Brazil
    486Georgia 800..830Italy
    487Kazakhstan 840..849Spain
    489Hong Kong 850Cuba
    490..491Japan 858Slovakia
    500..509U.K. 859Chech
    520Greece 860Yugoslavia
    528Lebanon 869Turkey
    529Cyprus 870..879Nederland
    531Macedonia 880South Corea
    535Malta 885Thailand
    539Ireland 888Singapore
    540..549Belgium & Luxembourg 890India
    560Portugal 893Vietnam
    569Iceland 899Indonesia
    570..579Denmark 900..919Austria
    590Poland 930..939Australia
    594Rumania 940..949New Zealand
    599Hungary 955Malaysia
    600..601South Africa 977Periodicals
    609Mauritius 978,979Books
    611Marocco 980Refund receipts
    613Algeria 990..999Coupons
    619Tunisia  
    622Egypt  
    626Iran  

    CRC- Cyclic redundance code.

    For minimizing the numer of incorrect entries is needed detect any error in input.
    • Add one or two check digit to code
    • Problem : add regundad information into message - longer barcode, but barcode id "power", for example in code PDF417 can be destroyed 90% of barcode picture and no problem ... readable. But some data is 10% from image, 90% is restoring data :-(
      But this CRC data is very usefull. Bad reading of barcode is about 1:100.000 in code 2/5,Code39.... to 100.000.000 with PDF417 barcode. This is very good.

    2 DIMENSIONAL BARCODE

    Not "line barcode", two dimensional barcode, printed as matrix of some square elements. This code can contain more data (for PDF417,QR Code, Matrix, Aztec code) is no problem 4.000-7.000 bytes with error correction. Here you can code digits,alpha chacctaers, bytes, music, photo ....
    Error correction can be set from 5% to 95% of coded chars. Of course, if you set error correction to 95%, barcode can be destroyed, three from four corners bad, ... and barcode is readable. But problem is in one : 95% of data area is redundancy code :-( , you don't need, when barcode is OK, only if very destroyed.
    5% error level is good, if ypur barcode is safe, no troubles with reading. You have more and more capacity for data and only small redundance code for solve troubles. But if troubles come, you need this data. If big troubles, you need more this data and can be big troubles. But 2D barcodes uses error correction systems, no problem with reading. Bad reading is 1:100.000.000, this is good.

    Printing techniques

    • Thermo transpher printer :
      • Very precise technology
      • Small dot size, very good text and line quality
      • Resolution : 200 DPI or more. Good.
    • Laser printer :
      • DPI : very good, 200-300 DPI is no problem
      • Problem is in small images or barcodes, because medium is damaged if you immediatelly merging out of the paper treated by head.
        Continuous quality is a problem.
    • Matrix printer :
      • For barcode is this printer only good joke :-)
      • Verty small DPI=problems
      • not allow equal continuing quality
      • Not recomented for good barcode printing, sorry
    • Ink Jet Printer :
      • Depended on DPI ...
      • Depended on print media, ink and process....
      • Integration would need great experiences, problem one : moisture. Text, image or barcode is destroyed.

    Sample barcode - explain structure of barcode


    Sample of UPC code
  • Used sources
    Barcode.com
    Adams1.com
    PDF417.com
    Wikipedia.org
    Barcode Island

    Neodynamic.com
    Metrologic
    AIM Global

    Supported environment
    Borland :
    • Delphi Win32
    • C++ Builder
    • Delphi .NET
    Microsoft :
    • Visual C#.net
    • ActiveX
    • DLL libraries

    Supported
    report tools
    • Direct print
    • Quick report
    • ReportBuilder
    • Ace Reporter
    • Rave report
    • Pragnaan report
    • Fast report

    Another barcode, Delphi™ sites




    ©2006 PSOFT - ing.Peter Čirip, Slovak republic All rights reserved.
    Borland, Delphi, C++ Builder is the trademarks of Borland Software Corporation.
    Microsoft, Windows, Windows NT, Internet Explorer is the trademarks of Microsoft Corporation.
    All trademarks are the sole property of their respective owners.