Conventionally, it has been impossible to perform a formatted print precisely corresponding to functions of various printers. To solve this problem, formatted print data and printer capability data are stored. When a print instruction is issued, formatted print candidates are present