如何在javafx的PrinterJob中设置目标打印机
我有一个情况,需要打印现金柜台和包装区(仓库)的订单清单 从技术上讲,如何通过说出打印机名称来打印如何在javafx的PrinterJob中设置目标打印机,java,javafx,printing,Java,Javafx,Printing,我有一个情况,需要打印现金柜台和包装区(仓库)的订单清单 从技术上讲,如何通过说出打印机名称来打印javafx.print.PrinterJob 1) 样张 public static void PrintSample() { Label lbl = new Label("This is sample \n\n\n\n\n\nprint"); PrinterJob job = PrinterJob.createPrinterJob(); if (job != null
javafx.print.PrinterJob
1) 样张
public static void PrintSample() {
Label lbl = new Label("This is sample \n\n\n\n\n\nprint");
PrinterJob job = PrinterJob.createPrinterJob();
if (job != null ) {
boolean success = job.printPage(lbl);
if (success) {
job.endJob();
}
}
}
2) 获取打印机列表
public static void GetListOfPrinters() {
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null);
System.out.println("Number of print services: " + printServices.length);
for (PrintService printer : printServices) {
System.out.println("Printer: " + printer.getName());
}
}
不带参数的方法“createPrinterJob”为默认打印机创建打印机作业。您可以使用“createPrinterJob(Printer-Printer)”方法的其他版本为指定的打印机创建打印机作业。 首先获取打印机实例,如下所示:
Printer myPrinter;
ObservableSet<Printer> printers = Printer.getAllPrinters();
for(Printer printer : printers){
if(printer.getName().matches("spefic printer name")){
myPrinter = printer;
}
}
PrinterJob job=PrinterJob.createPrinterJob(myPrinter);
此行不起作用给出错误类型PrinterJob的方法createPrinterJob(Printer)未定义答案太迟,但任何人都需要相同问题的答案: 您可以使用此类打印文件(而不是节点)
publicstaticvoid打印(stringimagename,PagesManager PagesManager){
打印机打印机=打印机。getDefaultPrinter();
页面布局页面布局
=打印机.createPageLayout(纸张.A4,页面方向.纵向,打印机.MarginType.硬件\u最小值);
PrinterAttributes attr=printer.getPrinterAttributes();
PrinterJob作业=PrinterJob.createPrinterJob();
if(job.showPrintDialog(pagesManager.getScene().getWindow())){
字符串selectedPrinter=job.getPrinter().getName();
PrintRequestAttributeSet pras=新的HashPrintRequestAttributeSet();
审慎监管局增加(新副本(1));
PrintService pss[]=PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT\u STREAM.GIF,pras);
如果(pss.length==0){
抛出新的RuntimeException(“没有可用的打印机服务”);
}
int i=0;
对于(i=0;i
该方法似乎存在。可能您没有正确导入该类。如果您有任何疑问,请添加评论。你的文章不是这个问题的答案。
PrinterJob job = PrinterJob.createPrinterJob(myPrinter);
public static void print(String imageName, PagesManager pagesManager) {
Printer printer = Printer.getDefaultPrinter();
PageLayout pageLayout
= printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT, Printer.MarginType.HARDWARE_MINIMUM);
PrinterAttributes attr = printer.getPrinterAttributes();
PrinterJob job = PrinterJob.createPrinterJob();
if (job.showPrintDialog(pagesManager.getScene().getWindow())) {
String selectedPrinter = job.getPrinter().getName();
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
PrintService pss[] = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);
if (pss.length == 0) {
throw new RuntimeException("No printer services available.");
}
int i = 0;
for (i = 0; i < pss.length; i++) {
if (pss[i].getName().equals(selectedPrinter)) {
break;
}
}
PrintService ps = pss[i];
System.out.println("Printing to " + ps);
DocPrintJob docPrintJob = ps.createPrintJob();
FileInputStream fin = null;
try {
fin = new FileInputStream(imageName);
} catch (FileNotFoundException ex) {
System.out.println(ex);
}
Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.GIF, null);
try {
docPrintJob.print(doc, pras);
} catch (PrintException ex) {
System.out.println(ex);
}
try {
fin.close();
} catch (IOException ex) {
System.out.println(ex);
}
}
}