A printing apparatus in which a plurality of groups are formed, each group containing a predetermined number of adjacent printing elements which are arrayed, and which prints by pre-assigning a driving sequence number to each print element included in each group such that all printing elements included in each group are driven at different timings and which drives printing elements selected from each group based on the driving sequence number while a printhead having a printing element array (141, 142, 143, 144) in which the plurality of printing elements are arrayed scans based on image data in a direction intersecting an arrayed direction of the plurality of printing elements, the apparatus characterized by comprising: obtaining means for obtaining slant information of the printing element array in a scanning direction of the printhead; a printing buffer which stores the image data used to print by one scanning of the printhead; a transfer buffer which stores, for each column, image data of a plurality of columns used by the printing element array out of image data that are stored in said printing buffer and used to print by the plurality of printing elements; read control means (201, 206) for reading out, from said transfer buffer, for printing elements to which the same driving sequence number is pre-assigned, image data of at least two successive columns out of the image data of a plurality of columns; selection means for selecting, for each group, image data of a single column from the image data of at least two successive columns read out by said read control means for each of the printing elements to which the same driving sequence number is pre-assigned, the selection being based on the slant information; write control means (201, 206) for newly reading out image data of one column from said printing buffer, and rewriting the read-out image data in an area of said transfer buffer corresponding to one column where read-out by said read control means is completed; and transfer means for transferring the image data selected by said selection means to the printhead. obtaining means for obtaining slant information of the printing element array in a scanning direction of the printhead; a printing buffer which stores the image data used to print by one scanning of the printhead; a transfer buffer which stores, for each column, image data of a plurality of columns used by the printing element array out of image data that are stored in said printing buffer and used to print by the plurality of printing elements; read control means (201, 206) for reading out, from said transfer buffer, for printing elements to which the same driving sequence number is pre-assigned, image data of at least two successive columns out of the image data of a plurality of columns; selection means for selecting, for each group, image data of a single column from the image data of at least two successive columns read out by said read control means for each of the printing elements to which the same driving sequence number is pre-assigned, the selection being based on the slant information; write control means (201, 206) for newly reading out image data of one column from said printing buffer, and rewriting the read-out image data in an area of said transfer buffer corresponding to one column where read-out by said read control means is completed; and transfer means for transferring the image data selected by said selection means to the printhead.