我已經實現了一個程序,使用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'。 –