gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:19:44 24 4
gpt4 key购买 nike

我已经实现了一个程序,使用 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 不支持 got 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 打印服务允许您像 Swing 一样“绘制”页面,然后将结果发送到打印机。它不了解 Word 格式或 HTML 页面或类似内容。

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

关于java - 无法使用 Java 打印机服务 (JPS) 打印文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7226700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com