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