下面的代码将数据发送到打印机,但是当它到达打印机队列时,它会返回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();
}
}
}
答案 0 :(得分:1)
仅使用JPS,您将遇到Mac问题。 我的建议是使用Java 2 Print API + Java Print Service。
Java 2 Print API类似1990风格。为避免使用Java 2 Print API创建代码,您可以使用PDFBox http://pdfbox.apache.org作为框架。
使用PDFBox,您可以创建PDF文档(http://pdfbox.apache.org/1.8/cookbook/documentcreation.html),但不是保存,而是使用该代码打印它:
PrinterJob printJob = PrinterJob.getPrinterJob();
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
printJob.setPrintService(service);
document.silentPrint(printJob);
它在我的Mac上运行良好。