import java.applet.Applet;
import java.awt.Graphics;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.io.*;
import java.awt.Image;
import java.awt.MediaTracker;public class PrintFileTest extends Applet {
   String imageFile;
    String imageFile1;
    Image image;
    Image image1;
    Image img;
    public void init() {
    imageFile = getParameter("picture");//从HTMl上面获得参数
    imageFile1 = getParameter("picture1");    image = getImage(getDocumentBase(),imageFile); image1 = getImage(getDocumentBase(),imageFile1);    prepareImage(image,this);
    prepareImage(image1,this);    MediaTracker tracker = new MediaTracker(this);
    tracker.addImage(image,0);
    tracker.addImage(image1,0);    try{
      tracker.wait(0);
    }catch(Exception ignore){    }
    }    public void start() {
       printMap();
    }    public void stop() {
      // printMap();
    }    public void destroy() {    }
    public void paint(Graphics g) {
       g.drawImage(image1,0,0,this);       
    }    public void printMap(){
        
        String filename = imageFile;//从HTMl上面获得参数传给打印对话框
      //出问题的地方!!!!
        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();        DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;        PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
        PrintService defaultService =   PrintServiceLookup.lookupDefaultPrintService();
        PrintService service = ServiceUI.printDialog(null, 200, 200,printService, defaultService, flavor, pras);
        if (service != null) {
          try
          {            DocPrintJob job = service.createPrintJob();
            FileInputStream fis = new FileInputStream(filename);
            DocAttributeSet das = new HashDocAttributeSet();            Doc doc = new SimpleDoc(fis, flavor, das);
           // PageFormat format = job.pageDialog(attributes);
            job.print(doc, pras);
          }
          catch(Exception e)
          {
            e.printStackTrace();
          }
        }
    }
}
<html>
<head>
<title>test applet</title>
</head>
<body>
<br>
<applet
  code     = "PrintFileTest.class"  
  archive  = "print.jar"
  name     = "hello" 
  width    = "500"
  height   = "400"
  hspace   = "0"
  vspace   = "0"
  align    = "center"
>
<param name="picture"  value="0519/666.jpg">//用来打印的
<param name="picture1"  value="0519/666.jpg">//用来在HTML上显示的
</applet>
</body>
</html>
这是很完整的程序! PrintFileTest.class 和HTML文件放在./文件夹下面,而666.jpg放在./0519/下面.
当运行这个*.html文件时上面可以显示666.jpg文件,可是不能把这个文件打印出来
当你把<param name="picture"  value="0519/666.jpg">改为<param name="picture"  value="D:/./0519/666.jpg">时就可以打印出来!
肯定是我的printMap()写的不好。谁知道怎么修改,能把相对的路径的图片打印出来!