A controller (4) for controlling a printer engine (7) used to print
data on a medium determines an identification number based on received data, and
prints the identification number together with print data based on the received
data on the medium. Simultaneously, the controller (4) stores therein the
identification number and the print data in an HD (6). With the construction,
the identification number printed on the medium is inputted in the next and later
printing operations. The controller (4) searches the HD (6) to retrieve
and print the print data. Therefore, a copy of a quality as high as that of the
original document can be produced.