È il tuo PrintImage che deve ricevere e tenersi innanzitutto la lista di immagini.
Benissimo, allora N immagini --> N pagine.
Tieni presente che il sistema di printing può invocare il print del Printable in modo molto "arbitrario" (c'è tutta la spiegazione nel javadoc di Printable). Quindi la implementazione del Printable deve stare più "passiva" possibile. Ti viene chiesta la pagina x: l'indice x è valido nella lista di immagini? Sì, ok stampi. No, la pagina non esiste.
Infine:
Non ho ovviamente provato il tuo codice ma "ad occhio":
pWidth = (int) Math.min(width, (double) image.getWidth());
non mi pare corretto (idem l'altro). Il primo width è nell'unità (di default) di 1/72 inch mentre image.getWidth() è in "pixel". Stai facendo un min tra patate e carote ....
Inoltre non è correttissimo che prendi il PageFormat (nel costruttore) PRIMA del printDialog(). Perché nella dialog l'utente può cambiare il formato pagina.


Rispondi quotando