Could be old ribbons that have evaporated the Bisophenol A into the air, or a poor spacing between ribbon and paper, or dirt on the print head. Wipe the head with some isopropyl alcohol to clean it, and try again. Check if there is adjustment for platen spacing. They generally give quite good results until the head fails, which typically only occurs after about 100 000km of paper has been through them. I have one for teardown that has a single dead spot on the head, which renders it useless for it's job as a barcode printer. It has done way more than 100 000km of labels though.