cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 2009
-
17 mai 2004 à 18:45
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 2009
-
18 mai 2004 à 22:19
encore un pb d'imression lol
mais il est serienx celui-là ;-(
j'étais en train de faire une joulie boîte pour configurer l' impression d'un JPanel : taille, centrage, apercu etc...
500 lignes plus tard, ca marche... presque
pour situer le problème :
en java, la resolution d'une image semble être obligatoirement 72 pixels par pouce
on peut contourner ce problème lors de l'impression en utilisant la méthode scale(double, double) de Graphics2D
ca donne un truc dans le genre pour la méthode print
public int print(Graphics pg, PageFormat pageFormat, int pageIndex) throws PrinterException {
BufferedImage image = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_RGB);
le problème, c'est que la taille de l'impression dépend de la résolution de l'imprimante (si elle est aussi en 72 px/pouce, c'est OK, mais sinon...)
(mon but, c'est de pouvoir choisir la taille de l'image quelque soit la résolution de l'imprimante)
donc la question (enfin ;-p)
Comment connaître la résolution de l'imprimante
on pourrait alors modifier les paramètres de scale pour ajuster la taille de l'image à la résolution de l'imprimante
ou sinon, comment forcer la résolution?
sans doute un rapport avec javax.print.attribute.standard.PrinterResolution
??
[si j'ai pas de réponse, j'ai plus qu'à remplacer la boîte d'impression par un enregistrement en BMP ;-p
ce serait pas très classe quand même...]
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 17 mai 2004 à 20:37
dans le code précédant :
- plan est le JPanel à imprimer
- rapport est un changement d'echelle indépendant
- le code est lancé depuis un JDialog d'où le
((Frame) this.getParent()
- margeHaut, impressionDecalageHaut, margeGauche, impressionDecalageGauche sont des marges indépendantes en pixels
- portrait est un JRadioButton
- copies est un JSpinner
voilou
ce code fonctionne très bien mais si qq'un sait comment régler la résolution d'impression en utilisant PrinterJob, ce serait cool
;-p