你的客户端是application么?不是网页的话试试下面方法。import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.io.*;public class PrintFileTest{    public static String TMP_FILE="C:\\172.gif";
    public static void main(String[] args){
      String filename = TMP_FILE;
      PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
      DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
      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);
          job.print(doc, pras);
     //     Thread.sleep(10000);
        }catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      System.exit(0);
    }
}
下面是的PDF是Java中那两个打印包的用法,还有例子,大家可以下下来看看。
http://java.sun.com/j2se/1.4.2/pdf/JPS_PDF.pdf

解决方案 »

  1.   

    上面的程序改两个地方:
    一是TMP_FILE文件改为PDF的文件;
    二是DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF;//把GIF改为PDF就可以了我拿这个程序改改打不了纯文本文件,但打印特殊的文件还是可以的。
      

  2.   

    楼上几位高手 我把GIF 改为 PDF之后就找不到可用的打印机了,也就是PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);中printService[]的长度为0
    请各位指点