然而,下面的代码将数据发送到打印机,当它到达打印机队列时,它会返回一个Unable to convert PostScript file.
我认为可以通过指定口味来克服这个问题,但事实并非如此
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.PrintServiceAttribute;
import javax.print.attribute.standard.PrinterName;
public class New1 {
public static void main(String[] args) {
try {
String s = "Hello";
// byte[] by = s.getBytes();
DocFlavor flavor = DocFlavor.STRING.TEXT_PLAIN;
PrintService pservice = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob job = pservice.createPrintJob();
Doc doc = new SimpleDoc(s, flavor, null);
job.print(doc, null);
} catch (PrintException e) {
e.printStackTrace();
}
}
}
仅使用 JPS,您在 Mac 上将会遇到问题。
我的建议是使用 Java 2 Print API + Java Print Service。
Java 2 Print API 有点像 1990 年的风格。为了避免使用 Java 2 Print API 创建代码,您可以使用 PDFBoxhttp://pdfbox.apache.org http://pdfbox.apache.org作为一个框架。
使用 PDFBox 您可以创建 PDF 文档(http://pdfbox.apache.org/1.8/cookbook/documentcreation.html http://pdfbox.apache.org/1.8/cookbook/documentcreation.html)但不保存,而是使用该代码打印它:
PrinterJob printJob = PrinterJob.getPrinterJob();
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
printJob.setPrintService(service);
document.silentPrint(printJob);
它在我的 Mac 上运行良好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)