[enh] add printf support