Je regroupe ici ma réponse aux deux emails dont les sujets sont
semblables.
Aperçu (prévue) :
Puisque qu'imprimer et dessiner une image utilisent tous les deux une
classe "graphics", il "suffit" d'utiliser une fois un graphics créé à
partir d'une "picture" et une fois avec un "open printer".
Ainsi, on passe à la méthode qui imprime un paramètre "g as graphics"
qui est soit tiré d'une "picture" soit d'un "open printer".
Je dis "suffit" car il faut encore gérer la taille du papier, les
marges, et ce n'est pas toujours facile.
Imprimer une image :
La "depth" à 32 inférieure à la "depth" à 72 d'une imprimante = c'est
une erreur.
La profondeur (depth) équivaut au nombre de couleurs possible dans
une picture. Le 72, c'est la résolution (nombre de pixels par pouce).
C'est celle d'un écran, d'une picture et de l'imprimante si on en
spécifie pas une autre.
Mais pourquoi une image avec une résolution à 72 se pixélise (et
devient donc "moche") lorsque l'on imprime sur une imprimante dont on
a pas changé la résolution (donc toujours à 72) ?
Les méthodes de la classe "graphics" (drawString, drawRect etc.) sont
assimilables a du vectoriel : donc pas de pixels ici.
Par contre, imprimer une image à 72 dpi, le pixel va immédiatement
apparaître sur l'imprimante (alors qu'il est invisible à l'écran).
72 dpi, pour un écran c'est OK, pas pour une imprimante. Pour
imprimer une belle image, il faut au moins du 300 dpi.
Format paysage :
Désolé, je ne sais pas...
J'espère que les pistes que je donne sont assez claires, sinon, on en
rediscute !
Eric
|