Salut!

J'utilise une méthode que j'ai trouvée quelque part sur ces forums pour imprimer un JPanel. La technique utilisée est de d'abord transformer le JPanel en un fichier image temporaire, pour ensuite imprimer cette image. Ca fonctionne très bien, le seul souci est que l'image générée est de qualité plutot médiocre...
Est-ce que qqn sait par hasard comment améliorer cette qualité ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public void Impression(JPanel tp) {
		File fileTemp = new File("temp");
		BufferedImage image = new BufferedImage(tp.getWidth(), tp.getHeight(),
	     	BufferedImage.TYPE_INT_RGB);		
	    	Graphics2D g2 = image.createGraphics();
	    	tp.paint(g2);
	    	g2.dispose();
	    	try {
			ImageIO.write(image, "jpeg", fileTemp);
		} catch (IOException e) {		
			e.printStackTrace();
		}
		InputStream is = null;
		try {
			is = new BufferedInputStream(new FileInputStream(fileTemp));
		} catch (FileNotFoundException e1) {				
			e1.printStackTrace();
		}
		DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;
		Doc myDoc = new SimpleDoc(is, flavor, null);	
 
		PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
                // l'ajout d'attribut par défaut permet de ne pas devoir els //sélectionner dans la boite de dialogue d'impression.
		aset.add(new Copies(1));
		aset.add(MediaSizeName.ISO_A4); 
 
		PrintService[] printService = PrintServiceLookup.lookupPrintServices(flavor, aset);
		PrintService defaultService = 
		PrintServiceLookup.lookupDefaultPrintService();
		PrintService service = ServiceUI.printDialog(null, 200, 200,
		printService, defaultService, flavor, aset);
		if (service != null) {
			DocPrintJob job = service.createPrintJob();
			try {
				job.print(myDoc, aset);
			} catch (PrintException e) {					
				ta.append(e.toString() + "\n");
			}
			}								
		fileTemp.delete();
	}
Merci !