gpt4 book ai didi

Java 打印机服务在使用 PrinterURI 属性时抛出 ClassCastException

转载 作者:行者123 更新时间:2023-12-01 15:45:08 26 4
gpt4 key购买 nike

我已经实现了一个程序,使用 IP 地址、打印机名称将文档打印到特定打印机

代码:

URI myURI=null;
FileInputStream psStream=null;
try {
psStream = new FileInputStream( "sample.docx" );
}
catch ( FileNotFoundException e ) {
e.printStackTrace();
}
DocFlavor psInFormat = DocFlavor.INPUT_STREAM.GIF;
Doc myDoc = new SimpleDoc( psStream, psInFormat, null );
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add( new Copies(5) );
try {
String host="192.255.301.147";
String printer="HP LaserJet 5000 Series PCL6";
String theUrl = "ipp://"+host+"/printers/"+printer;
theUrl = URLEncoder.encode(theUrl, "UTF-8");
myURI = new URI(theUrl);
aset.add(new PrinterURI(myURI));
} catch (URISyntaxException e) {
System.out.println("URI exception caught: "+e);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

PrintService[] services = PrintServiceLookup.lookupPrintServices( psInFormat, aset );
if ( services.length > 0 ) {
DocPrintJob job = services[0].createPrintJob();
try {
job.print( myDoc, aset );
}
catch ( PrintException e ){
}
}

运行程序时,出现ClasscastException

Exception in thread "Main Thread" java.lang.ClassCastException
at javax.print.attribute.AttributeSetUtilities.verifyAttributeValue(AttributeSetUtilities.java:534)
at javax.print.attribute.HashAttributeSet.add(HashAttributeSet.java:283)
at com.src.print.TestPrint2.main(TestPrint2.java:64)

无需在 RequestAttributeSet 中添加 PrinterURI 属性 (aset.add(new PrinterURI(myURI))),程序即可正常运行。它采用默认打印机配置并打印文档。

你能帮我解决这个问题吗?如何使用PrinterURI API?

最佳答案

我遇到了同样的错误消息“ClasscastException”。我自己发现这是一个粗心的错误。希望对其他人有帮助。

PrintService[] services = PrintServiceLookup.lookupPrintServices( psInFormat, aset );

.lookupPrintServices 正在使用 PrintServiceAttributeSet

job.print( myDoc, aset );

.print 正在使用 PrintRequestAttributeSet

它们不是同一组AttributeSet

关于Java 打印机服务在使用 PrinterURI 属性时抛出 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201266/

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