Print an image out : Print « 2D Graphics « Java Tutorial

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;

import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.swing.ImageIcon;

public class ImagePrint {
  public static void main(String[] args) throws Exception {
    PrintService service = PrintServiceLookup.lookupDefaultPrintService();
    DocPrintJob job = service.createPrintJob();
    DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
    SimpleDoc doc = new SimpleDoc(new MyPrintable(), flavor, null);
    job.print(doc, null);

class MyPrintable implements Printable {
  ImageIcon printImage = new javax.swing.ImageIcon("a.gif");

  public int print(Graphics g, PageFormat pf, int pageIndex) {
    Graphics2D g2d = (Graphics2D) g;
    g.translate((int) (pf.getImageableX()), (int) (pf.getImageableY()));
    if (pageIndex == 0) {
      double pageWidth = pf.getImageableWidth();
      double pageHeight = pf.getImageableHeight();
      double imageWidth = printImage.getIconWidth();
      double imageHeight = printImage.getIconHeight();
      double scaleX = pageWidth / imageWidth;
      double scaleY = pageHeight / imageHeight;
      double scaleFactor = Math.min(scaleX, scaleY);
      g2d.scale(scaleFactor, scaleFactor);
      g.drawImage(printImage.getImage(), 0, 0, null);
      return Printable.PAGE_EXISTS;
    return Printable.NO_SUCH_PAGE;

16.50.1.implements Printable
16.50.2.Print an image out
16.50.3.javax.print API and allows you to list available printers, query a named printer, print text and image files to a printer, and print to postscript files
16.50.4.extends JuliaSet1 and overrides the print() method to demonstrate the Java 1.2 printing API
16.50.5.Work with PrintRequestAttributeSet
16.50.6.PrinterJob and Printable
16.50.7.Print out a Swing component
16.50.8.Print Image
16.50.9.Printing to a File
16.50.10.Pagination during print
16.50.11.Printing Pages with Different Formats
16.50.12.The area of the printable area
16.50.13.The area of the actual page