如何解决java中的PrintService没有做任何事情
我试图打印一些我在 Java 应用程序中拥有的文档。 但是当我选择打印机时,它将文件添加到打印机队列中,但队列清除后没有任何反应。
这是我的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.JobName;
public class test {
public static void main(String[] args) throws PrintException,IOException {
PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
PrintService[] services = PrintServiceLookup.lookupprintServices(DocFlavor.SERVICE_FORMATTED.PAGEABLE,attrs);
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
PrintService selection = ServiceUI.printDialog(null,200,services,service,null,attrs);
if(selection != null)
{
String fileName = "C:\\Temp\\test.docx";
File f = new File(fileName);
InputStream is = new FileInputStream(f);
DocPrintJob job = selection.createPrintJob();
SimpleDoc doc = new SimpleDoc(is,DocFlavor.INPUT_STREAM.AUTOSENSE,null);
PrintRequestAttributeSet jAttrs = new HashPrintRequestAttributeSet();
jAttrs.add(new JobName(fileName,null));
job.print(doc,jAttrs);
if(is != null)
is.close();
}
}
}
当我在对话框中选择打印机并单击“打印”时,这是打印机队列的捕获:
并且在我的打印机中没有关于打印作业的信息...
当我从电脑而不是从应用程序打印此文件时,它的工作完美无缺。 当我使用此 java 代码时:
Desktop.getDesktop().print(f);
它的印刷完美。 但这不是我想要的,我希望用户在对话框中选择打印机。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。