我已经实现了一个程序,使用IP地址,打印机名称将文档打印到特定的打印机,并且运行良好,没有任何错误和异常。正在从java发送打印机作业,我可以在本地打印机打印池中看到此信息,但该页面未在打印机上打印。无法使用Java打印机打印文档服务(JPS)
URI myURI=null;
FileInputStream psStream=null;
try {
psStream = new FileInputStream("sample.doc");
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
DocFlavor psInFormat = DocFlavor.BYTE_ARRAY.GIF;
Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset);
if (services.length > 0) {
DocPrintJob job = services[0].createPrintJob();
try {
job.print(myDoc, aset);
}
catch (PrintException e){
}
}
你能帮我解决吗?
感谢, SRIKANTH Chilukuri
我发现这个问题。
psStream = new FileInputStream("sample.doc");
上述语句创建问题。因为它是MS Word应用程序,所以无法使用文件输入流来读取文件。
我正在使用POI jar并阅读文档。
POIFSFileSystem psStream = new POIFSFileSystem(new FileInputStream(filesname));
Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
但文件API不supporing得到抛出:IllegalArgumentException
Exception in thread "Main Thread" java.lang.IllegalArgumentException: data is not of declared type
at javax.print.SimpleDoc.<init>(SimpleDoc.java:82)
at com.src.print.TestPrint2.main(TestPrint2.java:67)
能否请你帮我出这一点。
它可能无法解决您的问题,但你不应该无视你的'PrintException'。 –