A barcode reader (or barcode scanner) is a computer peripheral for reading barcodes printed on various surfaces. Like a flatbed scanner, it generally consists of a light source, a lens and a photo conductor translating optical impulses into electrical ones. Additionally, nearly all barcode readers currently produced containdecoder circuitry analyzing the barcode's image data provided by the photo conductor and sending the barcode's content to the scanner's output port. However, in contrast to a flatbed scanner, a typical barcode scanner's optical components do not move as the barcode is one-dimensional and can be scanned all at once.

Many different types of barcode scanners are available. They can be distinguished as follows:

  1. By light source:
    • LED scanners (also referred to as CCD scanners -- even if the CCD is in fact the photo conductor)
    • laser scanners which are much more expensive than LED scanners but are capable of scanning barcodes at a distance of up to 25cm (~10")
  2. By housing:
    • handheld scanners with a long handle and typically a trigger button for switching on the light source
    • stationary scanners (wall- or table-mount)

Most barcode readers use a PS/2 wedge cable for output: This cable is connected to the host computer's PS/2 keyboard port with its first end, to the keyboard with its second, and to the barcode reader with its third end. The barcode characters are then received by the host computer as if they came from its keyboard. Many readers can be also equipped with an RS-232 output port so that the decoded characters arrive at the computer via one of its RS-232 connectors. However, USB-based barcode readers are quite rare to date.

Today's barcode scanners handle all popular barcode symbologies like EAN/UPC, Code 39 or Code 128. Advanced models also understand rather rarely used symbologies. A special type of barcode reader is the matrix-code reader for decoding two-dimensional codes.

Among the barcode reader manufacturers, Symbol Technologies, Intermec and DataLogic are the largest.