Imprimindo páginas com orientações diferentes

Um objeto Book é usado quando se deseja imprimir páginas de diferentes formatos. Este exemplo imprime a primeira página com orientação horizontal e as outras cinco com orientação vertical.

public class ImprimirLivro { public static void main(String[] args) { PrinterJob pjob = PrinterJob.getPrinterJob(); Book book = new Book(); // Primeira parte PageFormat landscape = pjob.defaultPage(); landscape.setOrientation(PageFormat.LANDSCAPE); book.append(new Impressao1(), landscape); // Segunda parte PageFormat portrait = pjob.defaultPage(); portrait.setOrientation(PageFormat.PORTRAIT); book.append(new Impressao2(), portrait, 5); pjob.setPageable(book); try { pjob.print(); } catch (PrinterException e) { } }
static class Impressao1 implements Printable { public int print(Graphics g, PageFormat pf, int pageIndex) { drawGraphics(g, pf); return Printable.PAGE_EXISTS; } }
static class Impressao2 implements Printable { public int print(Graphics g, PageFormat pf, int pageIndex) { drawGraphics(g, pf); return Printable.PAGE_EXISTS; } } }