printer重构