comment définir l'imprimante cible dans PrinterJob dans javafx


J'ai une situation qui a besoin d'imprimer la facture de commande dans la caisse et la zone d'emballage(entrepôt ).

Techniquement, comment imprimer javafx.print.PrinterJob en disant le nom de l'imprimante.

1) Exemple d'impression

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) Obtenir la liste des imprimantes

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());
    }

}
Author: Labeeb, 2017-09-21

2 answers

La méthode 'createPrinterJob' avec no-args crée une tâche d'imprimante pour l'imprimante par défaut. Vous pouvez utiliser l'autre version de la méthode 'createPrinterJob(Imprimante)" pour créer une imprimante d'emploi de l'imprimante spécifiée. Obtenez d'abord l'instance de l'imprimante comme ci-dessous:

Printer myPrinter;
ObservableSet<Printer> printers = Printer.getAllPrinters();
for(Printer printer : printers){
    if(printer.getName().matches("spefic printer name")){
        myPrinter = printer;
    }
}

Maintenant, Créez un travail d'imprimante pour 'myPrinter' comme ceci:

PrinterJob job = PrinterJob.createPrinterJob(myPrinter);
 1
Author: Priyanka, 2017-09-22 10:20:12

PrinterJob job = PrinterJob.createPrinterJob (myPrinter); cette ligne ne fonctionne pas donne une erreur La méthode createPrinterJob (Printer) n'est pas définie pour le type PrinterJob

 0
Author: Hemant Soni, 2017-11-13 10:51:30