This paper reports our experience extending an on-line printer controller based on AI planning to handle two significant features of this commercially important domain: execution failures and multi-objective preferences. A printer controller must plan quickly and reliably, otherwise expensive human intervention will be required. Our approach is practical and efficient, and showcases the flexibility inherent in viewing planning as heuristic search. Execution failure is handled by replanning. We link together the individual searches for each in-flight sheet, giving rise to a tree of potentially infinite branching factor. Multiple objectives are handled by linear combination and tie-breaking during best-first search. Multiple pre-computed pattern databases are used to improve the efficiency of handling preferences regarding image quality. Our successful experience controlling multiple prototype printing systems shows that replanning and preference-handling can be made practical without using hand-coded control knowledge.