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);