senti io posso consigliarti un modo per bypassare il problema... io faccio così, nn so se a te può star bene.
Invece di stampare fai generare un file html... è molto semplice. veramente!
dopo di che scrivi il file dove vuoi (una cartella temporanea del tuo programma) e lo esegui da shell... vedi la classe process a tal proposito.
Ti verrà visualizzato direttam all'interno del browser predefinito del sistema da cui poi potrai richiamare la stampa vera e propria.
Guarda, nn sarà il massimo come soluz, ma è d 1 semplicità mostruosa!
ciao! ;-)