Yo en lo personal utilizo una impresora virtual, viene bastante completa, y puedes dejar que el usuario interactue con el proceso, o definir todos los parametros por codigo.
http://www.novapdf.com/
el unico problema es que es de paga, pero puedes bajarte un demo, y comprarlo si cubre tus expectativas.