package slipapp; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.print.PageFormat; import java.awt.print.Printable; import java.awt.print.PrinterException; /** * * @author Doys */ public class AppletPrintable implements Printable { private Printing prt; private int totalPage = 0; private boolean printAll; private int printPage; public AppletPrintable(Printing prt, boolean printAll, int printPage) { this.prt = prt; this.totalPage = prt.totalPage;// prt.buffImage.length; this.printAll = printAll; this.printPage = printPage; } @Override public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { if (pageIndex < 0) { return NO_SUCH_PAGE; } if (!printAll && pageIndex > 0) { return NO_SUCH_PAGE; } if (pageIndex >= totalPage) { return NO_SUCH_PAGE; } int buffIndex = printAll ? pageIndex : printPage; Graphics2D g2 = (Graphics2D) graphics; try { prt.print(g2, buffIndex); } catch (Exception ex) { g2.setBackground(Color.WHITE); g2.setColor(Color.RED); g2.drawString("err: " + ex.toString(), 20, 20); } return PAGE_EXISTS; } }