L’impression d’interface graphique en Java

Impression d’une IHM utilisateur, création d’un thread d’impression (PrinterJob), ouverture de la fenêtre système d’impression, etc.

Pour imprimer une interface utilisateur : swing-printing.

Créer un job d’impression

PrinterJob pj = PrinterJob.getPrinterJob();
pageFormat = pj.defaultPAge();
pj.setPrintable(printable, pageFormat);
pj.print() // appeelé x fois en fct du nb de pages demandées
printable.print();

printDialog : affiche la boite de dialogue d’impression; retourne false si clic sur annuler.
pagedialog : boite de dialogue de mise en page.

Utiliser l’interface Printable

int print (Graphics g, PageFormat pf, int page) {
	if (page ...) 
            return Printable.NO_SUCH_PAGE;
	// dessiner avec g
	return Printable.PAGE_EXISTS
}

getWidth, getHeight : Taille du papier en points (1 pt = 1/72 pc = 25,4 mm).
getImageWidth, getImageHeight : Taille de la zone imprimable.

Pour imprimer à partir d’une zone imprimable :

g.translate(pageFormat.getImageableX(), pageFormat.getImageableY());

L’interface Pageable : voir la classe Book, qui permet de gérer un ensemble d’objets Printable.

book.append(printable);
printerJob.setPageable(book);

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *