I can use the following type of barcodes in my project:

  • Code 39
  • Code 128
  • QR Code
  • Data Matrix
  • PDF-417

They will be printed with standard office printers and with boca printers. It should also be possible to show them on smartphone screens.

They will be read with webcams or Windows tablets. It would also be helpful I could buy an USB barcode reader or something similar to use with this codes.

The data in the code will be text and numbers, at least 10 characters.

Which barcode type is most suitable for this situation? The most critical factor is the fault toleration, this has to be as low as possible on the mentioned media.


2 Answers 2


First, about the USB barcode reader: at my previous job (QA at a label printer company), we had one from Scanology. It worked as a keyboard device, the scanned data is sent to the pc as if it were typed. So you don't need any special software.

  • Code 39 has no error correction, but even a single misread line won't result in wrong data, because it simply won't produce a valid character. So you either get valid data, or you get nothing. A major advantage of code 39 is that you don't need barcode software, you can simply use a barcode font.

  • Code 128 is slightly better than code 39 in terms of error detection, but still no fault tolerance. And you can't use a barcode font. In your case, you would use 128A (0-9, A-Z and a few special chars).

  • If your most critical factor is fault tolerance, then I would suggest QR, with high error correction setting, which gives up to 30% redundancy. This means that up to 30% of your QR code can be unreadable before the scanner gives up. The Wikipedia page on QR shows an example of a torn QR code that is still readable: http://en.wikipedia.org/wiki/QR_code#Error_correction Another advantage is that it can be scanned in any direction, and it's a quite popular format.

  • Data Matrix and PDF-417 are similar to QR in terms of fault tolerance, but they are not widely supported for smartphones. I scanned thousands of QR and PDF-417 codes during my time as QA engineer at that label printer company, and I found a lot of high quality QR scanning software for Android and iPhone, but hardly any for PDF-417 and Data Matrix. I assume the situation will be the same (or worse) for Windows Phone.

My advice:

  • Easy implementation: Code 39. Use a Code 39 barcode font. Works with cheaper barcode scanners.
  • Very high fault tolerance: QR at level H (High). Use the ZXing library. Handheld USB barcode scanners may cost a tiny bit more.
  • $\begingroup$ Isn't QR a lot slower to scan? Speed might be important for scanning tickets, right? $\endgroup$
    – dampee
    Jan 28, 2015 at 12:50
  • $\begingroup$ Define "a lot"? Anyway, speed of scanning was not a priority, fault tolerance was. If you need fault tolerance, you need QR. $\endgroup$ Jan 30, 2015 at 12:42
  • $\begingroup$ Since your answer was written, more recent versions of the zxing-based Barcode Scanner for Android have added support for DataMatrix, AztecCode, and PDF-417. The PDF-417 support is still marked as "beta," but it's worked very well for me on a couple of old-and-low-end Android smartphones. $\endgroup$
    – Dan Lenski
    Jul 6, 2018 at 0:18

PDF417 and Aztec code appear to be the most popular barcode symbologies for printed paper tickets and similar applications…

PDF417 is used in many applications by both commercial and government organizations. PDF417 is one of the formats (along with Data Matrix) that can be used to print postage accepted by the United States Postal Service. PDF417 is also selected by the airline industry's Bar Coded Boarding Pass standard (BCBP) as the 2D bar code symbolism for paper boarding passes. PDF417 is the standard selected by the Department of Homeland Security as the machine readable zone technology for RealID compliant driver licenses and state issued identification cards."

(somewhat flexible rectangular shaping/sizing appears to be one of the main advantages of PDF417)

An Aztec code barcode is widely used for transport ticketing. The Aztec Code has been selected by the airline industry (IATA's BCBP standard) for electronic boarding passes. … Aztec codes are also used in rail, including by Eurostar, Deutsche Bahn, DSB, Czech Railways, Slovak Railways, Trenitalia, Nederlandse Spoorwegen, PKP Intercity, VR Group, Virgin Trains, Via Rail, Swiss Federal Railways, SNCB and SNCF for tickets sold online and printed out by customers or displayed on mobile phone screens.

(lack of requirement for an unpatterned "quiet zone" around the barcode symbol appears to be one of the main advantages of Aztec code)

Unfortunately I haven't been able to find any very clear research comparing the reliability/robustness of scanning of 2D paper barcode by smartphones, but I asked a related question recently ("Most reliably and rapidly readable 2D barcode?").

I assume (hope?) that some of the agencies implementing these barcodes did research on the reliability of the scanning process…


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.