Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Java打印机服务(JPS)打印文档_Java - Fatal编程技术网

无法使用Java打印机服务(JPS)打印文档

无法使用Java打印机服务(JPS)打印文档,java,Java,我已经实现了一个程序,使用IP地址、打印机名称将文档打印到特定的打印机,并且运行良好,没有任何错误和异常。正在从java发送打印机作业,我可以在本地打印机打印池中看到这一点,但该页面未在打印机上打印 URI myURI=null; FileInputStream psStream=null; try { psStream = new FileInputStream("sample.doc"); } catch ( FileNotFoundException e ) { e

我已经实现了一个程序,使用IP地址、打印机名称将文档打印到特定的打印机,并且运行良好,没有任何错误和异常。正在从java发送打印机作业,我可以在本地打印机打印池中看到这一点,但该页面未在打印机上打印

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 ){
    }
}
你能帮我解决这个问题吗

谢谢, 斯里坎特·奇卢库里


我发现了问题

psStream = new FileInputStream("sample.doc");    
上述陈述造成了问题。因为它是MS Word应用程序,所以无法使用文件输入流读取文件

我正在使用POI jar并阅读文档

POIFSFileSystem psStream = new POIFSFileSystem(new FileInputStream(filesname));
Doc myDoc = new SimpleDoc( psStream, psInFormat, null );
但是Doc API不支持Get-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)
线程“主线程”java.lang.IllegalArgumentException中的异常:数据不是声明的类型 位于javax.print.SimpleDoc(SimpleDoc.java:82) 位于com.src.print.TestPrint2.main(TestPrint2.java:67)
您能帮我一下吗。

Java打印服务允许您像Swing一样“绘制”页面,然后将结果发送到打印机。它不了解Word格式、HTML页面或类似内容


因此,您需要一个模块,该模块知道如何将文档文件的内容绘制到打印机来完成此操作。我个人没有使用此类模块的经验。

Java打印服务允许您像Swing一样“绘制”页面,然后将结果发送到打印机。它不了解Word格式、HTML页面或类似内容


因此,您需要一个模块,该模块知道如何将文档文件的内容绘制到打印机来完成此操作。我个人没有使用此类模块的经验。

谢谢您的回复

我猜你说的是AWT印刷品。这与Java打印服务不同。您可以使用Java打印服务(JPS)使用多种选项打印预格式化文本数据

当文件使用UTF-8编码并且您尝试使用JPS打印时,就会出现问题
如果它是一个普通的ASCII文件。打印正确

谢谢您的回复

我猜你说的是AWT印刷品。这与Java打印服务不同。您可以使用Java打印服务(JPS)使用多种选项打印预格式化文本数据

当文件使用UTF-8编码并且您尝试使用JPS打印时,就会出现问题
如果它是一个普通的ASCII文件。正确打印它

它可能无法解决您的问题,但您不应该默默地忽略您的
PrintException
。它可能无法解决您的问题,但您不应该默默地忽略您的
PrintException