Coding and marking machines apply codes, dates, and other variable information to packages and containers. There are two main types: contact and non-contact, and programmable and non-programmable. Common machines used are inkjet printers and laser coders. Inkjet printers work by using heat to vaporize ink and push it through nozzles onto surfaces. Laser coders work by changing surfaces through ablation, etching, or foaming. These machines are used to mark expiration dates, batch numbers, barcodes, and other identifying text or graphics onto materials like paper, plastic, metal, and glass.