cnesan ha scritto:
La soluzione trovata, sebbene funziona da più di un'anno senza problemi, è una soluzione che si basa su un meccanismo di funzionamento dedotto dagli esempi ma non riportato da una documentazione specifica (libro o altro).
Inoltre sulla grafica (oggetti di testo, barcode e altro) ebbi parecchie difficoltà soprattutto sulla definizione di "scale" e sul fatto che alcuni metodi richiedevano i parametri in pixel mentre altri in INCH (ma nella documentazione non si capiva).
Riguardo i barcode purtroppo non c'è nulla di già fatto nel framework e serve o una libreria specifica oppure tocca "studiare" sui barcode per farli da zero. Per il resto cioè testo, linee, figure, immagini in generale, con Java 2D è tutto ragionevolmente abbastanza ben gestibile.
Le questioni maggiori e più "ostiche" riguardano invece le "misure". Nel Graphics(2D) del Printable la matrice di trasformazione è pre-impostata in modo che 1 unità equivale fisicamente a 1/72 pollice. Questo è stato fatto per avere una unità di misura "fisica" che fosse quindi indipendente dalla risoluzione della stampante.
Se stampi una linea da (72,72) a (144,72) stampi una linea a 1 pollice dai bordi e lunga esattamente 1 pollice. Indipendentemente dal fatto di avere una stampante a 300dpi oppure a 2400dpi.
Se hai una qualche API che ti stampa su un Graphics(2D) un barcode e ti dice che genera es. 300 pixel in larghezza, se "trasporti" tutto questo sul Graphics di un Printable, vuol dire che sono 300 unità e per default vorrebbe dire 300/72 --> 4,1666 pollici. Tu magari volevi stampare il barcode largo es. 6 pollici e allora entra in gioco un nuovo fattore di scala da applicare. Quale è quindi il fattore di scala da
concatenare a quello corrente per far sì che 300 unità corrispondano fisicamente a 6 pollici? Va appunto calcolato ...
cnesan ha scritto:
Ho trovato un libro quale "Java Grafica 2D" può tornarmi utile nella questione del rendering ?
Se è quello di J.Knudsen, non ce l'ho e non ti posso dire come è ma so che c'è un capitolo alla fine sul Printing. Che comunque è solo una minima parte del libro. Il resto del libro tratta Java 2D in generale: Graphics(2D), linee, figure, stroking, filling, clipping, transform, testo, colori, ecc...
Tutte cose che sono comunque molto utili per Java 2D, sono applicabili ANCHE al printing e valgono ancora al giorno d'oggi.