gpt4 book ai didi

java - 打印机中纸张停止 - Java 打印问题

转载 作者:行者123 更新时间:2023-12-02 08:00:02 25 4
gpt4 key购买 nike

该类用于打印文件。我有一个 JButton(下面的代码中未显示)运行此代码并打开一个打印对话框。然而,当我点击打印时,它开始打印,但如果文本没有占据整个页面,它就会停止并且不会将其从打印机中弹出。我是否遗漏了可能导致此问题的某些内容?

try{
FileInputStream textStream;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
textStream = new FileInputStream(testFileName);
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc test = new SimpleDoc(textStream, flavor, null);

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

PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();

if(services.length == 0){
if(defaultService==null){
System.out.println("NO PRINTERS");
}else{
DocPrintJob job = defaultService.createPrintJob();
job.print(test, aset);
}
}else{

PrintService service = ServiceUI.printDialog(null, 200, 200, services, defaultService, flavor, aset);


if(service != null){
DocPrintJob job = service.createPrintJob();
job.print(test, aset);
}
}

}catch (IOException | PrintException e){
e.printStackTrace();
}

最佳答案

javax.print 并且您的代码的工作方式如下:

读取某些(未指定= INPUT_STREAM.AUTOSENSE)格式的InputStream(某些文件)并“提交”(.print) PrintJob 到操作系统打印机系统。

接下来发生的情况完全取决于您的操作系统设置,例如正确安装的打印机驱动程序和打印机连接。

在您的情况下,目标队列可能不支持您尝试打印的文件格式(也称为 PDL)。即使基于文本的 PDL 也使用 ESC sequences用于打印机控制。 Windows 和 Unix/Mac 系统有不同的方法。默认情况下,CUPS 可以处理 PDF 或 Postscript 等 PDL。

一旦 job.print() 方法结束,操作系统就会处理打印数据。要跟踪问题,您应该检查操作系统的打印机系统。在 Unix 上可能 CUPS .

关于java - 打印机中纸张停止 - Java 打印问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29885437/

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