A thermal printer comprising: a thermal head including a plurality of heater elements aligned in a main scanning direction; and a control means that: controls energization of each of the plurality of heater elements based on printing data including a plurality of line data arrays corresponding to the plurality of heater elements respectively, for selectively heating up the plurality of heater elements, and performs printing according to an order of the printing data while taking a line data array as a basic unit in each printing cycle including a heating period for heating up by energizing the plurality of heater elements (41 A) and a non-heating period for dissipating heat by deenergizing the plurality of heater elements, wherein the control means delays a start of a heating period in a printing cycle with respect to a start of the printing cycle for a predetermined time period when a predetermined condition with respect to the line data array is satisfied, characterized by a holding means that holds a line data array; and a heating-dot counting means that counts number of heater elements (41 A) to be heated up according to the line data array, wherein, in a printing cycle directed to the line data array, the control means starts the heating period simultaneously with a start of the printing cycle and provides the non-heating period after elapse of the heating period, and wherein, when there continue at least two line data arrays in which the number of heater elements to be heated up counted by the heating-dot counting means is more than a predetermined number, and at same time, when, in a line data array which is a printing target following the at least two line data arrays, the number of heater elements to be heated is smaller than the predetermined number, the control means sets, in a printing cycle directed to a line data array of a last print target in the at least two line data arrays which are continued, a heating period in a state where a start of the heating period is delayed for a predetermined delay period from a start of the printing cycle. a thermal head including a plurality of heater elements aligned in a main scanning direction; and a control means that: controls energization of each of the plurality of heater elements based on printing data including a plurality of line data arrays corresponding to the plurality of heater elements respectively, for selectively heating up the plurality of heater elements, and performs printing according to an order of the printing data while taking a line data array as a basic unit in each printing cycle including a heating period for heating up by energizing the plurality of heater elements (41 A) and a non-heating period for dissipating heat by deenergizing the plurality of heater elements, controls energization of each of the plurality of heater elements based on printing data including a plurality of line data arrays corresponding to the plurality of heater elements respectively, for selectively heating up the plurality of heater elements, and performs printing according to an order of the printing data while taking a line data array as a basic unit in each printing cycle including a heating period for heating up by energizing the plurality of heater elements (41 A) and a non-heating period for dissipating heat by deenergizing the plurality of heater elements, wherein the control means delays a start of a heating period in a printing cycle with respect to a start of the printing cycle for a predetermined time period when a predetermined condition with respect to the line data array is satisfied, characterized by a holding means that holds a line data array; and a heating-dot counting means that counts number of heater elements (41 A) to be heated up according to the line data array, wherein, in a printing cycle directed to the line data array, the control means starts the heating period simultaneously with a start of the printing cycle and provides the non-heating period after elapse of the heating period, and wherein, when there continue at least two line data arrays in which the number of heater elements to be heated up counted by the heating-dot counting means is more than a predetermined number, and at same time, when, in a line data array which is a printing target following the at least two line data arrays, the number of heater elements to be heated is smaller than the predetermined number, the control means sets, in a printing cycle directed to a line data array of a last print target in the at least two line data arrays which are continued, a heating period in a state where a start of the heating period is delayed for a predetermined delay period from a start of the printing cycle.