A printer includes a holding unit, a printer head, a movement controller and a printing controller. The holding unit is configured to hold a print substrate having a surface to be printed. The printer head is configured to eject ink from a plurality of ejection nozzles to the surface. The movement controller is configured to move the holding unit and the printer head relative to each other. The printing controller is configured to control ejection of the ink from the printer head according to a surface curvature of the surface and a relative position of the holding unit and the printer head.