尝试了两种方式:   
1:if   (job.printDialog(attributes))   
job.print(attributes);   
这种方式下,可以打印,但显示的打印对话框包含页面设置,设置其中的横向、纵向打印无效,这样的结果程序显然无法交差。(系统要求不能使用本地打印对话框)   2.PrintService方式   
PrintRequestAttributeSet   pras   =   ...;   
DocFlavor   flavor   =   ...;   
PrintService   printService[]   =   
PrintServiceLookup.lookupPrintServices(flavor,   pras);   
PrintService   defaultService   =   
PrintServiceLookup.lookupDefaultPrintService();   
PrintService   service   =   ServiceUI.printDialog(null,   200,   200,   
printService,   defaultService,   flavor,   pras);   
if   (service   !=   null)   {   
DocPrintJob   job   =   service.createPrintJob();   
String   fis=......   
DocAttributeSet   das   =   new   HashDocAttributeSet();   
Doc   doc   =   new   SimpleDoc(fis,   flavor,   das);   
job.print(doc,   pras);   
}   
这种方式打印图片(gif、png等)都没有问题,设置的横向、纵向都起作用,但无法打印文本字符串。无论DocFlavor设置成DocFlavor.String.还是其他,反正适合打文字的DocFlavor都无法找到打印服务   
我在网上已经搜了很久了,暂时还没有发现这个问题在哪里,各位大侠帮我想想。