In an optical bar-code reader, an optical scanner optically scans a bar code
to
obtain optical power of light reflected from white bars and black bars of the bar
code, a differentiation unit calculates a differential of the optical power to
obtain a differential waveform, a dividing unit divides the differential waveform
into a positive waveform and a negative waveform, a bar-code correcting unit calculates
correct widths of black bars in the bar code from the positive waveform and the
negative waveform to create corrected bar-code data, and a converter converts the
corrected bar-code data into character data that is an array of numerals and alphabets.